<?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>68376</bug_id>
          
          <creation_ts>2011-09-19 12:08:47 -0700</creation_ts>
          <short_desc>Rename NewSpace.{h,cpp} to MarkedSpace.{h,cpp}</short_desc>
          <delta_ts>2011-09-19 12:15:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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="Oliver Hunt">oliver</reporter>
          <assigned_to name="Oliver Hunt">oliver</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>469591</commentid>
    <comment_count>0</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-19 12:08:47 -0700</bug_when>
    <thetext>Rename NewSpace.{h,cpp} to MarkedSpace.{h,cpp}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469592</commentid>
    <comment_count>1</comment_count>
      <attachid>107900</attachid>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-19 12:10:44 -0700</bug_when>
    <thetext>Created attachment 107900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469599</commentid>
    <comment_count>2</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2011-09-19 12:15:09 -0700</bug_when>
    <thetext>Committed r95453: &lt;http://trac.webkit.org/changeset/95453&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107900</attachid>
            <date>2011-09-19 12:10:44 -0700</date>
            <delta_ts>2011-09-19 12:12:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-68376-20110919121043.patch</filename>
            <type>text/plain</type>
            <size>33440</size>
            <attacher name="Oliver Hunt">oliver</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTU0NTAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAppbmRleCBiYmY3MTFlOTA5NWM3OGM1MWE0ZWY1MzQzNWM3MWRhY2UwODEwMjc5Li40MGNiZTc2
OGM2NWEzZjIwYTRjZDc3YjA2MDA0NjdkZTExOWEyMzJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NN
YWtlTGlzdHMudHh0CkBAIC01MCw3ICs1MCw3IEBAIFNFVChKYXZhU2NyaXB0Q29yZV9TT1VSQ0VT
CiAgICAgaGVhcC9IYW5kbGVTdGFjay5jcHAKICAgICBoZWFwL01hY2hpbmVTdGFja01hcmtlci5j
cHAKICAgICBoZWFwL01hcmtlZEJsb2NrLmNwcAotICAgIGhlYXAvTmV3U3BhY2UuY3BwCisgICAg
aGVhcC9NYXJrZWRTcGFjZS5jcHAKICAgICBoZWFwL0NvbnNlcnZhdGl2ZVJvb3RzLmNwcAogICAg
IGhlYXAvTWFya1N0YWNrLmNwcAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
Q2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3Y2VkMzc5
YWQ1MDIyNjE0NDljOWQwMTQ5NzEyYzI3NzkzZGI1ZTJhLi4wZWRjNjVkNGUzMWE4OWFhYmU2ODVm
ODk2ZjU1YmQ1ZWRkYTIwZWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSw0
MCBAQAogMjAxMS0wOS0xOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCisgICAg
ICAgIFJlbmFtZSBOZXdTcGFjZS57aCxjcHB9IHRvIE1hcmtlZFNwYWNlLntoLGNwcH0KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4Mzc2CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lZCB0aGUgdGhl
IE1hcmtlZFNwYWNlIGZpbGVzIHRvIG1hdGNoIG5ldyBuYW1lLCBhbmQKKyAgICAgICAgdXBkYXRl
ZCB0aGUgcmVsZXZhbnQgcmVmZXJlbmNlcy4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0Ogor
ICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
Z3lwaToKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS5wcm86CisgICAgICAgICogSmF2YVNjcmlw
dENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAq
IGhlYXAvSGVhcC5oOgorICAgICAgICAqIGhlYXAvTWFya2VkU3BhY2UuY3BwOiBSZW5hbWVkIGZy
b20gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTmV3U3BhY2UuY3BwLgorICAgICAgICAoSlND
OjpNYXJrZWRTcGFjZTo6TWFya2VkU3BhY2UpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
YWRkQmxvY2spOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6cmVtb3ZlQmxvY2spOgorICAg
ICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6cmVzZXRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpN
YXJrZWRTcGFjZTo6Y2Fub25pY2FsaXplQmxvY2tzKToKKyAgICAgICAgKiBoZWFwL01hcmtlZFNw
YWNlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9OZXdTcGFjZS5o
LgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6d2F0ZXJNYXJrKToKKyAgICAgICAgKEpTQzo6
TWFya2VkU3BhY2U6OmhpZ2hXYXRlck1hcmspOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6
c2V0SGlnaFdhdGVyTWFyayk6CisgICAgICAgIChKU0M6Ok1hcmtlZFNwYWNlOjpzaXplQ2xhc3NG
b3IpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6YWxsb2NhdGUpOgorICAgICAgICAoSlND
OjpNYXJrZWRTcGFjZTo6Zm9yRWFjaEJsb2NrKToKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6
OlNpemVDbGFzczo6U2l6ZUNsYXNzKToKKyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OlNpemVD
bGFzczo6cmVzZXRBbGxvY2F0b3IpOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6U2l6ZUNs
YXNzOjpjYW5vbmljYWxpemVCbG9jayk6CisgICAgICAgICogcnVudGltZS9KU0NlbGwuaDoKKwor
MjAxMS0wOS0xOSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgorCiAgICAgICAgIFJl
bmFtZSBOZXdTcGFjZSB0byBNYXJrZWRTcGFjZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjgzNzUKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFr
ZWZpbGUubGlzdC5hbQppbmRleCA5OTZjYWI1NDdmYTRiZDQwMzk3MjYyNmJlZTlkM2NhZDZlNTJj
MjQwLi5mYWZlMzljMzk4Mzc0OWUyZDA1YmQ0ZGZiMmRjYjZmOTIyODA0MjY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpAQCAtMTU1LDggKzE1NSw4IEBAIGph
dmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZEJsb2NrLmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZEJsb2NrU2V0
LmggXAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1RpbnlCbG9vbUZpbHRlci5oIFwKLQlT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9OZXdTcGFjZS5jcHAgXAotCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL05ld1NwYWNlLmggXAorCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01h
cmtlZFNwYWNlLmNwcCBcCisJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2Uu
aCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvU3Ryb25nLmggXAogCVNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL1ZUYWJsZVNwZWN0cnVtLmNwcCBcCiAJU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvVlRhYmxlU3BlY3RydW0uaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5neXBpCmluZGV4IDQ1Zjk1NDM0NTcyMDgwNmFlZDI3NWI5MzM3NDQ0ZWZmNzFkZTQ2
ZDcuLjY4MWFkNjMzZGFjZmE1Mzk4N2ExYmZmYWUwM2IyNWRiZGNmYjQ0ODkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5neXBpCkBAIC0zMzcsOCArMzM3LDggQEAKICAg
ICAgICAgICAgICdoZWFwL01hcmtlZEJsb2NrLmgnLAogICAgICAgICAgICAgJ2hlYXAvTWFya2Vk
QmxvY2tTZXQuaCcsCiAgICAgICAgICAgICAnaGVhcC9UaW55Qmxvb21GaWx0ZXIuaCcsCi0gICAg
ICAgICAgICAnaGVhcC9OZXdTcGFjZS5jcHAnLAotICAgICAgICAgICAgJ2hlYXAvTmV3U3BhY2Uu
aCcsCisgICAgICAgICAgICAnaGVhcC9NYXJrZWRTcGFjZS5jcHAnLAorICAgICAgICAgICAgJ2hl
YXAvTWFya2VkU3BhY2UuaCcsCiAgICAgICAgICAgICAnZGVidWdnZXIvRGVidWdnZXIuY3BwJywK
ICAgICAgICAgICAgICdkZWJ1Z2dlci9EZWJ1Z2dlckFjdGl2YXRpb24uY3BwJywKICAgICAgICAg
ICAgICdkZWJ1Z2dlci9EZWJ1Z2dlckNhbGxGcmFtZS5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5wcm8KaW5kZXggMDY4OTZmNTk5YzYzNzEyMmFmOWUyMjgzYWVjOTQx
YzViN2UyNjU5YS4uYmE4MjdiODE3ZTFkZDE1MzYwNmViNzBjOGM5ZmM4MTY3MmEyYWY2MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnBybworKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJvCkBAIC03OSw3ICs3OSw3IEBA
IFNPVVJDRVMgKz0gXAogICAgIGhlYXAvTWFjaGluZVN0YWNrTWFya2VyLmNwcCBcCiAgICAgaGVh
cC9NYXJrU3RhY2suY3BwIFwKICAgICBoZWFwL01hcmtlZEJsb2NrLmNwcCBcCi0gICAgaGVhcC9O
ZXdTcGFjZS5jcHAgXAorICAgIGhlYXAvTWFya2VkU3BhY2UuY3BwIFwKICAgICBoZWFwL1ZUYWJs
ZVNwZWN0cnVtLmNwcCBcCiAgICAgaGVhcC9Xcml0ZUJhcnJpZXJTdXBwb3J0LmNwcCBcCiAgICAg
ZGVidWdnZXIvRGVidWdnZXJBY3RpdmF0aW9uLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnZjcHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3By
b2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCmluZGV4IGQ2YjBiMzk2ZmNm
NjI2MWJmODVkMTUwODkyODYyOTAyZWRkMWQ0ODkuLjA5MjVkMzNjZjk1NWIyZjMyZGQwN2RlODQ1
ZTBjMjhmODg2ZTgzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qCkBAIC0xOTE0LDExICsxOTE0LDExIEBACiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgPC9GaWxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4uXC4uXGhlYXBcTmV3U3Bh
Y2UuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRo
PSIuLlwuLlxoZWFwXE1hcmtlZFNwYWNlLmNwcCIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgID4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ZpbGU+CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgPEZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlbGF0aXZlUGF0aD0iLi5cLi5caGVhcFxOZXdTcGFjZS5oIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlwuLlxoZWFwXE1hcmtlZFNw
YWNlLmgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgPC9GaWxlPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxG
aWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0ZWJlODAwZWY5NDRjOTViNDRm
ODRhMDhkMzBmNjdlZTZkZDI4OTMuLmY3NDIxZDcxNDM3NmE3NWMwYzVlMDQxMWY1NWU2MTBlZGU2
YWVjNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTQsOCArMjE0LDggQEAK
IAkJMTRCRDVBMzIwQTNFOTFGNjAwQkFGNTlDIC8qIEpTVmFsdWVSZWYuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCRDVBMkIwQTNFOTFGNjAwQkFG
NTlDIC8qIEpTVmFsdWVSZWYuY3BwICovOyB9OwogCQkxNEJGQ0U2OTEwQ0RCMUZDMDAzNjRDQ0Ug
LyogV2Vha0dDTWFwLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxNEJGQ0U2ODEwQ0RCMUZDMDAzNjRDQ0UgLyogV2Vha0dDTWFwLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTRDNTI0MkIwRjUzNTVFOTAw
QkEzRDA0IC8qIEpJVFN0dWJzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxNEE2NTgxQTBGNEUzNkY0MDAwMTUwRkQgLyogSklUU3R1YnMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxNEQyRjNEQTEzOUY0
QkUyMDA0OTEwMzEgLyogTmV3U3BhY2UuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTREMkYzRDgxMzlGNEJFMjAwNDkxMDMxIC8qIE5ld1NwYWNlLmNw
cCAqLzsgfTsKLQkJMTREMkYzREIxMzlGNEJFMjAwNDkxMDMxIC8qIE5ld1NwYWNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQyRjNEOTEzOUY0QkUy
MDA0OTEwMzEgLyogTmV3U3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQkxNEQyRjNEQTEzOUY0QkUyMDA0OTEwMzEgLyogTWFya2VkU3BhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTREMkYz
RDgxMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmNwcCAqLzsgfTsKKwkJMTREMkYzREIx
MzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxNEQyRjNEOTEzOUY0QkUyMDA0OTEwMzEgLyogTWFya2Vk
U3BhY2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQkxNEU5RDE3QjEwN0VDNDY5MDA0RERBMjEgLyogSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3NTZGQzYw
RTIwMzFCMjAwREU3RDEyIC8qIEpTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcCAqLzsgfTsKIAkJ
MTRGOEJBM0UxMDdFQzg4NjAwOTg5MkRDIC8qIEZhc3RNYWxsb2MuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVFMjE3QjkwOEU3RUVDQzAwMjNFNUY2
IC8qIEZhc3RNYWxsb2MuY3BwICovOyB9OwogCQkxNEY4QkE0MzEwN0VDODhDMDA5ODkyREMgLyog
VENTeXN0ZW1BbGxvYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA2NTQxQkQ3MDA4RTgwQTE3MDAyQ0JFRTcgLyogVENTeXN0ZW1BbGxvYy5jcHAgKi87
IH07CkBAIC05MDcsOCArOTA3LDggQEAKIAkJMTRCRDVBMkIwQTNFOTFGNjAwQkFGNTlDIC8qIEpT
VmFsdWVSZWYuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTVmFs
dWVSZWYuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEJENUEyRDBBM0U5MUY2
MDBCQUY1OUMgLyogdGVzdGFwaS5jICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5jOyBuYW1lID0g
dGVzdGFwaS5jOyBwYXRoID0gQVBJL3Rlc3RzL3Rlc3RhcGkuYzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMTRCRkNFNjgxMENEQjFGQzAwMzY0Q0NFIC8qIFdlYWtHQ01hcC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWFrR0NNYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJMTREMkYzRDgxMzlGNEJFMjAwNDkxMDMxIC8qIE5ld1NwYWNlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5ld1NwYWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTREMkYzRDkxMzlGNEJFMjAwNDkxMDMxIC8qIE5ld1Nw
YWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5ld1NwYWNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0RDJGM0Q4MTM5RjRCRTIwMDQ5MTAzMSAvKiBNYXJr
ZWRTcGFjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBNYXJrZWRT
cGFjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE0RDJGM0Q5MTM5RjRCRTIw
MDQ5MTAzMSAvKiBNYXJrZWRTcGFjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBNYXJrZWRTcGFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEQ3OTI2NDBE
QUEwM0ZCMDAxQTlGMDUgLyogUmVnaXN0ZXJGaWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlZ2lzdGVyRmlsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
NEQ4NTc3NDBBNDY5NkM4MDAzMjE0NkMgLyogdGVzdGFwaS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IHRlc3RhcGkuanM7IHBhdGggPSBBUEkvdGVzdHMvdGVzdGFw
aS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTREQTgxOEUwRDk5RkQyMDAwQjBB
NEZCIC8qIEpTQWN0aXZhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBK
U0FjdGl2YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDIsOCArMTY0
Miw4IEBACiAJCQkJMTQxNDQ4Q0ExM0ExNzZFQzAwRjVCQTFBIC8qIE1hcmtlZEJsb2NrU2V0Lmgg
Ki8sCiAJCQkJMTQyRDZGMEUxMzUzOUE0MTAwQjAyRTg2IC8qIE1hcmtTdGFjay5jcHAgKi8sCiAJ
CQkJMTQyRDZGMEYxMzUzOUE0MTAwQjAyRTg2IC8qIE1hcmtTdGFjay5oICovLAotCQkJCTE0RDJG
M0Q4MTM5RjRCRTIwMDQ5MTAzMSAvKiBOZXdTcGFjZS5jcHAgKi8sCi0JCQkJMTREMkYzRDkxMzlG
NEJFMjAwNDkxMDMxIC8qIE5ld1NwYWNlLmggKi8sCisJCQkJMTREMkYzRDgxMzlGNEJFMjAwNDkx
MDMxIC8qIE1hcmtlZFNwYWNlLmNwcCAqLywKKwkJCQkxNEQyRjNEOTEzOUY0QkUyMDA0OTEwMzEg
LyogTWFya2VkU3BhY2UuaCAqLywKIAkJCQkxNEJBNzhGMDEzQUFCODhGMDA1QjdDMkMgLyogU2xv
dFZpc2l0b3IuaCAqLywKIAkJCQkxNDJFMzEzMjEzNEZGMEE2MDBBRkFEQjUgLyogU3Ryb25nLmgg
Ki8sCiAJCQkJMTQxNDQ4Q0MxM0ExNzgzNzAwRjVCQTFBIC8qIFRpbnlCbG9vbUZpbHRlci5oICov
LApAQCAtMjc4MSw3ICsyNzgxLDcgQEAKIAkJCQkxNEY5NzQ0NzEzOEM4NTNFMDBEQTFDNjcgLyog
SGVhcFJvb3RWaXNpdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkJCMDlDMTEzOEUzODFCMDA1
NjcwMkYgLyogREZHUmVwYXRjaC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcyRkZENjQxMzk5ODVB
ODAwRTUzNjVBIC8qIEtleXdvcmRMb29rdXAuaCBpbiBIZWFkZXJzICovLAotCQkJCTE0RDJGM0RC
MTM5RjRCRTIwMDQ5MTAzMSAvKiBOZXdTcGFjZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMTREMkYz
REIxMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtlZFNwYWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
NDE0NDhDQjEzQTE3NkVDMDBGNUJBMUEgLyogTWFya2VkQmxvY2tTZXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTE0MTQ0OENEMTNBMTc4MzcwMEY1QkExQSAvKiBUaW55Qmxvb21GaWx0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTE0QkE3OEYxMTNBQUI4OEYwMDVCN0MyQyAvKiBTbG90VmlzaXRvci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0zMjg3LDcgKzMyODcsNyBAQAogCQkJCTg2QUU2NEE4MTM1RTVF
MUMwMDk2MzAxMiAvKiBNYWNyb0Fzc2VtYmxlclNINC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3
OTM0QkI3QzEzNjE5Nzk0MDBDQjk5QTEgLyogUGFyYWxsZWxKb2JzR2VuZXJpYy5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk4NkJCMDlDMDEzOEUzODFCMDA1NjcwMkYgLyogREZHUmVwYXRjaC5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQkxNEQyRjNEQTEzOUY0QkUyMDA0OTEwMzEgLyogTmV3U3BhY2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJMTREMkYzREExMzlGNEJFMjAwNDkxMDMxIC8qIE1hcmtl
ZFNwYWNlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0QkE3QTk3MTNBQURGRjgwMDVCN0MyQyAv
KiBIZWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUMyMkM1MkYxMTNGQUY2RUYwMEI3REMwRCAv
KiBiaWdudW0tZHRvYS5jYyBpbiBTb3VyY2VzICovLAogCQkJCUMyMkM1MkYzMTNGQUY2RUYwMEI3
REMwRCAvKiBiaWdudW0uY2MgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAu
aAppbmRleCBlZTBjMWYwYjg3MDI5MzczNThmM2IyNDY2MjUxZWEwZTkyOGI0MjdmLi4zZDMwOGIz
NmFiZGExMTdkN2Y0N2QyNDBmYzk5ZTc0OGYxZWFlZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
SGVhcC5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaW5jbHVkZSAiSGFuZGxlU3RhY2suaCIKICNpbmNs
dWRlICJNYXJrZWRCbG9jay5oIgogI2luY2x1ZGUgIk1hcmtlZEJsb2NrU2V0LmgiCi0jaW5jbHVk
ZSAiTmV3U3BhY2UuaCIKKyNpbmNsdWRlICJNYXJrZWRTcGFjZS5oIgogI2luY2x1ZGUgIlNsb3RW
aXNpdG9yLmgiCiAjaW5jbHVkZSAiV3JpdGVCYXJyaWVyU3VwcG9ydC5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJr
ZWRTcGFjZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMTc2NDk2ZGZhODI2Y2QyNTBjZjVmNjBiMzVjNTg2MzIyNTE4MDk0ZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmNw
cApAQCAtMCwwICsxLDg1IEBACisvKgorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAgQ29weXJpZ2h0IChDKSAyMDA3IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Cisg
KgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK
KyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3
YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu
c2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAq
ICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0
b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk1hcmtlZFNwYWNlLmgiCisKKyNpbmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgor
I2luY2x1ZGUgIkpTTG9jay5oIgorI2luY2x1ZGUgIkpTT2JqZWN0LmgiCisjaW5jbHVkZSAiU2Nv
cGVDaGFpbi5oIgorCituYW1lc3BhY2UgSlNDIHsKKworY2xhc3MgU3RydWN0dXJlOworCitNYXJr
ZWRTcGFjZTo6TWFya2VkU3BhY2UoSGVhcCogaGVhcCkKKyAgICA6IG1fd2F0ZXJNYXJrKDApCisg
ICAgLCBtX2hpZ2hXYXRlck1hcmsoMCkKKyAgICAsIG1faGVhcChoZWFwKQoreworICAgIGZvciAo
c2l6ZV90IGNlbGxTaXplID0gcHJlY2lzZVN0ZXA7IGNlbGxTaXplIDwgcHJlY2lzZUN1dG9mZjsg
Y2VsbFNpemUgKz0gcHJlY2lzZVN0ZXApCisgICAgICAgIHNpemVDbGFzc0ZvcihjZWxsU2l6ZSku
Y2VsbFNpemUgPSBjZWxsU2l6ZTsKKworICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0gaW1wcmVj
aXNlU3RlcDsgY2VsbFNpemUgPCBpbXByZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9IGltcHJlY2lz
ZVN0ZXApCisgICAgICAgIHNpemVDbGFzc0ZvcihjZWxsU2l6ZSkuY2VsbFNpemUgPSBjZWxsU2l6
ZTsKK30KKwordm9pZCBNYXJrZWRTcGFjZTo6YWRkQmxvY2soU2l6ZUNsYXNzJiBzaXplQ2xhc3Ms
IE1hcmtlZEJsb2NrKiBibG9jaykKK3sKKyAgICBibG9jay0+c2V0SW5OZXdTcGFjZSh0cnVlKTsK
KyAgICBzaXplQ2xhc3MubmV4dEJsb2NrID0gYmxvY2s7CisgICAgc2l6ZUNsYXNzLmJsb2NrTGlz
dC5hcHBlbmQoYmxvY2spOworICAgIEFTU0VSVCghc2l6ZUNsYXNzLmN1cnJlbnRCbG9jayk7Cisg
ICAgQVNTRVJUKCFzaXplQ2xhc3MuZmlyc3RGcmVlQ2VsbCk7CisgICAgc2l6ZUNsYXNzLmN1cnJl
bnRCbG9jayA9IGJsb2NrOworICAgIHNpemVDbGFzcy5maXJzdEZyZWVDZWxsID0gYmxvY2stPmJs
ZXNzTmV3QmxvY2tGb3JGYXN0UGF0aCgpOworfQorCit2b2lkIE1hcmtlZFNwYWNlOjpyZW1vdmVC
bG9jayhNYXJrZWRCbG9jayogYmxvY2spCit7CisgICAgYmxvY2stPnNldEluTmV3U3BhY2UoZmFs
c2UpOworICAgIFNpemVDbGFzcyYgc2l6ZUNsYXNzID0gc2l6ZUNsYXNzRm9yKGJsb2NrLT5jZWxs
U2l6ZSgpKTsKKyAgICBpZiAoc2l6ZUNsYXNzLm5leHRCbG9jayA9PSBibG9jaykKKyAgICAgICAg
c2l6ZUNsYXNzLm5leHRCbG9jayA9IGJsb2NrLT5uZXh0KCk7CisgICAgc2l6ZUNsYXNzLmJsb2Nr
TGlzdC5yZW1vdmUoYmxvY2spOworfQorCit2b2lkIE1hcmtlZFNwYWNlOjpyZXNldEFsbG9jYXRv
cigpCit7CisgICAgbV93YXRlck1hcmsgPSAwOworCisgICAgZm9yIChzaXplX3QgY2VsbFNpemUg
PSBwcmVjaXNlU3RlcDsgY2VsbFNpemUgPCBwcmVjaXNlQ3V0b2ZmOyBjZWxsU2l6ZSArPSBwcmVj
aXNlU3RlcCkKKyAgICAgICAgc2l6ZUNsYXNzRm9yKGNlbGxTaXplKS5yZXNldEFsbG9jYXRvcigp
OworCisgICAgZm9yIChzaXplX3QgY2VsbFNpemUgPSBpbXByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8
IGltcHJlY2lzZUN1dG9mZjsgY2VsbFNpemUgKz0gaW1wcmVjaXNlU3RlcCkKKyAgICAgICAgc2l6
ZUNsYXNzRm9yKGNlbGxTaXplKS5yZXNldEFsbG9jYXRvcigpOworfQorCit2b2lkIE1hcmtlZFNw
YWNlOjpjYW5vbmljYWxpemVCbG9ja3MoKQoreworICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0g
cHJlY2lzZVN0ZXA7IGNlbGxTaXplIDwgcHJlY2lzZUN1dG9mZjsgY2VsbFNpemUgKz0gcHJlY2lz
ZVN0ZXApCisgICAgICAgIHNpemVDbGFzc0ZvcihjZWxsU2l6ZSkuY2Fub25pY2FsaXplQmxvY2so
KTsKKworICAgIGZvciAoc2l6ZV90IGNlbGxTaXplID0gaW1wcmVjaXNlU3RlcDsgY2VsbFNpemUg
PCBpbXByZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9IGltcHJlY2lzZVN0ZXApCisgICAgICAgIHNp
emVDbGFzc0ZvcihjZWxsU2l6ZSkuY2Fub25pY2FsaXplQmxvY2soKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgSlNDCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRT
cGFjZS5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi45NGFkNTkzNjhmOWNkYjljMTZlOGRhMjE1ZjlkMDA0YzRkMDlkOTNmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaApAQCAtMCww
ICsxLDIyMSBAQAorLyoKKyAqICBDb3B5cmlnaHQgKEMpIDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4g
KHBvcnRlbkBrZGUub3JnKQorICogIENvcHlyaWdodCAoQykgMjAwMSBQZXRlciBLZWxseSAocG1r
QHBvc3QuY29tKQorICogIENvcHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAw
NywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAq
ICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug
Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w
eSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0
aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24s
IE1BICAwMjExMC0xMzAxICBVU0EKKyAqCisgKi8KKworI2lmbmRlZiBNYXJrZWRTcGFjZV9oCisj
ZGVmaW5lIE1hcmtlZFNwYWNlX2gKKworI2luY2x1ZGUgIk1hY2hpbmVTdGFja01hcmtlci5oIgor
I2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCisjaW5jbHVkZSAiUGFnZUFsbG9jYXRpb25BbGlnbmVk
LmgiCisjaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgorI2luY2x1ZGUgPHd0Zi9Eb3VibHlMaW5rZWRM
aXN0Lmg+CisjaW5jbHVkZSA8d3RmL0ZpeGVkQXJyYXkuaD4KKyNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3Iu
aD4KKworI2RlZmluZSBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKGNsYXNzKSBDT01QSUxFX0FT
U0VSVChzaXplb2YoY2xhc3MpIDwgTWFya2VkU3BhY2U6Om1heENlbGxTaXplLCBjbGFzc19maXRz
X2luX2NlbGwpCisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBIZWFwOworY2xhc3MgSlNDZWxs
OworY2xhc3MgTGl2ZU9iamVjdEl0ZXJhdG9yOworY2xhc3MgV2Vha0dDSGFuZGxlOworY2xhc3Mg
U2xvdFZpc2l0b3I7CisKK2NsYXNzIE1hcmtlZFNwYWNlIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShNYXJrZWRTcGFjZSk7CitwdWJsaWM6CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhD
ZWxsU2l6ZSA9IDEwMjQ7CisKKyAgICBzdHJ1Y3QgU2l6ZUNsYXNzIHsKKyAgICAgICAgU2l6ZUNs
YXNzKCk7CisgICAgICAgIHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsKKyAgICAgICAgdm9pZCBjYW5v
bmljYWxpemVCbG9jaygpOworCisgICAgICAgIE1hcmtlZEJsb2NrOjpGcmVlQ2VsbCogZmlyc3RG
cmVlQ2VsbDsKKyAgICAgICAgTWFya2VkQmxvY2sqIGN1cnJlbnRCbG9jazsKKyAgICAgICAgTWFy
a2VkQmxvY2sqIG5leHRCbG9jazsKKyAgICAgICAgRG91Ymx5TGlua2VkTGlzdDxNYXJrZWRCbG9j
az4gYmxvY2tMaXN0OworICAgICAgICBzaXplX3QgY2VsbFNpemU7CisgICAgfTsKKworICAgIE1h
cmtlZFNwYWNlKEhlYXAqKTsKKworICAgIFNpemVDbGFzcyYgc2l6ZUNsYXNzRm9yKHNpemVfdCk7
CisgICAgdm9pZCogYWxsb2NhdGUoU2l6ZUNsYXNzJik7CisgICAgCisgICAgdm9pZCByZXNldEFs
bG9jYXRvcigpOworCisgICAgdm9pZCBhZGRCbG9jayhTaXplQ2xhc3MmLCBNYXJrZWRCbG9jayop
OworICAgIHZvaWQgcmVtb3ZlQmxvY2soTWFya2VkQmxvY2sqKTsKKyAgICAKKyAgICB2b2lkIGNh
bm9uaWNhbGl6ZUJsb2NrcygpOworCisgICAgc2l6ZV90IHdhdGVyTWFyaygpOworICAgIHNpemVf
dCBoaWdoV2F0ZXJNYXJrKCk7CisgICAgdm9pZCBzZXRIaWdoV2F0ZXJNYXJrKHNpemVfdCk7CisK
KyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdG9yPiB0eXBlbmFtZSBGdW5jdG9yOjpSZXR1cm5U
eXBlIGZvckVhY2hCbG9jayhGdW5jdG9yJik7IC8vIFNhZmUgdG8gcmVtb3ZlIHRoZSBjdXJyZW50
IGl0ZW0gd2hpbGUgaXRlcmF0aW5nLgorICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5
cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaEJsb2NrKCk7CisKK3ByaXZhdGU6Cisg
ICAgLy8gWyA4LCAxNi4uLiAxMjggKQorICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZVN0
ZXAgPSBNYXJrZWRCbG9jazo6YXRvbVNpemU7CisgICAgc3RhdGljIGNvbnN0IHNpemVfdCBwcmVj
aXNlQ3V0b2ZmID0gMTI4OworICAgIHN0YXRpYyBjb25zdCBzaXplX3QgbWF4aW11bVByZWNpc2VB
bGxvY2F0aW9uU2l6ZSA9IHByZWNpc2VDdXRvZmYgLSBwcmVjaXNlU3RlcDsKKyAgICBzdGF0aWMg
Y29uc3Qgc2l6ZV90IHByZWNpc2VDb3VudCA9IHByZWNpc2VDdXRvZmYgLyBwcmVjaXNlU3RlcCAt
IDE7CisKKyAgICAvLyBbIDEyOCwgMjU2Li4uIDEwMjQgKQorICAgIHN0YXRpYyBjb25zdCBzaXpl
X3QgaW1wcmVjaXNlU3RlcCA9IHByZWNpc2VDdXRvZmY7CisgICAgc3RhdGljIGNvbnN0IHNpemVf
dCBpbXByZWNpc2VDdXRvZmYgPSBtYXhDZWxsU2l6ZTsKKyAgICBzdGF0aWMgY29uc3Qgc2l6ZV90
IGltcHJlY2lzZUNvdW50ID0gaW1wcmVjaXNlQ3V0b2ZmIC8gaW1wcmVjaXNlU3RlcCAtIDE7CisK
KyAgICBTaXplQ2xhc3MgbV9wcmVjaXNlU2l6ZUNsYXNzZXNbcHJlY2lzZUNvdW50XTsKKyAgICBT
aXplQ2xhc3MgbV9pbXByZWNpc2VTaXplQ2xhc3Nlc1tpbXByZWNpc2VDb3VudF07CisgICAgc2l6
ZV90IG1fd2F0ZXJNYXJrOworICAgIHNpemVfdCBtX2hpZ2hXYXRlck1hcms7CisgICAgSGVhcCog
bV9oZWFwOworfTsKKworaW5saW5lIHNpemVfdCBNYXJrZWRTcGFjZTo6d2F0ZXJNYXJrKCkKK3sK
KyAgICByZXR1cm4gbV93YXRlck1hcms7Cit9CisKK2lubGluZSBzaXplX3QgTWFya2VkU3BhY2U6
OmhpZ2hXYXRlck1hcmsoKQoreworICAgIHJldHVybiBtX2hpZ2hXYXRlck1hcms7Cit9CisKK2lu
bGluZSB2b2lkIE1hcmtlZFNwYWNlOjpzZXRIaWdoV2F0ZXJNYXJrKHNpemVfdCBoaWdoV2F0ZXJN
YXJrKQoreworICAgIG1faGlnaFdhdGVyTWFyayA9IGhpZ2hXYXRlck1hcms7Cit9CisKK2lubGlu
ZSBNYXJrZWRTcGFjZTo6U2l6ZUNsYXNzJiBNYXJrZWRTcGFjZTo6c2l6ZUNsYXNzRm9yKHNpemVf
dCBieXRlcykKK3sKKyAgICBBU1NFUlQoYnl0ZXMgJiYgYnl0ZXMgPCBtYXhDZWxsU2l6ZSk7Cisg
ICAgaWYgKGJ5dGVzIDw9IG1heGltdW1QcmVjaXNlQWxsb2NhdGlvblNpemUpCisgICAgICAgIHJl
dHVybiBtX3ByZWNpc2VTaXplQ2xhc3Nlc1soYnl0ZXMgLSAxKSAvIHByZWNpc2VTdGVwXTsKKyAg
ICByZXR1cm4gbV9pbXByZWNpc2VTaXplQ2xhc3Nlc1soYnl0ZXMgLSAxKSAvIGltcHJlY2lzZVN0
ZXBdOworfQorCitpbmxpbmUgdm9pZCogTWFya2VkU3BhY2U6OmFsbG9jYXRlKFNpemVDbGFzcyYg
c2l6ZUNsYXNzKQoreworICAgIE1hcmtlZEJsb2NrOjpGcmVlQ2VsbCogZmlyc3RGcmVlQ2VsbCA9
IHNpemVDbGFzcy5maXJzdEZyZWVDZWxsOworICAgIGlmICghZmlyc3RGcmVlQ2VsbCkgeworICAg
ICAgICAvLyBUaGVyZSBhcmUgdHdvIHBvc3NpYmlsaXRpZXMgZm9yIHdoeSB3ZSBnb3QgaGVyZToK
KyAgICAgICAgLy8gMSkgV2UndmUgZXhoYXVzdGVkIHRoZSBhbGxvY2F0aW9uIGNhY2hlIGZvciBj
dXJyZW50QmxvY2ssIGluIHdoaWNoIGNhc2UKKyAgICAgICAgLy8gICAgY3VycmVudEJsb2NrID09
IG5leHRCbG9jaywgYW5kIHdlIGtub3cgdGhhdCB0aGVyZSBpcyBubyByZWFzb24gdG8KKyAgICAg
ICAgLy8gICAgcmVwZWF0IGEgbGF6eSBzd2VlcCBvZiBuZXh0QmxvY2sgYmVjYXVzZSB3ZSB3b24n
dCBmaW5kIGFueXRoaW5nLgorICAgICAgICAvLyAyKSBBbGxvY2F0aW9uIGNhY2hlcyBoYXZlIGJl
ZW4gY2xlYXJlZCwgaW4gd2hpY2ggY2FzZSBuZXh0QmxvY2sgbWF5CisgICAgICAgIC8vICAgIGhh
dmUgKGFuZCBtb3N0IGxpa2VseSBkb2VzIGhhdmUpIGZyZWUgY2VsbHMsIHNvIHdlIGFsbW9zdCBj
ZXJ0YWlubHkKKyAgICAgICAgLy8gICAgc2hvdWxkIGRvIGEgbGF6eVN3ZWVwIGZvciBuZXh0Qmxv
Y2suIFRoaXMgYWxzbyBpbXBsaWVzIHRoYXQKKyAgICAgICAgLy8gICAgY3VycmVudEJsb2NrID09
IDAuCisgICAgICAgIAorICAgICAgICBpZiAoc2l6ZUNsYXNzLmN1cnJlbnRCbG9jaykgeworICAg
ICAgICAgICAgQVNTRVJUKHNpemVDbGFzcy5jdXJyZW50QmxvY2sgPT0gc2l6ZUNsYXNzLm5leHRC
bG9jayk7CisgICAgICAgICAgICBtX3dhdGVyTWFyayArPSBzaXplQ2xhc3MubmV4dEJsb2NrLT5j
YXBhY2l0eSgpOworICAgICAgICAgICAgc2l6ZUNsYXNzLm5leHRCbG9jayA9IHNpemVDbGFzcy5u
ZXh0QmxvY2stPm5leHQoKTsKKyAgICAgICAgICAgIHNpemVDbGFzcy5jdXJyZW50QmxvY2sgPSAw
OworICAgICAgICB9CisgICAgICAgIAorICAgICAgICBmb3IgKE1hcmtlZEJsb2NrKiYgYmxvY2sg
PSBzaXplQ2xhc3MubmV4dEJsb2NrIDsgYmxvY2s7IGJsb2NrID0gYmxvY2stPm5leHQoKSkgewor
ICAgICAgICAgICAgZmlyc3RGcmVlQ2VsbCA9IGJsb2NrLT5sYXp5U3dlZXAoKTsKKyAgICAgICAg
ICAgIGlmIChmaXJzdEZyZWVDZWxsKSB7CisgICAgICAgICAgICAgICAgc2l6ZUNsYXNzLmZpcnN0
RnJlZUNlbGwgPSBmaXJzdEZyZWVDZWxsOworICAgICAgICAgICAgICAgIHNpemVDbGFzcy5jdXJy
ZW50QmxvY2sgPSBibG9jazsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIAorICAgICAgICAgICAgbV93YXRlck1hcmsgKz0gYmxvY2stPmNhcGFjaXR5
KCk7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIGlmICghZmlyc3RGcmVlQ2VsbCkKKyAg
ICAgICAgICAgIHJldHVybiAwOworICAgIH0KKyAgICAKKyAgICBBU1NFUlQoZmlyc3RGcmVlQ2Vs
bCk7CisgICAgCisgICAgc2l6ZUNsYXNzLmZpcnN0RnJlZUNlbGwgPSBmaXJzdEZyZWVDZWxsLT5u
ZXh0OworICAgIHJldHVybiBmaXJzdEZyZWVDZWxsOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUg
RnVuY3Rvcj4gaW5saW5lIHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgTWFya2VkU3BhY2U6
OmZvckVhY2hCbG9jayhGdW5jdG9yJiBmdW5jdG9yKQoreworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgcHJlY2lzZUNvdW50OyArK2kpIHsKKyAgICAgICAgU2l6ZUNsYXNzJiBzaXplQ2xhc3Mg
PSBtX3ByZWNpc2VTaXplQ2xhc3Nlc1tpXTsKKyAgICAgICAgTWFya2VkQmxvY2sqIG5leHQ7Cisg
ICAgICAgIGZvciAoTWFya2VkQmxvY2sqIGJsb2NrID0gc2l6ZUNsYXNzLmJsb2NrTGlzdC5oZWFk
KCk7IGJsb2NrOyBibG9jayA9IG5leHQpIHsKKyAgICAgICAgICAgIG5leHQgPSBibG9jay0+bmV4
dCgpOworICAgICAgICAgICAgZnVuY3RvcihibG9jayk7CisgICAgICAgIH0KKyAgICB9CisKKyAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGltcHJlY2lzZUNvdW50OyArK2kpIHsKKyAgICAgICAg
U2l6ZUNsYXNzJiBzaXplQ2xhc3MgPSBtX2ltcHJlY2lzZVNpemVDbGFzc2VzW2ldOworICAgICAg
ICBNYXJrZWRCbG9jayogbmV4dDsKKyAgICAgICAgZm9yIChNYXJrZWRCbG9jayogYmxvY2sgPSBz
aXplQ2xhc3MuYmxvY2tMaXN0LmhlYWQoKTsgYmxvY2s7IGJsb2NrID0gbmV4dCkgeworICAgICAg
ICAgICAgbmV4dCA9IGJsb2NrLT5uZXh0KCk7CisgICAgICAgICAgICBmdW5jdG9yKGJsb2NrKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmdW5jdG9yLnJldHVyblZhbHVlKCk7Cit9
CisKK3RlbXBsYXRlIDx0eXBlbmFtZSBGdW5jdG9yPiBpbmxpbmUgdHlwZW5hbWUgRnVuY3Rvcjo6
UmV0dXJuVHlwZSBNYXJrZWRTcGFjZTo6Zm9yRWFjaEJsb2NrKCkKK3sKKyAgICBGdW5jdG9yIGZ1
bmN0b3I7CisgICAgcmV0dXJuIGZvckVhY2hCbG9jayhmdW5jdG9yKTsKK30KKworaW5saW5lIE1h
cmtlZFNwYWNlOjpTaXplQ2xhc3M6OlNpemVDbGFzcygpCisgICAgOiBmaXJzdEZyZWVDZWxsKDAp
CisgICAgLCBjdXJyZW50QmxvY2soMCkKKyAgICAsIG5leHRCbG9jaygwKQorICAgICwgY2VsbFNp
emUoMCkKK3sKK30KKworaW5saW5lIHZvaWQgTWFya2VkU3BhY2U6OlNpemVDbGFzczo6cmVzZXRB
bGxvY2F0b3IoKQoreworICAgIG5leHRCbG9jayA9IGJsb2NrTGlzdC5oZWFkKCk7Cit9CisKK2lu
bGluZSB2b2lkIE1hcmtlZFNwYWNlOjpTaXplQ2xhc3M6OmNhbm9uaWNhbGl6ZUJsb2NrKCkKK3sK
KyAgICBpZiAoY3VycmVudEJsb2NrKSB7CisgICAgICAgIGN1cnJlbnRCbG9jay0+Y2Fub25pY2Fs
aXplQmxvY2soZmlyc3RGcmVlQ2VsbCk7CisgICAgICAgIGZpcnN0RnJlZUNlbGwgPSAwOworICAg
IH0KKyAgICAKKyAgICBBU1NFUlQoIWZpcnN0RnJlZUNlbGwpOworICAgIAorICAgIGN1cnJlbnRC
bG9jayA9IDA7CisgICAgZmlyc3RGcmVlQ2VsbCA9IDA7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpT
QworCisjZW5kaWYgLy8gTWFya2VkU3BhY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvTmV3U3BhY2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTmV3
U3BhY2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiYmYzODMzODlkZDFmMTA4
Yzc2OWQwYmIyYWJlZmZmMWQwYTUyNTA1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL05ld1NwYWNlLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiAgQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KLSAqICBDb3B5cmlnaHQgKEMpIDIwMDcgRXJpYyBTZWlkZWwgPGVyaWNAd2Vi
a2l0Lm9yZz4KLSAqCi0gKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKLSAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgot
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAotICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQotICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQotICoKLSAqLwotCi0jaW5jbHVkZSAi
Y29uZmlnLmgiCi0jaW5jbHVkZSAiTmV3U3BhY2UuaCIKLQotI2luY2x1ZGUgIkpTR2xvYmFsT2Jq
ZWN0LmgiCi0jaW5jbHVkZSAiSlNDZWxsLmgiCi0jaW5jbHVkZSAiSlNMb2NrLmgiCi0jaW5jbHVk
ZSAiSlNPYmplY3QuaCIKLSNpbmNsdWRlICJTY29wZUNoYWluLmgiCi0KLW5hbWVzcGFjZSBKU0Mg
ewotCi1jbGFzcyBTdHJ1Y3R1cmU7Ci0KLU1hcmtlZFNwYWNlOjpNYXJrZWRTcGFjZShIZWFwKiBo
ZWFwKQotICAgIDogbV93YXRlck1hcmsoMCkKLSAgICAsIG1faGlnaFdhdGVyTWFyaygwKQotICAg
ICwgbV9oZWFwKGhlYXApCi17Ci0gICAgZm9yIChzaXplX3QgY2VsbFNpemUgPSBwcmVjaXNlU3Rl
cDsgY2VsbFNpemUgPCBwcmVjaXNlQ3V0b2ZmOyBjZWxsU2l6ZSArPSBwcmVjaXNlU3RlcCkKLSAg
ICAgICAgc2l6ZUNsYXNzRm9yKGNlbGxTaXplKS5jZWxsU2l6ZSA9IGNlbGxTaXplOwotCi0gICAg
Zm9yIChzaXplX3QgY2VsbFNpemUgPSBpbXByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8IGltcHJlY2lz
ZUN1dG9mZjsgY2VsbFNpemUgKz0gaW1wcmVjaXNlU3RlcCkKLSAgICAgICAgc2l6ZUNsYXNzRm9y
KGNlbGxTaXplKS5jZWxsU2l6ZSA9IGNlbGxTaXplOwotfQotCi12b2lkIE1hcmtlZFNwYWNlOjph
ZGRCbG9jayhTaXplQ2xhc3MmIHNpemVDbGFzcywgTWFya2VkQmxvY2sqIGJsb2NrKQotewotICAg
IGJsb2NrLT5zZXRJbk5ld1NwYWNlKHRydWUpOwotICAgIHNpemVDbGFzcy5uZXh0QmxvY2sgPSBi
bG9jazsKLSAgICBzaXplQ2xhc3MuYmxvY2tMaXN0LmFwcGVuZChibG9jayk7Ci0gICAgQVNTRVJU
KCFzaXplQ2xhc3MuY3VycmVudEJsb2NrKTsKLSAgICBBU1NFUlQoIXNpemVDbGFzcy5maXJzdEZy
ZWVDZWxsKTsKLSAgICBzaXplQ2xhc3MuY3VycmVudEJsb2NrID0gYmxvY2s7Ci0gICAgc2l6ZUNs
YXNzLmZpcnN0RnJlZUNlbGwgPSBibG9jay0+Ymxlc3NOZXdCbG9ja0ZvckZhc3RQYXRoKCk7Ci19
Ci0KLXZvaWQgTWFya2VkU3BhY2U6OnJlbW92ZUJsb2NrKE1hcmtlZEJsb2NrKiBibG9jaykKLXsK
LSAgICBibG9jay0+c2V0SW5OZXdTcGFjZShmYWxzZSk7Ci0gICAgU2l6ZUNsYXNzJiBzaXplQ2xh
c3MgPSBzaXplQ2xhc3NGb3IoYmxvY2stPmNlbGxTaXplKCkpOwotICAgIGlmIChzaXplQ2xhc3Mu
bmV4dEJsb2NrID09IGJsb2NrKQotICAgICAgICBzaXplQ2xhc3MubmV4dEJsb2NrID0gYmxvY2st
Pm5leHQoKTsKLSAgICBzaXplQ2xhc3MuYmxvY2tMaXN0LnJlbW92ZShibG9jayk7Ci19Ci0KLXZv
aWQgTWFya2VkU3BhY2U6OnJlc2V0QWxsb2NhdG9yKCkKLXsKLSAgICBtX3dhdGVyTWFyayA9IDA7
Ci0KLSAgICBmb3IgKHNpemVfdCBjZWxsU2l6ZSA9IHByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8IHBy
ZWNpc2VDdXRvZmY7IGNlbGxTaXplICs9IHByZWNpc2VTdGVwKQotICAgICAgICBzaXplQ2xhc3NG
b3IoY2VsbFNpemUpLnJlc2V0QWxsb2NhdG9yKCk7Ci0KLSAgICBmb3IgKHNpemVfdCBjZWxsU2l6
ZSA9IGltcHJlY2lzZVN0ZXA7IGNlbGxTaXplIDwgaW1wcmVjaXNlQ3V0b2ZmOyBjZWxsU2l6ZSAr
PSBpbXByZWNpc2VTdGVwKQotICAgICAgICBzaXplQ2xhc3NGb3IoY2VsbFNpemUpLnJlc2V0QWxs
b2NhdG9yKCk7Ci19Ci0KLXZvaWQgTWFya2VkU3BhY2U6OmNhbm9uaWNhbGl6ZUJsb2NrcygpCi17
Ci0gICAgZm9yIChzaXplX3QgY2VsbFNpemUgPSBwcmVjaXNlU3RlcDsgY2VsbFNpemUgPCBwcmVj
aXNlQ3V0b2ZmOyBjZWxsU2l6ZSArPSBwcmVjaXNlU3RlcCkKLSAgICAgICAgc2l6ZUNsYXNzRm9y
KGNlbGxTaXplKS5jYW5vbmljYWxpemVCbG9jaygpOwotCi0gICAgZm9yIChzaXplX3QgY2VsbFNp
emUgPSBpbXByZWNpc2VTdGVwOyBjZWxsU2l6ZSA8IGltcHJlY2lzZUN1dG9mZjsgY2VsbFNpemUg
Kz0gaW1wcmVjaXNlU3RlcCkKLSAgICAgICAgc2l6ZUNsYXNzRm9yKGNlbGxTaXplKS5jYW5vbmlj
YWxpemVCbG9jaygpOwotfQotCi19IC8vIG5hbWVzcGFjZSBKU0MKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL05ld1NwYWNlLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9OZXdTcGFjZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1YWViYmM3M2I5
N2Y5Y2Q0OTg0ZDE2MDdkODgzNDZhZDc1OTgxMzY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL05ld1NwYWNl
LmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotLyoKLSAqICBDb3B5cmlnaHQgKEMp
IDE5OTktMjAwMCBIYXJyaSBQb3J0ZW4gKHBvcnRlbkBrZGUub3JnKQotICogIENvcHlyaWdodCAo
QykgMjAwMSBQZXRlciBLZWxseSAocG1rQHBvc3QuY29tKQotICogIENvcHlyaWdodCAoQykgMjAw
MywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqICBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCi0gKiAgTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiAgdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgotICoKLSAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogIE1FUkNIQU5UQUJJTElUWSBvciBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiAgTGVzc2Vy
IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiAgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YwotICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKLSAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKLSAqCi0gKi8KLQot
I2lmbmRlZiBOZXdTcGFjZV9oCi0jZGVmaW5lIE5ld1NwYWNlX2gKLQotI2luY2x1ZGUgIk1hY2hp
bmVTdGFja01hcmtlci5oIgotI2luY2x1ZGUgIk1hcmtlZEJsb2NrLmgiCi0jaW5jbHVkZSAiUGFn
ZUFsbG9jYXRpb25BbGlnbmVkLmgiCi0jaW5jbHVkZSA8d3RmL0JpdG1hcC5oPgotI2luY2x1ZGUg
PHd0Zi9Eb3VibHlMaW5rZWRMaXN0Lmg+Ci0jaW5jbHVkZSA8d3RmL0ZpeGVkQXJyYXkuaD4KLSNp
bmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotI2RlZmluZSBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxM
KGNsYXNzKSBDT01QSUxFX0FTU0VSVChzaXplb2YoY2xhc3MpIDwgTWFya2VkU3BhY2U6Om1heENl
bGxTaXplLCBjbGFzc19maXRzX2luX2NlbGwpCi0KLW5hbWVzcGFjZSBKU0MgewotCi0gICAgY2xh
c3MgSGVhcDsKLSAgICBjbGFzcyBKU0NlbGw7Ci0gICAgY2xhc3MgTGl2ZU9iamVjdEl0ZXJhdG9y
OwotICAgIGNsYXNzIFdlYWtHQ0hhbmRsZTsKLSAgICBjbGFzcyBTbG90VmlzaXRvcjsKLQotICAg
IGNsYXNzIE1hcmtlZFNwYWNlIHsKLSAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya2Vk
U3BhY2UpOwotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhDZWxs
U2l6ZSA9IDEwMjQ7Ci0KLSAgICAgICAgc3RydWN0IFNpemVDbGFzcyB7Ci0gICAgICAgICAgICBT
aXplQ2xhc3MoKTsKLSAgICAgICAgICAgIHZvaWQgcmVzZXRBbGxvY2F0b3IoKTsKLSAgICAgICAg
ICAgIHZvaWQgY2Fub25pY2FsaXplQmxvY2soKTsKLQotICAgICAgICAgICAgTWFya2VkQmxvY2s6
OkZyZWVDZWxsKiBmaXJzdEZyZWVDZWxsOwotICAgICAgICAgICAgTWFya2VkQmxvY2sqIGN1cnJl
bnRCbG9jazsKLSAgICAgICAgICAgIE1hcmtlZEJsb2NrKiBuZXh0QmxvY2s7Ci0gICAgICAgICAg
ICBEb3VibHlMaW5rZWRMaXN0PE1hcmtlZEJsb2NrPiBibG9ja0xpc3Q7Ci0gICAgICAgICAgICBz
aXplX3QgY2VsbFNpemU7Ci0gICAgICAgIH07Ci0KLSAgICAgICAgTWFya2VkU3BhY2UoSGVhcCop
OwotCi0gICAgICAgIFNpemVDbGFzcyYgc2l6ZUNsYXNzRm9yKHNpemVfdCk7Ci0gICAgICAgIHZv
aWQqIGFsbG9jYXRlKFNpemVDbGFzcyYpOwotICAgICAgICAKLSAgICAgICAgdm9pZCByZXNldEFs
bG9jYXRvcigpOwotCi0gICAgICAgIHZvaWQgYWRkQmxvY2soU2l6ZUNsYXNzJiwgTWFya2VkQmxv
Y2sqKTsKLSAgICAgICAgdm9pZCByZW1vdmVCbG9jayhNYXJrZWRCbG9jayopOwotICAgICAgICAK
LSAgICAgICAgdm9pZCBjYW5vbmljYWxpemVCbG9ja3MoKTsKLQotICAgICAgICBzaXplX3Qgd2F0
ZXJNYXJrKCk7Ci0gICAgICAgIHNpemVfdCBoaWdoV2F0ZXJNYXJrKCk7Ci0gICAgICAgIHZvaWQg
c2V0SGlnaFdhdGVyTWFyayhzaXplX3QpOwotCi0gICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgZm9yRWFjaEJsb2NrKEZ1bmN0b3Im
KTsgLy8gU2FmZSB0byByZW1vdmUgdGhlIGN1cnJlbnQgaXRlbSB3aGlsZSBpdGVyYXRpbmcuCi0g
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIEZ1bmN0b3I+IHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVy
blR5cGUgZm9yRWFjaEJsb2NrKCk7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICAvLyBbIDgsIDE2
Li4uIDEyOCApCi0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZVN0ZXAgPSBNYXJr
ZWRCbG9jazo6YXRvbVNpemU7Ci0gICAgICAgIHN0YXRpYyBjb25zdCBzaXplX3QgcHJlY2lzZUN1
dG9mZiA9IDEyODsKLSAgICAgICAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhpbXVtUHJlY2lzZUFs
bG9jYXRpb25TaXplID0gcHJlY2lzZUN1dG9mZiAtIHByZWNpc2VTdGVwOwotICAgICAgICBzdGF0
aWMgY29uc3Qgc2l6ZV90IHByZWNpc2VDb3VudCA9IHByZWNpc2VDdXRvZmYgLyBwcmVjaXNlU3Rl
cCAtIDE7Ci0KLSAgICAgICAgLy8gWyAxMjgsIDI1Ni4uLiAxMDI0ICkKLSAgICAgICAgc3RhdGlj
IGNvbnN0IHNpemVfdCBpbXByZWNpc2VTdGVwID0gcHJlY2lzZUN1dG9mZjsKLSAgICAgICAgc3Rh
dGljIGNvbnN0IHNpemVfdCBpbXByZWNpc2VDdXRvZmYgPSBtYXhDZWxsU2l6ZTsKLSAgICAgICAg
c3RhdGljIGNvbnN0IHNpemVfdCBpbXByZWNpc2VDb3VudCA9IGltcHJlY2lzZUN1dG9mZiAvIGlt
cHJlY2lzZVN0ZXAgLSAxOwotCi0gICAgICAgIFNpemVDbGFzcyBtX3ByZWNpc2VTaXplQ2xhc3Nl
c1twcmVjaXNlQ291bnRdOwotICAgICAgICBTaXplQ2xhc3MgbV9pbXByZWNpc2VTaXplQ2xhc3Nl
c1tpbXByZWNpc2VDb3VudF07Ci0gICAgICAgIHNpemVfdCBtX3dhdGVyTWFyazsKLSAgICAgICAg
c2l6ZV90IG1faGlnaFdhdGVyTWFyazsKLSAgICAgICAgSGVhcCogbV9oZWFwOwotICAgIH07Ci0K
LSAgICBpbmxpbmUgc2l6ZV90IE1hcmtlZFNwYWNlOjp3YXRlck1hcmsoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fd2F0ZXJNYXJrOwotICAgIH0KLQotICAgIGlubGluZSBzaXplX3QgTWFya2Vk
U3BhY2U6OmhpZ2hXYXRlck1hcmsoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIG1faGlnaFdhdGVy
TWFyazsKLSAgICB9Ci0KLSAgICBpbmxpbmUgdm9pZCBNYXJrZWRTcGFjZTo6c2V0SGlnaFdhdGVy
TWFyayhzaXplX3QgaGlnaFdhdGVyTWFyaykKLSAgICB7Ci0gICAgICAgIG1faGlnaFdhdGVyTWFy
ayA9IGhpZ2hXYXRlck1hcms7Ci0gICAgfQotCi0gICAgaW5saW5lIE1hcmtlZFNwYWNlOjpTaXpl
Q2xhc3MmIE1hcmtlZFNwYWNlOjpzaXplQ2xhc3NGb3Ioc2l6ZV90IGJ5dGVzKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKGJ5dGVzICYmIGJ5dGVzIDwgbWF4Q2VsbFNpemUpOwotICAgICAgICBpZiAo
Ynl0ZXMgPD0gbWF4aW11bVByZWNpc2VBbGxvY2F0aW9uU2l6ZSkKLSAgICAgICAgICAgIHJldHVy
biBtX3ByZWNpc2VTaXplQ2xhc3Nlc1soYnl0ZXMgLSAxKSAvIHByZWNpc2VTdGVwXTsKLSAgICAg
ICAgcmV0dXJuIG1faW1wcmVjaXNlU2l6ZUNsYXNzZXNbKGJ5dGVzIC0gMSkgLyBpbXByZWNpc2VT
dGVwXTsKLSAgICB9Ci0KLSAgICBpbmxpbmUgdm9pZCogTWFya2VkU3BhY2U6OmFsbG9jYXRlKFNp
emVDbGFzcyYgc2l6ZUNsYXNzKQotICAgIHsKLSAgICAgICAgTWFya2VkQmxvY2s6OkZyZWVDZWxs
KiBmaXJzdEZyZWVDZWxsID0gc2l6ZUNsYXNzLmZpcnN0RnJlZUNlbGw7Ci0gICAgICAgIGlmICgh
Zmlyc3RGcmVlQ2VsbCkgewotICAgICAgICAgICAgLy8gVGhlcmUgYXJlIHR3byBwb3NzaWJpbGl0
aWVzIGZvciB3aHkgd2UgZ290IGhlcmU6Ci0gICAgICAgICAgICAvLyAxKSBXZSd2ZSBleGhhdXN0
ZWQgdGhlIGFsbG9jYXRpb24gY2FjaGUgZm9yIGN1cnJlbnRCbG9jaywgaW4gd2hpY2ggY2FzZQot
ICAgICAgICAgICAgLy8gICAgY3VycmVudEJsb2NrID09IG5leHRCbG9jaywgYW5kIHdlIGtub3cg
dGhhdCB0aGVyZSBpcyBubyByZWFzb24gdG8KLSAgICAgICAgICAgIC8vICAgIHJlcGVhdCBhIGxh
enkgc3dlZXAgb2YgbmV4dEJsb2NrIGJlY2F1c2Ugd2Ugd29uJ3QgZmluZCBhbnl0aGluZy4KLSAg
ICAgICAgICAgIC8vIDIpIEFsbG9jYXRpb24gY2FjaGVzIGhhdmUgYmVlbiBjbGVhcmVkLCBpbiB3
aGljaCBjYXNlIG5leHRCbG9jayBtYXkKLSAgICAgICAgICAgIC8vICAgIGhhdmUgKGFuZCBtb3N0
IGxpa2VseSBkb2VzIGhhdmUpIGZyZWUgY2VsbHMsIHNvIHdlIGFsbW9zdCBjZXJ0YWlubHkKLSAg
ICAgICAgICAgIC8vICAgIHNob3VsZCBkbyBhIGxhenlTd2VlcCBmb3IgbmV4dEJsb2NrLiBUaGlz
IGFsc28gaW1wbGllcyB0aGF0Ci0gICAgICAgICAgICAvLyAgICBjdXJyZW50QmxvY2sgPT0gMC4K
LSAgICAgICAgICAgIAotICAgICAgICAgICAgaWYgKHNpemVDbGFzcy5jdXJyZW50QmxvY2spIHsK
LSAgICAgICAgICAgICAgICBBU1NFUlQoc2l6ZUNsYXNzLmN1cnJlbnRCbG9jayA9PSBzaXplQ2xh
c3MubmV4dEJsb2NrKTsKLSAgICAgICAgICAgICAgICBtX3dhdGVyTWFyayArPSBzaXplQ2xhc3Mu
bmV4dEJsb2NrLT5jYXBhY2l0eSgpOwotICAgICAgICAgICAgICAgIHNpemVDbGFzcy5uZXh0Qmxv
Y2sgPSBzaXplQ2xhc3MubmV4dEJsb2NrLT5uZXh0KCk7Ci0gICAgICAgICAgICAgICAgc2l6ZUNs
YXNzLmN1cnJlbnRCbG9jayA9IDA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAKLSAgICAg
ICAgICAgIGZvciAoTWFya2VkQmxvY2sqJiBibG9jayA9IHNpemVDbGFzcy5uZXh0QmxvY2sgOyBi
bG9jazsgYmxvY2sgPSBibG9jay0+bmV4dCgpKSB7Ci0gICAgICAgICAgICAgICAgZmlyc3RGcmVl
Q2VsbCA9IGJsb2NrLT5sYXp5U3dlZXAoKTsKLSAgICAgICAgICAgICAgICBpZiAoZmlyc3RGcmVl
Q2VsbCkgewotICAgICAgICAgICAgICAgICAgICBzaXplQ2xhc3MuZmlyc3RGcmVlQ2VsbCA9IGZp
cnN0RnJlZUNlbGw7Ci0gICAgICAgICAgICAgICAgICAgIHNpemVDbGFzcy5jdXJyZW50QmxvY2sg
PSBibG9jazsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIG1fd2F0ZXJNYXJrICs9IGJsb2NrLT5j
YXBhY2l0eSgpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgCi0gICAgICAgICAgICBpZiAo
IWZpcnN0RnJlZUNlbGwpCi0gICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIEFTU0VSVChmaXJzdEZyZWVDZWxsKTsKLSAgICAgICAgCi0gICAgICAg
IHNpemVDbGFzcy5maXJzdEZyZWVDZWxsID0gZmlyc3RGcmVlQ2VsbC0+bmV4dDsKLSAgICAgICAg
cmV0dXJuIGZpcnN0RnJlZUNlbGw7Ci0gICAgfQotICAgIAotICAgIHRlbXBsYXRlIDx0eXBlbmFt
ZSBGdW5jdG9yPiBpbmxpbmUgdHlwZW5hbWUgRnVuY3Rvcjo6UmV0dXJuVHlwZSBNYXJrZWRTcGFj
ZTo6Zm9yRWFjaEJsb2NrKEZ1bmN0b3ImIGZ1bmN0b3IpCi0gICAgewotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHByZWNpc2VDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICBTaXplQ2xh
c3MmIHNpemVDbGFzcyA9IG1fcHJlY2lzZVNpemVDbGFzc2VzW2ldOwotICAgICAgICAgICAgTWFy
a2VkQmxvY2sqIG5leHQ7Ci0gICAgICAgICAgICBmb3IgKE1hcmtlZEJsb2NrKiBibG9jayA9IHNp
emVDbGFzcy5ibG9ja0xpc3QuaGVhZCgpOyBibG9jazsgYmxvY2sgPSBuZXh0KSB7Ci0gICAgICAg
ICAgICAgICAgbmV4dCA9IGJsb2NrLT5uZXh0KCk7Ci0gICAgICAgICAgICAgICAgZnVuY3Rvcihi
bG9jayk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IGltcHJlY2lzZUNvdW50OyArK2kpIHsKLSAgICAgICAgICAgIFNpemVDbGFzcyYg
c2l6ZUNsYXNzID0gbV9pbXByZWNpc2VTaXplQ2xhc3Nlc1tpXTsKLSAgICAgICAgICAgIE1hcmtl
ZEJsb2NrKiBuZXh0OwotICAgICAgICAgICAgZm9yIChNYXJrZWRCbG9jayogYmxvY2sgPSBzaXpl
Q2xhc3MuYmxvY2tMaXN0LmhlYWQoKTsgYmxvY2s7IGJsb2NrID0gbmV4dCkgewotICAgICAgICAg
ICAgICAgIG5leHQgPSBibG9jay0+bmV4dCgpOwotICAgICAgICAgICAgICAgIGZ1bmN0b3IoYmxv
Y2spOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIGZ1bmN0b3Iu
cmV0dXJuVmFsdWUoKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rvcj4g
aW5saW5lIHR5cGVuYW1lIEZ1bmN0b3I6OlJldHVyblR5cGUgTWFya2VkU3BhY2U6OmZvckVhY2hC
bG9jaygpCi0gICAgewotICAgICAgICBGdW5jdG9yIGZ1bmN0b3I7Ci0gICAgICAgIHJldHVybiBm
b3JFYWNoQmxvY2soZnVuY3Rvcik7Ci0gICAgfQotCi0gICAgaW5saW5lIE1hcmtlZFNwYWNlOjpT
aXplQ2xhc3M6OlNpemVDbGFzcygpCi0gICAgICAgIDogZmlyc3RGcmVlQ2VsbCgwKQotICAgICAg
ICAsIGN1cnJlbnRCbG9jaygwKQotICAgICAgICAsIG5leHRCbG9jaygwKQotICAgICAgICAsIGNl
bGxTaXplKDApCi0gICAgewotICAgIH0KLQotICAgIGlubGluZSB2b2lkIE1hcmtlZFNwYWNlOjpT
aXplQ2xhc3M6OnJlc2V0QWxsb2NhdG9yKCkKLSAgICB7Ci0gICAgICAgIG5leHRCbG9jayA9IGJs
b2NrTGlzdC5oZWFkKCk7Ci0gICAgfQotICAgIAotICAgIGlubGluZSB2b2lkIE1hcmtlZFNwYWNl
OjpTaXplQ2xhc3M6OmNhbm9uaWNhbGl6ZUJsb2NrKCkKLSAgICB7Ci0gICAgICAgIGlmIChjdXJy
ZW50QmxvY2spIHsKLSAgICAgICAgICAgIGN1cnJlbnRCbG9jay0+Y2Fub25pY2FsaXplQmxvY2so
Zmlyc3RGcmVlQ2VsbCk7Ci0gICAgICAgICAgICBmaXJzdEZyZWVDZWxsID0gMDsKLSAgICAgICAg
fQotICAgICAgICAKLSAgICAgICAgQVNTRVJUKCFmaXJzdEZyZWVDZWxsKTsKLSAgICAgICAgCi0g
ICAgICAgIGN1cnJlbnRCbG9jayA9IDA7Ci0gICAgICAgIGZpcnN0RnJlZUNlbGwgPSAwOwotICAg
IH0KLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBOZXdTcGFjZV9oCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGwuaCBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCmluZGV4IDE0NzU4NGI2NDliYTMzYTM5MzliMjY1
NmUxZThjZjMxMTViNTY0YjcuLmZkMDI2NjIzM2UzMjQyZTk3OTNlZWIyNzljNGMzODI4ODcxODA5
Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbC5oCkBAIC02NSw3ICs2NSw2
IEBAIG5hbWVzcGFjZSBKU0MgewogICAgICAgICBmcmllbmQgY2xhc3MgSlNWYWx1ZTsKICAgICAg
ICAgZnJpZW5kIGNsYXNzIEpTQVBJVmFsdWVXcmFwcGVyOwogICAgICAgICBmcmllbmQgY2xhc3Mg
SlNHbG9iYWxEYXRhOwotICAgICAgICBmcmllbmQgY2xhc3MgTmV3U3BhY2U7CiAgICAgICAgIGZy
aWVuZCBjbGFzcyBNYXJrZWRCbG9jazsKICAgICAgICAgZnJpZW5kIGNsYXNzIFNjb3BlQ2hhaW5O
b2RlOwogICAgICAgICBmcmllbmQgY2xhc3MgU3RydWN0dXJlOwo=
</data>
<flag name="review"
          id="104719"
          type_id="1"
          status="+"
          setter="barraclough"
    />
          </attachment>
      

    </bug>

</bugzilla>