<?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>61677</bug_id>
          
          <creation_ts>2011-05-27 16:38:34 -0700</creation_ts>
          <short_desc>Property caching is too aggressive for API objects</short_desc>
          <delta_ts>2011-05-27 16:53:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Geoffrey Garen">ggaren</assigned_to>
          <cc>oliver</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>411709</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-27 16:38:34 -0700</bug_when>
    <thetext>Property caching is too aggressive for API objects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411710</commentid>
    <comment_count>1</comment_count>
      <attachid>95227</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-27 16:41:07 -0700</bug_when>
    <thetext>Created attachment 95227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411711</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-27 16:43:14 -0700</bug_when>
    <thetext>Attachment 95227 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackObject...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSTypeInfo.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/API/tests/testapi.c:358:  PropertyCatchalls_getProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:395:  PropertyCatchalls_setProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:415:  PropertyCatchalls_getPropertyNames is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:429:  PropertyCatchalls_definition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:452:  PropertyCatchalls_class is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 6 in 7 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>411713</commentid>
    <comment_count>3</comment_count>
      <attachid>95228</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-27 16:50:06 -0700</bug_when>
    <thetext>Created attachment 95228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411715</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-27 16:52:10 -0700</bug_when>
    <thetext>Attachment 95228 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/API/JSCallbackObject...&quot; exit_code: 1

Source/JavaScriptCore/runtime/JSTypeInfo.h:37:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Source/JavaScriptCore/API/tests/testapi.c:358:  PropertyCatchalls_getProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:395:  PropertyCatchalls_setProperty is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:415:  PropertyCatchalls_getPropertyNames is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:429:  PropertyCatchalls_definition is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Source/JavaScriptCore/API/tests/testapi.c:452:  PropertyCatchalls_class is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 6 in 7 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>411716</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-27 16:53:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/9518788&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>411717</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2011-05-27 16:53:40 -0700</bug_when>
    <thetext>Committed r87586: &lt;http://trac.webkit.org/changeset/87586&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95227</attachid>
            <date>2011-05-27 16:41:07 -0700</date>
            <delta_ts>2011-05-27 16:50:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61677-20110527164105.patch</filename>
            <type>text/plain</type>
            <size>12888</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODc1ODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMDUtMjcgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wZXJ0eSBjYWNoaW5n
IGlzIHRvbyBhZ2dyZXNzaXZlIGZvciBBUEkgb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE2NzcKKworICAgICAgICAqIEFQSS9KU0NhbGxi
YWNrT2JqZWN0Lmg6IE9wdCBpbiB0byBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcsIHNpbmNlIG91
cgorICAgICAgICBjYWxsYmFjayBBUElzIGFsbG93IHRoZSBjbGllbnQgdG8gY2hhbmdlIGl0cyBt
aW5kIGFib3V0IG91ciBwcm9wZXJ0aXMgYXQKKyAgICAgICAgYW55IHRpbWUuCisKKyAgICAgICAg
KiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAoUHJvcGVydHlDYXRjaGFsbHNfZ2V0UHJv
cGVydHkpOgorICAgICAgICAoUHJvcGVydHlDYXRjaGFsbHNfc2V0UHJvcGVydHkpOgorICAgICAg
ICAoUHJvcGVydHlDYXRjaGFsbHNfZ2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChQcm9wZXJ0
eUNhdGNoYWxsc19jbGFzcyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBBUEkvdGVzdHMv
dGVzdGFwaS5qczogU29tZSB0ZXN0cyBmb3IgZHluYW1pYyBBUEkgb2JqZWN0cy4KKworICAgICAg
ICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0
ZXI6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0cnlDYWNo
ZUdldEJ5SUQpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjp0cnlD
YWNoZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6IE9wdCBv
dXQgb2YgcHJvcGVydHkgY2FjaGluZyBpZiB0aGUgY2xpZW50CisgICAgICAgIHJlcXVpcmVzIGl0
LgorCisgICAgICAgICogcnVudGltZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJ
bmZvOjpUeXBlSW5mbyk6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjppc0ZpbmFsKToKKyAgICAg
ICAgKEpTQzo6VHlwZUluZm86OnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyk6CisgICAgICAgIChK
U0M6OlR5cGVJbmZvOjpmbGFncyk6IEFkZGVkIGEgZmxhZyB0byB0cmFjayBvcHRpbmcgb3V0IG9m
IHByb3BlcnR5CisgICAgICAgIGNhY2hpbmcuIENoYW5nZWQgdG8gdXNlIG9uZSB1bnNpZ25lZCBz
aG9ydCBpbnN0ZWFkIG9mIHR3byBjaGFycyBiZWNhdXNlCisgICAgICAgIHR3byBjaGFycyBtYWRl
IG15IGhlYWQgaHVydC4KKwogMjAxMS0wNS0yNyAgU3RlcGhhbmllIExld2lzICA8c2xld2lzQGFw
cGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHJldmlzaW9uIDg3NTIxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90IHwgSW1wbGVtZW50c0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBPdmVy
cmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9
IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyB8IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8
IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVz
VmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dldFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1
cmVGbGFnczsKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29u
c3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkocmV2
aXNpb24gODc1MjEpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGku
Ywkod29ya2luZyBjb3B5KQpAQCAtMzU1LDYgKzM1NSwxMTEgQEAgc3RhdGljIEpTQ2xhc3NSZWYg
TXlPYmplY3RfY2xhc3MoSlNDb250ZQogICAgIHJldHVybiBqc0NsYXNzOwogfQogCitzdGF0aWMg
SlNWYWx1ZVJlZiBQcm9wZXJ0eUNhdGNoYWxsc19nZXRQcm9wZXJ0eShKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5V
U0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5VU0VEX1BBUkFNKHByb3BlcnR5TmFtZSk7CisgICAg
VU5VU0VEX1BBUkFNKGV4Y2VwdGlvbik7CisKKyAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhwcm9wZXJ0eU5hbWUsICJ4IikpIHsKKyAgICAgICAgc3RhdGljIHNpemVfdCBjb3Vu
dDsKKyAgICAgICAgaWYgKGNvdW50KysgPCA1KQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisK
KyAgICAgICAgLy8gU3dhbGxvdyBhbGwgLnggZ2V0cyBhZnRlciA1LCByZXR1cm5pbmcgbnVsbC4K
KyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVsbChjb250ZXh0KTsKKyAgICB9CisKKyAgICBp
ZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwcm9wZXJ0eU5hbWUsICJ5IikpIHsKKyAg
ICAgICAgc3RhdGljIHNpemVfdCBjb3VudDsKKyAgICAgICAgaWYgKGNvdW50KysgPCA1KQorICAg
ICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAgICAgLy8gU3dhbGxvdyBhbGwgLnkgZ2V0cyBh
ZnRlciA1LCByZXR1cm5pbmcgbnVsbC4KKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVsbChj
b250ZXh0KTsKKyAgICB9CisgICAgCisgICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcocHJvcGVydHlOYW1lLCAieiIpKSB7CisgICAgICAgIHN0YXRpYyBzaXplX3QgY291bnQ7Cisg
ICAgICAgIGlmIChjb3VudCsrIDwgNSkKKyAgICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAg
ICAgIC8vIFN3YWxsb3cgYWxsIC55IGdldHMgYWZ0ZXIgNSwgcmV0dXJuaW5nIG51bGwuCisgICAg
ICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwoY29udGV4dCk7CisgICAgfQorCisgICAgcmV0dXJu
IE5VTEw7Cit9CisKK3N0YXRpYyBib29sIFByb3BlcnR5Q2F0Y2hhbGxzX3NldFByb3BlcnR5KEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZVJlZiB2YWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAg
IFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAgICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAgICBV
TlVTRURfUEFSQU0ocHJvcGVydHlOYW1lKTsKKyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAg
IFVOVVNFRF9QQVJBTShleGNlcHRpb24pOworCisgICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcocHJvcGVydHlOYW1lLCAieCIpKSB7CisgICAgICAgIHN0YXRpYyBzaXplX3QgY291
bnQ7CisgICAgICAgIGlmIChjb3VudCsrIDwgNSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KworICAgICAgICAvLyBTd2FsbG93IGFsbCAueCBzZXRzIGFmdGVyIDQuCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgUHJv
cGVydHlDYXRjaGFsbHNfZ2V0UHJvcGVydHlOYW1lcyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNP
YmplY3RSZWYgb2JqZWN0LCBKU1Byb3BlcnR5TmFtZUFjY3VtdWxhdG9yUmVmIHByb3BlcnR5TmFt
ZXMpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworICAgIFVOVVNFRF9QQVJBTShvYmpl
Y3QpOworCisgICAgc3RhdGljIHNpemVfdCBjb3VudDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciog
bnVtYmVyc1tdID0geyAiMCIsICIxIiwgIjIiLCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgi
LCAiOSIgfTsKKyAgICAKKyAgICAvLyBQcm92aWRlIGEgcHJvcGVydHkgb2YgYSBkaWZmZXJlbnQg
bmFtZSBldmVyeSB0aW1lLgorICAgIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSA9IEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKG51bWJlcnNbY291bnQrKyAlIDEwXSk7CisgICAgSlNQcm9w
ZXJ0eU5hbWVBY2N1bXVsYXRvckFkZE5hbWUocHJvcGVydHlOYW1lcywgcHJvcGVydHlOYW1lKTsK
KyAgICBKU1N0cmluZ1JlbGVhc2UocHJvcGVydHlOYW1lKTsKK30KKworSlNDbGFzc0RlZmluaXRp
b24gUHJvcGVydHlDYXRjaGFsbHNfZGVmaW5pdGlvbiA9IHsKKyAgICAwLAorICAgIGtKU0NsYXNz
QXR0cmlidXRlTm9uZSwKKyAgICAKKyAgICAiUHJvcGVydHlDYXRjaGFsbHMiLAorICAgIE5VTEws
CisgICAgCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIAorICAgIE5VTEwsCisgICAgTlVMTCwK
KyAgICBOVUxMLAorICAgIFByb3BlcnR5Q2F0Y2hhbGxzX2dldFByb3BlcnR5LAorICAgIFByb3Bl
cnR5Q2F0Y2hhbGxzX3NldFByb3BlcnR5LAorICAgIE5VTEwsCisgICAgUHJvcGVydHlDYXRjaGFs
bHNfZ2V0UHJvcGVydHlOYW1lcywKKyAgICBOVUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAg
ICBOVUxMLAorfTsKKworc3RhdGljIEpTQ2xhc3NSZWYgUHJvcGVydHlDYXRjaGFsbHNfY2xhc3Mo
SlNDb250ZXh0UmVmIGNvbnRleHQpCit7CisgICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworCisg
ICAgc3RhdGljIEpTQ2xhc3NSZWYganNDbGFzczsKKyAgICBpZiAoIWpzQ2xhc3MpCisgICAgICAg
IGpzQ2xhc3MgPSBKU0NsYXNzQ3JlYXRlKCZQcm9wZXJ0eUNhdGNoYWxsc19kZWZpbml0aW9uKTsK
KyAgICAKKyAgICByZXR1cm4ganNDbGFzczsKK30KKwogc3RhdGljIGJvb2wgRXZpbEV4Y2VwdGlv
bk9iamVjdF9oYXNJbnN0YW5jZShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgY29u
c3RydWN0b3IsIEpTVmFsdWVSZWYgcG9zc2libGVWYWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQogewogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKQEAgLTkyMiw2ICsxMDI3LDExIEBAIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBl
KGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZykgPT0ga0pTVHlwZVN0cmluZyk7CiAgICAgQVNTRVJU
KEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzKSA9
PSBrSlNUeXBlU3RyaW5nKTsKIAorICAgIEpTT2JqZWN0UmVmIHByb3BlcnR5Q2F0Y2hhbGxzID0g
SlNPYmplY3RNYWtlKGNvbnRleHQsIFByb3BlcnR5Q2F0Y2hhbGxzX2NsYXNzKGNvbnRleHQpLCBO
VUxMKTsKKyAgICBKU1N0cmluZ1JlZiBwcm9wZXJ0eUNhdGNoYWxsc1N0cmluZyA9IEpTU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQcm9wZXJ0eUNhdGNoYWxscyIpOworICAgIEpTT2JqZWN0
U2V0UHJvcGVydHkoY29udGV4dCwgZ2xvYmFsT2JqZWN0LCBwcm9wZXJ0eUNhdGNoYWxsc1N0cmlu
ZywgcHJvcGVydHlDYXRjaGFsbHMsIGtKU1Byb3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7Cisg
ICAgSlNTdHJpbmdSZWxlYXNlKHByb3BlcnR5Q2F0Y2hhbGxzU3RyaW5nKTsKKwogICAgIEpTT2Jq
ZWN0UmVmIG15T2JqZWN0ID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIE15T2JqZWN0X2NsYXNzKGNv
bnRleHQpLCBOVUxMKTsKICAgICBKU1N0cmluZ1JlZiBteU9iamVjdElTdHJpbmcgPSBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTXlPYmplY3QiKTsKICAgICBKU09iamVjdFNldFByb3Bl
cnR5KGNvbnRleHQsIGdsb2JhbE9iamVjdCwgbXlPYmplY3RJU3RyaW5nLCBteU9iamVjdCwga0pT
UHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxMKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvdGVzdHMvdGVzdGFwaS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvQVBJL3Rlc3RzL3Rlc3RhcGkuanMJKHJldmlzaW9uIDg3NTIxKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBpLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiAr
MjQ2LDMyIEBAIHNob3VsZFRocm93KCJTdHJpbmcoRXZpbEV4Y2VwdGlvbk9iamVjdCkKIAogc2hv
dWxkQmUoIkVtcHR5T2JqZWN0IiwgIltvYmplY3QgQ2FsbGJhY2tPYmplY3RdIik7CiAKK2ZvciAo
dmFyIGkgPSAwOyBpIDwgNjsgKytpKQorICAgIFByb3BlcnR5Q2F0Y2hhbGxzLnggPSBpOworc2hv
dWxkQmUoIlByb3BlcnR5Q2F0Y2hhbGxzLngiLCA0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCA2
OyArK2kpCisgICAgdmFyIHggPSBQcm9wZXJ0eUNhdGNoYWxscy54Oworc2hvdWxkQmUoIngiLCBu
dWxsKTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgZm9yICh2YXIgcCBp
biBQcm9wZXJ0eUNhdGNoYWxscykgeworICAgICAgICBpZiAocCA9PSAieCIpCisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgc2hvdWxkQmUoInAiLCBpICUgMTApOworICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK1Byb3BlcnR5Q2F0Y2hhbGxzLl9fcHJvdG9fXyA9IHsgeTogMSB9Owor
Zm9yICh2YXIgaSA9IDA7IGkgPCA2OyArK2kpCisgICAgdmFyIHkgPSBQcm9wZXJ0eUNhdGNoYWxs
cy55Oworc2hvdWxkQmUoInkiLCBudWxsKTsKKwordmFyIG8gPSB7IF9fcHJvdG9fXzogUHJvcGVy
dHlDYXRjaGFsbHMgfTsKK2ZvciAodmFyIGkgPSAwOyBpIDwgNjsgKytpKQorICAgIHZhciB6ID0g
UHJvcGVydHlDYXRjaGFsbHMuejsKK3Nob3VsZEJlKCJ6IiwgbnVsbCk7CisKIGlmIChmYWlsZWQp
CiAgICAgdGhyb3cgIlNvbWUgdGVzdHMgZmFpbGVkIjsKLQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL0ludGVycHJldGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIvSW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiA4NzUy
MSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTEyMzksNyArMTIzOSw3IEBAIE5FVkVSX0lOTElORSB2b2lkIElu
dGVycHJldGVyOjp0cnlDYWNoZVAKICAgICBKU0NlbGwqIGJhc2VDZWxsID0gYmFzZVZhbHVlLmFz
Q2VsbCgpOwogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZUNlbGwtPnN0cnVjdHVyZSgp
OwogCi0gICAgaWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgeworICAg
IGlmIChzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkgfHwgc3RydWN0dXJlLT50
eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpKSB7CiAgICAgICAgIHZQQ1swXSA9
IGdldE9wY29kZShvcF9wdXRfYnlfaWRfZ2VuZXJpYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC0xMzI3LDcgKzEzMjcsNyBAQCBORVZFUl9JTkxJTkUgdm9pZCBJbnRlcnByZXRlcjo6dHJ5
Q2FjaGVHCiAKICAgICBTdHJ1Y3R1cmUqIHN0cnVjdHVyZSA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+
c3RydWN0dXJlKCk7CiAKLSAgICBpZiAoc3RydWN0dXJlLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFy
eSgpKSB7CisgICAgaWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSB8fCBz
dHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkpIHsKICAgICAg
ICAgdlBDWzBdID0gZ2V0T3Bjb2RlKG9wX2dldF9ieV9pZF9nZW5lcmljKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShy
ZXZpc2lvbiA4NzUyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC04MTksNyArODE5LDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSklU
VGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpTQ2VsbCogYmFzZUNlbGwgPSBiYXNlVmFsdWUuYXND
ZWxsKCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7
CiAKLSAgICBpZiAoc3RydWN0dXJlLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpKSB7CisgICAg
aWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSB8fCBzdHJ1Y3R1cmUtPnR5
cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlDYWNoaW5nKCkpIHsKICAgICAgICAgY3RpUGF0Y2hD
YWxsQnlSZXR1cm5BZGRyZXNzKGNvZGVCbG9jaywgcmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIo
ZGlyZWN0ID8gY3RpX29wX3B1dF9ieV9pZF9kaXJlY3RfZ2VuZXJpYyA6IGN0aV9vcF9wdXRfYnlf
aWRfZ2VuZXJpYykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtODg3LDcgKzg4Nyw3IEBA
IE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5rczo6dHJ5Q2FjaGVHZXQKICAgICBKU0NlbGwqIGJh
c2VDZWxsID0gYmFzZVZhbHVlLmFzQ2VsbCgpOwogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0g
YmFzZUNlbGwtPnN0cnVjdHVyZSgpOwogCi0gICAgaWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJs
ZURpY3Rpb25hcnkoKSkgeworICAgIGlmIChzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9u
YXJ5KCkgfHwgc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygp
KSB7CiAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5UmV0dXJuQWRkcmVzcyhjb2RlQmxvY2ssIHJldHVy
bkFkZHJlc3MsIEZ1bmN0aW9uUHRyKGN0aV9vcF9nZXRfYnlfaWRfZ2VuZXJpYykpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMTcyMiw3ICsxNzIyLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJ
T04oRW5jb2RlZEpTVmFsdWUsIG9wXwogCiAgICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogCi0g
ICAgaWYgKCFiYXNlVmFsdWUuaXNDZWxsKCkgfHwgIXNsb3QuaXNDYWNoZWFibGUoKSB8fCBiYXNl
VmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgpLT5pc0RpY3Rpb25hcnkoKSkgeworICAgIGlmICgh
YmFzZVZhbHVlLmlzQ2VsbCgpIHx8ICFzbG90LmlzQ2FjaGVhYmxlKCkgfHwgYmFzZVZhbHVlLmFz
Q2VsbCgpLT5zdHJ1Y3R1cmUoKS0+aXNEaWN0aW9uYXJ5KCkgfHwgYmFzZVZhbHVlLmFzQ2VsbCgp
LT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5wcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSkgewog
ICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVybkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2so
KSwgU1RVQl9SRVRVUk5fQUREUkVTUywgRnVuY3Rpb25QdHIoY3RpX29wX2dldF9ieV9pZF9wcm90
b19mYWlsKSk7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1R5cGVJbmZvLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCShyZXZp
c2lvbiA4NzUyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8u
aAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCArMzQsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAot
ICAgIC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1l
bnQuYWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5kZXRlY3RhYmxlLgotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdW5z
aWduZWQgTWFzcXVlcmFkZXNBc1VuZGVmaW5lZCA9IDE7IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1lbnQuYWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5k
ZXRlY3RhYmxlLgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1lbnRzSGFzSW5zdGFu
Y2UgPSAxIDw8IDE7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE92ZXJyaWRlc0hhc0luc3Rh
bmNlID0gMSA8PCAyOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJbXBsZW1lbnRzRGVmYXVs
dEhhc0luc3RhbmNlID0gMSA8PCAzOwpAQCAtNDQsMTYgKzQzLDE2IEBAIG5hbWVzcGFjZSBKU0Mg
ewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNWaXNpdENoaWxkcmVuID0gMSA8
PCA2OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVz
ID0gMSA8PCA3OwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBJc0pTRmluYWxPYmplY3QgPSAx
IDw8IDg7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFByb2hpYml0c1Byb3BlcnR5Q2FjaGlu
ZyA9IDEgPDwgOTsKIAogICAgIGNsYXNzIFR5cGVJbmZvIHsKICAgICBwdWJsaWM6CiAgICAgICAg
IFR5cGVJbmZvKEpTVHlwZSB0eXBlLCB1bnNpZ25lZCBmbGFncyA9IDApCiAgICAgICAgICAgICA6
IG1fdHlwZSh0eXBlKQotICAgICAgICAgICAgLCBtX2ZsYWdzKGZsYWdzICYgMHhGRikKLSAgICAg
ICAgICAgICwgbV9mbGFnczIoZmxhZ3MgPj4gOCkKKyAgICAgICAgICAgICwgbV9mbGFncyhmbGFn
cyAmIDB4ZmZmZikKICAgICAgICAgewotICAgICAgICAgICAgQVNTRVJUKGZsYWdzIDw9IDB4MUZG
KTsKLSAgICAgICAgICAgIEFTU0VSVCh0eXBlIDw9IDB4RkYpOworICAgICAgICAgICAgQVNTRVJU
KGZsYWdzIDw9IDB4ZmZmZik7CisgICAgICAgICAgICBBU1NFUlQodHlwZSA8PSAweGZmKTsKICAg
ICAgICAgICAgIEFTU0VSVCh0eXBlID49IENvbXBvdW5kVHlwZSB8fCAhKGZsYWdzICYgT3ZlcnJp
ZGVzVmlzaXRDaGlsZHJlbikpOwogICAgICAgICAgICAgLy8gSW1wbGVtZW50c0RlZmF1bHRIYXNJ
bnN0YW5jZSBtZWFucyAoSW1wbGVtZW50c0hhc0luc3RhbmNlICYgIU92ZXJyaWRlc0hhc0luc3Rh
bmNlKQogICAgICAgICAgICAgaWYgKChtX2ZsYWdzICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8
IE92ZXJyaWRlc0hhc0luc3RhbmNlKSkgPT0gSW1wbGVtZW50c0hhc0luc3RhbmNlKQpAQCAtNjks
OCArNjgsOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAgICAgICAgYm9vbCBvdmVycmlkZXNHZXRPd25Q
cm9wZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzICYgT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90OyB9CiAgICAgICAgIGJvb2wgb3ZlcnJpZGVzVmlzaXRDaGlsZHJlbigpIGNvbnN0
IHsgcmV0dXJuIG1fZmxhZ3MgJiBPdmVycmlkZXNWaXNpdENoaWxkcmVuOyB9CiAgICAgICAgIGJv
b2wgb3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBP
dmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOyB9CisgICAgICAgIHVuc2lnbmVkIGlzRmluYWwoKSBj
b25zdCB7IHJldHVybiBtX2ZsYWdzICYgSXNKU0ZpbmFsT2JqZWN0OyB9CisgICAgICAgIHVuc2ln
bmVkIHByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBQ
cm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmc7IH0KICAgICAgICAgdW5zaWduZWQgZmxhZ3MoKSBjb25z
dCB7IHJldHVybiBtX2ZsYWdzOyB9Ci0gICAgICAgIHVuc2lnbmVkIGlzRmluYWwoKSBjb25zdCB7
IHJldHVybiBtX2ZsYWdzMiAmJiAoSXNKU0ZpbmFsT2JqZWN0ID4+IDgpOyB9CiAKICAgICAgICAg
c3RhdGljIHB0cmRpZmZfdCBmbGFnc09mZnNldCgpCiAgICAgICAgIHsKQEAgLTg0LDggKzg0LDcg
QEAgbmFtZXNwYWNlIEpTQyB7CiAKICAgICBwcml2YXRlOgogICAgICAgICB1bnNpZ25lZCBjaGFy
IG1fdHlwZTsKLSAgICAgICAgdW5zaWduZWQgY2hhciBtX2ZsYWdzOwotICAgICAgICB1bnNpZ25l
ZCBjaGFyIG1fZmxhZ3MyOworICAgICAgICB1bnNpZ25lZCBzaG9ydCBtX2ZsYWdzOwogICAgIH07
CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95228</attachid>
            <date>2011-05-27 16:50:06 -0700</date>
            <delta_ts>2011-05-27 16:51:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61677-20110527165005.patch</filename>
            <type>text/plain</type>
            <size>12739</size>
            <attacher name="Geoffrey Garen">ggaren</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gODc1ODUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAK
KzIwMTEtMDUtMjcgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm9wZXJ0eSBjYWNoaW5n
IGlzIHRvbyBhZ2dyZXNzaXZlIGZvciBBUEkgb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE2NzcKKworICAgICAgICAqIEFQSS9KU0NhbGxi
YWNrT2JqZWN0Lmg6IE9wdCBpbiB0byBQcm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcsIHNpbmNlIG91
cgorICAgICAgICBjYWxsYmFjayBBUElzIGFsbG93IHRoZSBjbGllbnQgdG8gY2hhbmdlIGl0cyBt
aW5kIGFib3V0IG91ciBwcm9wZXJ0aXMgYXQKKyAgICAgICAgYW55IHRpbWUuCisKKyAgICAgICAg
KiBBUEkvdGVzdHMvdGVzdGFwaS5jOgorICAgICAgICAoUHJvcGVydHlDYXRjaGFsbHNfZ2V0UHJv
cGVydHkpOgorICAgICAgICAoUHJvcGVydHlDYXRjaGFsbHNfc2V0UHJvcGVydHkpOgorICAgICAg
ICAoUHJvcGVydHlDYXRjaGFsbHNfZ2V0UHJvcGVydHlOYW1lcyk6CisgICAgICAgIChQcm9wZXJ0
eUNhdGNoYWxsc19jbGFzcyk6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBBUEkvdGVzdHMv
dGVzdGFwaS5qczogU29tZSB0ZXN0cyBmb3IgZHluYW1pYyBBUEkgb2JqZWN0cy4KKworICAgICAg
ICAqIGludGVycHJldGVyL0ludGVycHJldGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW50ZXJwcmV0
ZXI6OnRyeUNhY2hlUHV0QnlJRCk6CisgICAgICAgIChKU0M6OkludGVycHJldGVyOjp0cnlDYWNo
ZUdldEJ5SUQpOgorICAgICAgICAqIGppdC9KSVRTdHVicy5jcHA6CisgICAgICAgIChKU0M6OkpJ
VFRodW5rczo6dHJ5Q2FjaGVQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6SklUVGh1bmtzOjp0cnlD
YWNoZUdldEJ5SUQpOgorICAgICAgICAoSlNDOjpERUZJTkVfU1RVQl9GVU5DVElPTik6IE9wdCBv
dXQgb2YgcHJvcGVydHkgY2FjaGluZyBpZiB0aGUgY2xpZW50CisgICAgICAgIHJlcXVpcmVzIGl0
LgorCisgICAgICAgICogcnVudGltZS9KU1R5cGVJbmZvLmg6CisgICAgICAgIChKU0M6OlR5cGVJ
bmZvOjpUeXBlSW5mbyk6CisgICAgICAgIChKU0M6OlR5cGVJbmZvOjppc0ZpbmFsKToKKyAgICAg
ICAgKEpTQzo6VHlwZUluZm86OnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyk6CisgICAgICAgIChK
U0M6OlR5cGVJbmZvOjpmbGFncyk6IEFkZGVkIGEgZmxhZyB0byB0cmFjayBvcHRpbmcgb3V0IG9m
IHByb3BlcnR5CisgICAgICAgIGNhY2hpbmcuIEZpeGVkIGFuICImJiIgdnMgIiYiIHR5cG8gdGhh
dCB3YXMgcHJldmlvdXNseSBoYXJtbGVzcywgYnV0CisgICAgICAgIGlzIG5vdyBoYXJtZnVsIHNp
bmNlIG1fZmxhZ3MyIGNhbiBoYXZlIG1vcmUgdGhhbiBvbmUgYml0IHNldC4KKwogMjAxMS0wNS0y
NyAgU3RlcGhhbmllIExld2lzICA8c2xld2lzQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxiYWNrT2JqZWN0
LmgJKHJldmlzaW9uIDg3NTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU0NhbGxi
YWNrT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAg
ICAgfQogCiBwcm90ZWN0ZWQ6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZs
YWdzID0gT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgSW1wbGVtZW50c0hhc0luc3RhbmNl
IHwgT3ZlcnJpZGVzSGFzSW5zdGFuY2UgfCBPdmVycmlkZXNWaXNpdENoaWxkcmVuIHwgT3ZlcnJp
ZGVzR2V0UHJvcGVydHlOYW1lcyB8IEJhc2U6OlN0cnVjdHVyZUZsYWdzOworICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyB8
IE92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92
ZXJyaWRlc0hhc0luc3RhbmNlIHwgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbiB8IE92ZXJyaWRlc0dl
dFByb3BlcnR5TmFtZXMgfCBCYXNlOjpTdHJ1Y3R1cmVGbGFnczsKIAogcHJpdmF0ZToKICAgICB2
aXJ0dWFsIFVTdHJpbmcgY2xhc3NOYW1lKCkgY29uc3Q7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkocmV2aXNpb24gODc1MjEpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuYwkod29ya2luZyBjb3B5KQpAQCAtMzU1LDYg
KzM1NSwxMTEgQEAgc3RhdGljIEpTQ2xhc3NSZWYgTXlPYmplY3RfY2xhc3MoSlNDb250ZQogICAg
IHJldHVybiBqc0NsYXNzOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBQcm9wZXJ0eUNhdGNoYWxs
c19nZXRQcm9wZXJ0eShKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBK
U1N0cmluZ1JlZiBwcm9wZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICBV
TlVTRURfUEFSQU0oY29udGV4dCk7CisgICAgVU5VU0VEX1BBUkFNKG9iamVjdCk7CisgICAgVU5V
U0VEX1BBUkFNKHByb3BlcnR5TmFtZSk7CisgICAgVU5VU0VEX1BBUkFNKGV4Y2VwdGlvbik7CisK
KyAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhwcm9wZXJ0eU5hbWUsICJ4Iikp
IHsKKyAgICAgICAgc3RhdGljIHNpemVfdCBjb3VudDsKKyAgICAgICAgaWYgKGNvdW50KysgPCA1
KQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICAgICAgLy8gU3dhbGxvdyBhbGwgLngg
Z2V0cyBhZnRlciA1LCByZXR1cm5pbmcgbnVsbC4KKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
TnVsbChjb250ZXh0KTsKKyAgICB9CisKKyAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhwcm9wZXJ0eU5hbWUsICJ5IikpIHsKKyAgICAgICAgc3RhdGljIHNpemVfdCBjb3VudDsK
KyAgICAgICAgaWYgKGNvdW50KysgPCA1KQorICAgICAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAg
ICAgICAgLy8gU3dhbGxvdyBhbGwgLnkgZ2V0cyBhZnRlciA1LCByZXR1cm5pbmcgbnVsbC4KKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlTnVsbChjb250ZXh0KTsKKyAgICB9CisgICAgCisgICAg
aWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocHJvcGVydHlOYW1lLCAieiIpKSB7Cisg
ICAgICAgIHN0YXRpYyBzaXplX3QgY291bnQ7CisgICAgICAgIGlmIChjb3VudCsrIDwgNSkKKyAg
ICAgICAgICAgIHJldHVybiBOVUxMOworCisgICAgICAgIC8vIFN3YWxsb3cgYWxsIC55IGdldHMg
YWZ0ZXIgNSwgcmV0dXJuaW5nIG51bGwuCisgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZU51bGwo
Y29udGV4dCk7CisgICAgfQorCisgICAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBib29sIFBy
b3BlcnR5Q2F0Y2hhbGxzX3NldFByb3BlcnR5KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBvYmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiB2YWx1ZSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKKyAg
ICBVTlVTRURfUEFSQU0ob2JqZWN0KTsKKyAgICBVTlVTRURfUEFSQU0ocHJvcGVydHlOYW1lKTsK
KyAgICBVTlVTRURfUEFSQU0odmFsdWUpOworICAgIFVOVVNFRF9QQVJBTShleGNlcHRpb24pOwor
CisgICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcocHJvcGVydHlOYW1lLCAieCIp
KSB7CisgICAgICAgIHN0YXRpYyBzaXplX3QgY291bnQ7CisgICAgICAgIGlmIChjb3VudCsrIDwg
NSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICAvLyBTd2FsbG93IGFsbCAu
eCBzZXRzIGFmdGVyIDQuCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVy
biBmYWxzZTsKK30KKworc3RhdGljIHZvaWQgUHJvcGVydHlDYXRjaGFsbHNfZ2V0UHJvcGVydHlO
YW1lcyhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgb2JqZWN0LCBKU1Byb3BlcnR5
TmFtZUFjY3VtdWxhdG9yUmVmIHByb3BlcnR5TmFtZXMpCit7CisgICAgVU5VU0VEX1BBUkFNKGNv
bnRleHQpOworICAgIFVOVVNFRF9QQVJBTShvYmplY3QpOworCisgICAgc3RhdGljIHNpemVfdCBj
b3VudDsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogbnVtYmVyc1tdID0geyAiMCIsICIxIiwgIjIi
LCAiMyIsICI0IiwgIjUiLCAiNiIsICI3IiwgIjgiLCAiOSIgfTsKKyAgICAKKyAgICAvLyBQcm92
aWRlIGEgcHJvcGVydHkgb2YgYSBkaWZmZXJlbnQgbmFtZSBldmVyeSB0aW1lLgorICAgIEpTU3Ry
aW5nUmVmIHByb3BlcnR5TmFtZSA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKG51bWJl
cnNbY291bnQrKyAlIDEwXSk7CisgICAgSlNQcm9wZXJ0eU5hbWVBY2N1bXVsYXRvckFkZE5hbWUo
cHJvcGVydHlOYW1lcywgcHJvcGVydHlOYW1lKTsKKyAgICBKU1N0cmluZ1JlbGVhc2UocHJvcGVy
dHlOYW1lKTsKK30KKworSlNDbGFzc0RlZmluaXRpb24gUHJvcGVydHlDYXRjaGFsbHNfZGVmaW5p
dGlvbiA9IHsKKyAgICAwLAorICAgIGtKU0NsYXNzQXR0cmlidXRlTm9uZSwKKyAgICAKKyAgICAi
UHJvcGVydHlDYXRjaGFsbHMiLAorICAgIE5VTEwsCisgICAgCisgICAgTlVMTCwKKyAgICBOVUxM
LAorICAgIAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorICAgIFByb3BlcnR5Q2F0
Y2hhbGxzX2dldFByb3BlcnR5LAorICAgIFByb3BlcnR5Q2F0Y2hhbGxzX3NldFByb3BlcnR5LAor
ICAgIE5VTEwsCisgICAgUHJvcGVydHlDYXRjaGFsbHNfZ2V0UHJvcGVydHlOYW1lcywKKyAgICBO
VUxMLAorICAgIE5VTEwsCisgICAgTlVMTCwKKyAgICBOVUxMLAorfTsKKworc3RhdGljIEpTQ2xh
c3NSZWYgUHJvcGVydHlDYXRjaGFsbHNfY2xhc3MoSlNDb250ZXh0UmVmIGNvbnRleHQpCit7Cisg
ICAgVU5VU0VEX1BBUkFNKGNvbnRleHQpOworCisgICAgc3RhdGljIEpTQ2xhc3NSZWYganNDbGFz
czsKKyAgICBpZiAoIWpzQ2xhc3MpCisgICAgICAgIGpzQ2xhc3MgPSBKU0NsYXNzQ3JlYXRlKCZQ
cm9wZXJ0eUNhdGNoYWxsc19kZWZpbml0aW9uKTsKKyAgICAKKyAgICByZXR1cm4ganNDbGFzczsK
K30KKwogc3RhdGljIGJvb2wgRXZpbEV4Y2VwdGlvbk9iamVjdF9oYXNJbnN0YW5jZShKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgY29uc3RydWN0b3IsIEpTVmFsdWVSZWYgcG9zc2li
bGVWYWx1ZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIFVOVVNFRF9QQVJBTShjb250
ZXh0KTsKQEAgLTkyMiw2ICsxMDI3LDExIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2
W10pCiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpzQ0ZFbXB0eVN0cmluZykg
PT0ga0pTVHlwZVN0cmluZyk7CiAgICAgQVNTRVJUKEpTVmFsdWVHZXRUeXBlKGNvbnRleHQsIGpz
Q0ZFbXB0eVN0cmluZ1dpdGhDaGFyYWN0ZXJzKSA9PSBrSlNUeXBlU3RyaW5nKTsKIAorICAgIEpT
T2JqZWN0UmVmIHByb3BlcnR5Q2F0Y2hhbGxzID0gSlNPYmplY3RNYWtlKGNvbnRleHQsIFByb3Bl
cnR5Q2F0Y2hhbGxzX2NsYXNzKGNvbnRleHQpLCBOVUxMKTsKKyAgICBKU1N0cmluZ1JlZiBwcm9w
ZXJ0eUNhdGNoYWxsc1N0cmluZyA9IEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQcm9w
ZXJ0eUNhdGNoYWxscyIpOworICAgIEpTT2JqZWN0U2V0UHJvcGVydHkoY29udGV4dCwgZ2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eUNhdGNoYWxsc1N0cmluZywgcHJvcGVydHlDYXRjaGFsbHMsIGtKU1By
b3BlcnR5QXR0cmlidXRlTm9uZSwgTlVMTCk7CisgICAgSlNTdHJpbmdSZWxlYXNlKHByb3BlcnR5
Q2F0Y2hhbGxzU3RyaW5nKTsKKwogICAgIEpTT2JqZWN0UmVmIG15T2JqZWN0ID0gSlNPYmplY3RN
YWtlKGNvbnRleHQsIE15T2JqZWN0X2NsYXNzKGNvbnRleHQpLCBOVUxMKTsKICAgICBKU1N0cmlu
Z1JlZiBteU9iamVjdElTdHJpbmcgPSBKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiTXlP
YmplY3QiKTsKICAgICBKU09iamVjdFNldFByb3BlcnR5KGNvbnRleHQsIGdsb2JhbE9iamVjdCwg
bXlPYmplY3RJU3RyaW5nLCBteU9iamVjdCwga0pTUHJvcGVydHlBdHRyaWJ1dGVOb25lLCBOVUxM
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvdGVzdHMvdGVzdGFwaS5qcwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL3Rlc3RhcGkuanMJKHJl
dmlzaW9uIDg3NTIxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy90ZXN0YXBp
LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNDYsNiArMjQ2LDMyIEBAIHNob3VsZFRocm93KCJTdHJp
bmcoRXZpbEV4Y2VwdGlvbk9iamVjdCkKIAogc2hvdWxkQmUoIkVtcHR5T2JqZWN0IiwgIltvYmpl
Y3QgQ2FsbGJhY2tPYmplY3RdIik7CiAKK2ZvciAodmFyIGkgPSAwOyBpIDwgNjsgKytpKQorICAg
IFByb3BlcnR5Q2F0Y2hhbGxzLnggPSBpOworc2hvdWxkQmUoIlByb3BlcnR5Q2F0Y2hhbGxzLngi
LCA0KTsKKworZm9yICh2YXIgaSA9IDA7IGkgPCA2OyArK2kpCisgICAgdmFyIHggPSBQcm9wZXJ0
eUNhdGNoYWxscy54Oworc2hvdWxkQmUoIngiLCBudWxsKTsKKworZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDsgKytpKSB7CisgICAgZm9yICh2YXIgcCBpbiBQcm9wZXJ0eUNhdGNoYWxscykgeworICAg
ICAgICBpZiAocCA9PSAieCIpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc2hvdWxk
QmUoInAiLCBpICUgMTApOworICAgICAgICBicmVhazsKKyAgICB9Cit9CisKK1Byb3BlcnR5Q2F0
Y2hhbGxzLl9fcHJvdG9fXyA9IHsgeTogMSB9OworZm9yICh2YXIgaSA9IDA7IGkgPCA2OyArK2kp
CisgICAgdmFyIHkgPSBQcm9wZXJ0eUNhdGNoYWxscy55Oworc2hvdWxkQmUoInkiLCBudWxsKTsK
KwordmFyIG8gPSB7IF9fcHJvdG9fXzogUHJvcGVydHlDYXRjaGFsbHMgfTsKK2ZvciAodmFyIGkg
PSAwOyBpIDwgNjsgKytpKQorICAgIHZhciB6ID0gUHJvcGVydHlDYXRjaGFsbHMuejsKK3Nob3Vs
ZEJlKCJ6IiwgbnVsbCk7CisKIGlmIChmYWlsZWQpCiAgICAgdGhyb3cgIlNvbWUgdGVzdHMgZmFp
bGVkIjsKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL0ludGVycHJl
dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaW50ZXJwcmV0ZXIv
SW50ZXJwcmV0ZXIuY3BwCShyZXZpc2lvbiA4NzUyMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnRlcnByZXRlci9JbnRlcnByZXRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMzksNyAr
MTIzOSw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEludGVycHJldGVyOjp0cnlDYWNoZVAKICAgICBK
U0NlbGwqIGJhc2VDZWxsID0gYmFzZVZhbHVlLmFzQ2VsbCgpOwogICAgIFN0cnVjdHVyZSogc3Ry
dWN0dXJlID0gYmFzZUNlbGwtPnN0cnVjdHVyZSgpOwogCi0gICAgaWYgKHN0cnVjdHVyZS0+aXNV
bmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgeworICAgIGlmIChzdHJ1Y3R1cmUtPmlzVW5jYWNoZWFi
bGVEaWN0aW9uYXJ5KCkgfHwgc3RydWN0dXJlLT50eXBlSW5mbygpLnByb2hpYml0c1Byb3BlcnR5
Q2FjaGluZygpKSB7CiAgICAgICAgIHZQQ1swXSA9IGdldE9wY29kZShvcF9wdXRfYnlfaWRfZ2Vu
ZXJpYyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzI3LDcgKzEzMjcsNyBAQCBORVZF
Ul9JTkxJTkUgdm9pZCBJbnRlcnByZXRlcjo6dHJ5Q2FjaGVHCiAKICAgICBTdHJ1Y3R1cmUqIHN0
cnVjdHVyZSA9IGJhc2VWYWx1ZS5hc0NlbGwoKS0+c3RydWN0dXJlKCk7CiAKLSAgICBpZiAoc3Ry
dWN0dXJlLT5pc1VuY2FjaGVhYmxlRGljdGlvbmFyeSgpKSB7CisgICAgaWYgKHN0cnVjdHVyZS0+
aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSB8fCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGli
aXRzUHJvcGVydHlDYWNoaW5nKCkpIHsKICAgICAgICAgdlBDWzBdID0gZ2V0T3Bjb2RlKG9wX2dl
dF9ieV9pZF9nZW5lcmljKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCShyZXZpc2lvbiA4NzUyMSkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qaXQvSklUU3R1YnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MTksNyAr
ODE5LDcgQEAgTkVWRVJfSU5MSU5FIHZvaWQgSklUVGh1bmtzOjp0cnlDYWNoZVB1dAogICAgIEpT
Q2VsbCogYmFzZUNlbGwgPSBiYXNlVmFsdWUuYXNDZWxsKCk7CiAgICAgU3RydWN0dXJlKiBzdHJ1
Y3R1cmUgPSBiYXNlQ2VsbC0+c3RydWN0dXJlKCk7CiAKLSAgICBpZiAoc3RydWN0dXJlLT5pc1Vu
Y2FjaGVhYmxlRGljdGlvbmFyeSgpKSB7CisgICAgaWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJs
ZURpY3Rpb25hcnkoKSB8fCBzdHJ1Y3R1cmUtPnR5cGVJbmZvKCkucHJvaGliaXRzUHJvcGVydHlD
YWNoaW5nKCkpIHsKICAgICAgICAgY3RpUGF0Y2hDYWxsQnlSZXR1cm5BZGRyZXNzKGNvZGVCbG9j
aywgcmV0dXJuQWRkcmVzcywgRnVuY3Rpb25QdHIoZGlyZWN0ID8gY3RpX29wX3B1dF9ieV9pZF9k
aXJlY3RfZ2VuZXJpYyA6IGN0aV9vcF9wdXRfYnlfaWRfZ2VuZXJpYykpOwogICAgICAgICByZXR1
cm47CiAgICAgfQpAQCAtODg3LDcgKzg4Nyw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpJVFRodW5r
czo6dHJ5Q2FjaGVHZXQKICAgICBKU0NlbGwqIGJhc2VDZWxsID0gYmFzZVZhbHVlLmFzQ2VsbCgp
OwogICAgIFN0cnVjdHVyZSogc3RydWN0dXJlID0gYmFzZUNlbGwtPnN0cnVjdHVyZSgpOwogCi0g
ICAgaWYgKHN0cnVjdHVyZS0+aXNVbmNhY2hlYWJsZURpY3Rpb25hcnkoKSkgeworICAgIGlmIChz
dHJ1Y3R1cmUtPmlzVW5jYWNoZWFibGVEaWN0aW9uYXJ5KCkgfHwgc3RydWN0dXJlLT50eXBlSW5m
bygpLnByb2hpYml0c1Byb3BlcnR5Q2FjaGluZygpKSB7CiAgICAgICAgIGN0aVBhdGNoQ2FsbEJ5
UmV0dXJuQWRkcmVzcyhjb2RlQmxvY2ssIHJldHVybkFkZHJlc3MsIEZ1bmN0aW9uUHRyKGN0aV9v
cF9nZXRfYnlfaWRfZ2VuZXJpYykpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTcyMiw3
ICsxNzIyLDcgQEAgREVGSU5FX1NUVUJfRlVOQ1RJT04oRW5jb2RlZEpTVmFsdWUsIG9wXwogCiAg
ICAgQ0hFQ0tfRk9SX0VYQ0VQVElPTigpOwogCi0gICAgaWYgKCFiYXNlVmFsdWUuaXNDZWxsKCkg
fHwgIXNsb3QuaXNDYWNoZWFibGUoKSB8fCBiYXNlVmFsdWUuYXNDZWxsKCktPnN0cnVjdHVyZSgp
LT5pc0RpY3Rpb25hcnkoKSkgeworICAgIGlmICghYmFzZVZhbHVlLmlzQ2VsbCgpIHx8ICFzbG90
LmlzQ2FjaGVhYmxlKCkgfHwgYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+aXNEaWN0
aW9uYXJ5KCkgfHwgYmFzZVZhbHVlLmFzQ2VsbCgpLT5zdHJ1Y3R1cmUoKS0+dHlwZUluZm8oKS5w
cm9oaWJpdHNQcm9wZXJ0eUNhY2hpbmcoKSkgewogICAgICAgICBjdGlQYXRjaENhbGxCeVJldHVy
bkFkZHJlc3MoY2FsbEZyYW1lLT5jb2RlQmxvY2soKSwgU1RVQl9SRVRVUk5fQUREUkVTUywgRnVu
Y3Rpb25QdHIoY3RpX29wX2dldF9ieV9pZF9wcm90b19mYWlsKSk7CiAgICAgICAgIHJldHVybiBK
U1ZhbHVlOjplbmNvZGUocmVzdWx0KTsKICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU1R5cGVJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNUeXBlSW5mby5oCShyZXZpc2lvbiA4NzUyMSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTVHlwZUluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzQsOCAr
MzQsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotICAgIC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVy
YWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9jdW1lbnQuYWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5k
ZXRlY3RhYmxlLgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBNYXNxdWVyYWRlc0FzVW5kZWZp
bmVkID0gMTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTWFzcXVlcmFkZXNBc1VuZGVmaW5l
ZCA9IDE7IC8vIFdlYkNvcmUgdXNlcyBNYXNxdWVyYWRlc0FzVW5kZWZpbmVkIHRvIG1ha2UgZG9j
dW1lbnQuYWxsIGFuZCBzdHlsZS5maWx0ZXIgdW5kZXRlY3RhYmxlLgogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBJbXBsZW1lbnRzSGFzSW5zdGFuY2UgPSAxIDw8IDE7CiAgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIE92ZXJyaWRlc0hhc0luc3RhbmNlID0gMSA8PCAyOwogICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBJbXBsZW1lbnRzRGVmYXVsdEhhc0luc3RhbmNlID0gMSA8PCAzOwpAQCAt
NDQsMTYgKzQzLDE3IEBAIG5hbWVzcGFjZSBKU0MgewogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBPdmVycmlkZXNWaXNpdENoaWxkcmVuID0gMSA8PCA2OwogICAgIHN0YXRpYyBjb25zdCB1bnNp
Z25lZCBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzID0gMSA8PCA3OwogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBJc0pTRmluYWxPYmplY3QgPSAxIDw8IDg7CisgICAgc3RhdGljIGNvbnN0IHVu
c2lnbmVkIFByb2hpYml0c1Byb3BlcnR5Q2FjaGluZyA9IDEgPDwgOTsKIAogICAgIGNsYXNzIFR5
cGVJbmZvIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFR5cGVJbmZvKEpTVHlwZSB0eXBlLCB1bnNp
Z25lZCBmbGFncyA9IDApCiAgICAgICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAgICAg
LCBtX2ZsYWdzKGZsYWdzICYgMHhGRikKKyAgICAgICAgICAgICwgbV9mbGFncyhmbGFncyAmIDB4
ZmYpCiAgICAgICAgICAgICAsIG1fZmxhZ3MyKGZsYWdzID4+IDgpCiAgICAgICAgIHsKLSAgICAg
ICAgICAgIEFTU0VSVChmbGFncyA8PSAweDFGRik7Ci0gICAgICAgICAgICBBU1NFUlQodHlwZSA8
PSAweEZGKTsKKyAgICAgICAgICAgIEFTU0VSVChmbGFncyA8PSAweDNmZik7CisgICAgICAgICAg
ICBBU1NFUlQodHlwZSA8PSAweGZmKTsKICAgICAgICAgICAgIEFTU0VSVCh0eXBlID49IENvbXBv
dW5kVHlwZSB8fCAhKGZsYWdzICYgT3ZlcnJpZGVzVmlzaXRDaGlsZHJlbikpOwogICAgICAgICAg
ICAgLy8gSW1wbGVtZW50c0RlZmF1bHRIYXNJbnN0YW5jZSBtZWFucyAoSW1wbGVtZW50c0hhc0lu
c3RhbmNlICYgIU92ZXJyaWRlc0hhc0luc3RhbmNlKQogICAgICAgICAgICAgaWYgKChtX2ZsYWdz
ICYgKEltcGxlbWVudHNIYXNJbnN0YW5jZSB8IE92ZXJyaWRlc0hhc0luc3RhbmNlKSkgPT0gSW1w
bGVtZW50c0hhc0luc3RhbmNlKQpAQCAtNjksOCArNjksOSBAQCBuYW1lc3BhY2UgSlNDIHsKICAg
ICAgICAgYm9vbCBvdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoKSBjb25zdCB7IHJldHVybiBt
X2ZsYWdzICYgT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90OyB9CiAgICAgICAgIGJvb2wgb3Zl
cnJpZGVzVmlzaXRDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBPdmVycmlkZXNW
aXNpdENoaWxkcmVuOyB9CiAgICAgICAgIGJvb2wgb3ZlcnJpZGVzR2V0UHJvcGVydHlOYW1lcygp
IGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3MgJiBPdmVycmlkZXNHZXRQcm9wZXJ0eU5hbWVzOyB9Cisg
ICAgICAgIHVuc2lnbmVkIGlzRmluYWwoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzMiAmIChJc0pT
RmluYWxPYmplY3QgPj4gOCk7IH0KKyAgICAgICAgdW5zaWduZWQgcHJvaGliaXRzUHJvcGVydHlD
YWNoaW5nKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczIgJiAoUHJvaGliaXRzUHJvcGVydHlDYWNo
aW5nID4+IDgpOyB9CiAgICAgICAgIHVuc2lnbmVkIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9m
bGFnczsgfQotICAgICAgICB1bnNpZ25lZCBpc0ZpbmFsKCkgY29uc3QgeyByZXR1cm4gbV9mbGFn
czIgJiYgKElzSlNGaW5hbE9iamVjdCA+PiA4KTsgfQogCiAgICAgICAgIHN0YXRpYyBwdHJkaWZm
X3QgZmxhZ3NPZmZzZXQoKQogICAgICAgICB7Cg==
</data>
<flag name="review"
          id="88682"
          type_id="1"
          status="+"
          setter="oliver"
    />
          </attachment>
      

    </bug>

</bugzilla>