<?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>39258</bug_id>
          
          <creation_ts>2010-05-17 19:33:06 -0700</creation_ts>
          <short_desc>Remove NamedAttrMap residual gunk</short_desc>
          <delta_ts>2010-05-18 11:48:31 -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>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="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>227060</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-17 19:33:06 -0700</bug_when>
    <thetext>This is left over from http://trac.webkit.org/changeset/42107.  Fix!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227061</commentid>
    <comment_count>1</comment_count>
      <attachid>56308</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-17 19:33:57 -0700</bug_when>
    <thetext>Created attachment 56308
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227095</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-05-17 21:14:22 -0700</bug_when>
    <thetext>weinig++</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227404</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-05-18 11:48:31 -0700</bug_when>
    <thetext>Landed in r59677.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56308</attachid>
            <date>2010-05-17 19:33:57 -0700</date>
            <delta_ts>2010-05-17 19:54:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>fix.diff</filename>
            <type>text/plain</type>
            <size>30176</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1OTYzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTAtMDUtMTcgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzkyNTgKKyAgICAgICAgUmVtb3ZlIE5h
bWVkQXR0ck1hcCByZXNpZHVhbCBndW5rCisKKyAgICAgICAgUmVwbGFjZSBOYW1lZEF0dHJNYXAu
aC9jcHAgd2l0aCBOYW1lZE5vZGVNYXAuaC9jcHAgd2hpY2ggd2FzIHRoZSBjbGFzcworICAgICAg
ICBpdCBjb250YWluZWQuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29y
ZS5wcm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGJpbmRpbmdz
L3Y4L2N1c3RvbS9WOE5hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKiBkb20vTmFt
ZWRBdHRyTWFwLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vTmFtZWRBdHRyTWFwLmg6IFJl
bW92ZWQuCisgICAgICAgICogZG9tL05hbWVkTm9kZU1hcC5jcHA6IENvcGllZCBmcm9tIGRvbS9O
YW1lZEF0dHJNYXAuY3BwLgorICAgICAgICAqIGRvbS9OYW1lZE5vZGVNYXAuaDogUmVwbGFjZWQg
d2l0aCBkb20vTmFtZWRBdHRyTWFwLmguCisgICAgICAgICogZWRpdGluZy9SZXBsYWNlTm9kZVdp
dGhTcGFuQ29tbWFuZC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2xpcGJvYXJk
Q2hyb21pdW0uY3BwOgorCiAyMDEwLTA1LTE3ICBNT1JJVEEgSGFqaW1lICA8bW9ycml0YUBnb29n
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpJbmRleDogV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NNYWtlTGlzdHMudHh0CShy
ZXZpc2lvbiA1OTYyMykKKysrIFdlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTc3MSw4ICs3NzEsOCBAQCBTRVQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgZG9tL01vdXNlUmVs
YXRlZEV2ZW50LmNwcAogICAgIGRvbS9NdXRhdGlvbkV2ZW50LmNwcAogICAgIGRvbS9OYW1lTm9k
ZUxpc3QuY3BwCi0gICAgZG9tL05hbWVkQXR0ck1hcC5jcHAKICAgICBkb20vTmFtZWRNYXBwZWRB
dHRyTWFwLmNwcAorICAgIGRvbS9OYW1lZE5vZGVNYXAuY3BwCiAgICAgZG9tL05vZGUuY3BwCiAg
ICAgZG9tL05vZGVGaWx0ZXIuY3BwCiAgICAgZG9tL05vZGVGaWx0ZXJDb25kaXRpb24uY3BwCklu
ZGV4OiBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFr
ZWZpbGUuYW0JKHJldmlzaW9uIDU5NjIzKQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtODIwLDEwICs4MjAsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdl
YkNvcmUvZG9tL011dGF0aW9uRXZlbnQuaCBcCiAJV2ViQ29yZS9kb20vTmFtZU5vZGVMaXN0LmNw
cCBcCiAJV2ViQ29yZS9kb20vTmFtZU5vZGVMaXN0LmggXAotCVdlYkNvcmUvZG9tL05hbWVkQXR0
ck1hcC5jcHAgXAotCVdlYkNvcmUvZG9tL05hbWVkQXR0ck1hcC5oIFwKIAlXZWJDb3JlL2RvbS9O
YW1lZE1hcHBlZEF0dHJNYXAuY3BwIFwKIAlXZWJDb3JlL2RvbS9OYW1lZE1hcHBlZEF0dHJNYXAu
aCBcCisJV2ViQ29yZS9kb20vTmFtZWROb2RlTWFwLmNwcCBcCiAJV2ViQ29yZS9kb20vTmFtZWRO
b2RlTWFwLmggXAogCVdlYkNvcmUvZG9tL05vZGUuY3BwIFwKIAlXZWJDb3JlL2RvbS9Ob2RlLmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDU5NjIzKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTExNTQsMTAgKzExNTQsOSBAQAogICAgICAgICAgICAgJ2RvbS9NdXRhdGlv
bkV2ZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9OYW1lTm9kZUxpc3QuY3BwJywKICAgICAgICAg
ICAgICdkb20vTmFtZU5vZGVMaXN0LmgnLAotICAgICAgICAgICAgJ2RvbS9OYW1lZEF0dHJNYXAu
Y3BwJywKLSAgICAgICAgICAgICdkb20vTmFtZWRBdHRyTWFwLmgnLAogICAgICAgICAgICAgJ2Rv
bS9OYW1lZE1hcHBlZEF0dHJNYXAuY3BwJywKICAgICAgICAgICAgICdkb20vTmFtZWRNYXBwZWRB
dHRyTWFwLmgnLAorICAgICAgICAgICAgJ2RvbS9OYW1lZE5vZGVNYXAuY3BwJywKICAgICAgICAg
ICAgICdkb20vTmFtZWROb2RlTWFwLmgnLAogICAgICAgICAgICAgJ2RvbS9Ob2RlLmNwcCcsCiAg
ICAgICAgICAgICAnZG9tL05vZGUuaCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUucHJvCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHJldmlzaW9uIDU5NjIzKQorKysgV2ViQ29y
ZS9XZWJDb3JlLnBybwkod29ya2luZyBjb3B5KQpAQCAtNDg3LDggKzQ4Nyw4IEBAIFNPVVJDRVMg
Kz0gXAogICAgIGRvbS9Nb3VzZUV2ZW50LmNwcCBcCiAgICAgZG9tL01vdXNlUmVsYXRlZEV2ZW50
LmNwcCBcCiAgICAgZG9tL011dGF0aW9uRXZlbnQuY3BwIFwKLSAgICBkb20vTmFtZWRBdHRyTWFw
LmNwcCBcCiAgICAgZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5jcHAgXAorICAgIGRvbS9OYW1lZE5v
ZGVNYXAuY3BwIFwKICAgICBkb20vTmFtZU5vZGVMaXN0LmNwcCBcCiAgICAgZG9tL05vZGUuY3Bw
IFwKICAgICBkb20vTm9kZUZpbHRlckNvbmRpdGlvbi5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA1OTYyMykKKysrIFdlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5NjI1LDE5ICsyOTYy
NSwxNSBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCi0JCQkJUmVsYXRpdmVQYXRo
PSIuLlxkb21cTmFtZWRBdHRyTWFwLmNwcCINCi0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8Rmls
ZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOYW1lZEF0dHJNYXAuaCINCisJCQkJUmVsYXRp
dmVQYXRoPSIuLlxkb21cTmFtZWRNYXBwZWRBdHRyTWFwLmNwcCINCiAJCQkJPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOYW1lZE1hcHBlZEF0dHJN
YXAuY3BwIg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxOYW1lZE1hcHBlZEF0dHJNYXAuaCIN
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxOYW1lZE1hcHBlZEF0dHJNYXAuaCINCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cTmFtZWRO
b2RlTWFwLmNwcCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KSW5kZXg6IFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA1OTYyMykKKysr
IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkp
CkBAIC0zMDEwLDggKzMwMTAsNiBAQAogCQlBOEM0QTgwMDA5RDU2MzI3MDAwM0FDOEQgLyogTm9k
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM0
QTdFRTA5RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5jcHAgKi87IH07CiAJCUE4QzRBODAxMDlENTYz
MjcwMDAzQUM4RCAvKiBOYW1lZE1hcHBlZEF0dHJNYXAuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzRBN0VGMDlENTYzMjcwMDAzQUM4RCAvKiBOYW1l
ZE1hcHBlZEF0dHJNYXAuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQlBOEM0QTgwMjA5RDU2MzI3MDAwM0FDOEQgLyogTmFtZWRNYXBwZWRBdHRyTWFw
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE4QzRB
N0YwMDlENTYzMjcwMDAzQUM4RCAvKiBOYW1lZE1hcHBlZEF0dHJNYXAuY3BwICovOyB9OwotCQlB
OEM0QTgwMzA5RDU2MzI3MDAwM0FDOEQgLyogTmFtZWRBdHRyTWFwLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM0QTdGMTA5RDU2MzI3MDAwM0FDOEQg
LyogTmFtZWRBdHRyTWFwLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKLQkJQThDNEE4MDQwOUQ1NjMyNzAwMDNBQzhEIC8qIE5hbWVkQXR0ck1hcC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBOEM0QTdGMjA5
RDU2MzI3MDAwM0FDOEQgLyogTmFtZWRBdHRyTWFwLmNwcCAqLzsgfTsKIAkJQThDNEE4MDUwOUQ1
NjMyNzAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDNEE3RjMwOUQ1NjMyNzAwMDNBQzhEIC8qIE1hcHBl
ZEF0dHJpYnV0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUE4QzRBODA2MDlENTYzMjcwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGUuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQThDNEE3RjQwOUQ1
NjMyNzAwMDNBQzhEIC8qIE1hcHBlZEF0dHJpYnV0ZS5jcHAgKi87IH07CiAJCUE4QzRBODA3MDlE
NTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBBOEM0QTdGNTA5RDU2MzI3MDAwM0FDOEQgLyogRWxlbWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00NzM3LDYg
KzQ3MzUsNyBAQAogCQlCQ0VGRTFFNTBEQ0E1RjMzMDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29y
Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDRUZFMUU0MERDQTVGMzMwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwICov
OyB9OwogCQlCQ0VGRTFFQTBEQ0E1RjY0MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRUZFMUU4MERD
QTVGNjQwMDczOTIxOSAvKiBKU1hTTFRQcm9jZXNzb3IuY3BwICovOyB9OwogCQlCQ0VGRTFFQjBE
Q0E1RjY0MDA3MzkyMTkgLyogSlNYU0xUUHJvY2Vzc29yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0VGRTFFOTBEQ0E1RjY0MDA3MzkyMTkgLyogSlNY
U0xUUHJvY2Vzc29yLmggKi87IH07CisJCUJDRjM0QTM3MTFBMjMxQ0QwMEM3MTgwNCAvKiBOYW1l
ZE5vZGVNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNGMzRBMzYxMUEyMzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgKi87IH07CiAJ
CUJDRjUyNDYwMEZFQkVFNUQwMDk1QkYyNiAvKiBIVE1MRGF0YUdyaWRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRjUyNDVGMEZFQkVF
NUQwMDk1QkYyNiAvKiBIVE1MRGF0YUdyaWRFbGVtZW50LmNwcCAqLzsgfTsKIAkJQkNGQTkzMDgx
MDMzMzE5MzAwN0IyNUQxIC8qIFJlbmRlck92ZXJmbG93LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0ZBOTMwNzEwMzMzMTkzMDA3QjI1RDEgLyogUmVu
ZGVyT3ZlcmZsb3cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0ZCMkU1RTA5NzlFNDY0MDBCQTcwM0QgLyogQ2FjaGVkUmVzb3VyY2VDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRkIyRTVE
MDk3OUU0NjQwMEJBNzAzRCAvKiBDYWNoZWRSZXNvdXJjZUNsaWVudC5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04NDIyLDggKzg0MjEsNiBAQAog
CQlBOEM0QTdFRTA5RDU2MzI3MDAwM0FDOEQgLyogTm9kZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gTm9kZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUE4QzRBN0VGMDlENTYzMjcwMDAzQUM4RCAvKiBOYW1lZE1hcHBlZEF0dHJNYXAuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hbWVkTWFwcGVkQXR0ck1hcC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEM0QTdGMDA5RDU2MzI3MDAwM0FDOEQgLyogTmFt
ZWRNYXBwZWRBdHRyTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBOYW1lZE1hcHBlZEF0dHJNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
OEM0QTdGMTA5RDU2MzI3MDAwM0FDOEQgLyogTmFtZWRBdHRyTWFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOYW1lZEF0dHJNYXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJQThDNEE3RjIwOUQ1NjMyNzAwMDNBQzhEIC8qIE5hbWVkQXR0ck1hcC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmFtZWRBdHRyTWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQThDNEE3RjMwOUQ1NjMyNzAwMDNBQzhEIC8qIE1h
cHBlZEF0dHJpYnV0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWFwcGVk
QXR0cmlidXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE4QzRBN0Y0MDlENTYz
MjcwMDAzQUM4RCAvKiBNYXBwZWRBdHRyaWJ1dGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IE1hcHBlZEF0dHJpYnV0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUE4QzRBN0Y1MDlENTYzMjcwMDAzQUM4RCAvKiBFbGVtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0xMDIyMCw2ICsxMDIxNyw3IEBACiAJCUJDRUZFMUU0MERDQTVGMzMwMDczOTIx
OSAvKiBKU1hTTFRQcm9jZXNzb3JDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSlNYU0xUUHJvY2Vzc29yQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQkNFRkUxRTgwRENBNUY2NDAwNzM5MjE5IC8qIEpTWFNMVFByb2Nlc3Nvci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1hTTFRQcm9jZXNzb3Iu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0VGRTFFOTBEQ0E1RjY0MDA3Mzky
MTkgLyogSlNYU0xUUHJvY2Vzc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTWFNMVFByb2Nlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0YzNEEz
NjExQTIzMUNEMDBDNzE4MDQgLyogTmFtZWROb2RlTWFwLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IE5hbWVkTm9kZU1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRjUyNDVGMEZFQkVFNUQwMDk1QkYyNiAvKiBIVE1MRGF0YUdyaWRFbGVtZW50
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhR3JpZEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0ZBOTMwNzEwMzMzMTkz
MDA3QjI1RDEgLyogUmVuZGVyT3ZlcmZsb3cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVuZGVyT3ZlcmZsb3cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNG
QjJFNUQwOTc5RTQ2NDAwQkE3MDNEIC8qIENhY2hlZFJlc291cmNlQ2xpZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRSZXNvdXJjZUNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTY1MTksMTAgKzE2NTE3LDkgQEAKIAkJCQk4NTAzMUIz
MzBBNDRFRkM3MDBGOTkyRTAgLyogTXV0YXRpb25FdmVudC5jcHAgKi8sCiAJCQkJODUwMzFCMzQw
QTQ0RUZDNzAwRjk5MkUwIC8qIE11dGF0aW9uRXZlbnQuaCAqLywKIAkJCQk5M0VFQzFGMzA5QzI4
Nzc3MDBDNTE1RDEgLyogTXV0YXRpb25FdmVudC5pZGwgKi8sCi0JCQkJQThDNEE3RjIwOUQ1NjMy
NzAwMDNBQzhEIC8qIE5hbWVkQXR0ck1hcC5jcHAgKi8sCi0JCQkJQThDNEE3RjEwOUQ1NjMyNzAw
MDNBQzhEIC8qIE5hbWVkQXR0ck1hcC5oICovLAogCQkJCUE4QzRBN0YwMDlENTYzMjcwMDAzQUM4
RCAvKiBOYW1lZE1hcHBlZEF0dHJNYXAuY3BwICovLAogCQkJCUE4QzRBN0VGMDlENTYzMjcwMDAz
QUM4RCAvKiBOYW1lZE1hcHBlZEF0dHJNYXAuaCAqLywKKwkJCQlCQ0YzNEEzNjExQTIzMUNEMDBD
NzE4MDQgLyogTmFtZWROb2RlTWFwLmNwcCAqLywKIAkJCQlBODE4NzIxODA5NzdEM0MwMDA1ODI2
RDkgLyogTmFtZWROb2RlTWFwLmggKi8sCiAJCQkJODVBQ0E5RjkwQTlCNjMxMDAwNjcxRTkwIC8q
IE5hbWVkTm9kZU1hcC5pZGwgKi8sCiAJCQkJQTgxODcyMTkwOTc3RDNDMDAwNTgyNkQ5IC8qIE5h
bWVOb2RlTGlzdC5jcHAgKi8sCkBAIC0xODQzMyw3ICsxODQzMCw2IEBACiAJCQkJODUwMzFCNDgw
QTQ0RUZDNzAwRjk5MkUwIC8qIE1vdXNlUmVsYXRlZEV2ZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzMwOURGQzA5OUU2NDkyMDA1NkU1ODEgLyogTW92ZVNlbGVjdGlvbkNvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg1MDMxQjRBMEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50
LmggaW4gSGVhZGVycyAqLywKLQkJCQlBOEM0QTgwMzA5RDU2MzI3MDAwM0FDOEQgLyogTmFtZWRB
dHRyTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEM0QTgwMTA5RDU2MzI3MDAwM0FDOEQgLyog
TmFtZWRNYXBwZWRBdHRyTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NzIyMzA5NzdEM0Mw
MDA1ODI2RDkgLyogTmFtZWROb2RlTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQlBODE4NzIxRTA5
NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5vZGVMaXN0LmggaW4gSGVhZGVycyAqLywKQEAgLTIwODE0
LDcgKzIwODEwLDYgQEAKIAkJCQk4NTAzMUI0NzBBNDRFRkM3MDBGOTkyRTAgLyogTW91c2VSZWxh
dGVkRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlERkIwOTlFNjQ5MjAwNTZFNTgx
IC8qIE1vdmVTZWxlY3Rpb25Db21tYW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTg1MDMxQjQ5
MEE0NEVGQzcwMEY5OTJFMCAvKiBNdXRhdGlvbkV2ZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUE4QzRBODA0MDlENTYzMjcwMDAzQUM4RCAvKiBOYW1lZEF0dHJNYXAuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQThDNEE4MDIwOUQ1NjMyNzAwMDNBQzhEIC8qIE5hbWVkTWFwcGVkQXR0ck1hcC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBODE4NzIyNDA5NzdEM0MwMDA1ODI2RDkgLyogTmFtZU5v
ZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxMEI5QjZEMEI3NDc1OTkwMDNFRDg5MCAv
KiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC0yMTUzMSw2ICsy
MTUyNiw3IEBACiAJCQkJQzU2QzkxQTAxMTlEOTE4MTAwREU0Q0Q5IC8qIEpTSURCRXJyb3JFdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTZDOTFBMjExOUQ5MTgxMDBERTRDRDkgLyogSlNJ
REJFdmVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDNTZDOTFBNjExOUQ5MTg3MDBERTRDRDkg
LyogSlNJREJTdWNjZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQkNGMzRBMzcxMUEy
MzFDRDAwQzcxODA0IC8qIE5hbWVkTm9kZU1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJ
CQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TmFtZWROb2Rlc0NvbGxlY3Rp
b24uY3BwCShyZXZpc2lvbiA1OTYyMykKKysrIFdlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
TmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBA
CiAjaW5jbHVkZSAiVjhOYW1lZE5vZGVzQ29sbGVjdGlvbi5oIgogCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgotI2luY2x1ZGUgIk5hbWVkQXR0ck1hcC5oIgorI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvZG9tL05hbWVkQXR0ck1h
cC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTmFtZWRBdHRyTWFwLmNwcAkocmV2aXNp
b24gNTk2MjMpCisrKyBXZWJDb3JlL2RvbS9OYW1lZEF0dHJNYXAuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMyMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwg
KGtub2xsQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtv
aXZpc3RvQGtkZS5vcmcpCi0gKiAgICAgICAgICAgKEMpIDIwMDEgUGV0ZXIgS2VsbHkgKHBta0Bw
b3N0LmNvbSkKLSAqICAgICAgICAgICAoQykgMjAwMSBEaXJrIE11ZWxsZXIgKG11ZWxsZXJAa2Rl
Lm9yZykKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAw
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKiAgICAgICAgICAgKEMpIDIwMDcg
RXJpYyBTZWlkZWwgKGVyaWNAd2Via2l0Lm9yZykKLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGlj
ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy
Ci0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUg
Q09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIk5hbWVkTm9kZU1hcC5oIgotCi0jaW5jbHVkZSAiQXR0ci5oIgotI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgotI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIK
LSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi11c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwotCi1zdGF0aWMgaW5saW5lIGJvb2wgc2hvdWxkSWdub3JlQXR0
cmlidXRlQ2FzZShjb25zdCBFbGVtZW50KiBlKQotewotICAgIHJldHVybiBlICYmIGUtPmRvY3Vt
ZW50KCktPmlzSFRNTERvY3VtZW50KCkgJiYgZS0+aXNIVE1MRWxlbWVudCgpOwotfQotCi1pbmxp
bmUgdm9pZCBOYW1lZE5vZGVNYXA6OmRldGFjaEF0dHJpYnV0ZXNGcm9tRWxlbWVudCgpCi17Ci0g
ICAgc2l6ZV90IHNpemUgPSBtX2F0dHJpYnV0ZXMuc2l6ZSgpOwotICAgIGZvciAoc2l6ZV90IGkg
PSAwOyBpIDwgc2l6ZTsgaSsrKSB7Ci0gICAgICAgIGlmIChBdHRyKiBhdHRyID0gbV9hdHRyaWJ1
dGVzW2ldLT5hdHRyKCkpCi0gICAgICAgICAgICBhdHRyLT5tX2VsZW1lbnQgPSAwOwotICAgIH0K
LX0KLQotTmFtZWROb2RlTWFwOjp+TmFtZWROb2RlTWFwKCkKLXsKLSAgICBkZXRhY2hBdHRyaWJ1
dGVzRnJvbUVsZW1lbnQoKTsKLX0KLQotYm9vbCBOYW1lZE5vZGVNYXA6OmlzTWFwcGVkQXR0cmli
dXRlTWFwKCkgY29uc3QKLXsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLVBhc3NSZWZQdHI8Tm9k
ZT4gTmFtZWROb2RlTWFwOjpnZXROYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAot
ewotICAgIEF0dHJpYnV0ZSogYSA9IGdldEF0dHJpYnV0ZUl0ZW0obmFtZSwgc2hvdWxkSWdub3Jl
QXR0cmlidXRlQ2FzZShtX2VsZW1lbnQpKTsKLSAgICBpZiAoIWEpCi0gICAgICAgIHJldHVybiAw
OwotICAgIAotICAgIHJldHVybiBhLT5jcmVhdGVBdHRySWZOZWVkZWQobV9lbGVtZW50KTsKLX0K
LQotUGFzc1JlZlB0cjxOb2RlPiBOYW1lZE5vZGVNYXA6OmdldE5hbWVkSXRlbU5TKGNvbnN0IFN0
cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSkgY29uc3QKLXsKLSAg
ICByZXR1cm4gZ2V0TmFtZWRJdGVtKFF1YWxpZmllZE5hbWUobnVsbEF0b20sIGxvY2FsTmFtZSwg
bmFtZXNwYWNlVVJJKSk7Ci19Ci0KLVBhc3NSZWZQdHI8Tm9kZT4gTmFtZWROb2RlTWFwOjpyZW1v
dmVOYW1lZEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAg
ICBBdHRyaWJ1dGUqIGEgPSBnZXRBdHRyaWJ1dGVJdGVtKG5hbWUsIHNob3VsZElnbm9yZUF0dHJp
YnV0ZUNhc2UobV9lbGVtZW50KSk7Ci0gICAgaWYgKCFhKSB7Ci0gICAgICAgIGVjID0gTk9UX0ZP
VU5EX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIAotICAgIHJldHVybiByZW1v
dmVOYW1lZEl0ZW0oYS0+bmFtZSgpLCBlYyk7Ci19Ci0KLVBhc3NSZWZQdHI8Tm9kZT4gTmFtZWRO
b2RlTWFwOjpyZW1vdmVOYW1lZEl0ZW1OUyhjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29u
c3QgU3RyaW5nJiBsb2NhbE5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIHJldHVybiBy
ZW1vdmVOYW1lZEl0ZW0oUXVhbGlmaWVkTmFtZShudWxsQXRvbSwgbG9jYWxOYW1lLCBuYW1lc3Bh
Y2VVUkkpLCBlYyk7Ci19Ci0KLVBhc3NSZWZQdHI8Tm9kZT4gTmFtZWROb2RlTWFwOjpnZXROYW1l
ZEl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3QKLXsKLSAgICBBdHRyaWJ1dGUq
IGEgPSBnZXRBdHRyaWJ1dGVJdGVtKG5hbWUpOwotICAgIGlmICghYSkKLSAgICAgICAgcmV0dXJu
IDA7Ci0KLSAgICByZXR1cm4gYS0+Y3JlYXRlQXR0cklmTmVlZGVkKG1fZWxlbWVudCk7Ci19Ci0K
LVBhc3NSZWZQdHI8Tm9kZT4gTmFtZWROb2RlTWFwOjpzZXROYW1lZEl0ZW0oTm9kZSogYXJnLCBF
eGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIW1fZWxlbWVudCB8fCAhYXJnKSB7Ci0gICAg
ICAgIGVjID0gTk9UX0ZPVU5EX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0gICAg
Ly8gV1JPTkdfRE9DVU1FTlRfRVJSOiBSYWlzZWQgaWYgYXJnIHdhcyBjcmVhdGVkIGZyb20gYSBk
aWZmZXJlbnQgZG9jdW1lbnQgdGhhbiB0aGUgb25lIHRoYXQgY3JlYXRlZCB0aGlzIG1hcC4KLSAg
ICBpZiAoYXJnLT5kb2N1bWVudCgpICE9IG1fZWxlbWVudC0+ZG9jdW1lbnQoKSkgewotICAgICAg
ICBlYyA9IFdST05HX0RPQ1VNRU5UX0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotCi0g
ICAgLy8gTm90IG1lbnRpb25lZCBpbiBzcGVjOiB0aHJvdyBhIEhJRVJBUkNIWV9SRVFVRVNUX0VS
Uk9SIGlmIHRoZSB1c2VyIHBhc3NlcyBpbiBhIG5vbi1hdHRyaWJ1dGUgbm9kZQotICAgIGlmICgh
YXJnLT5pc0F0dHJpYnV0ZU5vZGUoKSkgewotICAgICAgICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNU
X0VSUjsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIEF0dHIgKmF0dHIgPSBzdGF0aWNf
Y2FzdDxBdHRyKj4oYXJnKTsKLQotICAgIEF0dHJpYnV0ZSogYSA9IGF0dHItPmF0dHIoKTsKLSAg
ICBBdHRyaWJ1dGUqIG9sZCA9IGdldEF0dHJpYnV0ZUl0ZW0oYS0+bmFtZSgpKTsKLSAgICBpZiAo
b2xkID09IGEpCi0gICAgICAgIHJldHVybiBSZWZQdHI8Tm9kZT4oYXJnKTsgLy8gd2Uga25vdyBh
Ym91dCBpdCBhbHJlYWR5Ci0KLSAgICAvLyBJTlVTRV9BVFRSSUJVVEVfRVJSOiBSYWlzZWQgaWYg
YXJnIGlzIGFuIEF0dHIgdGhhdCBpcyBhbHJlYWR5IGFuIGF0dHJpYnV0ZSBvZiBhbm90aGVyIEVs
ZW1lbnQgb2JqZWN0LgotICAgIC8vIFRoZSBET00gdXNlciBtdXN0IGV4cGxpY2l0bHkgY2xvbmUg
QXR0ciBub2RlcyB0byByZS11c2UgdGhlbSBpbiBvdGhlciBlbGVtZW50cy4KLSAgICBpZiAoYXR0
ci0+b3duZXJFbGVtZW50KCkpIHsKLSAgICAgICAgZWMgPSBJTlVTRV9BVFRSSUJVVEVfRVJSOwot
ICAgICAgICByZXR1cm4gMDsKLSAgICB9Ci0KLSAgICBpZiAoYXR0ci0+aXNJZCgpKQotICAgICAg
ICBtX2VsZW1lbnQtPnVwZGF0ZUlkKG9sZCA/IG9sZC0+dmFsdWUoKSA6IG51bGxBdG9tLCBhLT52
YWx1ZSgpKTsKLQotICAgIC8vICMjIyBzbGlnaHRseSBpbmVmZmljaWVudCAtIHJlc2l6ZXMgYXR0
cmlidXRlIGFycmF5IHR3aWNlLgotICAgIFJlZlB0cjxOb2RlPiByOwotICAgIGlmIChvbGQpIHsK
LSAgICAgICAgciA9IG9sZC0+Y3JlYXRlQXR0cklmTmVlZGVkKG1fZWxlbWVudCk7Ci0gICAgICAg
IHJlbW92ZUF0dHJpYnV0ZShhLT5uYW1lKCkpOwotICAgIH0KLQotICAgIGFkZEF0dHJpYnV0ZShh
KTsKLSAgICByZXR1cm4gci5yZWxlYXNlKCk7Ci19Ci0KLS8vIFRoZSBET00yIHNwZWMgZG9lc24n
dCBzYXkgdGhhdCByZW1vdmVBdHRyaWJ1dGVbTlNdIHRocm93cyBOT1RfRk9VTkRfRVJSCi0vLyBp
ZiB0aGUgYXR0cmlidXRlIGlzIG5vdCBmb3VuZCwgYnV0IGF0IHRoaXMgbGV2ZWwgd2UgaGF2ZSB0
byB0aHJvdyBOT1RfRk9VTkRfRVJSCi0vLyBiZWNhdXNlIG9mIHJlbW92ZU5hbWVkSXRlbSwgcmVt
b3ZlTmFtZWRJdGVtTlMsIGFuZCByZW1vdmVBdHRyaWJ1dGVOb2RlLgotUGFzc1JlZlB0cjxOb2Rl
PiBOYW1lZE5vZGVNYXA6OnJlbW92ZU5hbWVkSXRlbShjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1l
LCBFeGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBBdHRyaWJ1dGUqIGEgPSBnZXRBdHRyaWJ1dGVJ
dGVtKG5hbWUpOwotICAgIGlmICghYSkgewotICAgICAgICBlYyA9IE5PVF9GT1VORF9FUlI7Ci0g
ICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIFJlZlB0cjxBdHRyPiByID0gYS0+Y3JlYXRl
QXR0cklmTmVlZGVkKG1fZWxlbWVudCk7Ci0KLSAgICBpZiAoci0+aXNJZCgpKQotICAgICAgICBt
X2VsZW1lbnQtPnVwZGF0ZUlkKGEtPnZhbHVlKCksIG51bGxBdG9tKTsKLQotICAgIHJlbW92ZUF0
dHJpYnV0ZShuYW1lKTsKLSAgICByZXR1cm4gci5yZWxlYXNlKCk7Ci19Ci0KLVBhc3NSZWZQdHI8
Tm9kZT4gTmFtZWROb2RlTWFwOjppdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdAotewotICAgIGlm
IChpbmRleCA+PSBsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gbV9h
dHRyaWJ1dGVzW2luZGV4XS0+Y3JlYXRlQXR0cklmTmVlZGVkKG1fZWxlbWVudCk7Ci19Ci0KLXZv
aWQgTmFtZWROb2RlTWFwOjpjb3B5QXR0cmlidXRlc1RvVmVjdG9yKFZlY3RvcjxSZWZQdHI8QXR0
cmlidXRlPiA+JiBjb3B5KQotewotICAgIGNvcHkgPSBtX2F0dHJpYnV0ZXM7Ci19Ci0KLUF0dHJp
YnV0ZSogTmFtZWROb2RlTWFwOjpnZXRBdHRyaWJ1dGVJdGVtU2xvd0Nhc2UoY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UpIGNvbnN0Ci17Ci0gICAgdW5z
aWduZWQgbGVuID0gbGVuZ3RoKCk7Ci0KLSAgICAvLyBDb250aW51ZSB0byBjaGVja2luZyBjYXNl
LWluc2Vuc2l0aXZlbHkgYW5kL29yIGZ1bGwgbmFtZXNwYWNlZCBuYW1lcyBpZiBuZWNlc3Nhcnk6
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIGNvbnN0
IFF1YWxpZmllZE5hbWUmIGF0dHJOYW1lID0gbV9hdHRyaWJ1dGVzW2ldLT5uYW1lKCk7Ci0gICAg
ICAgIGlmICghYXR0ck5hbWUuaGFzUHJlZml4KCkpIHsKLSAgICAgICAgICAgIGlmIChzaG91bGRJ
Z25vcmVBdHRyaWJ1dGVDYXNlICYmIGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIGF0dHJOYW1lLmxv
Y2FsTmFtZSgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gbV9hdHRyaWJ1dGVzW2ldLmdldCgp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgLy8gRklYTUU6IFdvdWxkIGJlIGZhc3Rl
ciB0byBkbyB0aGlzIGNvbXBhcmlzb24gd2l0aG91dCBjYWxsaW5nIHRvU3RyaW5nLCB3aGljaAot
ICAgICAgICAgICAgLy8gZ2VuZXJhdGVzIGEgdGVtcG9yYXJ5IHN0cmluZyBieSBjb25jYXRlbmF0
aW9uLiBCdXQgdGhpcyBicmFuY2ggaXMgb25seSByZWFjaGVkCi0gICAgICAgICAgICAvLyBpZiB0
aGUgYXR0cmlidXRlIG5hbWUgaGFzIGEgcHJlZml4LCB3aGljaCBpcyByYXJlIGluIEhUTUwuCi0g
ICAgICAgICAgICBpZiAoZXF1YWxQb3NzaWJseUlnbm9yaW5nQ2FzZShuYW1lLCBhdHRyTmFtZS50
b1N0cmluZygpLCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gbV9hdHRyaWJ1dGVzW2ldLmdldCgpOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVy
biAwOwotfQotCi12b2lkIE5hbWVkTm9kZU1hcDo6Y2xlYXJBdHRyaWJ1dGVzKCkKLXsKLSAgICBk
ZXRhY2hBdHRyaWJ1dGVzRnJvbUVsZW1lbnQoKTsKLSAgICBtX2F0dHJpYnV0ZXMuY2xlYXIoKTsK
LX0KLQotdm9pZCBOYW1lZE5vZGVNYXA6OmRldGFjaEZyb21FbGVtZW50KCkKLXsKLSAgICAvLyBU
aGlzIGNhbid0IGhhcHBlbiBpZiB0aGUgaG9sZGVyIG9mIHRoZSBtYXAgaXMgSmF2YVNjcmlwdCwg
YmVjYXVzZSB3ZSBtYXJrIHRoZQotICAgIC8vIGVsZW1lbnQgaWYgdGhlIG1hcCBpcyBhbGl2ZS4g
U28gaXQgaGFzIG5vIGltcGFjdCBvbiB3ZWIgcGFnZSBiZWhhdmlvci4gQmVjYXVzZQotICAgIC8v
IG9mIHRoYXQsIHdlIGNhbiBzaW1wbHkgY2xlYXIgYWxsIHRoZSBhdHRyaWJ1dGVzIHRvIGF2b2lk
IGFjY2Vzc2luZyBzdGFsZQotICAgIC8vIHBvaW50ZXJzIHRvIGRvIHRoaW5ncyBsaWtlIGNyZWF0
ZSBBdHRyIG9iamVjdHMuCi0gICAgbV9lbGVtZW50ID0gMDsKLSAgICBjbGVhckF0dHJpYnV0ZXMo
KTsKLX0KLQotdm9pZCBOYW1lZE5vZGVNYXA6OnNldEF0dHJpYnV0ZXMoY29uc3QgTmFtZWROb2Rl
TWFwJiBvdGhlcikKLXsKLSAgICAvLyBjbG9uZSBhbGwgYXR0cmlidXRlcyBpbiB0aGUgb3RoZXIg
bWFwLCBidXQgYXR0YWNoIHRvIG91ciBlbGVtZW50Ci0gICAgaWYgKCFtX2VsZW1lbnQpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIC8vIElmIGFzc2lnbmluZyB0aGUgbWFwIGNoYW5nZXMgdGhlIGlk
IGF0dHJpYnV0ZSwgd2UgbmVlZCB0byBjYWxsCi0gICAgLy8gdXBkYXRlSWQuCi0gICAgQXR0cmli
dXRlKiBvbGRJZCA9IGdldEF0dHJpYnV0ZUl0ZW0obV9lbGVtZW50LT5pZEF0dHJpYnV0ZU5hbWUo
KSk7Ci0gICAgQXR0cmlidXRlKiBuZXdJZCA9IG90aGVyLmdldEF0dHJpYnV0ZUl0ZW0obV9lbGVt
ZW50LT5pZEF0dHJpYnV0ZU5hbWUoKSk7Ci0KLSAgICBpZiAob2xkSWQgfHwgbmV3SWQpCi0gICAg
ICAgIG1fZWxlbWVudC0+dXBkYXRlSWQob2xkSWQgPyBvbGRJZC0+dmFsdWUoKSA6IG51bGxBdG9t
LCBuZXdJZCA/IG5ld0lkLT52YWx1ZSgpIDogbnVsbEF0b20pOwotCi0gICAgY2xlYXJBdHRyaWJ1
dGVzKCk7Ci0gICAgdW5zaWduZWQgbmV3TGVuZ3RoID0gb3RoZXIubGVuZ3RoKCk7Ci0gICAgbV9h
dHRyaWJ1dGVzLnJlc2l6ZShuZXdMZW5ndGgpOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkg
PCBuZXdMZW5ndGg7IGkrKykKLSAgICAgICAgbV9hdHRyaWJ1dGVzW2ldID0gb3RoZXIubV9hdHRy
aWJ1dGVzW2ldLT5jbG9uZSgpOwotCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgd2FzdGVmdWwuICBU
aGUgY2xhc3MgbGlzdCBjb3VsZCBiZSBwcmVzZXJ2ZWQgb24gYSBjb3B5LCBhbmQgd2UKLSAgICAv
LyB3b3VsZG4ndCBoYXZlIHRvIHdhc3RlIHRpbWUgcmVwYXJzaW5nIHRoZSBhdHRyaWJ1dGUuCi0g
ICAgLy8gVGhlIGRlcml2ZWQgY2xhc3MsIEhUTUxOYW1lZE5vZGVNYXAsIHdoaWNoIG1hbmFnZXMg
YSBwYXJzZWQgY2xhc3MgbGlzdCBmb3IgdGhlIENMQVNTIGF0dHJpYnV0ZSwKLSAgICAvLyB3aWxs
IHVwZGF0ZSBpdHMgbWVtYmVyIHZhcmlhYmxlIHdoZW4gcGFyc2UgYXR0cmlidXRlIGlzIGNhbGxl
ZC4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbmV3TGVuZ3RoOyBpKyspCi0gICAgICAg
IG1fZWxlbWVudC0+YXR0cmlidXRlQ2hhbmdlZChtX2F0dHJpYnV0ZXNbaV0uZ2V0KCksIHRydWUp
OwotfQotCi12b2lkIE5hbWVkTm9kZU1hcDo6YWRkQXR0cmlidXRlKFBhc3NSZWZQdHI8QXR0cmli
dXRlPiBwcnBBdHRyaWJ1dGUpCi17Ci0gICAgUmVmUHRyPEF0dHJpYnV0ZT4gYXR0cmlidXRlID0g
cHJwQXR0cmlidXRlOwotICAgIAotICAgIC8vIEFkZCB0aGUgYXR0cmlidXRlIHRvIHRoZSBsaXN0
Ci0gICAgbV9hdHRyaWJ1dGVzLmFwcGVuZChhdHRyaWJ1dGUpOwotCi0gICAgaWYgKEF0dHIqIGF0
dHIgPSBhdHRyaWJ1dGUtPmF0dHIoKSkKLSAgICAgICAgYXR0ci0+bV9lbGVtZW50ID0gbV9lbGVt
ZW50OwotCi0gICAgLy8gTm90aWZ5IHRoZSBlbGVtZW50IHRoYXQgdGhlIGF0dHJpYnV0ZSBoYXMg
YmVlbiBhZGRlZCwgYW5kIGRpc3BhdGNoIGFwcHJvcHJpYXRlIG11dGF0aW9uIGV2ZW50cwotICAg
IC8vIE5vdGUgdGhhdCBlbGVtZW50IG1heSBiZSBudWxsIGhlcmUgaWYgd2UgYXJlIGNhbGxlZCBm
cm9tIGluc2VydEF0dHJpYnV0ZSgpIGR1cmluZyBwYXJzaW5nCi0gICAgaWYgKG1fZWxlbWVudCkg
ewotICAgICAgICBtX2VsZW1lbnQtPmF0dHJpYnV0ZUNoYW5nZWQoYXR0cmlidXRlLmdldCgpKTsK
LSAgICAgICAgLy8gQmVjYXVzZSBvZiBvdXIgdXBkYXRlU3R5bGVBdHRyaWJ1dGUoKSBzdHlsZSBt
b2RpZmljYXRpb24gZXZlbnRzIGFyZSBuZXZlciBzZW50IGF0IHRoZSByaWdodCB0aW1lLCBzbyBk
b24ndCBib3RoZXIgc2VuZGluZyB0aGVtLgotICAgICAgICBpZiAoYXR0cmlidXRlLT5uYW1lKCkg
IT0gc3R5bGVBdHRyKSB7Ci0gICAgICAgICAgICBtX2VsZW1lbnQtPmRpc3BhdGNoQXR0ckFkZGl0
aW9uRXZlbnQoYXR0cmlidXRlLmdldCgpKTsKLSAgICAgICAgICAgIG1fZWxlbWVudC0+ZGlzcGF0
Y2hTdWJ0cmVlTW9kaWZpZWRFdmVudCgpOwotICAgICAgICB9Ci0gICAgfQotfQotCi12b2lkIE5h
bWVkTm9kZU1hcDo6cmVtb3ZlQXR0cmlidXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUpCi17
Ci0gICAgdW5zaWduZWQgbGVuID0gbGVuZ3RoKCk7Ci0gICAgdW5zaWduZWQgaW5kZXggPSBsZW47
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIGlmICht
X2F0dHJpYnV0ZXNbaV0tPm5hbWUoKS5tYXRjaGVzKG5hbWUpKSB7Ci0gICAgICAgICAgICBpbmRl
eCA9IGk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGlmIChp
bmRleCA+PSBsZW4pCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFJlbW92ZSB0aGUgYXR0cmli
dXRlIGZyb20gdGhlIGxpc3QKLSAgICBSZWZQdHI8QXR0cmlidXRlPiBhdHRyID0gbV9hdHRyaWJ1
dGVzW2luZGV4XS5nZXQoKTsKLSAgICBpZiAoQXR0ciogYSA9IG1fYXR0cmlidXRlc1tpbmRleF0t
PmF0dHIoKSkKLSAgICAgICAgYS0+bV9lbGVtZW50ID0gMDsKLQotICAgIG1fYXR0cmlidXRlcy5y
ZW1vdmUoaW5kZXgpOwotCi0gICAgLy8gTm90aWZ5IHRoZSBlbGVtZW50IHRoYXQgdGhlIGF0dHJp
YnV0ZSBoYXMgYmVlbiByZW1vdmVkCi0gICAgLy8gZGlzcGF0Y2ggYXBwcm9wcmlhdGUgbXV0YXRp
b24gZXZlbnRzCi0gICAgaWYgKG1fZWxlbWVudCAmJiAhYXR0ci0+bV92YWx1ZS5pc051bGwoKSkg
ewotICAgICAgICBBdG9taWNTdHJpbmcgdmFsdWUgPSBhdHRyLT5tX3ZhbHVlOwotICAgICAgICBh
dHRyLT5tX3ZhbHVlID0gbnVsbEF0b207Ci0gICAgICAgIG1fZWxlbWVudC0+YXR0cmlidXRlQ2hh
bmdlZChhdHRyLmdldCgpKTsKLSAgICAgICAgYXR0ci0+bV92YWx1ZSA9IHZhbHVlOwotICAgIH0K
LSAgICBpZiAobV9lbGVtZW50KSB7Ci0gICAgICAgIG1fZWxlbWVudC0+ZGlzcGF0Y2hBdHRyUmVt
b3ZhbEV2ZW50KGF0dHIuZ2V0KCkpOwotICAgICAgICBtX2VsZW1lbnQtPmRpc3BhdGNoU3VidHJl
ZU1vZGlmaWVkRXZlbnQoKTsKLSAgICB9Ci19Ci0KLWJvb2wgTmFtZWROb2RlTWFwOjptYXBzRXF1
aXZhbGVudChjb25zdCBOYW1lZE5vZGVNYXAqIG90aGVyTWFwKSBjb25zdAotewotICAgIGlmICgh
b3RoZXJNYXApCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKLSAgICB1bnNpZ25lZCBsZW4g
PSBsZW5ndGgoKTsKLSAgICBpZiAobGVuICE9IG90aGVyTWFwLT5sZW5ndGgoKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW47IGkr
KykgewotICAgICAgICBBdHRyaWJ1dGUgKmF0dHIgPSBhdHRyaWJ1dGVJdGVtKGkpOwotICAgICAg
ICBBdHRyaWJ1dGUgKm90aGVyQXR0ciA9IG90aGVyTWFwLT5nZXRBdHRyaWJ1dGVJdGVtKGF0dHIt
Pm5hbWUoKSk7Ci0gICAgICAgICAgICAKLSAgICAgICAgaWYgKCFvdGhlckF0dHIgfHwgYXR0ci0+
dmFsdWUoKSAhPSBvdGhlckF0dHItPnZhbHVlKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCi19CkluZGV4OiBXZWJDb3JlL2Rv
bS9OYW1lZEF0dHJNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9OYW1lZEF0dHJNYXAu
aAkocmV2aXNpb24gNTk2MjMpCisrKyBXZWJDb3JlL2RvbS9OYW1lZEF0dHJNYXAuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxNTEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJz
IEtub2xsIChrbm9sbEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZp
c3RvIChrb2l2aXN0b0BrZGUub3JnKQotICogICAgICAgICAgIChDKSAyMDAxIFBldGVyIEtlbGx5
IChwbWtAcG9zdC5jb20pCi0gKiAgICAgICAgICAgKEMpIDIwMDEgRGlyayBNdWVsbGVyIChtdWVs
bGVyQGtkZS5vcmcpCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIw
MDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0g
KiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBh
bnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFC
SUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQot
ICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgot
ICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUg
ZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBC
b3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8KLQotI2lmbmRlZiBOYW1lZEF0dHJN
YXBfaAotI2RlZmluZSBOYW1lZEF0dHJNYXBfaAotCi0jaW5jbHVkZSAiQXR0cmlidXRlLmgiCi0K
LSNpZmRlZiBfX09CSkNfXwotI2RlZmluZSBpZCBpZF9BVk9JRF9LRVlXT1JECi0jZW5kaWYKLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBOb2RlOwotCi10eXBlZGVmIGludCBFeGNlcHRp
b25Db2RlOwotCi1jbGFzcyBOYW1lZE5vZGVNYXAgOiBwdWJsaWMgUmVmQ291bnRlZDxOYW1lZE5v
ZGVNYXA+IHsKLSAgICBmcmllbmQgY2xhc3MgRWxlbWVudDsKLQotcHJvdGVjdGVkOgotICAgIE5h
bWVkTm9kZU1hcChFbGVtZW50KiBlbGVtZW50KSA6IG1fZWxlbWVudChlbGVtZW50KSB7IH0KLQot
cHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPE5hbWVkTm9kZU1hcD4gY3JlYXRlKEVsZW1l
bnQqIGVsZW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBOYW1lZE5vZGVNYXAoZWxlbWVudCkp
OyB9Ci0KLSAgICB2aXJ0dWFsIH5OYW1lZE5vZGVNYXAoKTsKLQotICAgIC8vIFB1YmxpYyBET00g
aW50ZXJmYWNlLgotCi0gICAgUGFzc1JlZlB0cjxOb2RlPiBnZXROYW1lZEl0ZW0oY29uc3QgU3Ry
aW5nJiBuYW1lKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPE5vZGU+IHJlbW92ZU5hbWVkSXRlbShj
b25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNvZGUmKTsKLQotICAgIFBhc3NSZWZQdHI8Tm9k
ZT4gZ2V0TmFtZWRJdGVtTlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmlu
ZyYgbG9jYWxOYW1lKSBjb25zdDsKLSAgICBQYXNzUmVmUHRyPE5vZGU+IHJlbW92ZU5hbWVkSXRl
bU5TKGNvbnN0IFN0cmluZyYgbmFtZXNwYWNlVVJJLCBjb25zdCBTdHJpbmcmIGxvY2FsTmFtZSwg
RXhjZXB0aW9uQ29kZSYpOwotCi0gICAgUGFzc1JlZlB0cjxOb2RlPiBnZXROYW1lZEl0ZW0oY29u
c3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkgY29uc3Q7Ci0gICAgUGFzc1JlZlB0cjxOb2RlPiByZW1v
dmVOYW1lZEl0ZW0oY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwot
ICAgIFBhc3NSZWZQdHI8Tm9kZT4gc2V0TmFtZWRJdGVtKE5vZGUqLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgUGFzc1JlZlB0cjxOb2RlPiBzZXROYW1lZEl0ZW1OUyhOb2RlKiBub2RlLCBFeGNlcHRp
b25Db2RlJiBlYykgeyByZXR1cm4gc2V0TmFtZWRJdGVtKG5vZGUsIGVjKTsgfQotCi0gICAgUGFz
c1JlZlB0cjxOb2RlPiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAgICBzaXplX3QgbGVu
Z3RoKCkgY29uc3QgeyByZXR1cm4gbV9hdHRyaWJ1dGVzLnNpemUoKTsgfQotICAgIGJvb2wgaXNF
bXB0eSgpIGNvbnN0IHsgcmV0dXJuICFsZW5ndGgoKTsgfQotCi0gICAgLy8gSW50ZXJuYWwgaW50
ZXJmYWNlLgotCi0gICAgdm9pZCBzZXRBdHRyaWJ1dGVzKGNvbnN0IE5hbWVkTm9kZU1hcCYpOwot
Ci0gICAgQXR0cmlidXRlKiBhdHRyaWJ1dGVJdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdCB7IHJl
dHVybiBtX2F0dHJpYnV0ZXNbaW5kZXhdLmdldCgpOyB9Ci0gICAgQXR0cmlidXRlKiBnZXRBdHRy
aWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmKSBjb25zdDsKLQotICAgIHZvaWQgY29weUF0
dHJpYnV0ZXNUb1ZlY3RvcihWZWN0b3I8UmVmUHRyPEF0dHJpYnV0ZT4gPiYpOwotCi0gICAgdm9p
ZCBzaHJpbmtUb0xlbmd0aCgpIHsgbV9hdHRyaWJ1dGVzLnNocmlua0NhcGFjaXR5KGxlbmd0aCgp
KTsgfQotICAgIHZvaWQgcmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh1bnNpZ25lZCBjYXBhY2l0eSkg
eyBtX2F0dHJpYnV0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjYXBhY2l0eSk7IH0KLQotICAg
IC8vIFVzZWQgZHVyaW5nIHBhcnNpbmc6IG9ubHkgaW5zZXJ0cyBpZiBub3QgYWxyZWFkeSB0aGVy
ZS4gTm8gZXJyb3IgY2hlY2tpbmchCi0gICAgdm9pZCBpbnNlcnRBdHRyaWJ1dGUoUGFzc1JlZlB0
cjxBdHRyaWJ1dGU+IG5ld0F0dHJpYnV0ZSwgYm9vbCBhbGxvd0R1cGxpY2F0ZXMpCi0gICAgewot
ICAgICAgICBBU1NFUlQoIW1fZWxlbWVudCk7Ci0gICAgICAgIGlmIChhbGxvd0R1cGxpY2F0ZXMg
fHwgIWdldEF0dHJpYnV0ZUl0ZW0obmV3QXR0cmlidXRlLT5uYW1lKCkpKQotICAgICAgICAgICAg
YWRkQXR0cmlidXRlKG5ld0F0dHJpYnV0ZSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCBib29sIGlz
TWFwcGVkQXR0cmlidXRlTWFwKCkgY29uc3Q7Ci0KLSAgICBjb25zdCBBdG9taWNTdHJpbmcmIGlk
KCkgY29uc3QgeyByZXR1cm4gbV9pZDsgfQotICAgIHZvaWQgc2V0SUQoY29uc3QgQXRvbWljU3Ry
aW5nJiBuZXdJZCkgeyBtX2lkID0gbmV3SWQ7IH0KLQotICAgIGJvb2wgbWFwc0VxdWl2YWxlbnQo
Y29uc3QgTmFtZWROb2RlTWFwKiBvdGhlck1hcCkgY29uc3Q7Ci0KLSAgICAvLyBUaGVzZSBmdW5j
dGlvbnMgZG8gbm8gZXJyb3IgY2hlY2tpbmcuCi0gICAgdm9pZCBhZGRBdHRyaWJ1dGUoUGFzc1Jl
ZlB0cjxBdHRyaWJ1dGU+KTsKLSAgICB2b2lkIHJlbW92ZUF0dHJpYnV0ZShjb25zdCBRdWFsaWZp
ZWROYW1lJik7Ci0KLSAgICBFbGVtZW50KiBlbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9lbGVt
ZW50OyB9Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJBdHRyaWJ1dGVzKCk7
Ci0KLXByaXZhdGU6Ci0gICAgdm9pZCBkZXRhY2hBdHRyaWJ1dGVzRnJvbUVsZW1lbnQoKTsKLSAg
ICB2b2lkIGRldGFjaEZyb21FbGVtZW50KCk7Ci0gICAgQXR0cmlidXRlKiBnZXRBdHRyaWJ1dGVJ
dGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKSBj
b25zdDsKLSAgICBBdHRyaWJ1dGUqIGdldEF0dHJpYnV0ZUl0ZW1TbG93Q2FzZShjb25zdCBTdHJp
bmcmIG5hbWUsIGJvb2wgc2hvdWxkSWdub3JlQXR0cmlidXRlQ2FzZSkgY29uc3Q7Ci0KLSAgICBF
bGVtZW50KiBtX2VsZW1lbnQ7Ci0gICAgVmVjdG9yPFJlZlB0cjxBdHRyaWJ1dGU+ID4gbV9hdHRy
aWJ1dGVzOwotICAgIEF0b21pY1N0cmluZyBtX2lkOwotfTsKLQotaW5saW5lIEF0dHJpYnV0ZSog
TmFtZWROb2RlTWFwOjpnZXRBdHRyaWJ1dGVJdGVtKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUp
IGNvbnN0Ci17Ci0gICAgdW5zaWduZWQgbGVuID0gbGVuZ3RoKCk7Ci0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIGlmIChtX2F0dHJpYnV0ZXNbaV0tPm5h
bWUoKS5tYXRjaGVzKG5hbWUpKQotICAgICAgICAgICAgcmV0dXJuIG1fYXR0cmlidXRlc1tpXS5n
ZXQoKTsKLSAgICB9Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS8vIFdlIHVzZSBhIGJvb2xlYW4gcGFy
YW1ldGVyIGluc3RlYWQgb2YgY2FsbGluZyBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlIHNvIHRo
YXQgdGhlIGNhbGxlcgotLy8gY2FuIHR1bmUgdGhlIGJlaGF2aW91ciAoaGFzQXR0cmlidXRlIGlz
IGNhc2Ugc2Vuc2l0aXZlIHdoZXJlYXMgZ2V0QXR0cmlidXRlIGlzIG5vdCkuCi1pbmxpbmUgQXR0
cmlidXRlKiBOYW1lZE5vZGVNYXA6OmdldEF0dHJpYnV0ZUl0ZW0oY29uc3QgU3RyaW5nJiBuYW1l
LCBib29sIHNob3VsZElnbm9yZUF0dHJpYnV0ZUNhc2UpIGNvbnN0Ci17Ci0gICAgdW5zaWduZWQg
bGVuID0gbGVuZ3RoKCk7Ci0gICAgYm9vbCBkb1Nsb3dDaGVjayA9IHNob3VsZElnbm9yZUF0dHJp
YnV0ZUNhc2U7Ci0gICAgCi0gICAgLy8gT3B0aW1pemUgZm9yIHRoZSBjYXNlIHdoZXJlIHRoZSBh
dHRyaWJ1dGUgZXhpc3RzIGFuZCBpdHMgbmFtZSBleGFjdGx5IG1hdGNoZXMuCi0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IGxlbjsgKytpKSB7Ci0gICAgICAgIGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lID0gbV9hdHRyaWJ1dGVzW2ldLT5uYW1lKCk7Ci0gICAgICAgIGlmICghYXR0
ck5hbWUuaGFzUHJlZml4KCkpIHsKLSAgICAgICAgICAgIGlmIChuYW1lID09IGF0dHJOYW1lLmxv
Y2FsTmFtZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBtX2F0dHJpYnV0ZXNbaV0uZ2V0KCk7
Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgZG9TbG93Q2hlY2sgPSB0cnVlOwotICAgIH0K
LQotICAgIGlmIChkb1Nsb3dDaGVjaykKLSAgICAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZUl0ZW1T
bG93Q2FzZShuYW1lLCBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKTsKLSAgICByZXR1cm4gMDsK
LX0KLQotfSAvL25hbWVzcGFjZQotCi0jdW5kZWYgaWQKLQotI2VuZGlmCkluZGV4OiBkb20vTmFt
ZWROb2RlTWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTmFtZWROb2RlTWFwLmNwcAkocmV2aXNp
b24gNTk2MjMpCShmcm9tIGRvbS9OYW1lZEF0dHJNYXAuY3BwOjU5NjIzKQorKysgZG9tL05hbWVk
Tm9kZU1hcC5jcHAJKHdvcmtpbmcgY29weSkKSW5kZXg6IGRvbS9OYW1lZE5vZGVNYXAuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBkb20vTmFtZWROb2RlTWFwLmgJKHJldmlzaW9uIDU5NjIzKQkoZnJvbSBkb20v
TmFtZWRBdHRyTWFwLmg6NTk2MjMpCisrKyBkb20vTmFtZWROb2RlTWFwLmgJKHdvcmtpbmcgY29w
eSkKSW5kZXg6IFdlYkNvcmUvZG9tL05hbWVkTm9kZU1hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL05hbWVkTm9kZU1hcC5oCShyZXZpc2lvbiA1OTYyMykKKysrIFdlYkNvcmUvZG9tL05h
bWVkTm9kZU1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw4ICsyMiw4IEBACiAgKgogICovCiAK
LSNpZm5kZWYgTmFtZWRBdHRyTWFwX2gKLSNkZWZpbmUgTmFtZWRBdHRyTWFwX2gKKyNpZm5kZWYg
TmFtZWROb2RlTWFwX2gKKyNkZWZpbmUgTmFtZWROb2RlTWFwX2gKIAogI2luY2x1ZGUgIkF0dHJp
YnV0ZS5oIgogCkBAIC0xNDQsOCArMTQ0LDggQEAgaW5saW5lIEF0dHJpYnV0ZSogTmFtZWROb2Rl
TWFwOjpnZXRBdHRyaQogICAgIHJldHVybiAwOwogfQogCi19IC8vbmFtZXNwYWNlCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICN1bmRlZiBpZAogCi0jZW5kaWYKKyNlbmRpZiAvLyBOYW1lZE5v
ZGVNYXBfaApJbmRleDogV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VOb2RlV2l0aFNwYW5Db21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvUmVwbGFjZU5vZGVXaXRoU3BhbkNv
bW1hbmQuY3BwCShyZXZpc2lvbiA1OTYyMykKKysrIFdlYkNvcmUvZWRpdGluZy9SZXBsYWNlTm9k
ZVdpdGhTcGFuQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDYgQEAKICNp
bmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiTmFtZWRBdHRyTWFwLmgiCiAKICNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0NsaXBi
b2FyZENocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVt
L0NsaXBib2FyZENocm9taXVtLmNwcAkocmV2aXNpb24gNTk2MjMpCisrKyBXZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0NsaXBib2FyZENocm9taXVtLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgs
NyArMzgsNiBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAj
aW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgotI2luY2x1ZGUgIk5hbWVkQXR0ck1hcC5oIgog
I2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgo=
</data>
<flag name="review"
          id="40711"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>