<?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>29892</bug_id>
          
          <creation_ts>2009-09-29 13:04:06 -0700</creation_ts>
          <short_desc>Add support for URL patterns to user scripts and stylesheets</short_desc>
          <delta_ts>2009-09-29 17:33:32 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>aa</cc>
    
    <cc>abarth</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>151011</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-29 13:04:06 -0700</bug_when>
    <thetext>Add support for whitelist patterns to user scripts and stylesheets.

This bug just covers the WebCore level of support and not WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151015</commentid>
    <comment_count>1</comment_count>
      <attachid>40319</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-29 13:10:43 -0700</bug_when>
    <thetext>Created attachment 40319
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151114</commentid>
    <comment_count>2</comment_count>
      <attachid>40319</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-29 17:33:16 -0700</bug_when>
    <thetext>Comment on attachment 40319
Patch

This was reviewed by Jon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>151116</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2009-09-29 17:33:32 -0700</bug_when>
    <thetext>Fixed in r48912.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>40319</attachid>
            <date>2009-09-29 13:10:43 -0700</date>
            <delta_ts>2009-09-29 17:33:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>19700</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODg5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMDktMDktMjkgIERhdmUgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5ODkyCisgICAgICAgIEFkZCBzdXBw
b3J0IGZvciB3aGl0ZWxpc3QgcGF0dGVybnMgdG8gY29udHJvbCBjb25kaXRpb25hbCBpbmplY3Rp
b24gb2YgdXNlciBzY3JpcHRzIGFuZAorICAgICAgICB1c2VyIHN0eWxlc2hlZXRzLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cy4gTm90IHRlc3RhYmxlIHVudGlsIFdlYktpdCBwb3J0aW9uIGlzIGFk
ZGVkIGluIGZvbGxvd3VwIHBhdGNoLgorCisgICAgICAgICogR05VbWFrZWZpbGUuYW06CisgICAg
ICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIFdl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OnBhZ2VHcm91cFVzZXJTaGVldHMpOgorICAgICAgICAqIHBhZ2Uv
RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6OmluamVjdFVzZXJTY3JpcHRzRm9y
V29ybGQpOgorICAgICAgICAqIHBhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDogQWRkZWQu
CisgICAgICAgIChXZWJDb3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNQYXR0ZXJu
cyk6CisgICAgICAgIChXZWJDb3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlcyk6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNIb3N0KToKKyAgICAgICAg
KFdlYkNvcmU6Ok1hdGNoVGVzdGVyOjpNYXRjaFRlc3Rlcik6CisgICAgICAgIChXZWJDb3JlOjpN
YXRjaFRlc3Rlcjo6dGVzdFN0cmluZ0ZpbmlzaGVkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGNo
VGVzdGVyOjpwYXR0ZXJuU3RyaW5nRmluaXNoZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWF0Y2hU
ZXN0ZXI6OmVhdFdpbGRjYXJkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1hdGNoVGVzdGVyOjplYXRT
YW1lQ2hhcnMpOgorICAgICAgICAoV2ViQ29yZTo6TWF0Y2hUZXN0ZXI6OnRlc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6VXNlckNvbnRlbnRVUkxQYXR0ZXJuOjptYXRjaGVzUGF0aCk6CisgICAgICAg
ICogcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaDogQWRkZWQuCisgICAgICAgIChXZWJDb3Jl
OjpVc2VyQ29udGVudFVSTFBhdHRlcm46OlVzZXJDb250ZW50VVJMUGF0dGVybik6CisgICAgICAg
IChXZWJDb3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46OnNjaGVtZSk6CisgICAgICAgIChXZWJD
b3JlOjpVc2VyQ29udGVudFVSTFBhdHRlcm46Omhvc3QpOgorICAgICAgICAoV2ViQ29yZTo6VXNl
ckNvbnRlbnRVUkxQYXR0ZXJuOjpwYXRoKToKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJDb250ZW50
VVJMUGF0dGVybjo6bWF0Y2hTdWJkb21haW5zKToKKwogMjAwOS0wOS0yOSAgRHVtaXRydSBEYW5p
bGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KSW5kZXg6IFdlYkNvcmUvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9HTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDg3NjMpCisrKyBXZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMzQ5LDYgKzEzNDksOCBAQCB3ZWJjb3JlX3NvdXJj
ZXMgKz0gXAogCVdlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbkhhc2guaCBcCiAJV2ViQ29yZS9w
YWdlL1NldHRpbmdzLmNwcCBcCiAJV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggXAorCVdlYkNvcmUv
cGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIFwKKwlXZWJDb3JlL3BhZ2UvVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmggXAogCVdlYkNvcmUvcGFnZS9Vc2VyU2NyaXB0LmggXAogCVdlYkNvcmUv
cGFnZS9Vc2VyU2NyaXB0VHlwZXMuaCBcCiAJV2ViQ29yZS9wYWdlL1VzZXJTdHlsZVNoZWV0Lmgg
XApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLmd5cGkJKHJldmlzaW9uIDQ4NzYzKQorKysgV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHdvcmtp
bmcgY29weSkKQEAgLTE3MDIsNiArMTcwMiw4IEBACiAgICAgICAgICAgICAncGFnZS9TZWN1cml0
eU9yaWdpbkhhc2guaCcsCiAgICAgICAgICAgICAncGFnZS9TZXR0aW5ncy5jcHAnLAogICAgICAg
ICAgICAgJ3BhZ2UvU2V0dGluZ3MuaCcsCisgICAgICAgICAgICAncGFnZS9Vc2VyQ29udGVudFVS
TFBhdHRlcm4uY3BwJywKKyAgICAgICAgICAgICdwYWdlL1VzZXJDb250ZW50VVJMUGF0dGVybi5o
JywKICAgICAgICAgICAgICdwYWdlL1VzZXJTY3JpcHQuaCcsCiAgICAgICAgICAgICAncGFnZS9V
c2VyU2NyaXB0VHlwZXMuaCcsCiAgICAgICAgICAgICAncGFnZS9Vc2VyU3R5bGVTaGVldC5oJywK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LnBybwkocmV2aXNpb24gNDg3NjMpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTQyLDYgKzExNDIsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBwYWdlL1NlY3VyaXR5
T3JpZ2luLmNwcCBcCiAgICAgcGFnZS9TY3JlZW4uY3BwIFwKICAgICBwYWdlL1NldHRpbmdzLmNw
cCBcCisgICAgcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIFwKICAgICBwYWdlL1dpbmRv
d0ZlYXR1cmVzLmNwcCBcCiAgICAgcGFnZS9YU1NBdWRpdG9yLmNwcCBcCiAgICAgcGx1Z2lucy9Q
bHVnaW5EYXRhLmNwcCBcCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHJldmlzaW9uIDQ4NzYzKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
agkod29ya2luZyBjb3B5KQpAQCAtMTcwNzYsNiArMTcwNzYsMTQgQEAKIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHBhZ2VcU2V0dGluZ3MuaCINCiAJCQkJPg0KIAkJCTwvRmlsZT4NCisgICAgICAgICAg
ICAgICAgICAgICAgICA8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcVXNlckNvbnRl
bnRVUkxQYXR0ZXJuLmNwcCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisgICAgICAgICAgICAgICAg
ICAgICAgICA8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXHBhZ2VcVXNlckNvbnRlbnRVUkxQ
YXR0ZXJuLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQ
YXRoPSIuLlxwYWdlXFVzZXJTY3JpcHQuaCINCiAJCQkJPg0KSW5kZXg6IFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA0ODc2MykKKysrIFdlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC00MzA0
LDYgKzQzMDQsOCBAQAogCQlCQ0E4NDZENzBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGlj
YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBODQ2
RDUwREM2N0EzNTAwMjZDMzA5IC8qIFJlbmRlclJlcGxpY2EuaCAqLzsgfTsKIAkJQkNBODVBMTAw
QzNBRUFGNDAwNkY4MzA4IC8qIERPTVNWR051bWJlckludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0E4NUEwRjBDM0FFQUY0MDA2RjgzMDgg
LyogRE9NU1ZHTnVtYmVySW50ZXJuYWwuaCAqLzsgfTsKIAkJQkNBQTkwQzMwQTdFQkE2MDAwOEIx
MjI5IC8qIFNjcm9sbGJhci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0FBOTBDMjBBN0VCQTYwMDA4QjEyMjkgLyogU2Nyb2xsYmFyLmNwcCAqLzsg
fTsKKwkJQkNBQ0YzQkMxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FDRjNC
QTEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLzsgfTsKKwkJ
QkNBQ0YzQkQxMDcyOTIxQTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNBQ0YzQkIxMDcyOTIx
QTAwQzBDOEEzIC8qIFVzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyB9OwogCQlCQ0FFRkNBRTEw
MTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0FFRkNBRDEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdC
Q29sb3IubW0gKi87IH07CiAJCUJDQjE2QzE3MDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0IxNkJGRTA5
NzlDM0JEMDA0Njc3NDEgLyogQ2FjaGUuY3BwICovOyB9OwogCQlCQ0IxNkMxODA5NzlDM0JEMDA0
Njc3NDEgLyogQ2FjaGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDQjE2QkZGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05Mzg4LDYgKzkzOTAsOCBAQAog
CQlCQ0E4NDZENTBEQzY3QTM1MDAyNkMzMDkgLyogUmVuZGVyUmVwbGljYS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJSZXBsaWNhLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUJDQTg1QTBGMEMzQUVBRjQwMDZGODMwOCAvKiBET01TVkdOdW1iZXJJbnRl
cm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NU1ZHTnVtYmVySW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNBQTkwQzIwQTdFQkE2MDAw
OEIxMjI5IC8qIFNjcm9sbGJhci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gU2Nyb2xsYmFyLmNwcDsgcGF0aCA9IHBsYXRmb3JtL1Njcm9sbGJhci5jcHA7IHNvdXJj
ZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJQkNBQ0YzQkExMDcyOTIxQTAwQzBDOEEzIC8qIFVz
ZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlCQ0FDRjNCQjEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJDb250ZW50VVJMUGF0dGVybi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0FFRkNBRDEwMTZDRTRBMDA0MEQzNEUg
LyogRE9NUkdCQ29sb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBET01SR0JDb2xvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNCMTZCRkUw
OTc5QzNCRDAwNDY3NzQxIC8qIENhY2hlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBDYWNoZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQjE2
QkZGMDk3OUMzQkQwMDQ2Nzc0MSAvKiBDYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTExMDkyLDYg
KzExMDk2LDggQEAKIAkJCQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmln
aW5IYXNoLmggKi8sCiAJCQkJMTRDOUE1RTkwQjNEMTA1RjAwNUEwMjMyIC8qIFNldHRpbmdzLmNw
cCAqLywKIAkJCQlGNTg3ODYzQTAyREUzQTE0MDFFQTQxMjIgLyogU2V0dGluZ3MuaCAqLywKKwkJ
CQlCQ0FDRjNCQTEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAq
LywKKwkJCQlCQ0FDRjNCQjEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmggKi8sCiAJCQkJQkNBMkIwNjAxMDUwNDc1RjAwNDNCRDFDIC8qIFVzZXJTY3JpcHQuaCAqLywK
IAkJCQlCQ0EyQjA4QTEwNTA1QkNEMDA0M0JEMUMgLyogVXNlclNjcmlwdFR5cGVzLmggKi8sCiAJ
CQkJQkM4QkYxNTAxMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggKi8sCkBAIC0x
Nzg5NSw2ICsxNzkwMSw3IEBACiAJCQkJNzY5M0JBRDIxMDZDMkRDQTAwN0IwODIzIC8qIEhhbHRh
YmxlUGx1Z2luLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjkzQkFENDEwNkMyRENBMDA3QjA4MjMg
LyogUGx1Z2luSGFsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3NjkzQkFENTEwNkMyRENBMDA3
QjA4MjMgLyogUGx1Z2luSGFsdGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlCQ0FDRjNC
RDEwNzI5MjFBMDBDMEM4QTMgLyogVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAq
LywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
fTsKQEAgLTIwMDA3LDYgKzIwMDE0LDcgQEAKIAkJCQlCQ0NFNThBRjEwNjFFOTBDMDA4RkIzNUEg
LyogSlNEb2N1bWVudEZyYWdtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0Q0Q4
RDgyMTA2QjUyOTAwMEE0NkQyMyAvKiBKU1NoYXJlZFdvcmtlckN1c3RvbS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk3NjkzQkFEMzEwNkMyRENBMDA3QjA4MjMgLyogUGx1Z2luSGFsdGVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUJDQUNGM0JDMTA3MjkyMUEwMEMwQzhBMyAvKiBVc2VyQ29udGVu
dFVSTFBhdHRlcm4uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiA0
ODc3MykKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4
LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlICJUcmVlV2Fsa2VyLmgi
CiAjaW5jbHVkZSAiVUlFdmVudC5oIgorI2luY2x1ZGUgIlVzZXJDb250ZW50VVJMUGF0dGVybi5o
IgogI2luY2x1ZGUgIldlYktpdEFuaW1hdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0VHJh
bnNpdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgpAQCAtMTk3NCw2ICsxOTc1
LDggQEAgY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0PiA+KiBEbwogICAgICAgICBj
b25zdCBVc2VyU3R5bGVTaGVldFZlY3Rvciogc2hlZXRzID0gaXQtPnNlY29uZDsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNoZWV0cy0+c2l6ZSgpOyArK2kpIHsKICAgICAgICAg
ICAgIGNvbnN0IFVzZXJTdHlsZVNoZWV0KiBzaGVldCA9IHNoZWV0cy0+YXQoaSkuZ2V0KCk7Cisg
ICAgICAgICAgICBpZiAoIVVzZXJDb250ZW50VVJMUGF0dGVybjo6bWF0Y2hlc1BhdHRlcm5zKHVy
bCgpLCBzaGVldC0+cGF0dGVybnMoKSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICBSZWZQdHI8Q1NTU3R5bGVTaGVldD4gcGFyc2VkU2hlZXQgPSBDU1NTdHlsZVNoZWV0
OjpjcmVhdGUoY29uc3RfY2FzdDxEb2N1bWVudCo+KHRoaXMpLCBzaGVldC0+dXJsKCkpOwogICAg
ICAgICAgICAgcGFyc2VkU2hlZXQtPnNldElzVXNlclN0eWxlU2hlZXQodHJ1ZSk7CiAgICAgICAg
ICAgICBwYXJzZWRTaGVldC0+cGFyc2VTdHJpbmcoc2hlZXQtPnNvdXJjZSgpLCAhaW5Db21wYXRN
b2RlKCkpOwpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiA0ODc2MykKKysrIFdlYkNvcmUvcGFnZS9GcmFt
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzczLDcgQEAKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURl
Y29kZXIuaCIKKyNpbmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKICNpbmNsdWRlICJY
TUxOYW1lcy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgi
CkBAIC04NzAsMTIgKzg3MSwxNiBAQCB2b2lkIEZyYW1lOjppbmplY3RVc2VyU2NyaXB0c0Zvcldv
cmxkKHVuCiAgICAgaWYgKHVzZXJTY3JpcHRzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwog
CisgICAgRG9jdW1lbnQqIGRvYyA9IGRvY3VtZW50KCk7CisgICAgaWYgKCFkb2MpCisgICAgICAg
IHJldHVybjsKKwogICAgIC8vIEZJWE1FOiBOZWVkIHRvIGltcGxlbWVudCBwYXR0ZXJuIGNoZWNr
aW5nLgogICAgIFZlY3RvcjxTY3JpcHRTb3VyY2VDb2RlPiBzb3VyY2VDb2RlOwogICAgIHVuc2ln
bmVkIGNvdW50ID0gdXNlclNjcmlwdHMuc2l6ZSgpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIFVzZXJTY3JpcHQqIHNjcmlwdCA9IHVzZXJTY3Jp
cHRzW2ldLmdldCgpOwotICAgICAgICBpZiAoc2NyaXB0LT5pbmplY3Rpb25UaW1lKCkgPT0gaW5q
ZWN0aW9uVGltZSkKKyAgICAgICAgaWYgKHNjcmlwdC0+aW5qZWN0aW9uVGltZSgpID09IGluamVj
dGlvblRpbWUgJiYgVXNlckNvbnRlbnRVUkxQYXR0ZXJuOjptYXRjaGVzUGF0dGVybnMoZG9jLT51
cmwoKSwgc2NyaXB0LT5wYXR0ZXJucygpKSkKICAgICAgICAgICAgIHNvdXJjZUNvZGUuYXBwZW5k
KFNjcmlwdFNvdXJjZUNvZGUoc2NyaXB0LT5zb3VyY2UoKSwgc2NyaXB0LT51cmwoKSkpOwogICAg
IH0KICAgICBzY3JpcHQoKS0+ZXZhbHVhdGVJbklzb2xhdGVkV29ybGQod29ybGRJRCwgc291cmNl
Q29kZSk7CkluZGV4OiBXZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcAkocmV2aXNp
b24gMCkKKysrIFdlYkNvcmUvcGFnZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDIxNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJVc2VyQ29udGVudFVSTFBhdHRlcm4uaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wg
VXNlckNvbnRlbnRVUkxQYXR0ZXJuOjptYXRjaGVzUGF0dGVybnMoY29uc3QgS1VSTCYgdXJsLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0dGVybnMpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IHBhdHRlcm5zLnNpemUoKTsgKytpKSB7CisgICAgICAgIFVzZXJDb250ZW50VVJMUGF0
dGVybiBjb250ZW50UGF0dGVybihwYXR0ZXJuc1tpXSk7CisgICAgICAgIGlmICghY29udGVudFBh
dHRlcm4ubWF0Y2hlcyh1cmwpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBVc2VyQ29udGVudFVSTFBhdHRlcm46OnBhcnNlKGNv
bnN0IFN0cmluZyYgcGF0dGVybikKK3sKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKGNvbnN0IFN0
cmluZywgc2NoZW1lU2VwYXJhdG9yLCAoIjovLyIpKTsKKworICAgIGludCBzY2hlbWVFbmRQb3Mg
PSBwYXR0ZXJuLmZpbmQoc2NoZW1lU2VwYXJhdG9yKTsKKyAgICBpZiAoc2NoZW1lRW5kUG9zID09
IC0xKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX3NjaGVtZSA9IHBhdHRlcm4ubGVm
dChzY2hlbWVFbmRQb3MpOworCisgICAgaW50IGhvc3RTdGFydFBvcyA9IHNjaGVtZUVuZFBvcyAr
IHNjaGVtZVNlcGFyYXRvci5sZW5ndGgoKTsKKyAgICBpZiAoaG9zdFN0YXJ0UG9zID49IHN0YXRp
Y19jYXN0PGludD4ocGF0dGVybi5sZW5ndGgoKSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgIGludCBwYXRoU3RhcnRQb3MgPSAwOworCisgICAgaWYgKG1fc2NoZW1lID09ICJmaWxlIikK
KyAgICAgICAgcGF0aFN0YXJ0UG9zID0gaG9zdFN0YXJ0UG9zOworICAgIGVsc2UgeworICAgICAg
ICBpbnQgaG9zdEVuZFBvcyA9IHBhdHRlcm4uZmluZCgiLyIsIGhvc3RTdGFydFBvcyk7CisgICAg
ICAgIGlmIChob3N0RW5kUG9zID09IC0xKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IAorICAgICAgICBtX2hvc3QgPSBwYXR0ZXJuLnN1YnN0cmluZyhob3N0U3RhcnRQb3MsIGhvc3RF
bmRQb3MgLSBob3N0U3RhcnRQb3MpOworCisgICAgICAgIC8vIFRoZSBmaXJzdCBjb21wb25lbnQg
Y2FuIGJlICcqJywgd2hpY2ggbWVhbnMgdG8gbWF0Y2ggYWxsIHN1YmRvbWFpbnMuCisgICAgICAg
IFZlY3RvcjxTdHJpbmc+IGhvc3RDb21wb25lbnRzOworICAgICAgICBtX2hvc3Quc3BsaXQoIi4i
LCBob3N0Q29tcG9uZW50cyk7IAorICAgICAgICBpZiAoaG9zdENvbXBvbmVudHNbMF0gPT0gIioi
KSB7CisgICAgICAgICAgICBtX21hdGNoU3ViZG9tYWlucyA9IHRydWU7CisgICAgICAgICAgICBt
X2hvc3QgPSAiIjsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCBob3N0Q29t
cG9uZW50cy5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIG1faG9zdCA9IG1faG9zdCAr
IGhvc3RDb21wb25lbnRzW2ldOworICAgICAgICAgICAgICAgIGlmIChpIDwgaG9zdENvbXBvbmVu
dHMuc2l6ZSgpIC0gMSkKKyAgICAgICAgICAgICAgICAgICAgbV9ob3N0ID0gbV9ob3N0ICsgIi4i
OworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICAvLyBObyBvdGhl
ciAnKicgY2FuIG9jY3VyIGluIHRoZSBob3N0LgorICAgICAgICBpZiAobV9ob3N0LmZpbmQoIioi
KSAhPSAtMSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBwYXRoU3RhcnRQ
b3MgPSBob3N0RW5kUG9zOworICAgIH0KKworICAgIG1fcGF0aCA9IHBhdHRlcm4ucmlnaHQocGF0
aFN0YXJ0UG9zKTsKKworICAgIHJldHVybiB0cnVlOworfQorCitib29sIFVzZXJDb250ZW50VVJM
UGF0dGVybjo6bWF0Y2hlcyhjb25zdCBLVVJMJiB0ZXN0KSBjb25zdAoreworICAgIGlmIChtX2lu
dmFsaWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICh0ZXN0LnByb3RvY29sKCkg
IT0gbV9zY2hlbWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghbWF0Y2hlc0hv
c3QodGVzdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiBtYXRjaGVzUGF0
aCh0ZXN0KTsKK30KKworYm9vbCBVc2VyQ29udGVudFVSTFBhdHRlcm46Om1hdGNoZXNIb3N0KGNv
bnN0IEtVUkwmIHRlc3QpIGNvbnN0Cit7CisgICAgaWYgKHRlc3QuaG9zdCgpID09IG1faG9zdCkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBpZiAoIW1fbWF0Y2hTdWJkb21haW5zKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJZiB3ZSdyZSBtYXRjaGluZyBzdWJkb21haW5z
LCBhbmQgd2UgaGF2ZSBubyBob3N0LCB0aGF0IG1lYW5zIHRoZSBwYXR0ZXJuCisgICAgLy8gd2Fz
IDxzY2hlbWU+Oi8vKi88d2hhdGV2ZXI+LCBzbyB3ZSBtYXRjaCBhbnl0aGluZy4KKyAgICBpZiAo
IW1faG9zdC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBDaGVjayBp
ZiB0aGUgdGVzdCBob3N0IGlzIGEgc3ViZG9tYWluIG9mIG91ciBob3N0LgorICAgIGlmICh0ZXN0
Lmhvc3QoKS5sZW5ndGgoKSA8IG1faG9zdC5sZW5ndGgoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgcmV0dXJuIHRlc3QuaG9zdCgpLmVuZHNXaXRoKG1faG9zdCwgZmFsc2UpOworfQor
CitzdHJ1Y3QgTWF0Y2hUZXN0ZXIKK3sKKyAgICBjb25zdCBTdHJpbmcmIG1fcGF0dGVybjsKKyAg
ICB1bnNpZ25lZCBtX3BhdHRlcm5JbmRleDsKKyAgICAKKyAgICBjb25zdCBTdHJpbmcmIG1fdGVz
dDsKKyAgICB1bnNpZ25lZCBtX3Rlc3RJbmRleDsKKyAgICAKKyAgICBNYXRjaFRlc3Rlcihjb25z
dCBTdHJpbmcmIHBhdHRlcm4sIGNvbnN0IFN0cmluZyYgdGVzdCkKKyAgICA6IG1fcGF0dGVybihw
YXR0ZXJuKQorICAgICwgbV9wYXR0ZXJuSW5kZXgoMCkKKyAgICAsIG1fdGVzdCh0ZXN0KQorICAg
ICwgbV90ZXN0SW5kZXgoMCkKKyAgICB7CisgICAgfQorICAgIAorICAgIGJvb2wgdGVzdFN0cmlu
Z0ZpbmlzaGVkKCkgY29uc3QgeyByZXR1cm4gbV90ZXN0SW5kZXggPj0gbV90ZXN0Lmxlbmd0aCgp
OyB9CisgICAgYm9vbCBwYXR0ZXJuU3RyaW5nRmluaXNoZWQoKSBjb25zdCB7IHJldHVybiBtX3Bh
dHRlcm5JbmRleCA+PSBtX3BhdHRlcm4ubGVuZ3RoKCk7IH0KKworICAgIHZvaWQgZWF0V2lsZGNh
cmQoKQorICAgIHsKKyAgICAgICAgd2hpbGUgKCFwYXR0ZXJuU3RyaW5nRmluaXNoZWQoKSkgewor
ICAgICAgICAgICAgaWYgKG1fcGF0dGVyblttX3BhdHRlcm5JbmRleF0gIT0gJyonKQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIG1fcGF0dGVybkluZGV4Kys7CisgICAgICAg
IH0KKyAgICB9CisgICAgCisgICAgdm9pZCBlYXRTYW1lQ2hhcnMoKQorICAgIHsKKyAgICAgICAg
d2hpbGUgKCFwYXR0ZXJuU3RyaW5nRmluaXNoZWQoKSAmJiAhdGVzdFN0cmluZ0ZpbmlzaGVkKCkp
IHsKKyAgICAgICAgICAgIGlmIChtX3BhdHRlcm5bbV9wYXR0ZXJuSW5kZXhdID09ICcqJykKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpZiAobV9wYXR0ZXJuW21fcGF0dGVy
bkluZGV4XSAhPSBtX3Rlc3RbbV90ZXN0SW5kZXhdKQorICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIG1fcGF0dGVybkluZGV4Kys7CisgICAgICAgICAgICBtX3Rlc3RJbmRleCsr
OworICAgICAgICB9CisgICAgfQorCisgICAgYm9vbCB0ZXN0KCkKKyAgICB7CisgICAgICAgIC8v
IEVhdCBhbGwgdGhlIG1hdGNoaW5nIGNoYXJzLgorICAgICAgICBlYXRTYW1lQ2hhcnMoKTsKKwor
ICAgICAgICAvLyBJZiB0aGUgc3RyaW5nIGlzIGZpbmlzaGVkLCB0aGVuIHRoZSBwYXR0ZXJuIG11
c3QgYmUgZW1wdHkgdG9vLCBvciBjb250YWlucworICAgICAgICAvLyBvbmx5IHdpbGRjYXJkcy4K
KyAgICAgICAgaWYgKHRlc3RTdHJpbmdGaW5pc2hlZCgpKSB7CisgICAgICAgICAgICBlYXRXaWxk
Y2FyZCgpOworICAgICAgICAgICAgaWYgKHBhdHRlcm5TdHJpbmdGaW5pc2hlZCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisgIAorICAgICAgICAvLyBQYXR0ZXJuIGlzIGVtcHR5IGJ1dCBub3Qgc3RyaW5nLCB0aGlz
IGlzIG5vdCBhIG1hdGNoLgorICAgICAgICBpZiAocGF0dGVyblN0cmluZ0ZpbmlzaGVkKCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICAvLyBJZiB3ZSBkb24n
dCBlbmNvdW50ZXIgYSAqLCB0aGVuIHdlJ3JlIGhvc2VkLgorICAgICAgICBpZiAobV9wYXR0ZXJu
W21fcGF0dGVybkluZGV4XSAhPSAnKicpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
ICAgIAorICAgICAgICB3aGlsZSAoIXRlc3RTdHJpbmdGaW5pc2hlZCgpKSB7CisgICAgICAgICAg
ICBNYXRjaFRlc3RlciBuZXh0TWF0Y2goKnRoaXMpOworICAgICAgICAgICAgbmV4dE1hdGNoLm1f
cGF0dGVybkluZGV4Kys7CisgICAgICAgICAgICBpZiAobmV4dE1hdGNoLnRlc3QoKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIG1fdGVzdEluZGV4Kys7CisgICAg
ICAgIH0KKworICAgICAgICAvLyBXZSByZWFjaGVkIHRoZSBlbmQgb2YgdGhlIHN0cmluZywgbGV0
IHNlZSBpZiB0aGUgcGF0dGVybiBjb250YWlucyBvbmx5CisgICAgICAgIC8vIHdpbGRjYXJkcy4K
KyAgICAgICAgaWYgKHRlc3RTdHJpbmdGaW5pc2hlZCgpKSB7CisgICAgICAgICAgICBlYXRXaWxk
Y2FyZCgpOworICAgICAgICAgICAgaWYgKHBhdHRlcm5TdHJpbmdGaW5pc2hlZCgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK307CisKK2Jvb2wgVXNlckNvbnRl
bnRVUkxQYXR0ZXJuOjptYXRjaGVzUGF0aChjb25zdCBLVVJMJiB0ZXN0KSBjb25zdAoreworICAg
IE1hdGNoVGVzdGVyIG1hdGNoKG1fcGF0aCwgdGVzdC5wYXRoKCkpOworICAgIHJldHVybiBtYXRj
aC50ZXN0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9Vc2VyQ29udGVudFVSTFBhdHRlcm4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3BhZ2UvVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNzIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLwor
IAorI2lmbmRlZiBVc2VyQ29udGVudFVSTFBhdHRlcm5faAorI2RlZmluZSBVc2VyQ29udGVudFVS
TFBhdHRlcm5faAorCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKKyNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgS1VSTDsKKworY2xhc3Mg
VXNlckNvbnRlbnRVUkxQYXR0ZXJuIHsKK3B1YmxpYzoKKyAgICBVc2VyQ29udGVudFVSTFBhdHRl
cm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuKQorICAgIDogbV9tYXRjaFN1YmRvbWFpbnMoZmFsc2Up
CisgICAgeworICAgICAgICBtX2ludmFsaWQgPSAhcGFyc2UocGF0dGVybik7CisgICAgfQorCisg
ICAgYm9vbCBtYXRjaGVzKGNvbnN0IEtVUkwmKSBjb25zdDsKKworICAgIGNvbnN0IFN0cmluZyYg
c2NoZW1lKCkgY29uc3QgeyByZXR1cm4gbV9zY2hlbWU7IH0KKyAgICBjb25zdCBTdHJpbmcmIGhv
c3QoKSBjb25zdCB7IHJldHVybiBtX2hvc3Q7IH0KKyAgICBjb25zdCBTdHJpbmcmIHBhdGgoKSBj
b25zdCB7IHJldHVybiBtX3BhdGg7IH0KKworICAgIGJvb2wgbWF0Y2hTdWJkb21haW5zKCkgY29u
c3QgeyByZXR1cm4gbV9tYXRjaFN1YmRvbWFpbnM7IH0KKyAgICAKKyAgICBzdGF0aWMgYm9vbCBt
YXRjaGVzUGF0dGVybnMoY29uc3QgS1VSTCYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jik7CisKK3By
aXZhdGU6CisgICAgYm9vbCBwYXJzZShjb25zdCBTdHJpbmcmIHBhdHRlcm4pOworCisgICAgYm9v
bCBtYXRjaGVzSG9zdChjb25zdCBLVVJMJikgY29uc3Q7CisgICAgYm9vbCBtYXRjaGVzUGF0aChj
b25zdCBLVVJMJikgY29uc3Q7CisKKyAgICBib29sIG1faW52YWxpZDsKKworICAgIFN0cmluZyBt
X3NjaGVtZTsKKyAgICBTdHJpbmcgbV9ob3N0OworICAgIFN0cmluZyBtX3BhdGg7CisKKyAgICBi
b29sIG1fbWF0Y2hTdWJkb21haW5zOworfTsKKworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBVc2VyQ29udGVudFVSTFBhdHRlcm5faAo=
</data>
<flag name="review"
          id="21534"
          type_id="1"
          status="+"
          setter="hyatt"
    />
          </attachment>
      

    </bug>

</bugzilla>