<?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>127631</bug_id>
          
          <creation_ts>2014-01-25 13:51:28 -0800</creation_ts>
          <short_desc>Call deprecatedCharacters instead of characters at more call sites</short_desc>
          <delta_ts>2014-01-25 14:42:48 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>972039</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 13:51:28 -0800</bug_when>
    <thetext>Call deprecatedCharacters instead of characters at more call sites</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972040</commentid>
    <comment_count>1</comment_count>
      <attachid>222233</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 13:52:13 -0800</bug_when>
    <thetext>Created attachment 222233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972041</commentid>
    <comment_count>2</comment_count>
      <attachid>222233</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-01-25 14:09:53 -0800</bug_when>
    <thetext>Comment on attachment 222233
Patch

Its totally going to work this time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972045</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-01-25 14:42:48 -0800</bug_when>
    <thetext>Committed r162784: &lt;http://trac.webkit.org/changeset/162784&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222233</attachid>
            <date>2014-01-25 13:52:13 -0800</date>
            <delta_ts>2014-01-25 14:09:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-127631-20140125135212.patch</filename>
            <type>text/plain</type>
            <size>31969</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYyNzgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAw
OWE2YzRlMTg1ODFlMDI4MjI3ZjQ5OGUzNjA5ZWFkOTQ2ZmIyMjJlLi4zNDk0MzJmNzBkMzU1NDYy
NmJhYzk5MDc0YjU3N2M4Njk2YjdiZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNyBAQAogMjAxNC0wMS0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgQ2FsbCBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbnN0ZWFkIG9mIGNoYXJhY3RlcnMg
YXQgbW9yZSBjYWxsIHNpdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMjc2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEFQSS9KU1ZhbHVlUmVmLmNwcDoKKyAgICAgICAgKEpTVmFsdWVNYWtlRnJv
bUpTT05TdHJpbmcpOgorICAgICAgICAqIEFQSS9PcGFxdWVKU1N0cmluZy5jcHA6CisgICAgICAg
IChPcGFxdWVKU1N0cmluZzo6fk9wYXF1ZUpTU3RyaW5nKToKKyAgICAgICAgKiBiaW5kaW5ncy9T
Y3JpcHRWYWx1ZS5jcHA6CisgICAgICAgIChEZXByZWNhdGVkOjpqc1RvSW5zcGVjdG9yVmFsdWUp
OgorICAgICAgICAqIGluc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKEluc3BlY3Rvcjo6Q29udGVudFNlYXJjaFV0aWxpdGllczo6Y3JlYXRlU2VhcmNoUmVnZXhT
b3VyY2UpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3BwOgorICAgICAg
ICAqIHJ1bnRpbWUvSWRlbnRpZmllci5oOgorICAgICAgICAoSlNDOjpJZGVudGlmaWVyOjpkZXBy
ZWNhdGVkQ2hhcmFjdGVycyk6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZ0J1aWxkZXIuaDoK
KyAgICAgICAgKEpTQzo6SlNTdHJpbmdCdWlsZGVyOjphcHBlbmQpOgorICAgICAgICBVc2UgdGhl
IG5ldyBuYW1lLgorCisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
KwogICAgICAgICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5h
bnRzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2
MjMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwppbmRleCAwNTNlMTVjYzEyMmI3MDFlNjg1NTM4NmJmNDZlZmQ2YzE1MmQ5M2UxLi45ZDQ5
ZGYzY2QzZWVmYjViMmEwMzliZWM2YzAyYWYyZmIzMTRmMTI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4IEBA
CiAyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAorICAgICAgICBD
YWxsIGRlcHJlY2F0ZWRDaGFyYWN0ZXJzIGluc3RlYWQgb2YgY2hhcmFjdGVycyBhdCBtb3JlIGNh
bGwgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyNzYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogd3RmL3RleHQvU3RyaW5nSW1wbC5jcHA6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OnJl
cGxhY2UpOgorICAgICAgICAqIHd0Zi90ZXh0L1dURlN0cmluZy5oOgorICAgICAgICAoV1RGOjpT
dHJpbmc6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnMpOgorICAgICAgICBVc2UgdGhlIG5ldyBuYW1l
LgorCisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKwogICAgICAg
ICBHZXQgcmlkIG9mIElDVV9VTklDT0RFIGFuZCBXQ0hBUl9VTklDT0RFIHJlbW5hbnRzCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjc2MjMKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGRhM2YyMzZjYzQ2ZGE1MTk5ZDM3ZTQ2NzUxNzlkODI1MTZmODU5ZmIuLjE2MTM1
ZDIyNWFkZTU2MDBmMDA1NDM3YjhlMjI0MDJiZGIxYTQzMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSAr
MSw1MCBAQAogMjAxNC0wMS0yNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKKyAg
ICAgICAgQ2FsbCBkZXByZWNhdGVkQ2hhcmFjdGVycyBpbnN0ZWFkIG9mIGNoYXJhY3RlcnMgYXQg
bW9yZSBjYWxsIHNpdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjc2MzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoK1tX
ZWJTY3JpcHRPYmplY3QgX2NvbnZlcnRWYWx1ZVRvT2JqY1ZhbHVlOkpTQzo6b3JpZ2luUm9vdE9i
amVjdDpyb290T2JqZWN0Ol0pOgorICAgICAgICAqIGVkaXRpbmcvQ29tcG9zaXRlRWRpdENvbW1h
bmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udGFpbnNPbmx5V2hpdGVzcGFjZSk6CisgICAg
ICAgICogZWRpdGluZy9UeXBpbmdDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlR5cGlu
Z0NvbW1hbmQ6Omluc2VydFRleHQpOgorICAgICAgICAqIGVkaXRpbmcvVmlzaWJsZVVuaXRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OnN0YXJ0T2ZQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29y
ZTo6ZW5kT2ZQYXJhZ3JhcGgpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxQYXJzZXJJZGlv
bXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3Bh
Y2VzKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlSFRNTE5vbk5lZ2F0aXZlSW50ZWdlcik6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yU3R5bGU6Om5ld0xpbmVBbmRXaGl0ZXNwYWNlRGVsaW1pdGVycyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlVGV4dEVkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JTdHlsZVRleHRFZGl0b3I6Omluc2VydFByb3BlcnR5KToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclN0eWxlVGV4dEVkaXRvcjo6aW50ZXJuYWxSZXBsYWNl
UHJvcGVydHkpOgorICAgICAgICAqIHBsYXRmb3JtL0xlbmd0aC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpuZXdDb29yZHNBcnJheSk6CisgICAgICAgICogcGxhdGZvcm0vTGlua0hhc2guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dmlzaXRlZExpbmtIYXNoKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Db2xvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6cGFyc2VIZXhDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcjo6Q29sb3IpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1RleHRSdW4uaDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW46OlRleHRSdW4p
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6YXRvbWljQ2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZSk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpjb25zdHJ1Y3RUZXh0UnVuKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQ29tYmlu
ZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQ29tYmluZVRleHQ6OndpZHRoKToK
KyAgICAgICAgKiBzdmcvU1ZHRm9udEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
Rm9udEVsZW1lbnQ6OnJlZ2lzdGVyTGlnYXR1cmVzSW5HbHlwaENhY2hlKToKKyAgICAgICAgKiB4
bWwvWFBhdGhGdW5jdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6OkZ1bklkOjpl
dmFsdWF0ZSk6CisgICAgICAgIFVzZSB0aGUgbmV3IG5hbWUuCisKKzIwMTQtMDEtMjUgIERhcmlu
IEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCiAgICAgICAgIEdldCByaWQgb2YgSUNVX1VOSUNP
REUgYW5kIFdDSEFSX1VOSUNPREUgcmVtbmFudHMKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYyMwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9K
U1ZhbHVlUmVmLmNwcAppbmRleCBlYjk5ZjVkZGIxNDU5NzUzYTgxOTgwZjM4NTI4OGYzNTk3YjVh
NGZhLi4zZTBjYmJkN2FiYzY0MTBiMjRhNTYwZTAwOTFkNjY0MTIxMTM0MTQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWVSZWYuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZVJlZi5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBKU1Zh
bHVlUmVmIEpTVmFsdWVNYWtlRnJvbUpTT05TdHJpbmcoSlNDb250ZXh0UmVmIGN0eCwgSlNTdHJp
bmdSZWYgc3RyaW5nKQogICAgICAgICBMaXRlcmFsUGFyc2VyPExDaGFyPiBwYXJzZXIoZXhlYywg
c3RyLmNoYXJhY3RlcnM4KCksIGxlbmd0aCwgU3RyaWN0SlNPTik7CiAgICAgICAgIHJldHVybiB0
b1JlZihleGVjLCBwYXJzZXIudHJ5TGl0ZXJhbFBhcnNlKCkpOwogICAgIH0KLSAgICBMaXRlcmFs
UGFyc2VyPFVDaGFyPiBwYXJzZXIoZXhlYywgc3RyLmNoYXJhY3RlcnMoKSwgbGVuZ3RoLCBTdHJp
Y3RKU09OKTsKKyAgICBMaXRlcmFsUGFyc2VyPFVDaGFyPiBwYXJzZXIoZXhlYywgc3RyLmRlcHJl
Y2F0ZWRDaGFyYWN0ZXJzKCksIGxlbmd0aCwgU3RyaWN0SlNPTik7CiAgICAgcmV0dXJuIHRvUmVm
KGV4ZWMsIHBhcnNlci50cnlMaXRlcmFsUGFyc2UoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvT3BhcXVlSlNTdHJpbmcuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAKaW5kZXggYjA5N2VkNGQwYTM0MTk3ZGNjYWVm
MzJkNTQ0YmY4ZGI1YjhiMDQwMC4uNWNjMmUwYWI4NDRiMzBkNmExNGNmMzVjNTA4MDhmNjE2MWRm
NjhkZiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmlu
Zy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9PcGFxdWVKU1N0cmluZy5jcHAK
QEAgLTQ3LDcgKzQ3LDcgQEAgT3BhcXVlSlNTdHJpbmc6On5PcGFxdWVKU1N0cmluZygpCiAgICAg
aWYgKCFjaGFyYWN0ZXJzKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoIW1fc3RyaW5nLmlz
OEJpdCgpICYmIG1fc3RyaW5nLmNoYXJhY3RlcnMoKSA9PSBjaGFyYWN0ZXJzKQorICAgIGlmICgh
bV9zdHJpbmcuaXM4Qml0KCkgJiYgbV9zdHJpbmcuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSA9PSBj
aGFyYWN0ZXJzKQogICAgICAgICByZXR1cm47CiAKICAgICBmYXN0RnJlZShjaGFyYWN0ZXJzKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYmluZGluZ3MvU2NyaXB0VmFsdWUuY3BwCmluZGV4
IDVjNjBiMWY0ZTgzMmQ0MjY5NjE2NDAyOWUzZjIzMWRlOTE2MDZiYzUuLmM3MmFiNDYzNDY3YjVj
ODUzODhjZWQxZjM3MjlkZDZmZDI5N2ZiZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9iaW5kaW5ncy9TY3JpcHRWYWx1ZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2JpbmRpbmdzL1NjcmlwdFZhbHVlLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHN0YXRpYyBQYXNz
UmVmUHRyPEluc3BlY3RvclZhbHVlPiBqc1RvSW5zcGVjdG9yVmFsdWUoRXhlY1N0YXRlKiBzY3Jp
cHRTdGF0ZSwgSlNWCiAgICAgICAgIHJldHVybiBJbnNwZWN0b3JCYXNpY1ZhbHVlOjpjcmVhdGUo
dmFsdWUuYXNOdW1iZXIoKSk7CiAgICAgaWYgKHZhbHVlLmlzU3RyaW5nKCkpIHsKICAgICAgICAg
U3RyaW5nIHMgPSB2YWx1ZS5nZXRTdHJpbmcoc2NyaXB0U3RhdGUpOwotICAgICAgICByZXR1cm4g
SW5zcGVjdG9yU3RyaW5nOjpjcmVhdGUoU3RyaW5nKHMuY2hhcmFjdGVycygpLCBzLmxlbmd0aCgp
KSk7CisgICAgICAgIHJldHVybiBJbnNwZWN0b3JTdHJpbmc6OmNyZWF0ZShTdHJpbmcocy5kZXBy
ZWNhdGVkQ2hhcmFjdGVycygpLCBzLmxlbmd0aCgpKSk7CiAgICAgfQogCiAgICAgaWYgKHZhbHVl
LmlzT2JqZWN0KCkpIHsKQEAgLTE0NCw3ICsxNDQsNyBAQCBzdGF0aWMgUGFzc1JlZlB0cjxJbnNw
ZWN0b3JWYWx1ZT4ganNUb0luc3BlY3RvclZhbHVlKEV4ZWNTdGF0ZSogc2NyaXB0U3RhdGUsIEpT
VgogICAgICAgICAgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiBpbnNwZWN0b3JWYWx1ZSA9IGpz
VG9JbnNwZWN0b3JWYWx1ZShzY3JpcHRTdGF0ZSwgcHJvcGVydHlWYWx1ZSwgbWF4RGVwdGgpOwog
ICAgICAgICAgICAgaWYgKCFpbnNwZWN0b3JWYWx1ZSkKICAgICAgICAgICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLSAgICAgICAgICAgIGluc3BlY3Rvck9iamVjdC0+c2V0VmFsdWUoU3RyaW5nKG5h
bWUuY2hhcmFjdGVycygpLCBuYW1lLmxlbmd0aCgpKSwgaW5zcGVjdG9yVmFsdWUpOworICAgICAg
ICAgICAgaW5zcGVjdG9yT2JqZWN0LT5zZXRWYWx1ZShTdHJpbmcobmFtZS5kZXByZWNhdGVkQ2hh
cmFjdGVycygpLCBuYW1lLmxlbmd0aCgpKSwgaW5zcGVjdG9yVmFsdWUpOwogICAgICAgICB9CiAg
ICAgICAgIHJldHVybiBpbnNwZWN0b3JPYmplY3Q7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvQ29udGVudFNlYXJjaFV0aWxpdGllcy5jcHAK
aW5kZXggMmI1Mjk2ZThjMGIyOWMzZmVjY2RhZjUyMDU5Yjk0N2RhNDI2OTA0OC4uOGYxZjkxY2Yx
Yzc1MWQxMTViNTdjM2Q5MTgzNjRmZTdiMzZhNDFjMiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9Db250ZW50U2VhcmNoVXRpbGl0aWVzLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0NvbnRlbnRTZWFyY2hVdGlsaXRpZXMuY3BwCkBA
IC00OCw3ICs0OCw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIHJlZ2V4U3BlY2lhbENoYXJhY3RlcnNb
XSA9ICJbXSgpe30rLSouLD9cXF4kfCI7CiBzdGF0aWMgU3RyaW5nIGNyZWF0ZVNlYXJjaFJlZ2V4
U291cmNlKGNvbnN0IFN0cmluZyYgdGV4dCkKIHsKICAgICBTdHJpbmcgcmVzdWx0OwotICAgIGNv
bnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gdGV4dC5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNo
YXIqIGNoYXJhY3RlcnMgPSB0ZXh0LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCk7CiAgICAgU3RyaW5n
IHNwZWNpYWxzKHJlZ2V4U3BlY2lhbENoYXJhY3RlcnMpOwogCiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IHRleHQubGVuZ3RoKCk7IGkrKykgewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JWYWx1ZXMuY3BwCmluZGV4IDIxMWRhY2Q5ZWI3ZGQ0
MTc5YzU2MzRjNDZlYzE0YWU0NDhhNGNiYjYuLjRjZGY3MWU5MmZiZDU5ZGUyYTdiYzc4ZjI4YzQ0
YWZhZDg5ZTRhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yVmFsdWVzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L0luc3BlY3RvclZhbHVlcy5jcHAKQEAgLTQ3Miw3ICs0NzIsNyBAQCBpbmxpbmUgdm9pZCBkb3Vi
bGVRdW90ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0ciwgU3RyaW5nQnVpbGRlciogZHN0KQogICAg
ICAgICAgICAgICAgIC8vICAgIGlzIGFsc28gb3B0aW9uYWwuICBJdCB3b3VsZCBhbHNvIGJlIGEg
cGFpbiB0byBpbXBsZW1lbnQgaGVyZS4KICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgc3lt
Ym9sID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQgaW50PihjKTsKICAgICAgICAgICAgICAgICBTdHJp
bmcgc3ltYm9sQ29kZSA9IFN0cmluZzo6Zm9ybWF0KCJcXHUlMDRYIiwgc3ltYm9sKTsKLSAgICAg
ICAgICAgICAgICBkc3QtPmFwcGVuZChzeW1ib2xDb2RlLmNoYXJhY3RlcnMoKSwgc3ltYm9sQ29k
ZS5sZW5ndGgoKSk7CisgICAgICAgICAgICAgICAgZHN0LT5hcHBlbmQoc3ltYm9sQ29kZS5kZXBy
ZWNhdGVkQ2hhcmFjdGVycygpLCBzeW1ib2xDb2RlLmxlbmd0aCgpKTsKICAgICAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgICAgICAgIGRzdC0+YXBwZW5kKGMpOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmggYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9JZGVudGlmaWVyLmgKaW5kZXggMGFiYjUyNzI4MGY2MGEy
YWRlMzMxZjNmZTYyZWFlMWRjNzkxNThjZC4uNjczM2VjNWYyN2QwNTNmODU2ZTY3N2FiMjU5NjI2
OTYzY2NkNzZkMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSWRl
bnRpZmllci5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0lkZW50aWZpZXIu
aApAQCAtNTUsNyArNTUsNyBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgY29uc3QgU3RyaW5n
JiBzdHJpbmcoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZzsgfQogICAgICAgICBTdHJpbmdJbXBs
KiBpbXBsKCkgY29uc3QgeyByZXR1cm4gbV9zdHJpbmcuaW1wbCgpOyB9CiAgICAgICAgIAotICAg
ICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycygpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLmNo
YXJhY3RlcnMoKTsgfQorICAgICAgICBjb25zdCBVQ2hhciogZGVwcmVjYXRlZENoYXJhY3RlcnMo
KSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5kZXByZWNhdGVkQ2hhcmFjdGVycygpOyB9CiAgICAg
ICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3N0cmluZy5sZW5ndGgoKTsgfQogICAg
ICAgICAKICAgICAgICAgQ1N0cmluZyBhc2NpaSgpIGNvbnN0IHsgcmV0dXJuIG1fc3RyaW5nLmFz
Y2lpKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nQnVpbGRlci5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdCdWls
ZGVyLmgKaW5kZXggNWQ0OTYwZTg5OTUzODVlMjQ4ODU4YTBjOWE3ZWI0ZjAyYTgwMGY1ZS4uN2Ix
YzFhNTA1NmRhYTBlN2I0NjZiY2RmMDUzNDg4NDU1OWUyYjdjMSAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmgKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmdCdWlsZGVyLmgKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB1cENvbnZlcnQoKTsKICAgICAg
ICAgfQotICAgICAgICBtX29rYXkgJj0gYnVmZmVyMTYudHJ5QXBwZW5kKHN0ci5jaGFyYWN0ZXJz
KCksIGxlbmd0aCk7CisgICAgICAgIG1fb2theSAmPSBidWZmZXIxNi50cnlBcHBlbmQoc3RyLmRl
cHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGxlbmd0aCk7CiAgICAgfQogCiAgICAgdm9pZCB1cENvbnZl
cnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAKaW5kZXggZmU4MjEzY2ZiN2FiZmY4MWEy
YTgzZWY4NjliZGZjMjc2MGE3ZDE2NC4uMzQ3OTQyNThjMzA3NzVmMmYwOTM5YmMxOWM1NWI0NjA4
NDU1ZmI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3BwCkBAIC0xNDg5LDcgKzE0ODks
NyBAQCBQYXNzUmVmPFN0cmluZ0ltcGw+IFN0cmluZ0ltcGw6OnJlcGxhY2UodW5zaWduZWQgcG9z
aXRpb24sIHVuc2lnbmVkIGxlbmd0aFRvUmVwbAogICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbGVuZ3RoKCkgLSBwb3NpdGlvbiAtIGxlbmd0aFRvUmVwbGFjZTsgKytpKQogICAgICAg
ICAgICAgZGF0YVtpICsgcG9zaXRpb24gKyBsZW5ndGhUb0luc2VydF0gPSBtX2RhdGE4W2kgKyBw
b3NpdGlvbiArIGxlbmd0aFRvUmVwbGFjZV07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbWVtY3B5
KGRhdGEgKyBwb3NpdGlvbiArIGxlbmd0aFRvSW5zZXJ0LCBjaGFyYWN0ZXJzKCkgKyBwb3NpdGlv
biArIGxlbmd0aFRvUmVwbGFjZSwKKyAgICAgICAgbWVtY3B5KGRhdGEgKyBwb3NpdGlvbiArIGxl
bmd0aFRvSW5zZXJ0LCBjaGFyYWN0ZXJzMTYoKSArIHBvc2l0aW9uICsgbGVuZ3RoVG9SZXBsYWNl
LAogICAgICAgICAgICAgKGxlbmd0aCgpIC0gcG9zaXRpb24gLSBsZW5ndGhUb1JlcGxhY2UpICog
c2l6ZW9mKFVDaGFyKSk7CiAgICAgfQogICAgIHJldHVybiBuZXdJbXBsOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvV1RG
U3RyaW5nLmgKaW5kZXggYzQwMTFiYzg2ZWJjYmY2Y2U4YmMyYWZjNzE0ODdjNWU0MzIyMTIzMC4u
Y2Y1YTNiNTc4YmJiYzEzYmMwNDRkMTkyM2EzNDNkYzI4M2M4MDRjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvdGV4dC9XVEZTdHJpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1dU
RlN0cmluZy5oCkBAIC02MzIsNyArNjMyLDcgQEAgaW5saW5lIGJvb2wgU3RyaW5nOjppc0FsbFNw
ZWNpYWxDaGFyYWN0ZXJzKCkgY29uc3QKIAogICAgIGlmIChpczhCaXQoKSkKICAgICAgICAgcmV0
dXJuIFdURjo6aXNBbGxTcGVjaWFsQ2hhcmFjdGVyczxpc1NwZWNpYWxDaGFyYWN0ZXIsIExDaGFy
PihjaGFyYWN0ZXJzOCgpLCBsZW4pOwotICAgIHJldHVybiBXVEY6OmlzQWxsU3BlY2lhbENoYXJh
Y3RlcnM8aXNTcGVjaWFsQ2hhcmFjdGVyLCBVQ2hhcj4oY2hhcmFjdGVycygpLCBsZW4pOworICAg
IHJldHVybiBXVEY6OmlzQWxsU3BlY2lhbENoYXJhY3RlcnM8aXNTcGVjaWFsQ2hhcmFjdGVyLCBV
Q2hhcj4oY2hhcmFjdGVyczE2KCksIGxlbik7CiB9CiAKIC8vIFN0cmluZ0hhc2ggaXMgdGhlIGRl
ZmF1bHQgaGFzaCBmb3IgU3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
V2ViU2NyaXB0T2JqZWN0Lm1tCmluZGV4IDViNDM4ZjcxM2VhNDViY2Y4MDVkOWY0MGM3ZGIyOTNm
NzUzNzlhOGQuLmM0NTY3MmVhYzM0YTM3ZDVmY2M0YjM4MjljZDI3NDAyNjU2NmU2ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCkBAIC01
NTEsNyArNTUxLDcgQEAgKyAoaWQpX2NvbnZlcnRWYWx1ZVRvT2JqY1ZhbHVlOihKU0M6OkpTVmFs
dWUpdmFsdWUgb3JpZ2luUm9vdE9iamVjdDooUm9vdE9iamVjdCoKICAgICBpZiAodmFsdWUuaXNT
dHJpbmcoKSkgewogICAgICAgICBFeGVjU3RhdGUqIGV4ZWMgPSByb290T2JqZWN0LT5nbG9iYWxP
YmplY3QoKS0+Z2xvYmFsRXhlYygpOwogICAgICAgICBjb25zdCBTdHJpbmcmIHUgPSBhc1N0cmlu
Zyh2YWx1ZSktPnZhbHVlKGV4ZWMpOwotICAgICAgICByZXR1cm4gW05TU3RyaW5nIHN0cmluZ1dp
dGhDaGFyYWN0ZXJzOnUuY2hhcmFjdGVycygpIGxlbmd0aDp1Lmxlbmd0aCgpXTsKKyAgICAgICAg
cmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoQ2hhcmFjdGVyczp1LmRlcHJlY2F0ZWRDaGFyYWN0
ZXJzKCkgbGVuZ3RoOnUubGVuZ3RoKCldOwogICAgIH0KIAogICAgIGlmICh2YWx1ZS5pc051bWJl
cigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVFZGl0Q29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNw
cAppbmRleCAwNjlkNGQ2MTZhYmJjMGMwMGU0ODdiN2E2OGMyNzNmNWYxMTRlNzVhLi5lMjExZGJi
Y2YyNzllN2Y1NzMxMjgyNTFjZTE0MjBlNDVlZGE5MmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtNjY3LDcgKzY2Nyw3IEBAIHZv
aWQgQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNldE5vZGVBdHRyaWJ1dGUoUGFzc1JlZlB0cjxFbGVt
ZW50PiBlbGVtZW50LCBjb25zdCBRCiBzdGF0aWMgaW5saW5lIGJvb2wgY29udGFpbnNPbmx5V2hp
dGVzcGFjZShjb25zdCBTdHJpbmcmIHRleHQpCiB7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHRleHQubGVuZ3RoKCk7ICsraSkgewotICAgICAgICBpZiAoIWlzV2hpdGVzcGFjZSh0ZXh0
LmNoYXJhY3RlcnMoKVtpXSkpCisgICAgICAgIGlmICghaXNXaGl0ZXNwYWNlKHRleHQuZGVwcmVj
YXRlZENoYXJhY3RlcnMoKVtpXSkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UeXBpbmdDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKaW5kZXggMTAwNjg0
OWM5Zjk0OWE1YjU2N2Y4NjUzN2E3Mjg2YjQwMmRkZGY4Yy4uMWY4NzY4Nzg3ZmYwMmVhMTIzZmI2
MjQ4YzIzZjZmZDMyYjIwYWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwCkBAIC0xNTIsNyArMTUyLDcgQEAgdm9pZCBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3RyaW5nJiB0ZXh0LCBPcHRpb25zIG8KICAgICBB
U1NFUlQoZnJhbWUpOwogCiAgICAgaWYgKCF0ZXh0LmlzRW1wdHkoKSkKLSAgICAgICAgZnJhbWUt
PmVkaXRvcigpLnVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGlzU3BhY2VP
ck5ld2xpbmUodGV4dC5jaGFyYWN0ZXJzKClbMF0pKTsKKyAgICAgICAgZnJhbWUtPmVkaXRvcigp
LnVwZGF0ZU1hcmtlcnNGb3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGlzU3BhY2VPck5ld2xpbmUo
dGV4dC5kZXByZWNhdGVkQ2hhcmFjdGVycygpWzBdKSk7CiAgICAgCiAgICAgaW5zZXJ0VGV4dChk
b2N1bWVudCwgdGV4dCwgZnJhbWUtPnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLCBvcHRpb25zLCBj
b21wb3NpdGlvbik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2li
bGVVbml0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1Zpc2libGVVbml0cy5jcHAKaW5k
ZXggZGQwNWQzZThkNzEwYTJjNDEzNjM3YzhhMTY1MDIxNDhmYWI3MjI4NC4uYjA4MmIzZGFjMjdk
Y2Q2NDUxNzc3NmE2ZjFlMDVmZGE4ZGU4ZjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9WaXNpYmxlVW5pdHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVmlz
aWJsZVVuaXRzLmNwcApAQCAtMTE0Niw3ICsxMTQ2LDcgQEAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0
T2ZQYXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBjLCBFZGl0aW5nQm91bmRhcnlDcm9z
c2kKICAgICAgICAgICAgIEFTU0VSVF9XSVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKG4tPmlzVGV4
dE5vZGUoKSk7CiAgICAgICAgICAgICB0eXBlID0gUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJ
bkFuY2hvcjsKICAgICAgICAgICAgIGlmIChzdHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkgewotICAg
ICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFycyA9IHRvUmVuZGVyVGV4dChyKS0+Y2hhcmFj
dGVycygpOworICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFycyA9IHRvUmVuZGVyVGV4
dChyKS0+ZGVwcmVjYXRlZENoYXJhY3RlcnMoKTsKICAgICAgICAgICAgICAgICBpbnQgaSA9IHRv
UmVuZGVyVGV4dChyKS0+dGV4dExlbmd0aCgpOwogICAgICAgICAgICAgICAgIGludCBvID0gb2Zm
c2V0OwogICAgICAgICAgICAgICAgIGlmIChuID09IHN0YXJ0Tm9kZSAmJiBvIDwgaSkKQEAgLTEy
MjksNyArMTIyOSw3IEBAIFZpc2libGVQb3NpdGlvbiBlbmRPZlBhcmFncmFwaChjb25zdCBWaXNp
YmxlUG9zaXRpb24gJmMsIEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nCiAgICAgICAgICAgICBpbnQg
bGVuZ3RoID0gdG9SZW5kZXJUZXh0KHIpLT50ZXh0TGVuZ3RoKCk7CiAgICAgICAgICAgICB0eXBl
ID0gUG9zaXRpb246OlBvc2l0aW9uSXNPZmZzZXRJbkFuY2hvcjsKICAgICAgICAgICAgIGlmIChz
dHlsZS5wcmVzZXJ2ZU5ld2xpbmUoKSkgewotICAgICAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBj
aGFycyA9IHRvUmVuZGVyVGV4dChyKS0+Y2hhcmFjdGVycygpOworICAgICAgICAgICAgICAgIGNv
bnN0IFVDaGFyKiBjaGFycyA9IHRvUmVuZGVyVGV4dChyKS0+ZGVwcmVjYXRlZENoYXJhY3RlcnMo
KTsKICAgICAgICAgICAgICAgICBpbnQgbyA9IG4gPT0gc3RhcnROb2RlID8gb2Zmc2V0IDogMDsK
ICAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gbzsgaSA8IGxlbmd0aDsgKytpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChjaGFyc1tpXSA9PSAnXG4nKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFBhcnNlcklkaW9tcy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MUGFyc2VySWRpb21zLmNwcAppbmRleCA2NGJkMWViMGZhYmUzODY2
NmE1NDFlZmRiMjY3MTc5NjQwNmM3NmQwLi40M2RkMTNjZTQ5NTBiYjQ2MmE5M2E1YjI3MDk1NTc1
NDMzZDNhM2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFy
c2VySWRpb21zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MUGFyc2Vy
SWRpb21zLmNwcApAQCAtNzEsNyArNzEsNyBAQCBTdHJpbmcgc3RyaXBMZWFkaW5nQW5kVHJhaWxp
bmdIVE1MU3BhY2VzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgIGlmIChzdHJpbmcuaXM4Qml0
KCkpCiAgICAgICAgIHJldHVybiBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc3Ry
aW5nLCBzdHJpbmcuY2hhcmFjdGVyczgoKSwgbGVuZ3RoKTsKIAotICAgIHJldHVybiBzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc3RyaW5nLCBzdHJpbmcuY2hhcmFjdGVycygpLCBs
ZW5ndGgpOworICAgIHJldHVybiBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc3Ry
aW5nLCBzdHJpbmcuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgbGVuZ3RoKTsKIH0KIAogU3RyaW5n
IHNlcmlhbGl6ZUZvck51bWJlclR5cGUoY29uc3QgRGVjaW1hbCYgbnVtYmVyKQpAQCAtMjcyLDcg
KzI3Miw3IEBAIGJvb2wgcGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VyKGNvbnN0IFN0cmluZyYg
aW5wdXQsIHVuc2lnbmVkJiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIHBhcnNlSFRNTE5vbk5lZ2F0
aXZlSW50ZWdlckludGVybmFsKHN0YXJ0LCBzdGFydCArIGxlbmd0aCwgdmFsdWUpOwogICAgIH0K
ICAgICAKLSAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBpbnB1dC5jaGFyYWN0ZXJzKCk7CisgICAg
Y29uc3QgVUNoYXIqIHN0YXJ0ID0gaW5wdXQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKTsKICAgICBy
ZXR1cm4gcGFyc2VIVE1MTm9uTmVnYXRpdmVJbnRlZ2VySW50ZXJuYWwoc3RhcnQsIHN0YXJ0ICsg
bGVuZ3RoLCB2YWx1ZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcAppbmRleCBkNzM5NTYzMWRhMjRhMDQ3YjgwOGJjYzk0Zjg1MTNm
MWJlZjczNWM2Li44NWNiMmM0NjFiZWViNmFkM2EzYzg3YTJlNzM4MGU5ZDNhYzM0OWVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBA
IC03MjMsNyArNzIzLDcgQEAgTmV3TGluZUFuZFdoaXRlc3BhY2UmIEluc3BlY3RvclN0eWxlOjpu
ZXdMaW5lQW5kV2hpdGVzcGFjZURlbGltaXRlcnMoKSBjb25zdAogICAgIGludCBwcm9wZXJ0eUlu
ZGV4ID0gMDsKICAgICBib29sIGlzRnVsbFByZWZpeFNjYW5uZWQgPSBmYWxzZTsKICAgICBib29s
IGxpbmVGZWVkVGVybWluYXRlZCA9IGZhbHNlOwotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
ID0gdGV4dC5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSB0ZXh0
LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCk7CiAgICAgd2hpbGUgKHByb3BlcnR5SW5kZXggPCBwcm9w
ZXJ0eUNvdW50KSB7CiAgICAgICAgIGNvbnN0IFdlYkNvcmU6OkNTU1Byb3BlcnR5U291cmNlRGF0
YSYgY3VycmVudFByb3BlcnR5ID0gc291cmNlUHJvcGVydHlEYXRhLT5hdChwcm9wZXJ0eUluZGV4
KyspOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5
bGVUZXh0RWRpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHls
ZVRleHRFZGl0b3IuY3BwCmluZGV4IGYzMDk5YTg0M2UxNzkzNDNlMTgyNjU5YmQ5NDUzM2I1NzE4
OTZkZWEuLmMxN2MzZGU0MWRmNWI2NTA0MWIyNmZkNGIzMTAyMGUyOTg5YTlkZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVRleHRFZGl0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVRleHRFZGl0b3Iu
Y3BwCkBAIC04Miw3ICs4Miw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjppbnNl
cnRQcm9wZXJ0eSh1bnNpZ25lZCBpbmRleCwgY29uc3QgU3RyaW5nJiBwcm9wCiAgICAgaWYgKGlu
c2VydExhc3QgJiYgIWluc2VydEZpcnN0SW5Tb3VyY2UpIHsKICAgICAgICAgcHJvcGVydHlTdGFy
dCA9IHN0eWxlQm9keUxlbmd0aDsKICAgICAgICAgaWYgKHByb3BlcnR5U3RhcnQgJiYgdGV4dFRv
U2V0Lmxlbmd0aCgpKSB7Ci0gICAgICAgICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IG1f
c3R5bGVUZXh0LmNoYXJhY3RlcnMoKTsKKyAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0
ZXJzID0gbV9zdHlsZVRleHQuZGVwcmVjYXRlZENoYXJhY3RlcnMoKTsKIAogICAgICAgICAgICAg
bG9uZyBjdXJQb3MgPSBwcm9wZXJ0eVN0YXJ0IC0gMTsgLy8gVGhlIGxhc3QgcG9zaXRpb24gb2Yg
c3R5bGUgZGVjbGFyYXRpb24sIHNpbmNlIHByb3BlcnR5U3RhcnQgcG9pbnRzIHBhc3Qgb25lLgog
ICAgICAgICAgICAgd2hpbGUgKGN1clBvcyAmJiBpc0hUTUxTcGFjZShjaGFyYWN0ZXJzW2N1clBv
c10pKQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgSW5zcGVjdG9yU3R5bGVUZXh0RWRpdG9yOjpp
bnRlcm5hbFJlcGxhY2VQcm9wZXJ0eShjb25zdCBJbnNwZWN0b3JTdHlsZVByb3BlCiAgICAgY29u
c3QgU291cmNlUmFuZ2UmIHJhbmdlID0gcHJvcGVydHkuc291cmNlRGF0YS5yYW5nZTsKICAgICBs
b25nIHJlcGxhY2VSYW5nZVN0YXJ0ID0gcmFuZ2Uuc3RhcnQ7CiAgICAgbG9uZyByZXBsYWNlUmFu
Z2VFbmQgPSByYW5nZS5lbmQ7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBtX3N0eWxl
VGV4dC5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBtX3N0eWxl
VGV4dC5kZXByZWNhdGVkQ2hhcmFjdGVycygpOwogICAgIGxvbmcgbmV3VGV4dExlbmd0aCA9IG5l
d1RleHQubGVuZ3RoKCk7CiAgICAgU3RyaW5nIGZpbmFsTmV3VGV4dCA9IG5ld1RleHQ7CiAKQEAg
LTI0MSw3ICsyNDEsNyBAQCB2b2lkIEluc3BlY3RvclN0eWxlVGV4dEVkaXRvcjo6aW50ZXJuYWxS
ZXBsYWNlUHJvcGVydHkoY29uc3QgSW5zcGVjdG9yU3R5bGVQcm9wZQogICAgICAgICBpZiAocmVw
bGFjZVJhbmdlU3RhcnQgPj0gZnVsbFByZWZpeExlbmd0aCAmJiBtX3N0eWxlVGV4dC5zdWJzdHJp
bmcocmVwbGFjZVJhbmdlU3RhcnQgLSBmdWxsUHJlZml4TGVuZ3RoLCBmdWxsUHJlZml4TGVuZ3Ro
KSA9PSBmdWxsUHJlZml4KQogICAgICAgICAgICAgcmVwbGFjZVJhbmdlU3RhcnQgLT0gZnVsbFBy
ZWZpeExlbmd0aDsKICAgICB9IGVsc2UgaWYgKG5ld1RleHRMZW5ndGgpIHsKLSAgICAgICAgaWYg
KGlzSFRNTExpbmVCcmVhayhuZXdUZXh0LmNoYXJhY3RlcnMoKVtuZXdUZXh0TGVuZ3RoIC0gMV0p
KSB7CisgICAgICAgIGlmIChpc0hUTUxMaW5lQnJlYWsobmV3VGV4dC5kZXByZWNhdGVkQ2hhcmFj
dGVycygpW25ld1RleHRMZW5ndGggLSAxXSkpIHsKICAgICAgICAgICAgIC8vIENvYWxlc2NlIG5l
d2xpbmVzIG9mIHRoZSBvcmlnaW5hbCBhbmQgbmV3IHByb3BlcnR5IHZhbHVlcyAodG8gYXZvaWQg
YSBsb3Qgb2YgYmxhbmsgbGluZXMgd2hpbGUgaW5jcmVtZW50YWxseSBhcHBseWluZyBwcm9wZXJ0
eSB2YWx1ZXMpLgogICAgICAgICAgICAgYm9vbCBmb3VuZE5ld2xpbmUgPSBmYWxzZTsKICAgICAg
ICAgICAgIGJvb2wgaXNMYXN0TmV3bGluZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xlbmd0
aC5jcHAKaW5kZXggYmQ2Y2MyYWVjYWFmYjJiNjQ2NjA2YWQ1ZjNmMzMzYTE1MzI4YTljYy4uNGUx
NmQxNTUwNDZiMWVlMzE1ZmI2MWZmZDc5OWE5YjE1MTcxN2ZjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTGVuZ3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9MZW5ndGguY3BwCkBAIC04OCw3ICs4OCw3IEBAIHN0YXRpYyBpbnQgY291bnRDaGFyYWN0ZXIo
Y29uc3QgVUNoYXIqIGRhdGEsIHVuc2lnbmVkIGxlbmd0aCwgVUNoYXIgY2hhcmFjdGVyKQogc3Rk
Ojp1bmlxdWVfcHRyPExlbmd0aFtdPiBuZXdDb29yZHNBcnJheShjb25zdCBTdHJpbmcmIHN0cmlu
ZywgaW50JiBsZW4pCiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOwot
ICAgIGNvbnN0IFVDaGFyKiBkYXRhID0gc3RyaW5nLmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBV
Q2hhciogZGF0YSA9IHN0cmluZy5kZXByZWNhdGVkQ2hhcmFjdGVycygpOwogICAgIFN0cmluZ0J1
ZmZlcjxVQ2hhcj4gc3BhY2lmaWVkKGxlbmd0aCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IGxlbmd0aDsgaSsrKSB7CiAgICAgICAgIFVDaGFyIGNjID0gZGF0YVtpXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xpbmtIYXNoLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xpbmtIYXNoLmNwcAppbmRleCAyYTQyYzg1MjQ4MDliZTdhMjgyMWFjMzA4ZTc1
YzgzOWJhMjhhZmJmLi41ZjI0YjIwYzlkMDc4ZTg0ZTIzZTEyMzNjMzRmNTk2YTAyMzAxM2Q5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9MaW5rSGFzaC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTGlua0hhc2guY3BwCkBAIC0yMTcsNyArMjE3LDcgQEAgTGlu
a0hhc2ggdmlzaXRlZExpbmtIYXNoKGNvbnN0IFN0cmluZyYgdXJsKQogCiAgICAgaWYgKGxlbmd0
aCAmJiB1cmwuaXM4Qml0KCkpCiAgICAgICAgIHJldHVybiB2aXNpdGVkTGlua0hhc2hJbmxpbmUo
dXJsLmNoYXJhY3RlcnM4KCksIGxlbmd0aCk7Ci0gICAgcmV0dXJuIHZpc2l0ZWRMaW5rSGFzaElu
bGluZSh1cmwuY2hhcmFjdGVycygpLCBsZW5ndGgpOworICAgIHJldHVybiB2aXNpdGVkTGlua0hh
c2hJbmxpbmUodXJsLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGxlbmd0aCk7CiB9CiAKIExpbmtI
YXNoIHZpc2l0ZWRMaW5rSGFzaChjb25zdCBVQ2hhciogdXJsLCB1bnNpZ25lZCBsZW5ndGgpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db2xvci5jcHAKaW5kZXggNTlkMzc1OTVk
YjNkZjYyN2E2NmUwOTJhYTEwODUwMGJhOTgzZDgzMi4uN2RlMjRlYmRjM2Q5MzQzMjVhNDk2NzY5
MTU0MzBkZWZmZjVlNThiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQ29sb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nv
bG9yLmNwcApAQCAtMTY1LDcgKzE2NSw3IEBAIGJvb2wgQ29sb3I6OnBhcnNlSGV4Q29sb3IoY29u
c3QgU3RyaW5nJiBuYW1lLCBSR0JBMzImIHJnYikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IGlmIChuYW1lLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gcGFyc2VIZXhDb2xvcihuYW1lLmNo
YXJhY3RlcnM4KCksIG5hbWUubGVuZ3RoKCksIHJnYik7Ci0gICAgcmV0dXJuIHBhcnNlSGV4Q29s
b3IobmFtZS5jaGFyYWN0ZXJzKCksIG5hbWUubGVuZ3RoKCksIHJnYik7CisgICAgcmV0dXJuIHBh
cnNlSGV4Q29sb3IobmFtZS5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBuYW1lLmxlbmd0aCgpLCBy
Z2IpOwogfQogCiBpbnQgZGlmZmVyZW5jZVNxdWFyZWQoY29uc3QgQ29sb3ImIGMxLCBjb25zdCBD
b2xvciYgYzIpCkBAIC0xODIsNyArMTgyLDcgQEAgQ29sb3I6OkNvbG9yKGNvbnN0IFN0cmluZyYg
bmFtZSkKICAgICAgICAgaWYgKG5hbWUuaXM4Qml0KCkpCiAgICAgICAgICAgICBtX3ZhbGlkID0g
cGFyc2VIZXhDb2xvcihuYW1lLmNoYXJhY3RlcnM4KCkgKyAxLCBuYW1lLmxlbmd0aCgpIC0gMSwg
bV9jb2xvcik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG1fdmFsaWQgPSBwYXJzZUhleENv
bG9yKG5hbWUuY2hhcmFjdGVycygpICsgMSwgbmFtZS5sZW5ndGgoKSAtIDEsIG1fY29sb3IpOwor
ICAgICAgICAgICAgbV92YWxpZCA9IHBhcnNlSGV4Q29sb3IobmFtZS5kZXByZWNhdGVkQ2hhcmFj
dGVycygpICsgMSwgbmFtZS5sZW5ndGgoKSAtIDEsIG1fY29sb3IpOwogICAgIH0gZWxzZQogICAg
ICAgICBzZXROYW1lZENvbG9yKG5hbWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGV4dFJ1bi5oCmluZGV4IDU2NTUyNWZhZjVkOTYwMmU3ODQ3MzI3OTYyMzY0Y2U0ZjQ3
NGIyMTQuLjIxM2IyNjM3Mjk1YTlkMjg5NGU4MzU4NjgxYTQ4NDU3N2JhNTg4NGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKQEAgLTEyOCw3ICsxMjgsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBtX2RhdGEuY2hhcmFjdGVyczggPSBzLmNoYXJhY3RlcnM4
KCk7CiAgICAgICAgICAgICBtX2lzOEJpdCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAg
ICAgICAgICBtX2RhdGEuY2hhcmFjdGVyczE2ID0gcy5jaGFyYWN0ZXJzKCk7CisgICAgICAgICAg
ICBtX2RhdGEuY2hhcmFjdGVyczE2ID0gcy5kZXByZWNhdGVkQ2hhcmFjdGVycygpOwogICAgICAg
ICAgICAgbV9pczhCaXQgPSBmYWxzZTsKICAgICAgICAgfQogI2Vsc2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEVuY29kaW5nUmVnaXN0cnkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKaW5kZXgg
NmJkZDhmYWM3ZGFjNzYwMDIwNTA5NjdiMTQ1NTMwZWMwNDE5Zjc4YS4uZDY2ZjgyYjhmMzc1Nzcz
NWFiYzRlMzFjZWM1MGZjN2M2YWNlNjcwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdSZWdpc3RyeS5jcHAKQEAgLTM0MSw3ICszNDEsNyBA
QCBjb25zdCBjaGFyKiBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lKGNvbnN0IFN0cmlu
ZyYgYWxpYXMpCiAgICAgaWYgKGFsaWFzLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gYXRvbWlj
Q2Fub25pY2FsVGV4dEVuY29kaW5nTmFtZTxMQ2hhcj4oYWxpYXMuY2hhcmFjdGVyczgoKSwgYWxp
YXMubGVuZ3RoKCkpOwogCi0gICAgcmV0dXJuIGF0b21pY0Nhbm9uaWNhbFRleHRFbmNvZGluZ05h
bWU8VUNoYXI+KGFsaWFzLmNoYXJhY3RlcnMoKSwgYWxpYXMubGVuZ3RoKCkpOworICAgIHJldHVy
biBhdG9taWNDYW5vbmljYWxUZXh0RW5jb2RpbmdOYW1lPFVDaGFyPihhbGlhcy5kZXByZWNhdGVk
Q2hhcmFjdGVycygpLCBhbGlhcy5sZW5ndGgoKSk7CiB9CiAKIGJvb2wgbm9FeHRlbmRlZFRleHRF
bmNvZGluZ05hbWVVc2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CmluZGV4IDBhOWJhMzVkNzA5ZDc3MWIzMTUyMmQ5YTgxOTA0MmVkOTA4MmU0OWEuLjc1YTdmZTMw
YTUzNGNkYTEwMjU1NjYzYmZhNGRiNzU1OGYzOTg5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcApAQCAtNTQ0OCw3ICs1NDQ4LDcgQEAgVGV4dFJ1biBSZW5kZXJC
bG9jazo6Y29uc3RydWN0VGV4dFJ1bihSZW5kZXJPYmplY3QqIGNvbnRleHQsIGNvbnN0IEZvbnQm
IGZvbnQsIGMKICNpZiBFTkFCTEUoOEJJVF9URVhUUlVOKQogICAgIGlmIChsZW5ndGggJiYgc3Ry
aW5nLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bkludGVybmFsKGNv
bnRleHQsIGZvbnQsIHN0cmluZy5jaGFyYWN0ZXJzOCgpLCBsZW5ndGgsIHN0eWxlLCBleHBhbnNp
b24sIGZsYWdzKTsKLSAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bkludGVybmFsKGNvbnRleHQs
IGZvbnQsIHN0cmluZy5jaGFyYWN0ZXJzKCksIGxlbmd0aCwgc3R5bGUsIGV4cGFuc2lvbiwgZmxh
Z3MpOworICAgIHJldHVybiBjb25zdHJ1Y3RUZXh0UnVuSW50ZXJuYWwoY29udGV4dCwgZm9udCwg
c3RyaW5nLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGxlbmd0aCwgc3R5bGUsIGV4cGFuc2lvbiwg
ZmxhZ3MpOwogI2Vsc2UKICAgICByZXR1cm4gY29uc3RydWN0VGV4dFJ1bkludGVybmFsKGNvbnRl
eHQsIGZvbnQsIHN0cmluZy5kZXByZWNhdGVkQ2hhcmFjdGVycygpLCBsZW5ndGgsIHN0eWxlLCBl
eHBhbnNpb24sIGZsYWdzKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJDb21iaW5lVGV4dC5jcHAKaW5kZXggN2I1NzdiMjg4ZmFhZDc2OWE5NmMyM2E3NWJjM2Q4
NzRjY2E3NmMyOS4uZGQ0ZmQzMTdiZjJmNmY1Zjg3YTk0YTI2YTBlOGE2NzFkNjVkMTQ0MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckNvbWJpbmVUZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQ29tYmluZVRleHQuY3BwCkBAIC02
MCw3ICs2MCw3IEBAIHZvaWQgUmVuZGVyQ29tYmluZVRleHQ6OnNldFRleHRJbnRlcm5hbChjb25z
dCBTdHJpbmcmIHRleHQpCiAKIGZsb2F0IFJlbmRlckNvbWJpbmVUZXh0Ojp3aWR0aCh1bnNpZ25l
ZCBmcm9tLCB1bnNpZ25lZCBsZW5ndGgsIGNvbnN0IEZvbnQmIGZvbnQsIGZsb2F0IHhQb3NpdGlv
biwgSGFzaFNldDxjb25zdCBTaW1wbGVGb250RGF0YSo+KiBmYWxsYmFja0ZvbnRzLCBHbHlwaE92
ZXJmbG93KiBnbHlwaE92ZXJmbG93KSBjb25zdAogewotICAgIGlmICghY2hhcmFjdGVycygpKQor
ICAgIGlmICghZGVwcmVjYXRlZENoYXJhY3RlcnMoKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBpZiAobV9pc0NvbWJpbmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zv
bnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RWxlbWVudC5jcHAKaW5k
ZXggOGI5NmU0OWExYzk4MzkwNjE2MmJkZGJhYTk2MjQzOWVjN2Y4OWE1Ni4uYzAzNTUyMzlmMDQz
MTE4ZTBmNTkwZDQyY2Y5MzJkNzUxYTAzMjQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZvbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udEVs
ZW1lbnQuY3BwCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgU1ZHRm9udEVsZW1lbnQ6OnJlZ2lzdGVy
TGlnYXR1cmVzSW5HbHlwaENhY2hlKFZlY3RvcjxTdHJpbmc+JiBsaWdhdHVyZXMpCiAgICAgICAg
IHVuc2lnbmVkIHVuaWNvZGVMZW5ndGggPSB1bmljb2RlLmxlbmd0aCgpOwogICAgICAgICBBU1NF
UlQodW5pY29kZUxlbmd0aCA+IDEpOwogCi0gICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
ID0gdW5pY29kZS5jaGFyYWN0ZXJzKCk7CisgICAgICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJz
ID0gdW5pY29kZS5kZXByZWNhdGVkQ2hhcmFjdGVycygpOwogICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgdW5pY29kZUxlbmd0aDsgKytpKSB7CiAgICAgICAgICAgICBTdHJpbmcgbG9v
a3VwU3RyaW5nKGNoYXJhY3RlcnMgKyBpLCAxKTsKICAgICAgICAgICAgIG1fZ2x5cGhNYXAuY29s
bGVjdEdseXBoc0ZvclN0cmluZyhsb29rdXBTdHJpbmcsIGdseXBocyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwIGIvU291cmNlL1dlYkNvcmUveG1s
L1hQYXRoRnVuY3Rpb25zLmNwcAppbmRleCAwMTIxOTllYTU1N2E4ODA3NzI1N2Q3NjhhMzY0MmE5
ZWZjYzA4Njc0Li5lNmQ5ODA5ZjM0MjgyMjNlMjQ3NjdjNDk1NzZhOTYzNjQ1MGY2OGU0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aEZ1bmN0aW9ucy5jcHAKQEAgLTM0MCw3ICszNDAsNyBAQCBWYWx1
ZSBGdW5JZDo6ZXZhbHVhdGUoKSBjb25zdAogCiAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBzZXZl
cmFsIG5vZGVzIHdpdGggdGhlIHNhbWUgaWQsIGlkKCkgc2hvdWxkIHJldHVybiB0aGUgZmlyc3Qg
b25lLgogICAgICAgICAvLyBJbiBXZWJLaXQsIGdldEVsZW1lbnRCeUlkIGJlaGF2ZXMgc28sIHRv
bywgYWx0aG91Z2ggaXRzIGJlaGF2aW9yIGluIHRoaXMgY2FzZSBpcyBmb3JtYWxseSB1bmRlZmlu
ZWQuCi0gICAgICAgIE5vZGUqIG5vZGUgPSBjb250ZXh0U2NvcGUuZ2V0RWxlbWVudEJ5SWQoU3Ry
aW5nKGlkTGlzdC5jaGFyYWN0ZXJzKCkgKyBzdGFydFBvcywgZW5kUG9zIC0gc3RhcnRQb3MpKTsK
KyAgICAgICAgTm9kZSogbm9kZSA9IGNvbnRleHRTY29wZS5nZXRFbGVtZW50QnlJZChTdHJpbmco
aWRMaXN0LmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCkgKyBzdGFydFBvcywgZW5kUG9zIC0gc3RhcnRQ
b3MpKTsKICAgICAgICAgaWYgKG5vZGUgJiYgcmVzdWx0U2V0LmFkZChub2RlKS5pc05ld0VudHJ5
KQogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChub2RlKTsKICAgICAgICAgCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMjE0NjE1MjY3Mzk0YzEw
MzhkMTIyZmZhYmVmODQwNjYzNmM2ODI5MS4uOTQ0OGQ5MWViZmUzYmE5M2U5YTkxNmU0OTFmOWU0
OTdmYzQ3NDc5NiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAxLTI1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFw
cGxlLmNvbT4KKworICAgICAgICBDYWxsIGRlcHJlY2F0ZWRDaGFyYWN0ZXJzIGluc3RlYWQgb2Yg
Y2hhcmFjdGVycyBhdCBtb3JlIGNhbGwgc2l0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEyNzYzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVp
bGRlci5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdJ
bXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBVc2UgdGhl
IG5ldyBuYW1lLgorCiAyMDE0LTAxLTI1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBs
ZS5jb20+CiAKICAgICAgICAgTW9kZXJuaXplIEhhc2hUYWJsZSB0aHJlYWRpbmcgY29kZQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAppbmRleCBk
MWI1YjQzYmQxOWMyMzllMDc0M2M2ZmM5OGYwNWQzOTFjNmY1ZmQyLi45Y2E1ZDZlZTg2ODk5YThh
N2E2YWE2ZWJiNDQ5ZmM0MTc5NDcyODY1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dURi9TdHJpbmdCdWlsZGVyLmNwcApAQCAtMzgsMTQgKzM4LDE0IEBAIHN0YXRpYyB2b2lk
IGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IFN0cmluZyYgZXhwZWN0ZWQsIGNvbnN0IFN0cmlu
Z0J1aWxkZXImIGJ1CiB7CiAgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKICAgICAv
LyBjaGFuZ2UgaW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4KLSAgICBFWFBFQ1RfRVEoZXhwZWN0
ZWQsIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMoKSwgYnVpbGRlci5sZW5ndGgoKSkpOworICAg
IEVYUEVDVF9FUShleHBlY3RlZCwgU3RyaW5nKGJ1aWxkZXIuZGVwcmVjYXRlZENoYXJhY3RlcnMo
KSwgYnVpbGRlci5sZW5ndGgoKSkpOwogfQogCiB2b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmlu
Z0J1aWxkZXImIGJ1aWxkZXIpCiB7CiAgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgp
KTsKICAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7Ci0gICAgRVhQRUNUX0VRKDAs
IGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKKyAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5kZXByZWNh
dGVkQ2hhcmFjdGVycygpKTsKIH0KIAogVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgRGVmYXVsdENv
bnN0cnVjdG9yKQpAQCAtNzIsMjAgKzcyLDIwIEBAIFRFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFw
cGVuZCkKICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXIxOwogICAgIGJ1aWxkZXIuYXBwZW5kKCIi
LCAwKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVp
bGRlcik7Ci0gICAgYnVpbGRlcjEuYXBwZW5kKGJ1aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVy
Lmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5kZXByZWNhdGVkQ2hhcmFj
dGVycygpLCBidWlsZGVyLmxlbmd0aCgpKTsKICAgICBidWlsZGVyMS5hcHBlbmQoIlhZWiIpOwot
ICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmNoYXJhY3RlcnMoKSwgYnVpbGRlcjEubGVuZ3Ro
KCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCks
IGJ1aWxkZXIxLmxlbmd0aCgpKTsKICAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmcjMDEyMzQ1Njc4OWFiY2RlZmcjWFlaIiwgYnVpbGRlcik7CiAKICAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXIyOwogICAgIGJ1aWxkZXIyLnJlc2VydmVDYXBhY2l0eSgxMDApOwogICAg
IGJ1aWxkZXIyLmFwcGVuZCgieHl6Iik7Ci0gICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBi
dWlsZGVyMi5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBidWls
ZGVyMi5kZXByZWNhdGVkQ2hhcmFjdGVycygpOwogICAgIGJ1aWxkZXIyLmFwcGVuZCgiMDEyMzQ1
Njc4OSIpOwotICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5jaGFyYWN0ZXJzKCkp
OworICAgIEFTU0VSVF9FUShjaGFyYWN0ZXJzLCBidWlsZGVyMi5kZXByZWNhdGVkQ2hhcmFjdGVy
cygpKTsKICAgICBidWlsZGVyMi50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsgLy8gVGVzdCBh
ZnRlciByZWlmeVN0cmluZyB3aXRoIGJ1ZmZlciBwcmVzZXJ2ZWQuCiAgICAgYnVpbGRlcjIuYXBw
ZW5kKCJhYmNkIik7Ci0gICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmNoYXJhY3Rl
cnMoKSk7CisgICAgQVNTRVJUX0VRKGNoYXJhY3RlcnMsIGJ1aWxkZXIyLmRlcHJlY2F0ZWRDaGFy
YWN0ZXJzKCkpOwogCiAgICAgLy8gVGVzdCBhcHBlbmRpbmcgVUNoYXIzMiBjaGFyYWN0ZXJzIHRv
IFN0cmluZ0J1aWxkZXIuCiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyRm9yVUNoYXIzMkFwcGVu
ZDsKQEAgLTE0MCw3ICsxNDAsNyBAQCBURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkpCiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5
KCkpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKICAgICBB
U1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KS5pbXBsKCkpOwotICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNo
YXJhY3RlcnMoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5kZXByZWNhdGVkQ2hhcmFjdGVycygp
LCBidWlsZGVyLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCkpOwogCiAgICAgLy8gQ2hhbmdpbmcgdGhl
IFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KICAgICBidWlsZGVyLmFwcGVuZCgiYWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXoiKTsKQEAgLTE1MSw3ICsxNTEsNyBAQCBURVNUKFN0cmluZ0J1aWxk
ZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCiAgICAgY2FwYWNpdHkgPSBidWlsZGVy
LmNhcGFjaXR5KCk7CiAgICAgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKTsKICAgICBBU1NFUlRfRVEoY2FwYWNpdHksIGJ1aWxkZXIuY2FwYWNpdHkoKSk7Ci0gICAg
QVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKKyAg
ICBBU1NFUlRfRVEoc3RyaW5nLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGJ1aWxkZXIuZGVwcmVj
YXRlZENoYXJhY3RlcnMoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CiAgICAgYnVpbGRlci5hcHBlbmQoIkFC
QyIpOwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5eiIpLCBzdHJpbmcpOwpAQCAtMTYwLDcgKzE2MCw3IEBAIFRFU1QoU3RyaW5nQnVpbGRl
clRlc3QsIFRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSkKICAgICBjYXBhY2l0eSA9IGJ1aWxkZXIu
Y2FwYWNpdHkoKTsKICAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2
ZUNhcGFjaXR5KCk7CiAgICAgQVNTRVJUX0VRKGNhcGFjaXR5LCBidWlsZGVyLmNhcGFjaXR5KCkp
OwotICAgIEFTU0VSVF9FUShzdHJpbmcxLmNoYXJhY3RlcnMoKSwgYnVpbGRlci5jaGFyYWN0ZXJz
KCkpOworICAgIEFTU0VSVF9FUShzdHJpbmcxLmRlcHJlY2F0ZWRDaGFyYWN0ZXJzKCksIGJ1aWxk
ZXIuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSk7CiAgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOwogICAgIHN0cmlu
ZzEuYXBwZW5kKCJERUYiKTsKICAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVm
Z2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNp
dHkoKSk7CkBAIC0xNzAsNyArMTcwLDcgQEAgVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgVG9TdHJp
bmdQcmVzZXJ2ZUNhcGFjaXR5KQogICAgIGNhcGFjaXR5ID0gYnVpbGRlci5jYXBhY2l0eSgpOwog
ICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwogICAgIEFT
U0VSVF9FUShjYXBhY2l0eSwgYnVpbGRlci5jYXBhY2l0eSgpKTsKLSAgICBBU1NFUlRfRVEoc3Ry
aW5nLmNoYXJhY3RlcnMoKSwgYnVpbGRlci5jaGFyYWN0ZXJzKCkpOworICAgIEFTU0VSVF9FUShz
dHJpbmcuZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgYnVpbGRlci5kZXByZWNhdGVkQ2hhcmFjdGVy
cygpKTsKICAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CiAgICAgYnVpbGRlci5hcHBlbmQoIiMjIyIp
OwogICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyIpLCBzdHJpbmcxKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0ltcGwuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3Ry
aW5nSW1wbC5jcHAKaW5kZXggMTBhYjllMmNiNzMyMmE5Yjg3YThjY2UxZmI2NGI0MTRhYzU4MzIw
Ny4uZDU4MDRmNmI0ODY2NmI0ZjdkNjk5NjBmMzIyNjYzZGYxYWIxNTQ3OCAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nSW1wbC5jcHAKQEAgLTYxLDcgKzYxLDcgQEAg
VEVTVChXVEYsIFN0cmluZ0ltcGxGcm9tTGl0ZXJhbExvb3AxNkJpdENvbnZlcnNpb24pCiAgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCAxMDsgKytpKSB7CiAgICAgICAgIFJlZlB0cjxTdHJpbmdJ
bXBsPiBzdHJpbmcgPSBTdHJpbmdJbXBsOjpjcmVhdGVGcm9tTGl0ZXJhbCgiVGVtcGxhdGUgTGl0
ZXJhbCIpOwogCi0gICAgICAgIEFTU0VSVF9FUSgwLCBtZW1jbXAoY29udHJvbFN0cmluZy0+Y2hh
cmFjdGVycygpLCBzdHJpbmctPmNoYXJhY3RlcnMoKSwgY29udHJvbFN0cmluZy0+bGVuZ3RoKCkg
KiBzaXplb2YoVUNoYXIpKSk7CisgICAgICAgIEFTU0VSVF9FUSgwLCBtZW1jbXAoY29udHJvbFN0
cmluZy0+ZGVwcmVjYXRlZENoYXJhY3RlcnMoKSwgc3RyaW5nLT5kZXByZWNhdGVkQ2hhcmFjdGVy
cygpLCBjb250cm9sU3RyaW5nLT5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpKTsKICAgICAgICAg
QVNTRVJUX1RSVUUoc3RyaW5nLT5oYXMxNkJpdFNoYWRvdygpKTsKICAgICB9CiB9Cg==
</data>
<flag name="review"
          id="246212"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>