<?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>40802</bug_id>
          
          <creation_ts>2010-06-17 16:43:40 -0700</creation_ts>
          <short_desc>Add CSS scanning to HTML5PreloadScanner</short_desc>
          <delta_ts>2010-06-18 02:36:51 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>239635</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 16:43:40 -0700</bug_when>
    <thetext>Add CSS scanning to HTML5PreloadScanner</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239636</commentid>
    <comment_count>1</comment_count>
      <attachid>59046</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 16:44:45 -0700</bug_when>
    <thetext>Created attachment 59046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239637</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 16:45:24 -0700</bug_when>
    <thetext>Attachment 59046 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/html/CSSPreloadScanner.cpp:93:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/html/CSSPreloadScanner.cpp:116:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
WebCore/html/CSSPreloadScanner.cpp:135:  Line contains only semicolon. If this should be an empty statement, use { } instead.  [whitespace/semicolon] [5]
Total errors found: 3 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239640</commentid>
    <comment_count>3</comment_count>
      <attachid>59046</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-17 16:53:26 -0700</bug_when>
    <thetext>Comment on attachment 59046
Patch

Can we share the code with the legacy parser?  That would make this diff easier to verify correctness because we&apos;d see the moved code.  (Ideally we&apos;d split CSSPreloadScanner out of the old parser first before doing this patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239655</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 17:03:34 -0700</bug_when>
    <thetext>I was just going to delete the old preload scanner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239665</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 17:20:21 -0700</bug_when>
    <thetext>Attachment 59046 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/3270341</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239669</commentid>
    <comment_count>6</comment_count>
      <attachid>59046</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-17 17:23:14 -0700</bug_when>
    <thetext>Comment on attachment 59046
Patch

We came up with a testing strategy in person using:
1.  a slow script which document.write(&apos;&lt;plaintext&gt;&apos;)
2.  A docuemnt with:
&lt;script src=&quot;slow_script_which_document_write_plaintext.js&quot;&gt;&lt;/script&gt;
&lt;style&gt;
@import &quot;foo.css&quot;
&lt;/style&gt;

and look for a loader callback for foo.css</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239694</commentid>
    <comment_count>7</comment_count>
      <attachid>59057</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 18:20:39 -0700</bug_when>
    <thetext>Created attachment 59057
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239696</commentid>
    <comment_count>8</comment_count>
      <attachid>59057</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-06-17 18:32:24 -0700</bug_when>
    <thetext>Comment on attachment 59057
Patch

Thank you for adding testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239698</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 19:01:16 -0700</bug_when>
    <thetext>Committed r61366: &lt;http://trac.webkit.org/changeset/61366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239703</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-17 19:17:52 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/61366 might have broken Qt Linux Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239704</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-17 19:23:15 -0700</bug_when>
    <thetext>Qt and GTK don&apos;t support dumpResourceResponseMIMETypes, so we can&apos;t run these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>239831</commentid>
    <comment_count>12</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2010-06-18 02:36:51 -0700</bug_when>
    <thetext>Nice, thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59046</attachid>
            <date>2010-06-17 16:44:45 -0700</date>
            <delta_ts>2010-06-17 18:20:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40802-20100617164443.patch</filename>
            <type>text/plain</type>
            <size>18148</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAzNmMxNzk5N2IxZDUyYmRiOGZkZTcxZTc3N2ViM2NkMjllNTFiYTEyLi5kZjI1ZDU2OTQyOTQ4
MTFiMTcxNzFiMTVmM2ZmMGZhNjg4NWNmMjZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0yNDQsNiArMjQ0LDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9Bc3luY0ltYWdlUmVzaXplci5j
cHAgXAogCWh0bWwvQmxvYi5jcHAgXAogCWh0bWwvQ29sbGVjdGlvbkNhY2hlLmNwcCBcCisJaHRt
bC9DU1NQcmVsb2FkU2Nhbm5lci5jcHAgXAogCWh0bWwvRE9NRm9ybURhdGEuY3BwIFwKIAlodG1s
L0ZpbGUuY3BwIFwKIAlodG1sL0ZpbGVMaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0No
YW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDExOGJiNDIzYzVjYjAzZGFiZTI2MTRk
NmM3Y2FmZGNhZTZkNDM1NzYuLjBiYmM1ZGU5NWVkMTUzMDYxOGNhYmYwOWIzODRmZGI0ODQyMmZi
NDggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzQgQEAKKzIwMTAtMDYtMTcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0
Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgQ1NTIHNjYW5uaW5nIHRvIEhUTUw1UHJlbG9hZFNjYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQwODAyCisKKyAgICAgICAgVGhpcyBwYXRj
aCBqdXN0IGNyaWJzIHRoZSBDU1MgcHJlbG9hZCBzY2FubmluZyBhbGdvcml0aG0gZnJvbSB0aGUg
b2xkCisgICAgICAgIHByZWxvYWQgc2Nhbm5lci4gIE5vdCBzdXJlIGhvdyB0byBhY3R1YWxseSB0
ZXN0IHRoaXMgY29kZS4uLgorCisgICAgICAgICogQW5kcm9pZC5tazoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS5w
cm86CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGh0bWwvQ1NTUHJl
bG9hZFNjYW5uZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OmlzV2hpdGVzcGFjZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5lcjo6Q1NTUHJlbG9hZFNjYW5uZXIp
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OnJlc2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNTU1ByZWxvYWRTY2FubmVyOjpzY2FuKToKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByZWxvYWRTY2FubmVyOjp0b2tlbml6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2Fk
U2Nhbm5lcjo6ZW1pdFJ1bGUpOgorICAgICAgICAqIGh0bWwvQ1NTUHJlbG9hZFNjYW5uZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5lcjo6KToKKyAgICAgICAg
KiBodG1sL0hUTUw1UHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVQ
cmVsb2FkU2Nhbm5lcjo6SFRNTDVQcmVsb2FkU2Nhbm5lcik6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MNVByZWxvYWRTY2FubmVyOjpwcm9jZXNzVG9rZW4pOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TDVQcmVsb2FkU2Nhbm5lcjo6c2Nhbm5pbmdCb2R5KToKKyAgICAgICAgKiBodG1sL0hUTUw1UHJl
bG9hZFNjYW5uZXIuaDoKKwogMjAxMC0wNi0xNiAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCmlu
ZGV4IDQ5YTFjOGI1OTlkNDYyMTFlN2VhM2U4M2U3ZDFkNzViYmEwYjRmMjkuLjI0YzExZWZlY2Rh
OTMyNDY1Y2IxYWE5MGZhMjQ5YmJkZDU4ZTQxYzQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMTA1NCw2ICsxMDU0LDgg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNhY2hlLmNw
cCBcCiAJV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5oIFwKIAlXZWJDb3JlL2h0bWwvQ29s
bGVjdGlvblR5cGUuaCBcCisJV2ViQ29yZS9odG1sL0NTU1ByZWxvYWRTY2FubmVyLmNwcCBcCisJ
V2ViQ29yZS9odG1sL0NTU1ByZWxvYWRTY2FubmVyLmggXAogCVdlYkNvcmUvaHRtbC9EYXRhR3Jp
ZENvbHVtbi5jcHAgXAogCVdlYkNvcmUvaHRtbC9EYXRhR3JpZENvbHVtbi5oIFwKIAlXZWJDb3Jl
L2h0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDBjMGY1ODBiNTZmN2IzZGVmOTc3
MmUwMTZmMGY5ZmZjYWRiMWI4MjYuLjZiN2JiOGFiMDFiMmEzOTZkYTc1YjJiZmM3OTI1NjAyNjNl
YTY4YWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCkBAIC0xNDM5LDYgKzE0MzksOCBAQAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVj
dGlvbkNhY2hlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9Db2xsZWN0aW9uQ2FjaGUuaCcsCiAg
ICAgICAgICAgICAnaHRtbC9Db2xsZWN0aW9uVHlwZS5oJywKKyAgICAgICAgICAgICdodG1sL0NT
U1ByZWxvYWRTY2FubmVyLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9DU1NQcmVsb2FkU2Nhbm5l
ci5oJywKICAgICAgICAgICAgICdodG1sL0RhdGFHcmlkQ29sdW1uLmNwcCcsCiAgICAgICAgICAg
ICAnaHRtbC9EYXRhR3JpZENvbHVtbi5oJywKICAgICAgICAgICAgICdodG1sL0RPTURhdGFHcmlk
RGF0YVNvdXJjZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBybyBiL1dlYkNv
cmUvV2ViQ29yZS5wcm8KaW5kZXggMDZkYTlhMjA2NWU5YTMyZTZkNjY0OWJjNWNiYTAzM2E0NGNi
MDU0Yy4uNGIzMmUxNTMyYzdhMmU4YmE5ZDZlZDVlMDBmMzY1NDMyY2Y3MjM0YiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC01OTgs
NiArNTk4LDcgQEAgU09VUkNFUyArPSBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5n
Q29udGV4dDJELmNwcCBcCiAgICAgaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIFwKICAgICBo
dG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAgXAorICAgIGh0bWwvQ1NTUHJlbG9hZFNjYW5uZXIuY3Bw
IFwKICAgICBodG1sL0RhdGFHcmlkQ29sdW1uLmNwcCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVt
bkxpc3QuY3BwIFwKICAgICBodG1sL0RhdGVDb21wb25lbnRzLmNwcCBcCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagppbmRleCAxMDg4OTVlYWRmY2Q1ODM5MTM3ODhjYjcxMzllYWUz
MmU0ZjNhNzQ1Li4wZTdjODhkMmU3NWEzZTQzNjdmYTQ5ZDliOTgzYTMzMjc0OTNlOTQ5IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTMzMjA5LDYgKzMzMjA5LDE0IEBA
CiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0
bWxcQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxDU1NQcmVsb2FkU2Nhbm5lci5oIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxEYXRh
R3JpZENvbHVtbi5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjNjQyNzdkMzUzZTk3ZjQzNWNlZWRlM2E2NjQx
MTc3MWY2MmFhMzk0Li41OGJkMWViNTJjYzFmMGU0NjA0MTY1ZmVhOTQxZGEzZWFkMjMyNDRmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjU0MCw2ICsy
NTQwLDggQEAKIAkJOTczODg5QTExMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzM4ODk5RjEx
NkVBOURDMDBBREYzMTMgLyogRG9jdW1lbnRXcml0ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5NzNFMzI1NjEwODgzQjdDMDA1QkM0OTMgLyog
UmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTczRTMyNTQxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5v
dGlmaWVyLmNwcCAqLzsgfTsKIAkJOTczRTMyNTcxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNl
TG9hZE5vdGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5NzZFMkJB
NzExQ0FFNERFMDA2QzU2QTAgLyogQ1NTUHJlbG9hZFNjYW5uZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RTJCQTUxMUNBRTRERTAwNkM1NkEw
IC8qIENTU1ByZWxvYWRTY2FubmVyLmNwcCAqLzsgfTsKKwkJOTc2RTJCQTgxMUNBRTRERTAwNkM1
NkEwIC8qIENTU1ByZWxvYWRTY2FubmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzZFMkJBNjExQ0FFNERFMDA2QzU2QTAgLyogQ1NTUHJlbG9hZFNj
YW5uZXIuaCAqLzsgfTsKIAkJOTc2RTg5NjAxMUMwQ0EzQTAwRUE5Q0E5IC8qIEhUTUw1RW50aXR5
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDk3NkU4OTVFMTFDMENBM0EwMEVBOUNBOSAvKiBIVE1MNUVudGl0eVBhcnNlci5jcHAgKi87IH07
CiAJCTk3NkU4OTYxMTFDMENBM0EwMEVBOUNBOSAvKiBIVE1MNUVudGl0eVBhcnNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RTg5NUYxMUMwQ0Ez
QTAwRUE5Q0E5IC8qIEhUTUw1RW50aXR5UGFyc2VyLmggKi87IH07CiAJCTk3OUY0M0QzMTA3NUU0
NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogUmVk
aXJlY3RTY2hlZHVsZXIuY3BwICovOyB9OwpAQCAtODEyMCw2ICs4MTIyLDggQEAKIAkJOTczODg5
OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3JpdGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IERvY3VtZW50V3JpdGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3M0UzMjU0MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZXNvdXJjZUxvYWROb3Rp
Zmllci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3M0UzMjU1MTA4ODNCN0Mw
MDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZXNvdXJjZUxvYWROb3RpZmllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5NzZFMkJBNTExQ0FFNERFMDA2QzU2QTAgLyogQ1NTUHJlbG9hZFNjYW5uZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTUHJlbG9hZFNjYW5uZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5NzZFMkJBNjExQ0FFNERFMDA2QzU2
QTAgLyogQ1NTUHJlbG9hZFNjYW5uZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQ1NTUHJlbG9hZFNjYW5uZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2
RTg5NUUxMUMwQ0EzQTAwRUE5Q0E5IC8qIEhUTUw1RW50aXR5UGFyc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUw1RW50aXR5UGFyc2VyLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc2RTg5NUYxMUMwQ0EzQTAwRUE5Q0E5IC8qIEhUTUw1
RW50aXR5UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUw1RW50
aXR5UGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QxMTA3NUU0
NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSZWRpcmVjdFNjaGVkdWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMzM5OSw2ICsxMzQwMyw4IEBACiAJCQkJMkVENjA5QkExMTQ1QjA3MTAw
Qzg2ODRFIC8qIERPTUZvcm1EYXRhLmNwcCAqLywKIAkJCQkyRUQ2MDlCQjExNDVCMDcxMDBDODY4
NEUgLyogRE9NRm9ybURhdGEuaCAqLywKIAkJCQkyRTA4ODhDMzExNDg4M0E5MDBBRjQyNjUgLyog
RE9NRm9ybURhdGEuaWRsICovLAorCQkJCTk3NkUyQkE1MTFDQUU0REUwMDZDNTZBMCAvKiBDU1NQ
cmVsb2FkU2Nhbm5lci5jcHAgKi8sCisJCQkJOTc2RTJCQTYxMUNBRTRERTAwNkM1NkEwIC8qIENT
U1ByZWxvYWRTY2FubmVyLmggKi8sCiAJCQkJQkNEQkI4Q0MwRTA4OTU4NDAwQzYwRkY2IC8qIEZp
bGUuY3BwICovLAogCQkJCUJDREJCOENCMEUwODk1ODQwMEM2MEZGNiAvKiBGaWxlLmggKi8sCiAJ
CQkJQkMxODgxRDkwRTA4QzRFRDAwMDQ4QzEzIC8qIEZpbGUuaWRsICovLApAQCAtMTk0MjUsNiAr
MTk0MzEsNyBAQAogCQkJCTgxNkM4MEFGMTFCRTk5MEQwMDlBNDVFOSAvKiBKU0lEQktleVJhbmdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwODUzRDczNDExQzkxMDkwMDBCMkZENDIgLyogU1ZHVGV4
dFF1ZXJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk0OUZGQkYzRjExQzkzRUUzMDA2QTcxMTggLyog
V2ViR0xMYXllci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTc2RTJCQTgxMUNBRTRERTAwNkM1NkEw
IC8qIENTU1ByZWxvYWRTY2FubmVyLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5
Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIxNzMyLDYgKzIxNzM5
LDcgQEAKIAkJCQkwODUzRDczMjExQzkxMDkwMDBCMkZENDIgLyogU1ZHVGV4dENodW5rTGF5b3V0
SW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwODUzRDczMzExQzkxMDkwMDBCMkZENDIgLyog
U1ZHVGV4dFF1ZXJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ5RkZCRjQwMTFDOTNFRTMwMDZB
NzExOCAvKiBXZWJHTExheWVyLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJOTc2RTJCQTcxMUNBRTRE
RTAwNkM1NkEwIC8qIENTU1ByZWxvYWRTY2FubmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9odG1sL0NTU1ByZWxvYWRTY2FubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9D
U1NQcmVsb2FkU2Nhbm5lci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjJlOTMzYWJlNmIwYjNlN2NjNzUxNjY0
ZGQ0OGQ4MzhmZjNhZjIzZgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9DU1NQcmVs
b2FkU2Nhbm5lci5jcHAKQEAgLTAsMCArMSwxNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA5
IFRvcmNoIE1vYmlsZSwgSW5jLiBodHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAqIENvcHly
aWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkNTU1ByZWxvYWRTY2FubmVyLmgiCisKKyNpbmNsdWRlICJDU1NIZWxwZXIuaCIK
KyNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCisjaW5jbHVkZSAiRG9jTG9hZGVyLmgi
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MNVRva2VuLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworc3RhdGljIGlubGluZSBib29sIGlzV2hpdGVzcGFjZShVQ2hhciBj
KQoreworICAgIHJldHVybiBjID09ICcgJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHInIHx8IGMg
PT0gJ1x0JzsKK30KKworQ1NTUHJlbG9hZFNjYW5uZXI6OkNTU1ByZWxvYWRTY2FubmVyKERvY3Vt
ZW50KiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCit7CisgICAgcmVzZXQo
KTsKK30KKwordm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6cmVzZXQoKQoreworICAgIG1fc3RhdGUg
PSBJbml0aWFsOworICAgIG1fcnVsZS5jbGVhcigpOworICAgIG1fcnVsZVZhbHVlLmNsZWFyKCk7
Cit9CisKK3ZvaWQgQ1NTUHJlbG9hZFNjYW5uZXI6OnNjYW4oY29uc3QgSFRNTDVUb2tlbiYgdG9r
ZW4sIGJvb2wgc2Nhbm5pbmdCb2R5KQoreworICAgIG1fc2Nhbm5pbmdCb2R5ID0gc2Nhbm5pbmdC
b2R5OworCisgICAgY29uc3QgSFRNTDVUb2tlbjo6RGF0YVZlY3RvciYgY2hhcmFjdGVycyA9IHRv
a2VuLmNoYXJhY3RlcnMoKTsKKyAgICBmb3IgKEhUTUw1VG9rZW46OkRhdGFWZWN0b3I6OmNvbnN0
X2l0ZXJhdG9yIGl0ZXIgPSBjaGFyYWN0ZXJzLmJlZ2luKCk7CisgICAgICAgICBpdGVyICE9IGNo
YXJhY3RlcnMuZW5kKCk7ICsraXRlcikgeworICAgICAgICB0b2tlbml6ZSgqaXRlcik7CisgICAg
fQorfQorCitpbmxpbmUgdm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6dG9rZW5pemUoVUNoYXIgYykK
K3sKKyAgICAvLyBXZSBhcmUganVzdCBpbnRlcmVzdGVkIGluIEBpbXBvcnQgcnVsZXMsIG5vIG5l
ZWQgZm9yIHJlYWwgdG9rZW5pemF0aW9uIGhlcmUKKyAgICAvLyBTZWFyY2hpbmcgZm9yIG90aGVy
IHR5cGVzIG9mIHJlc291cmNlcyBpcyBwcm9iYWJseSBsb3cgcGF5b2ZmLgorICAgIHN3aXRjaCAo
bV9zdGF0ZSkgeworICAgIGNhc2UgSW5pdGlhbDoKKyAgICAgICAgaWYgKGMgPT0gJ0AnKQorICAg
ICAgICAgICAgbV9zdGF0ZSA9IFJ1bGVTdGFydDsKKyAgICAgICAgZWxzZSBpZiAoYyA9PSAnLycp
CisgICAgICAgICAgICBtX3N0YXRlID0gTWF5YmVDb21tZW50OworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIE1heWJlQ29tbWVudDoKKyAgICAgICAgaWYgKGMgPT0gJyonKQorICAgICAgICAgICAg
bV9zdGF0ZSA9IENvbW1lbnQ7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fc3RhdGUgPSBJ
bml0aWFsOworICAgICAgICBicmVhazsKKyAgICBjYXNlIENvbW1lbnQ6CisgICAgICAgIGlmIChj
ID09ICcqJykKKyAgICAgICAgICAgIG1fc3RhdGUgPSBNYXliZUNvbW1lbnRFbmQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgTWF5YmVDb21tZW50RW5kOgorICAgICAgICBpZiAoYyA9PSAnLycp
CisgICAgICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsKKyAgICAgICAgZWxzZSBpZiAoYyA9PSAn
KicpCisgICAgICAgICAgICA7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fc3RhdGUgPSBD
b21tZW50OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFJ1bGVTdGFydDoKKyAgICAgICAgaWYg
KChjID49ICdBJyAmJiBjIDw9ICdaJykgfHwgKGMgPj0gJ2EnICYmIGMgPD0gJ3onKSkgeworICAg
ICAgICAgICAgbV9ydWxlLmNsZWFyKCk7CisgICAgICAgICAgICBtX3J1bGVWYWx1ZS5jbGVhcigp
OworICAgICAgICAgICAgbV9ydWxlLmFwcGVuZChjKTsKKyAgICAgICAgICAgIG1fc3RhdGUgPSBS
dWxlOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFsOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIFJ1bGU6CisgICAgICAgIGlmIChpc1doaXRlc3BhY2UoYykp
CisgICAgICAgICAgICBtX3N0YXRlID0gQWZ0ZXJSdWxlOworICAgICAgICBlbHNlIGlmIChjID09
ICc7JykKKyAgICAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFsOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX3J1bGUuYXBwZW5kKGMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFmdGVy
UnVsZToKKyAgICAgICAgaWYgKGlzV2hpdGVzcGFjZShjKSkKKyAgICAgICAgICAgIDsKKyAgICAg
ICAgZWxzZSBpZiAoYyA9PSAnOycpCisgICAgICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsKKyAg
ICAgICAgZWxzZSB7CisgICAgICAgICAgICBtX3N0YXRlID0gUnVsZVZhbHVlOworICAgICAgICAg
ICAgbV9ydWxlVmFsdWUuYXBwZW5kKGMpOworICAgICAgICB9CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgUnVsZVZhbHVlOgorICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGMpKQorICAgICAgICAg
ICAgbV9zdGF0ZSA9IEFmdGVyUnVsZVZhbHVlOworICAgICAgICBlbHNlIGlmIChjID09ICc7Jykg
eworICAgICAgICAgICAgZW1pdFJ1bGUoKTsKKyAgICAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFs
OworICAgICAgICB9IGVsc2UgCisgICAgICAgICAgICBtX3J1bGVWYWx1ZS5hcHBlbmQoYyk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgQWZ0ZXJSdWxlVmFsdWU6CisgICAgICAgIGlmIChpc1do
aXRlc3BhY2UoYykpCisgICAgICAgICAgICA7CisgICAgICAgIGVsc2UgaWYgKGMgPT0gJzsnKSB7
CisgICAgICAgICAgICBlbWl0UnVsZSgpOworICAgICAgICAgICAgbV9zdGF0ZSA9IEluaXRpYWw7
CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAvLyBGSVhNRTogbWVkaWEgcnVsZXMKKyAg
ICAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFsOworICAgICAgICB9CisgICAgICAgIGJyZWFrOwor
ICAgIH0KK30KKwordm9pZCBDU1NQcmVsb2FkU2Nhbm5lcjo6ZW1pdFJ1bGUoKQoreworICAgIFN0
cmluZyBydWxlKG1fcnVsZS5kYXRhKCksIG1fcnVsZS5zaXplKCkpOworICAgIGlmIChlcXVhbEln
bm9yaW5nQ2FzZShydWxlLCAiaW1wb3J0IikgJiYgIW1fcnVsZVZhbHVlLmlzRW1wdHkoKSkgewor
ICAgICAgICBTdHJpbmcgdmFsdWUobV9ydWxlVmFsdWUuZGF0YSgpLCBtX3J1bGVWYWx1ZS5zaXpl
KCkpOworICAgICAgICBTdHJpbmcgdXJsID0gZGVwcmVjYXRlZFBhcnNlVVJMKHZhbHVlKTsKKyAg
ICAgICAgaWYgKCF1cmwuaXNFbXB0eSgpKQorICAgICAgICAgICAgbV9kb2N1bWVudC0+ZG9jTG9h
ZGVyKCktPnByZWxvYWQoQ2FjaGVkUmVzb3VyY2U6OkNTU1N0eWxlU2hlZXQsIHVybCwgU3RyaW5n
KCksIG1fc2Nhbm5pbmdCb2R5KTsKKyAgICB9CisgICAgbV9ydWxlLmNsZWFyKCk7CisgICAgbV9y
dWxlVmFsdWUuY2xlYXIoKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0NTU1By
ZWxvYWRTY2FubmVyLmggYi9XZWJDb3JlL2h0bWwvQ1NTUHJlbG9hZFNjYW5uZXIuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NWRkYWY2MGJmZjVmMTk4YzhlMWEwYzZhOThiMTM4YmY2MDM5ZTE1Ci0tLSAvZGV2L251
bGwKKysrIGIvV2ViQ29yZS9odG1sL0NTU1ByZWxvYWRTY2FubmVyLmgKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYg
Q1NTUHJlbG9hZFNjYW5uZXJfaAorI2RlZmluZSBDU1NQcmVsb2FkU2Nhbm5lcl9oCisKKyNpbmNs
dWRlICJQbGF0Zm9ybVN0cmluZy5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBEb2N1bWVudDsKK2NsYXNzIEhUTUw1VG9rZW47CisKK2Ns
YXNzIENTU1ByZWxvYWRTY2FubmVyIDogcHVibGljIE5vbmNvcHlhYmxlIHsKK3B1YmxpYzoKKyAg
ICBDU1NQcmVsb2FkU2Nhbm5lcihEb2N1bWVudCopOworCisgICAgdm9pZCByZXNldCgpOworICAg
IHZvaWQgc2Nhbihjb25zdCBIVE1MNVRva2VuJiwgYm9vbCBzY2FubmluZ0JvZHkpOworCitwcml2
YXRlOgorICAgIGVudW0gU3RhdGUgeworICAgICAgICBJbml0aWFsLAorICAgICAgICBNYXliZUNv
bW1lbnQsCisgICAgICAgIENvbW1lbnQsCisgICAgICAgIE1heWJlQ29tbWVudEVuZCwKKyAgICAg
ICAgUnVsZVN0YXJ0LAorICAgICAgICBSdWxlLAorICAgICAgICBBZnRlclJ1bGUsCisgICAgICAg
IFJ1bGVWYWx1ZSwKKyAgICAgICAgQWZ0ZXJSdWxlVmFsdWUKKyAgICB9OworCisgICAgaW5saW5l
IHZvaWQgdG9rZW5pemUoVUNoYXIgYyk7CisgICAgdm9pZCBlbWl0UnVsZSgpOworCisgICAgU3Rh
dGUgbV9zdGF0ZTsKKyAgICBWZWN0b3I8VUNoYXIsIDE2PiBtX3J1bGU7CisgICAgVmVjdG9yPFVD
aGFyPiBtX3J1bGVWYWx1ZTsKKworICAgIGJvb2wgbV9zY2FubmluZ0JvZHk7CisgICAgRG9jdW1l
bnQqIG1fZG9jdW1lbnQ7Cit9OworCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUw1UHJlbG9hZFNjYW5uZXIuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUw1UHJlbG9hZFNj
YW5uZXIuY3BwCmluZGV4IDBmZGM4ZjMwOWMzZGY0OGQ2M2VlZDgxNDhmOWY4MGVjZDk3OWIyMzEu
LjQ2NTI3ZjQ1ZDk3MmVkY2IyYTdjOTNlM2I4NzIzNzAwYjEwMmYyNzkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRN
TDVQcmVsb2FkU2Nhbm5lci5jcHAKQEAgLTExOSw3ICsxMTksOSBAQCBwcml2YXRlOgogCiBIVE1M
NVByZWxvYWRTY2FubmVyOjpIVE1MNVByZWxvYWRTY2FubmVyKERvY3VtZW50KiBkb2N1bWVudCkK
ICAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX2Nzc1NjYW5uZXIoZG9jdW1lbnQp
CiAgICAgLCBtX2JvZHlTZWVuKGZhbHNlKQorICAgICwgbV9pblN0eWxlKGZhbHNlKQogewogfQog
CkBAIC0xNDAsNiArMTQyLDE1IEBAIHZvaWQgSFRNTDVQcmVsb2FkU2Nhbm5lcjo6c2NhbigpCiAK
IHZvaWQgSFRNTDVQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Rva2VuKCkKIHsKKyAgICBpZiAobV9p
blN0eWxlKSB7CisgICAgICAgIGlmIChtX3Rva2VuLnR5cGUoKSA9PSBIVE1MNVRva2VuOjpDaGFy
YWN0ZXIpCisgICAgICAgICAgICBtX2Nzc1NjYW5uZXIuc2NhbihtX3Rva2VuLCBzY2FubmluZ0Jv
ZHkoKSk7CisgICAgICAgIGVsc2UgaWYgKG1fdG9rZW4udHlwZSgpID09IEhUTUw1VG9rZW46OkVu
ZFRhZykgeworICAgICAgICAgICAgbV9pblN0eWxlID0gZmFsc2U7CisgICAgICAgICAgICBtX2Nz
c1NjYW5uZXIucmVzZXQoKTsKKyAgICAgICAgfQorICAgIH0KKwogICAgIGlmIChtX3Rva2VuLnR5
cGUoKSAhPSBIVE1MNVRva2VuOjpTdGFydFRhZykKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDks
NyArMTYwLDE1IEBAIHZvaWQgSFRNTDVQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Rva2VuKCkKICAg
ICBpZiAodGFzay50YWdOYW1lKCkgPT0gYm9keVRhZykKICAgICAgICAgbV9ib2R5U2VlbiA9IHRy
dWU7CiAKLSAgICB0YXNrLnByZWxvYWQobV9kb2N1bWVudCwgbV9kb2N1bWVudC0+Ym9keSgpIHx8
IG1fYm9keVNlZW4pOworICAgIGlmICh0YXNrLnRhZ05hbWUoKSA9PSBzdHlsZVRhZykKKyAgICAg
ICAgbV9pblN0eWxlID0gdHJ1ZTsKKworICAgIHRhc2sucHJlbG9hZChtX2RvY3VtZW50LCBzY2Fu
bmluZ0JvZHkoKSk7Cit9CisKK2Jvb2wgSFRNTDVQcmVsb2FkU2Nhbm5lcjo6c2Nhbm5pbmdCb2R5
KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9kb2N1bWVudC0+Ym9keSgpIHx8IG1fYm9keVNlZW47
CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmgg
Yi9XZWJDb3JlL2h0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5oCmluZGV4IGIzNTM5YjBiMzUxMmRk
YjM2NDc2Mjk1ODRhNTZiNzg4YjM4YWM0YWUuLjUxYmUyMWFiNGZiMjAyMWI1ODc2NDg5MjY4MjY1
MTYyMmQzMWVjYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVy
LmgKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1UHJlbG9hZFNjYW5uZXIuaApAQCAtMjcsNiArMjcs
NyBAQAogI2lmbmRlZiBIVE1MNVByZWxvYWRTY2FubmVyX2gKICNkZWZpbmUgSFRNTDVQcmVsb2Fk
U2Nhbm5lcl9oCiAKKyNpbmNsdWRlICJDU1NQcmVsb2FkU2Nhbm5lci5oIgogI2luY2x1ZGUgIkhU
TUw1TGV4ZXIuaCIKICNpbmNsdWRlICJIVE1MNVRva2VuLmgiCiAjaW5jbHVkZSAiU2VnbWVudGVk
U3RyaW5nLmgiCkBAIC00NywxMiArNDgsMTUgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZv
aWQgcHJvY2Vzc1Rva2VuKCk7CisgICAgYm9vbCBzY2FubmluZ0JvZHkoKSBjb25zdDsKIAogICAg
IERvY3VtZW50KiBtX2RvY3VtZW50OwogICAgIFNlZ21lbnRlZFN0cmluZyBtX3NvdXJjZTsKICAg
ICBIVE1MNUxleGVyIG1fbGV4ZXI7CiAgICAgSFRNTDVUb2tlbiBtX3Rva2VuOworICAgIENTU1By
ZWxvYWRTY2FubmVyIG1fY3NzU2Nhbm5lcjsKICAgICBib29sIG1fYm9keVNlZW47CisgICAgYm9v
bCBtX2luU3R5bGU7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59057</attachid>
            <date>2010-06-17 18:20:39 -0700</date>
            <delta_ts>2010-06-17 18:32:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40802-20100617182037.patch</filename>
            <type>text/plain</type>
            <size>25187</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2ZjU3ODgyMjg0OGUxZTZkZTAwNTRjZGY1ZTc2OTA0Y2U5ZWRjZTYzLi45NzFiZjJm
ZmM4YzAzOWMzNTAxZjhjZDE3OGIyMmMxNjQzNGY4ZWIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAK
KzIwMTAtMDYtMTcgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQ1NTIHNjYW5uaW5nIHRv
IEhUTUw1UHJlbG9hZFNjYW5uZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwODAyCisKKyAgICAgICAgQWRkIGEgdGVzdGluZyBmcmFtZXdvcmsgZm9y
IHRoZSBwcmVsb2FkIHNjYW5uZXIuICBUaGVzZSB0ZXN0IGNvdmVyCisgICAgICAgIGJhc2ljIHBy
ZWxvYWRlciBiZWhhdmlvci4gIFRoZXkgaGF2ZSBhIHNtYWxsIGhhY2sgdG8gd29yayBhcm91bmQg
YSBidWcKKyAgICAgICAgaW4gdGhlIHByZWxvYWQgc2Nhbm5lciBkaXNjb3ZlcmVkIHdoaWxlIHdy
aXRpbmcgdGhlIHRlc3RzLiAgSSdsbCBmaXgKKyAgICAgICAgdGhlIGJ1ZyBhbmQgcmVtb3ZlIHRo
ZSBoYWNrIGluIGEgZm9sbG93dXAgcGF0Y2guCisKKyAgICAgICAgKiBmYXN0L3ByZWxvYWRlci9p
bWFnZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcHJlbG9hZGVyL2ltYWdl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcHJlbG9hZGVyL2xpbmstZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3ByZWxvYWRlci9saW5rLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvcHJlbG9hZGVyL3Jlc291cmNlcy9pbWFnZTEucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3ByZWxvYWRlci9yZXNvdXJjZXMvbGluazEuY3NzOiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L3ByZWxvYWRlci9yZXNvdXJjZXMvc2NyaXB0MS5qczogQWRkZWQuCisgICAgICAgICog
ZmFzdC9wcmVsb2FkZXIvcmVzb3VyY2VzL3N0eWxlMS5jc3M6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcHJlbG9hZGVyL3NjcmlwdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cHJlbG9hZGVyL3NjcmlwdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3ByZWxvYWRlci9z
dHlsZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcHJlbG9hZGVyL3N0eWxl
Lmh0bWw6IEFkZGVkLgorCiAyMDEwLTA2LTE2ICBEdW1pdHJ1IERhbmlsaXVjICA8ZHVtaUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvaW1hZ2UtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvaW1hZ2UtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYw
YWJlMzEzNDdiNmYyYjUwMGFmNDQwMjgxOTQ4NWJhYmJiNTIzOWYKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9pbWFnZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACitpbWFnZTEucG5nIGhhcyBNSU1FIHR5cGUgaW1hZ2UvcG5nCitUaGlzIHRlc3QgcmVx
dWlyZXMgRHVtcFJlbmRlclRyZWUgdG8gc2VlIHRoZSBsb2cgb2Ygd2hhdCByZXNvdXJjZXMgYXJl
IGxvYWRlZC4KKworPGltZyBzcmM9cmVzb3VyY2VzL2ltYWdlMS5wbmc+CisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL2ltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3ByZWxvYWRlci9pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI4MjUwYTRjZjVlN2YzYWY3YmNkZWJh
MWQ5ZTcxYzVjYzhhNTY3Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3By
ZWxvYWRlci9pbWFnZS5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxib2R5PgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlUmVz
cG9uc2VNSU1FVHlwZXMoKTsKK30KKzwvc2NyaXB0PgorVGhpcyB0ZXN0IHJlcXVpcmVzIER1bXBS
ZW5kZXJUcmVlIHRvIHNlZSB0aGUgbG9nIG9mIHdoYXQgcmVzb3VyY2VzIGFyZSBsb2FkZWQuCis8
c2NyaXB0IHNyYz1yZXNvdXJjZXMvbm9uLWV4aXN0YW50LmpzPjwvc2NyaXB0PgorPHNjcmlwdD5k
b2N1bWVudC53cml0ZSgiPHBsYWluIiArICJ0ZXh0PiIpOzwvc2NyaXB0PgorPGltZyBzcmM9cmVz
b3VyY2VzL2ltYWdlMS5wbmc+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRl
ci9saW5rLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL2xpbmstZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2YmE1N2RjNWRjYWU5ZjU3M2ZlMTY5YjE0NWQ4MjM3ZDAx
ZmFlMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9saW5r
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKK2xpbmsxLmNzcyBoYXMgTUlNRSB0eXBlIHRl
eHQvY3NzCitUaGlzIHRlc3QgcmVxdWlyZXMgRHVtcFJlbmRlclRyZWUgdG8gc2VlIHRoZSBsb2cg
b2Ygd2hhdCByZXNvdXJjZXMgYXJlIGxvYWRlZC4KKworPGxpbmsgaHJlZj1yZXNvdXJjZXMvbGlu
azEuY3NzIHJlbD0ic3R5bGVzaGVldCI+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
cHJlbG9hZGVyL2xpbmsuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL2xpbmsuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xYjhiOWIxYjgyMjMwYmFmYTEwODVhYzI0OGQ3ZDE0ODUzMGY3ODdlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvbGluay5odG1sCkBA
IC0wLDAgKzEsMTEgQEAKKzxib2R5PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcFJlc291cmNlUmVzcG9uc2VNSU1FVHlwZXMoKTsKK30K
Kzwvc2NyaXB0PgorVGhpcyB0ZXN0IHJlcXVpcmVzIER1bXBSZW5kZXJUcmVlIHRvIHNlZSB0aGUg
bG9nIG9mIHdoYXQgcmVzb3VyY2VzIGFyZSBsb2FkZWQuCis8c2NyaXB0IHNyYz1yZXNvdXJjZXMv
bm9uLWV4aXN0YW50LmpzPjwvc2NyaXB0PgorPHNjcmlwdD5kb2N1bWVudC53cml0ZSgiPHBsYWlu
IiArICJ0ZXh0PiIpOzwvc2NyaXB0PgorPGxpbmsgaHJlZj1yZXNvdXJjZXMvbGluazEuY3NzIHJl
bD0ic3R5bGVzaGVldCI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9y
ZXNvdXJjZXMvaW1hZ2UxLnBuZyBiL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3Jlc291cmNl
cy9pbWFnZTEucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMy
ZTQ4YzUzOTEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3Jlc291cmNl
cy9saW5rMS5jc3MgYi9MYXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9yZXNvdXJjZXMvbGluazEu
Y3NzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU2OWRlMjliYjJkMWQ2NDM0YjhiMjlhZTc3NWFkOGMyZTQ4YzUzOTEK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3Jlc291cmNlcy9zY3JpcHQx
LmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvcmVzb3VyY2VzL3NjcmlwdDEuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTY5ZGUyOWJiMmQxZDY0MzRiOGIyOWFlNzc1YWQ4YzJlNDhjNTM5MQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvcmVzb3VyY2VzL3N0eWxlMS5jc3MgYi9M
YXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9yZXNvdXJjZXMvc3R5bGUxLmNzcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNjlkZTI5YmIyZDFkNjQzNGI4YjI5YWU3NzVhZDhjMmU0OGM1MzkxCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9zY3JpcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZmFzdC9wcmVsb2FkZXIvc2NyaXB0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYjg4OWRk
ZTQyOGMyYjQyZWI1NDFlN2ZkY2RhZDc5MWJlNTE2MjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvc2NyaXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUg
QEAKK3NjcmlwdDEuanMgaGFzIE1JTUUgdHlwZSBhcHBsaWNhdGlvbi94LWphdmFzY3JpcHQKK1Ro
aXMgdGVzdCByZXF1aXJlcyBEdW1wUmVuZGVyVHJlZSB0byBzZWUgdGhlIGxvZyBvZiB3aGF0IHJl
c291cmNlcyBhcmUgbG9hZGVkLgorCis8c2NyaXB0IHNyYz1yZXNvdXJjZXMvc2NyaXB0MS5qcz48
L3NjcmlwdD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvc2NyaXB0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3ByZWxvYWRlci9zY3JpcHQuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41N2ZmNzgxOWQ4NTVkNWZiMTYwNjY5NGY4YWU0Yzk4Njg1NGRkZWIzCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvc2NyaXB0Lmh0bWwKQEAgLTAsMCArMSwx
MSBAQAorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpOworfQorPC9zY3JpcHQ+
CitUaGlzIHRlc3QgcmVxdWlyZXMgRHVtcFJlbmRlclRyZWUgdG8gc2VlIHRoZSBsb2cgb2Ygd2hh
dCByZXNvdXJjZXMgYXJlIGxvYWRlZC4KKzxzY3JpcHQgc3JjPXJlc291cmNlcy9ub24tZXhpc3Rh
bnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKCI8cGxhaW4iICsgInRleHQ+
Iik7PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz1yZXNvdXJjZXMvc2NyaXB0MS5qcz48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3N0eWxlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3N0eWxlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xNDVkZjBlY2FmZDY2Yzg1YTg5Y2U4NzE2MDZhZDViNDBlNDExZjEyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvc3R5bGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorc3R5bGUxLmNzcyBoYXMgTUlNRSB0eXBlIHRleHQvY3NzCitUaGlzIHRl
c3QgcmVxdWlyZXMgRHVtcFJlbmRlclRyZWUgdG8gc2VlIHRoZSBsb2cgb2Ygd2hhdCByZXNvdXJj
ZXMgYXJlIGxvYWRlZC4KKworPHN0eWxlPgorQGltcG9ydCAicmVzb3VyY2VzL3N0eWxlMS5jc3Mi
OworPC9zdHlsZT4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9wcmVsb2FkZXIvc3R5
bGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3N0eWxlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjMxYmI3OGNlNGE5MjIwYzU5Y2NmNzYyMTUzYmY4YjhlYmI4NWZkZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcHJlbG9hZGVyL3N0eWxlLmh0bWwKQEAgLTAsMCArMSwx
MyBAQAorPGJvZHk+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wUmVzb3VyY2VSZXNwb25zZU1JTUVUeXBlcygpOworfQorPC9zY3JpcHQ+
CitUaGlzIHRlc3QgcmVxdWlyZXMgRHVtcFJlbmRlclRyZWUgdG8gc2VlIHRoZSBsb2cgb2Ygd2hh
dCByZXNvdXJjZXMgYXJlIGxvYWRlZC4KKzxzY3JpcHQgc3JjPXJlc291cmNlcy9ub24tZXhpc3Rh
bnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PmRvY3VtZW50LndyaXRlKCI8cGxhaW4iICsgInRleHQ+
Iik7PC9zY3JpcHQ+Cis8c3R5bGU+CitAaW1wb3J0ICJyZXNvdXJjZXMvc3R5bGUxLmNzcyI7Cis8
L3N0eWxlPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9BbmRyb2lkLm1rIGIvV2ViQ29yZS9BbmRyb2lk
Lm1rCmluZGV4IDM2YzE3OTk3YjFkNTJiZGI4ZmRlNzFlNzc3ZWIzY2QyOWU1MWJhMTIuLmRmMjVk
NTY5NDI5NDgxMWIxNzE3MWIxNWYzZmYwZmE2ODg1Y2YyNmMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
QW5kcm9pZC5taworKysgYi9XZWJDb3JlL0FuZHJvaWQubWsKQEAgLTI0NCw2ICsyNDQsNyBAQCBM
T0NBTF9TUkNfRklMRVMgOj0gJChMT0NBTF9TUkNfRklMRVMpIFwKIAlodG1sL0FzeW5jSW1hZ2VS
ZXNpemVyLmNwcCBcCiAJaHRtbC9CbG9iLmNwcCBcCiAJaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3Bw
IFwKKwlodG1sL0NTU1ByZWxvYWRTY2FubmVyLmNwcCBcCiAJaHRtbC9ET01Gb3JtRGF0YS5jcHAg
XAogCWh0bWwvRmlsZS5jcHAgXAogCWh0bWwvRmlsZUxpc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE4YmI0MjNjNWNiMDNk
YWJlMjYxNGQ2YzdjYWZkY2FlNmQ0MzU3Ni4uYTcwYzAwMzYwMGIxYmRjMTg5YWI4YjQ1MTI0YTQ2
Y2M0NTFmYmYxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAxMC0wNi0xNyAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBDU1Mgc2Nhbm5pbmcgdG8gSFRNTDVQcmVsb2FkU2Nhbm5lcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA4MDIKKworICAgICAgICBU
aGlzIHBhdGNoIGp1c3QgY3JpYnMgdGhlIENTUyBwcmVsb2FkIHNjYW5uaW5nIGFsZ29yaXRobSBm
cm9tIHRoZSBvbGQKKyAgICAgICAgcHJlbG9hZCBzY2FubmVyLiAgV2UgYWxzbyBpbnZlbnRlZCBh
IHdheSBvZiB0ZXN0aW5nIHRoZSBwcmVsb2FkCisgICAgICAgIHNjYW5uZXIuCisKKyAgICAgICAg
VGVzdHM6IGZhc3QvcHJlbG9hZGVyL2ltYWdlLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvcHJl
bG9hZGVyL2xpbmsuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9wcmVsb2FkZXIvc2NyaXB0Lmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvcHJlbG9hZGVyL3N0eWxlLmh0bWwKKworICAgICAgICAq
IEFuZHJvaWQubWs6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29y
ZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKyAgICAgICAgKiBodG1sL0NTU1ByZWxvYWRTY2FubmVyLmNwcDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjppc1doaXRlc3BhY2UpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9h
ZFNjYW5uZXI6OkNTU1ByZWxvYWRTY2FubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByZWxv
YWRTY2FubmVyOjpyZXNldCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5lcjo6
c2Nhbik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmVsb2FkU2Nhbm5lcjo6dG9rZW5pemUpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTUHJlbG9hZFNjYW5uZXI6OmVtaXRSdWxlKToKKyAgICAgICAg
KiBodG1sL0NTU1ByZWxvYWRTY2FubmVyLmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Q1NT
UHJlbG9hZFNjYW5uZXI6Oik6CisgICAgICAgICogaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1UHJlbG9hZFNjYW5uZXI6OkhUTUw1UHJlbG9hZFNj
YW5uZXIpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTDVQcmVsb2FkU2Nhbm5lcjo6cHJvY2Vzc1Rv
a2VuKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUw1UHJlbG9hZFNjYW5uZXI6OnNjYW5uaW5nQm9k
eSk6CisgICAgICAgICogaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmg6CisKIDIwMTAtMDYtMTYg
IER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFt
IGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCA0OWExYzhiNTk5ZDQ2MjExZTdlYTNlODNl
N2QxZDc1YmJhMGI0ZjI5Li4yNGMxMWVmZWNkYTkzMjQ2NWNiMWFhOTBmYTI0OWJiZGQ1OGU0MWM0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KQEAgLTEwNTQsNiArMTA1NCw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2Vi
Q29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9Db2xsZWN0aW9u
Q2FjaGUuaCBcCiAJV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmggXAorCVdlYkNvcmUvaHRt
bC9DU1NQcmVsb2FkU2Nhbm5lci5jcHAgXAorCVdlYkNvcmUvaHRtbC9DU1NQcmVsb2FkU2Nhbm5l
ci5oIFwKIAlXZWJDb3JlL2h0bWwvRGF0YUdyaWRDb2x1bW4uY3BwIFwKIAlXZWJDb3JlL2h0bWwv
RGF0YUdyaWRDb2x1bW4uaCBcCiAJV2ViQ29yZS9odG1sL0RhdGFHcmlkQ29sdW1uTGlzdC5jcHAg
XApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9XZWJDb3JlL1dlYkNvcmUuZ3lw
aQppbmRleCAwYzBmNTgwYjU2ZjdiM2RlZjk3NzJlMDE2ZjBmOWZmY2FkYjFiODI2Li42YjdiYjhh
YjAxYjJhMzk2ZGE3NWIyYmZjNzkyNTYwMjYzZWE2OGFiIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMTQzOSw2ICsxNDM5LDgg
QEAKICAgICAgICAgICAgICdodG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAnLAogICAgICAgICAgICAg
J2h0bWwvQ29sbGVjdGlvbkNhY2hlLmgnLAogICAgICAgICAgICAgJ2h0bWwvQ29sbGVjdGlvblR5
cGUuaCcsCisgICAgICAgICAgICAnaHRtbC9DU1NQcmVsb2FkU2Nhbm5lci5jcHAnLAorICAgICAg
ICAgICAgJ2h0bWwvQ1NTUHJlbG9hZFNjYW5uZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9EYXRh
R3JpZENvbHVtbi5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvRGF0YUdyaWRDb2x1bW4uaCcsCiAg
ICAgICAgICAgICAnaHRtbC9ET01EYXRhR3JpZERhdGFTb3VyY2UuY3BwJywKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDA2ZGE5YTIw
NjVlOWEzMmU2ZDY2NDliYzVjYmEwMzNhNDRjYjA1NGMuLjRiMzJlMTUzMmM3YTJlOGJhOWQ2ZWQ1
ZTAwZjM2NTQzMmNmNzIzNGIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIv
V2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNTk4LDYgKzU5OCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAgXAogICAgIGh0bWwvY2Fu
dmFzL0NhbnZhc1N0eWxlLmNwcCBcCiAgICAgaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKKyAg
ICBodG1sL0NTU1ByZWxvYWRTY2FubmVyLmNwcCBcCiAgICAgaHRtbC9EYXRhR3JpZENvbHVtbi5j
cHAgXAogICAgIGh0bWwvRGF0YUdyaWRDb2x1bW5MaXN0LmNwcCBcCiAgICAgaHRtbC9EYXRlQ29t
cG9uZW50cy5jcHAgXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvaiBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMTA4
ODk1ZWFkZmNkNTgzOTEzNzg4Y2I3MTM5ZWFlMzJlNGYzYTc0NS4uMGU3Yzg4ZDJlNzVhM2U0MzY3
ZmE0OWQ5Yjk4M2EzMzI3NDkzZTk0OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCkBAIC0zMzIwOSw2ICszMzIwOSwxNCBAQAogCQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZp
bGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENTU1ByZWxvYWRTY2FubmVyLmNwcCINCisJ
CQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxc
Q1NTUHJlbG9hZFNjYW5uZXIuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJ
CQlSZWxhdGl2ZVBhdGg9Ii4uXGh0bWxcRGF0YUdyaWRDb2x1bW4uY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
YzY0Mjc3ZDM1M2U5N2Y0MzVjZWVkZTNhNjY0MTE3NzFmNjJhYTM5NC4uNThiZDFlYjUyY2MxZjBl
NDYwNDE2NWZlYTk0MWRhM2VhZDIzMjQ0ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTI1NDAsNiArMjU0MCw4IEBACiAJCTk3Mzg4OUExMTE2RUE5REMw
MEFERjMxMyAvKiBEb2N1bWVudFdyaXRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTczODg5OUYxMTZFQTlEQzAwQURGMzEzIC8qIERvY3VtZW50V3Jp
dGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
OTczRTMyNTYxMDg4M0I3QzAwNUJDNDkzIC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3M0UzMjU0MTA4ODNC
N0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5jcHAgKi87IH07CiAJCTk3M0UzMjU3
MTA4ODNCN0MwMDVCQzQ5MyAvKiBSZXNvdXJjZUxvYWROb3RpZmllci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTczRTMyNTUxMDg4M0I3QzAwNUJDNDkz
IC8qIFJlc291cmNlTG9hZE5vdGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTc2RTJCQTcxMUNBRTRERTAwNkM1NkEwIC8qIENTU1ByZWxv
YWRTY2FubmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3NkUyQkE1MTFDQUU0REUwMDZDNTZBMCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5jcHAgKi87
IH07CisJCTk3NkUyQkE4MTFDQUU0REUwMDZDNTZBMCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc2RTJCQTYxMUNB
RTRERTAwNkM1NkEwIC8qIENTU1ByZWxvYWRTY2FubmVyLmggKi87IH07CiAJCTk3NkU4OTYwMTFD
MENBM0EwMEVBOUNBOSAvKiBIVE1MNUVudGl0eVBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NzZFODk1RTExQzBDQTNBMDBFQTlDQTkgLyog
SFRNTDVFbnRpdHlQYXJzZXIuY3BwICovOyB9OwogCQk5NzZFODk2MTExQzBDQTNBMDBFQTlDQTkg
LyogSFRNTDVFbnRpdHlQYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk3NkU4OTVGMTFDMENBM0EwMEVBOUNBOSAvKiBIVE1MNUVudGl0eVBhcnNl
ci5oICovOyB9OwogCQk5NzlGNDNEMzEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVs
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5
RjQzRDExMDc1RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLzsgfTsKQEAg
LTgxMjAsNiArODEyMiw4IEBACiAJCTk3Mzg4OTlGMTE2RUE5REMwMEFERjMxMyAvKiBEb2N1bWVu
dFdyaXRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEb2N1bWVudFdyaXRl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5NzNFMzI1NDEwODgzQjdDMDA1QkM0
OTMgLyogUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gUmVzb3VyY2VMb2FkTm90aWZpZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5NzNFMzI1NTEwODgzQjdDMDA1QkM0OTMgLyogUmVzb3VyY2VMb2FkTm90aWZp
ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVzb3VyY2VMb2FkTm90aWZp
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTc2RTJCQTUxMUNBRTRERTAwNkM1
NkEwIC8qIENTU1ByZWxvYWRTY2FubmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENTU1ByZWxvYWRTY2FubmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTc2RTJCQTYxMUNBRTRERTAwNkM1NkEwIC8qIENTU1ByZWxvYWRTY2FubmVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ByZWxvYWRTY2FubmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkU4OTVFMTFDMENBM0EwMEVBOUNBOSAvKiBIVE1M
NUVudGl0eVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBI
VE1MNUVudGl0eVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3NkU4
OTVGMTFDMENBM0EwMEVBOUNBOSAvKiBIVE1MNUVudGl0eVBhcnNlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MNUVudGl0eVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVs
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVkaXJlY3RTY2hl
ZHVsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTMzOTksNiArMTM0MDMs
OCBAQAogCQkJCTJFRDYwOUJBMTE0NUIwNzEwMEM4Njg0RSAvKiBET01Gb3JtRGF0YS5jcHAgKi8s
CiAJCQkJMkVENjA5QkIxMTQ1QjA3MTAwQzg2ODRFIC8qIERPTUZvcm1EYXRhLmggKi8sCiAJCQkJ
MkUwODg4QzMxMTQ4ODNBOTAwQUY0MjY1IC8qIERPTUZvcm1EYXRhLmlkbCAqLywKKwkJCQk5NzZF
MkJBNTExQ0FFNERFMDA2QzU2QTAgLyogQ1NTUHJlbG9hZFNjYW5uZXIuY3BwICovLAorCQkJCTk3
NkUyQkE2MTFDQUU0REUwMDZDNTZBMCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5oICovLAogCQkJCUJD
REJCOENDMEUwODk1ODQwMEM2MEZGNiAvKiBGaWxlLmNwcCAqLywKIAkJCQlCQ0RCQjhDQjBFMDg5
NTg0MDBDNjBGRjYgLyogRmlsZS5oICovLAogCQkJCUJDMTg4MUQ5MEUwOEM0RUQwMDA0OEMxMyAv
KiBGaWxlLmlkbCAqLywKQEAgLTE5NDI1LDYgKzE5NDMxLDcgQEAKIAkJCQk4MTZDODBBRjExQkU5
OTBEMDA5QTQ1RTkgLyogSlNJREJLZXlSYW5nZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDg1M0Q3
MzQxMUM5MTA5MDAwQjJGRDQyIC8qIFNWR1RleHRRdWVyeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDlGRkJGM0YxMUM5M0VFMzAwNkE3MTE4IC8qIFdlYkdMTGF5ZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTk3NkUyQkE4MTFDQUU0REUwMDZDNTZBMCAvKiBDU1NQcmVsb2FkU2Nhbm5lci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yMTczMiw2ICsyMTczOSw3IEBACiAJCQkJMDg1M0Q3MzIxMUM5MTA5MDAw
QjJGRDQyIC8qIFNWR1RleHRDaHVua0xheW91dEluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDg1M0Q3MzMxMUM5MTA5MDAwQjJGRDQyIC8qIFNWR1RleHRRdWVyeS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk0OUZGQkY0MDExQzkzRUUzMDA2QTcxMTggLyogV2ViR0xMYXllci5tbSBpbiBTb3Vy
Y2VzICovLAorCQkJCTk3NkUyQkE3MTFDQUU0REUwMDZDNTZBMCAvKiBDU1NQcmVsb2FkU2Nhbm5l
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DU1NQcmVsb2Fk
U2Nhbm5lci5jcHAgYi9XZWJDb3JlL2h0bWwvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIyZTkzM2FiZTZiMGIzZTdjYzc1MTY2NGRkNDhkODM4ZmYzYWYyM2YKLS0tIC9kZXYvbnVs
bAorKysgYi9XZWJDb3JlL2h0bWwvQ1NTUHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0wLDAgKzEsMTYw
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4gaHR0cDovL3d3
dy50b3JjaG1vYmlsZS5jb20vCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDU1NQcmVsb2FkU2Nhbm5lci5o
IgorCisjaW5jbHVkZSAiQ1NTSGVscGVyLmgiCisjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVl
dC5oIgorI2luY2x1ZGUgIkRvY0xvYWRlci5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiSFRNTDVUb2tlbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxp
bmUgYm9vbCBpc1doaXRlc3BhY2UoVUNoYXIgYykKK3sKKyAgICByZXR1cm4gYyA9PSAnICcgfHwg
YyA9PSAnXG4nIHx8IGMgPT0gJ1xyJyB8fCBjID09ICdcdCc7Cit9CisKK0NTU1ByZWxvYWRTY2Fu
bmVyOjpDU1NQcmVsb2FkU2Nhbm5lcihEb2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBtX2RvY3Vt
ZW50KGRvY3VtZW50KQoreworICAgIHJlc2V0KCk7Cit9CisKK3ZvaWQgQ1NTUHJlbG9hZFNjYW5u
ZXI6OnJlc2V0KCkKK3sKKyAgICBtX3N0YXRlID0gSW5pdGlhbDsKKyAgICBtX3J1bGUuY2xlYXIo
KTsKKyAgICBtX3J1bGVWYWx1ZS5jbGVhcigpOworfQorCit2b2lkIENTU1ByZWxvYWRTY2FubmVy
OjpzY2FuKGNvbnN0IEhUTUw1VG9rZW4mIHRva2VuLCBib29sIHNjYW5uaW5nQm9keSkKK3sKKyAg
ICBtX3NjYW5uaW5nQm9keSA9IHNjYW5uaW5nQm9keTsKKworICAgIGNvbnN0IEhUTUw1VG9rZW46
OkRhdGFWZWN0b3ImIGNoYXJhY3RlcnMgPSB0b2tlbi5jaGFyYWN0ZXJzKCk7CisgICAgZm9yIChI
VE1MNVRva2VuOjpEYXRhVmVjdG9yOjpjb25zdF9pdGVyYXRvciBpdGVyID0gY2hhcmFjdGVycy5i
ZWdpbigpOworICAgICAgICAgaXRlciAhPSBjaGFyYWN0ZXJzLmVuZCgpOyArK2l0ZXIpIHsKKyAg
ICAgICAgdG9rZW5pemUoKml0ZXIpOworICAgIH0KK30KKworaW5saW5lIHZvaWQgQ1NTUHJlbG9h
ZFNjYW5uZXI6OnRva2VuaXplKFVDaGFyIGMpCit7CisgICAgLy8gV2UgYXJlIGp1c3QgaW50ZXJl
c3RlZCBpbiBAaW1wb3J0IHJ1bGVzLCBubyBuZWVkIGZvciByZWFsIHRva2VuaXphdGlvbiBoZXJl
CisgICAgLy8gU2VhcmNoaW5nIGZvciBvdGhlciB0eXBlcyBvZiByZXNvdXJjZXMgaXMgcHJvYmFi
bHkgbG93IHBheW9mZi4KKyAgICBzd2l0Y2ggKG1fc3RhdGUpIHsKKyAgICBjYXNlIEluaXRpYWw6
CisgICAgICAgIGlmIChjID09ICdAJykKKyAgICAgICAgICAgIG1fc3RhdGUgPSBSdWxlU3RhcnQ7
CisgICAgICAgIGVsc2UgaWYgKGMgPT0gJy8nKQorICAgICAgICAgICAgbV9zdGF0ZSA9IE1heWJl
Q29tbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNYXliZUNvbW1lbnQ6CisgICAgICAg
IGlmIChjID09ICcqJykKKyAgICAgICAgICAgIG1fc3RhdGUgPSBDb21tZW50OworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBDb21tZW50OgorICAgICAgICBpZiAoYyA9PSAnKicpCisgICAgICAgICAgICBtX3N0YXRl
ID0gTWF5YmVDb21tZW50RW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE1heWJlQ29tbWVu
dEVuZDoKKyAgICAgICAgaWYgKGMgPT0gJy8nKQorICAgICAgICAgICAgbV9zdGF0ZSA9IEluaXRp
YWw7CisgICAgICAgIGVsc2UgaWYgKGMgPT0gJyonKQorICAgICAgICAgICAgOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX3N0YXRlID0gQ29tbWVudDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBSdWxlU3RhcnQ6CisgICAgICAgIGlmICgoYyA+PSAnQScgJiYgYyA8PSAnWicpIHx8IChj
ID49ICdhJyAmJiBjIDw9ICd6JykpIHsKKyAgICAgICAgICAgIG1fcnVsZS5jbGVhcigpOworICAg
ICAgICAgICAgbV9ydWxlVmFsdWUuY2xlYXIoKTsKKyAgICAgICAgICAgIG1fcnVsZS5hcHBlbmQo
Yyk7CisgICAgICAgICAgICBtX3N0YXRlID0gUnVsZTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBtX3N0YXRlID0gSW5pdGlhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSdWxlOgor
ICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGMpKQorICAgICAgICAgICAgbV9zdGF0ZSA9IEFmdGVy
UnVsZTsKKyAgICAgICAgZWxzZSBpZiAoYyA9PSAnOycpCisgICAgICAgICAgICBtX3N0YXRlID0g
SW5pdGlhbDsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9ydWxlLmFwcGVuZChjKTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBBZnRlclJ1bGU6CisgICAgICAgIGlmIChpc1doaXRlc3Bh
Y2UoYykpCisgICAgICAgICAgICA7CisgICAgICAgIGVsc2UgaWYgKGMgPT0gJzsnKQorICAgICAg
ICAgICAgbV9zdGF0ZSA9IEluaXRpYWw7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgbV9z
dGF0ZSA9IFJ1bGVWYWx1ZTsKKyAgICAgICAgICAgIG1fcnVsZVZhbHVlLmFwcGVuZChjKTsKKyAg
ICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIFJ1bGVWYWx1ZToKKyAgICAgICAgaWYg
KGlzV2hpdGVzcGFjZShjKSkKKyAgICAgICAgICAgIG1fc3RhdGUgPSBBZnRlclJ1bGVWYWx1ZTsK
KyAgICAgICAgZWxzZSBpZiAoYyA9PSAnOycpIHsKKyAgICAgICAgICAgIGVtaXRSdWxlKCk7Cisg
ICAgICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsKKyAgICAgICAgfSBlbHNlIAorICAgICAgICAg
ICAgbV9ydWxlVmFsdWUuYXBwZW5kKGMpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEFmdGVy
UnVsZVZhbHVlOgorICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlKGMpKQorICAgICAgICAgICAgOwor
ICAgICAgICBlbHNlIGlmIChjID09ICc7JykgeworICAgICAgICAgICAgZW1pdFJ1bGUoKTsKKyAg
ICAgICAgICAgIG1fc3RhdGUgPSBJbml0aWFsOworICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgLy8gRklYTUU6IG1lZGlhIHJ1bGVzCisgICAgICAgICAgICBtX3N0YXRlID0gSW5pdGlhbDsK
KyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK3ZvaWQgQ1NTUHJlbG9hZFNj
YW5uZXI6OmVtaXRSdWxlKCkKK3sKKyAgICBTdHJpbmcgcnVsZShtX3J1bGUuZGF0YSgpLCBtX3J1
bGUuc2l6ZSgpKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UocnVsZSwgImltcG9ydCIpICYm
ICFtX3J1bGVWYWx1ZS5pc0VtcHR5KCkpIHsKKyAgICAgICAgU3RyaW5nIHZhbHVlKG1fcnVsZVZh
bHVlLmRhdGEoKSwgbV9ydWxlVmFsdWUuc2l6ZSgpKTsKKyAgICAgICAgU3RyaW5nIHVybCA9IGRl
cHJlY2F0ZWRQYXJzZVVSTCh2YWx1ZSk7CisgICAgICAgIGlmICghdXJsLmlzRW1wdHkoKSkKKyAg
ICAgICAgICAgIG1fZG9jdW1lbnQtPmRvY0xvYWRlcigpLT5wcmVsb2FkKENhY2hlZFJlc291cmNl
OjpDU1NTdHlsZVNoZWV0LCB1cmwsIFN0cmluZygpLCBtX3NjYW5uaW5nQm9keSk7CisgICAgfQor
ICAgIG1fcnVsZS5jbGVhcigpOworICAgIG1fcnVsZVZhbHVlLmNsZWFyKCk7Cit9CisKK30KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9DU1NQcmVsb2FkU2Nhbm5lci5oIGIvV2ViQ29yZS9odG1s
L0NTU1ByZWxvYWRTY2FubmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODVkZGFmNjBiZmY1ZjE5OGM4ZTFhMGM2
YTk4YjEzOGJmNjAzOWUxNQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9DU1NQcmVs
b2FkU2Nhbm5lci5oCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDgg
QXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdv
b2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIENTU1ByZWxvYWRTY2FubmVyX2gKKyNkZWZpbmUg
Q1NTUHJlbG9hZFNjYW5uZXJfaAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1l
bnQ7CitjbGFzcyBIVE1MNVRva2VuOworCitjbGFzcyBDU1NQcmVsb2FkU2Nhbm5lciA6IHB1Ymxp
YyBOb25jb3B5YWJsZSB7CitwdWJsaWM6CisgICAgQ1NTUHJlbG9hZFNjYW5uZXIoRG9jdW1lbnQq
KTsKKworICAgIHZvaWQgcmVzZXQoKTsKKyAgICB2b2lkIHNjYW4oY29uc3QgSFRNTDVUb2tlbiYs
IGJvb2wgc2Nhbm5pbmdCb2R5KTsKKworcHJpdmF0ZToKKyAgICBlbnVtIFN0YXRlIHsKKyAgICAg
ICAgSW5pdGlhbCwKKyAgICAgICAgTWF5YmVDb21tZW50LAorICAgICAgICBDb21tZW50LAorICAg
ICAgICBNYXliZUNvbW1lbnRFbmQsCisgICAgICAgIFJ1bGVTdGFydCwKKyAgICAgICAgUnVsZSwK
KyAgICAgICAgQWZ0ZXJSdWxlLAorICAgICAgICBSdWxlVmFsdWUsCisgICAgICAgIEFmdGVyUnVs
ZVZhbHVlCisgICAgfTsKKworICAgIGlubGluZSB2b2lkIHRva2VuaXplKFVDaGFyIGMpOworICAg
IHZvaWQgZW1pdFJ1bGUoKTsKKworICAgIFN0YXRlIG1fc3RhdGU7CisgICAgVmVjdG9yPFVDaGFy
LCAxNj4gbV9ydWxlOworICAgIFZlY3RvcjxVQ2hhcj4gbV9ydWxlVmFsdWU7CisKKyAgICBib29s
IG1fc2Nhbm5pbmdCb2R5OworICAgIERvY3VtZW50KiBtX2RvY3VtZW50OworfTsKKworfQorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmNwcCBi
L1dlYkNvcmUvaHRtbC9IVE1MNVByZWxvYWRTY2FubmVyLmNwcAppbmRleCAwZmRjOGYzMDljM2Rm
NDhkNjNlZWQ4MTQ4ZjlmODBlY2Q5NzliMjMxLi40NjUyN2Y0NWQ5NzJlZGNiMmE3YzkzZTNiODcy
MzcwMGIxMDJmMjc5IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTDVQcmVsb2FkU2Nhbm5l
ci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUw1UHJlbG9hZFNjYW5uZXIuY3BwCkBAIC0xMTks
NyArMTE5LDkgQEAgcHJpdmF0ZToKIAogSFRNTDVQcmVsb2FkU2Nhbm5lcjo6SFRNTDVQcmVsb2Fk
U2Nhbm5lcihEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQor
ICAgICwgbV9jc3NTY2FubmVyKGRvY3VtZW50KQogICAgICwgbV9ib2R5U2VlbihmYWxzZSkKKyAg
ICAsIG1faW5TdHlsZShmYWxzZSkKIHsKIH0KIApAQCAtMTQwLDYgKzE0MiwxNSBAQCB2b2lkIEhU
TUw1UHJlbG9hZFNjYW5uZXI6OnNjYW4oKQogCiB2b2lkIEhUTUw1UHJlbG9hZFNjYW5uZXI6OnBy
b2Nlc3NUb2tlbigpCiB7CisgICAgaWYgKG1faW5TdHlsZSkgeworICAgICAgICBpZiAobV90b2tl
bi50eXBlKCkgPT0gSFRNTDVUb2tlbjo6Q2hhcmFjdGVyKQorICAgICAgICAgICAgbV9jc3NTY2Fu
bmVyLnNjYW4obV90b2tlbiwgc2Nhbm5pbmdCb2R5KCkpOworICAgICAgICBlbHNlIGlmIChtX3Rv
a2VuLnR5cGUoKSA9PSBIVE1MNVRva2VuOjpFbmRUYWcpIHsKKyAgICAgICAgICAgIG1faW5TdHls
ZSA9IGZhbHNlOworICAgICAgICAgICAgbV9jc3NTY2FubmVyLnJlc2V0KCk7CisgICAgICAgIH0K
KyAgICB9CisKICAgICBpZiAobV90b2tlbi50eXBlKCkgIT0gSFRNTDVUb2tlbjo6U3RhcnRUYWcp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMTQ5LDcgKzE2MCwxNSBAQCB2b2lkIEhUTUw1UHJlbG9h
ZFNjYW5uZXI6OnByb2Nlc3NUb2tlbigpCiAgICAgaWYgKHRhc2sudGFnTmFtZSgpID09IGJvZHlU
YWcpCiAgICAgICAgIG1fYm9keVNlZW4gPSB0cnVlOwogCi0gICAgdGFzay5wcmVsb2FkKG1fZG9j
dW1lbnQsIG1fZG9jdW1lbnQtPmJvZHkoKSB8fCBtX2JvZHlTZWVuKTsKKyAgICBpZiAodGFzay50
YWdOYW1lKCkgPT0gc3R5bGVUYWcpCisgICAgICAgIG1faW5TdHlsZSA9IHRydWU7CisKKyAgICB0
YXNrLnByZWxvYWQobV9kb2N1bWVudCwgc2Nhbm5pbmdCb2R5KCkpOworfQorCitib29sIEhUTUw1
UHJlbG9hZFNjYW5uZXI6OnNjYW5uaW5nQm9keSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZG9j
dW1lbnQtPmJvZHkoKSB8fCBtX2JvZHlTZWVuOwogfQogCiB9CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5oIGIvV2ViQ29yZS9odG1sL0hUTUw1UHJlbG9hZFNj
YW5uZXIuaAppbmRleCBiMzUzOWIwYjM1MTJkZGIzNjQ3NjI5NTg0YTU2Yjc4OGIzOGFjNGFlLi41
MWJlMjFhYjRmYjIwMjFiNTg3NjQ4OTI2ODI2NTE2MjJkMzFlY2FiIDEwMDY0NAotLS0gYS9XZWJD
b3JlL2h0bWwvSFRNTDVQcmVsb2FkU2Nhbm5lci5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MNVBy
ZWxvYWRTY2FubmVyLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYgSFRNTDVQcmVsb2FkU2Nh
bm5lcl9oCiAjZGVmaW5lIEhUTUw1UHJlbG9hZFNjYW5uZXJfaAogCisjaW5jbHVkZSAiQ1NTUHJl
bG9hZFNjYW5uZXIuaCIKICNpbmNsdWRlICJIVE1MNUxleGVyLmgiCiAjaW5jbHVkZSAiSFRNTDVU
b2tlbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgpAQCAtNDcsMTIgKzQ4LDE1IEBA
IHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHByb2Nlc3NUb2tlbigpOworICAgIGJvb2wg
c2Nhbm5pbmdCb2R5KCkgY29uc3Q7CiAKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKICAgICBT
ZWdtZW50ZWRTdHJpbmcgbV9zb3VyY2U7CiAgICAgSFRNTDVMZXhlciBtX2xleGVyOwogICAgIEhU
TUw1VG9rZW4gbV90b2tlbjsKKyAgICBDU1NQcmVsb2FkU2Nhbm5lciBtX2Nzc1NjYW5uZXI7CiAg
ICAgYm9vbCBtX2JvZHlTZWVuOworICAgIGJvb2wgbV9pblN0eWxlOwogfTsKIAogfQo=
</data>
<flag name="review"
          id="45667"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>