<?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>171393</bug_id>
          
          <creation_ts>2017-04-27 14:25:42 -0700</creation_ts>
          <short_desc>Range.getClientRects() / getBoundingClientRect() should return DOMRect types</short_desc>
          <delta_ts>2017-04-28 14:16:35 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=171226</see_also>
          <bug_file_loc>https://drafts.csswg.org/cssom-view/#extensions-to-the-range-interface</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>WebExposed</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>171412</blocked>
    
    <blocked>171418</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fred.wang</cc>
    
    <cc>ggaren</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1302295</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-27 14:25:42 -0700</bug_when>
    <thetext>Range.getClientRects() / getBoundingClientRect() should return DOMRect types:
- https://drafts.csswg.org/cssom-view/#extensions-to-the-range-interface</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302392</commentid>
    <comment_count>1</comment_count>
      <attachid>308476</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-27 16:43:19 -0700</bug_when>
    <thetext>Created attachment 308476
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302406</commentid>
    <comment_count>2</comment_count>
      <attachid>308478</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-27 16:54:46 -0700</bug_when>
    <thetext>Created attachment 308478
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302551</commentid>
    <comment_count>3</comment_count>
      <attachid>308478</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-04-28 06:11:32 -0700</bug_when>
    <thetext>Comment on attachment 308478
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=308478&amp;action=review

&gt; Source/WebCore/dom/DOMRect.h:44
&gt; +    static Vector&lt;Ref&lt;DOMRect&gt;&gt; createVector(const Vector&lt;FloatQuad&gt;&amp;);

I think its a little weird to have a &quot;create&quot; function, even one with a suffix, as a class function if it doesn&apos;t return the class (or a Ref&lt;&gt; of said class).  I think this would be clearer as a free function.

&gt; Source/WebCore/dom/Range.h:-38
&gt; -class ClientRectList;

Are there any remaining uses of ClientRect or ClientRectList? Can we remove them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302560</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 06:41:55 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Comment on attachment 308478 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=308478&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/DOMRect.h:44
&gt; &gt; +    static Vector&lt;Ref&lt;DOMRect&gt;&gt; createVector(const Vector&lt;FloatQuad&gt;&amp;);
&gt; 
&gt; I think its a little weird to have a &quot;create&quot; function, even one with a
&gt; suffix, as a class function if it doesn&apos;t return the class (or a Ref&lt;&gt; of
&gt; said class).  I think this would be clearer as a free function.

Ok, will do.

&gt; 
&gt; &gt; Source/WebCore/dom/Range.h:-38
&gt; &gt; -class ClientRectList;
&gt; 
&gt; Are there any remaining uses of ClientRect or ClientRectList? Can we remove
&gt; them?

Yes and yes. See related radars. I am doing this gradually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302569</commentid>
    <comment_count>5</comment_count>
      <attachid>308529</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 07:39:25 -0700</bug_when>
    <thetext>Created attachment 308529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302574</commentid>
    <comment_count>6</comment_count>
      <attachid>308530</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 08:25:56 -0700</bug_when>
    <thetext>Created attachment 308530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302579</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 08:35:12 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Sam Weinig from comment #3)
&gt; &gt; Comment on attachment 308478 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=308478&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/DOMRect.h:44
&gt; &gt; &gt; +    static Vector&lt;Ref&lt;DOMRect&gt;&gt; createVector(const Vector&lt;FloatQuad&gt;&amp;);
&gt; &gt; 
&gt; &gt; I think its a little weird to have a &quot;create&quot; function, even one with a
&gt; &gt; suffix, as a class function if it doesn&apos;t return the class (or a Ref&lt;&gt; of
&gt; &gt; said class).  I think this would be clearer as a free function.
&gt; 
&gt; Ok, will do.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/dom/Range.h:-38
&gt; &gt; &gt; -class ClientRectList;
&gt; &gt; 
&gt; &gt; Are there any remaining uses of ClientRect or ClientRectList? Can we remove
&gt; &gt; them?
&gt; 
&gt; Yes and yes. See related radars. I am doing this gradually.

I meant related bugs:
https://bugs.webkit.org/show_bug.cgi?id=171412
https://bugs.webkit.org/show_bug.cgi?id=171393</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302782</commentid>
    <comment_count>8</comment_count>
      <attachid>308530</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2017-04-28 14:14:36 -0700</bug_when>
    <thetext>Comment on attachment 308530
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=308530&amp;action=review

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:3325
&gt;  		83120C711C56F3FB001CB112 /* HTMLDataElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 834B86A71C56E83A00F3F0E3 /* HTMLDataElement.h */; };
&gt; +		83149FF61EB38B3700089665 /* DOMRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83149FF51EB38B1200089665 /* DOMRect.cpp */; };

Should probably run sort-Xcode-project-file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302783</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-04-28 14:16:35 -0700</bug_when>
    <thetext>Committed r215946: &lt;http://trac.webkit.org/changeset/215946&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308476</attachid>
            <date>2017-04-27 16:43:19 -0700</date>
            <delta_ts>2017-04-27 16:54:45 -0700</delta_ts>
            <desc>WIP Patch</desc>
            <filename>171393_Range_DOMRect_wip.patch</filename>
            <type>text/plain</type>
            <size>5181</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NUmVjdC5oCmluZGV4IDA0N2M1MDZhMDhiLi45MmQ4Y2VlMmIzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RE9NUmVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yNiw4ICsyNiwxMCBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJET01S
ZWN0UmVhZE9ubHkuaCIKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKICNpbmNsdWRlICJGbG9hdFJl
Y3QuaCIKICNpbmNsdWRlICJJbnRSZWN0LmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5LDYgKzQxLDcgQEAgcHVibGljOgogICAgIHN0YXRp
YyBSZWY8RE9NUmVjdD4gY3JlYXRlKEZsb2F0UmVjdCByZWN0KSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IERPTVJlY3QocmVjdC54KCksIHJlY3QueSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0
KCkpKTsgfQogICAgIHN0YXRpYyBSZWY8RE9NUmVjdD4gY3JlYXRlKEludFJlY3QgcmVjdCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBET01SZWN0KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0
aCgpLCByZWN0LmhlaWdodCgpKSk7IH0KICAgICBzdGF0aWMgUmVmPERPTVJlY3Q+IGZyb21SZWN0
KGNvbnN0IERPTVJlY3RJbml0JiBpbml0KSB7IHJldHVybiBjcmVhdGUoaW5pdC54LCBpbml0Lnks
IGluaXQud2lkdGgsIGluaXQuaGVpZ2h0KTsgfQorICAgIHN0YXRpYyBWZWN0b3I8UmVmPERPTVJl
Y3Q+PiBjcmVhdGVWZWN0b3IoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mKTsKIAogICAgIHZvaWQg
c2V0WChkb3VibGUgeCkgeyBtX3ggPSB4OyB9CiAgICAgdm9pZCBzZXRZKGRvdWJsZSB5KSB7IG1f
eSA9IHk7IH0KQEAgLTU1LDQgKzU4LDEzIEBAIHByaXZhdGU6CiAgICAgRE9NUmVjdCgpID0gZGVm
YXVsdDsKIH07CiAKK2lubGluZSBWZWN0b3I8UmVmPERPTVJlY3Q+PiBET01SZWN0OjpjcmVhdGVW
ZWN0b3IoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mIHF1YWRzKQoreworICAgIFZlY3RvcjxSZWY8
RE9NUmVjdD4+IHJlc3VsdDsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFk
cy5zaXplKCkpOworICAgIGZvciAoYXV0byYgcXVhZCA6IHF1YWRzKQorICAgICAgICByZXN1bHQu
dW5jaGVja2VkQXBwZW5kKERPTVJlY3Q6OmNyZWF0ZShxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94
KCkpKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5k
ZXggNDg2NDZjMGQ5NzIuLmIyNzdmOWM2MTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0x
MTQ2LDE1ICsxMTQ2LDYgQEAgTGF5b3V0UmVjdCBFbGVtZW50OjphYnNvbHV0ZUV2ZW50SGFuZGxl
ckJvdW5kcyhib29sJiBpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZW4KICAgICByZXR1cm4gYWJz
b2x1dGVFdmVudEJvdW5kc09mRWxlbWVudEFuZERlc2NlbmRhbnRzKGluY2x1ZGVzRml4ZWRQb3Np
dGlvbkVsZW1lbnRzKTsKIH0KIAotc3RhdGljIFZlY3RvcjxSZWY8RE9NUmVjdD4+IHRvRE9NUmVj
dFZlY3Rvcihjb25zdCBWZWN0b3I8RmxvYXRRdWFkPiYgcXVhZHMpCi17Ci0gICAgVmVjdG9yPFJl
ZjxET01SZWN0Pj4gcmVzdWx0OwotICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KHF1
YWRzLnNpemUoKSk7Ci0gICAgZm9yIChhdXRvJiBxdWFkIDogcXVhZHMpCi0gICAgICAgIHJlc3Vs
dC51bmNoZWNrZWRBcHBlbmQoRE9NUmVjdDo6Y3JlYXRlKHF1YWQuZW5jbG9zaW5nQm91bmRpbmdC
b3goKSkpOwotICAgIHJldHVybiByZXN1bHQ7Ci19Ci0KIFZlY3RvcjxSZWY8RE9NUmVjdD4+IEVs
ZW1lbnQ6OmdldENsaWVudFJlY3RzKCkKIHsKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwpAQCAtMTE2OSw3ICsxMTYwLDcgQEAgVmVjdG9yPFJl
ZjxET01SZWN0Pj4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogICAgIFZlY3RvcjxGbG9hdFF1
YWQ+IHF1YWRzOwogICAgIHJlbmRlckJveE1vZGVsT2JqZWN0LT5hYnNvbHV0ZVF1YWRzKHF1YWRz
KTsKICAgICBkb2N1bWVudCgpLmFkanVzdEZsb2F0UXVhZHNGb3JTY3JvbGxBbmRBYnNvbHV0ZVpv
b21BbmRGcmFtZVNjYWxlKHF1YWRzLCByZW5kZXJCb3hNb2RlbE9iamVjdC0+c3R5bGUoKSk7Ci0g
ICAgcmV0dXJuIHRvRE9NUmVjdFZlY3RvcihxdWFkcyk7CisgICAgcmV0dXJuIERPTVJlY3Q6OmNy
ZWF0ZVZlY3RvcihxdWFkcyk7CiB9CiAKIFJlZjxET01SZWN0PiBFbGVtZW50OjpnZXRCb3VuZGlu
Z0NsaWVudFJlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNzczNGFiZDEyMWIuLjk1NWQwYjA2
MmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKQEAgLTI1LDkgKzI1LDggQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogCi0jaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgotI2lu
Y2x1ZGUgIkNsaWVudFJlY3RMaXN0LmgiCiAjaW5jbHVkZSAiQ29tbWVudC5oIgorI2luY2x1ZGUg
IkRPTVJlY3QuaCIKICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWRp
dGluZy5oIgogI2luY2x1ZGUgIkV2ZW50LmgiCkBAIC0xNzYzLDE0ICsxNzYyLDE0IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFJhbmdlOjpleHBhbmQoY29uc3QgU3RyaW5nJiB1bml0KQogICAgIHJldHVy
biBzZXRFbmQoKmVuZENvbnRhaW5lciwgZW5kLmRlZXBFcXVpdmFsZW50KCkuY29tcHV0ZU9mZnNl
dEluQ29udGFpbmVyTm9kZSgpKTsKIH0KIAotUmVmPENsaWVudFJlY3RMaXN0PiBSYW5nZTo6Z2V0
Q2xpZW50UmVjdHMoKSBjb25zdAorVmVjdG9yPFJlZjxET01SZWN0Pj4gUmFuZ2U6OmdldENsaWVu
dFJlY3RzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ2xpZW50UmVjdExpc3Q6OmNyZWF0ZShib3Jk
ZXJBbmRUZXh0UXVhZHMoQ29vcmRpbmF0ZVNwYWNlOjpDbGllbnQpKTsKKyAgICByZXR1cm4gRE9N
UmVjdDo6Y3JlYXRlVmVjdG9yKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGluYXRlU3BhY2U6OkNs
aWVudCkpOwogfQogCi1SZWY8Q2xpZW50UmVjdD4gUmFuZ2U6OmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpIGNvbnN0CitSZWY8RE9NUmVjdD4gUmFuZ2U6OmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIENsaWVudFJlY3Q6OmNyZWF0ZShib3VuZGluZ1JlY3QoQ29vcmRp
bmF0ZVNwYWNlOjpDbGllbnQpKTsKKyAgICByZXR1cm4gRE9NUmVjdDo6Y3JlYXRlKGJvdW5kaW5n
UmVjdChDb29yZGluYXRlU3BhY2U6OkNsaWVudCkpOwogfQogCiBWZWN0b3I8RmxvYXRRdWFkPiBS
YW5nZTo6Ym9yZGVyQW5kVGV4dFF1YWRzKENvb3JkaW5hdGVTcGFjZSBzcGFjZSkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmgKaW5kZXggNjc0ZTEzOTIxNTEuLmVhN2M5NDVjODZjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApA
QCAtMzQsOCArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsaWVudFJl
Y3Q7Ci1jbGFzcyBDbGllbnRSZWN0TGlzdDsKK2NsYXNzIERPTVJlY3Q7CiBjbGFzcyBDb250YWlu
ZXJOb2RlOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtMTQy
LDggKzE0MSw4IEBAIHB1YmxpYzoKICAgICAvLyBmb3IgZGV0YWlscy4KICAgICBXRUJDT1JFX0VY
UE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBleHBhbmQoY29uc3QgU3RyaW5nJik7CiAKLSAgICBSZWY8
Q2xpZW50UmVjdExpc3Q+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7Ci0gICAgUmVmPENsaWVudFJl
Y3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OworICAgIFZlY3RvcjxSZWY8RE9NUmVj
dD4+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7CisgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5n
Q2xpZW50UmVjdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQogICAgIHZv
aWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5pZGwKaW5kZXggNWU4NTM5MzkxZGUuLjcyMWM3ZjI5Zjg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9SYW5nZS5pZGwKQEAgLTYyLDggKzYyLDggQEAKIAogICAgIHZvaWQgZGV0YWNoKCk7CiAKLSAg
ICBDbGllbnRSZWN0TGlzdCBnZXRDbGllbnRSZWN0cygpOwotICAgIENsaWVudFJlY3QgZ2V0Qm91
bmRpbmdDbGllbnRSZWN0KCk7CisgICAgc2VxdWVuY2U8RE9NUmVjdD4gZ2V0Q2xpZW50UmVjdHMo
KTsKKyAgICBbTmV3T2JqZWN0XSBET01SZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogCiAg
ICAgW0NFUmVhY3Rpb25zLCBNYXlUaHJvd0V4Y2VwdGlvbiwgTmV3T2JqZWN0XSBEb2N1bWVudEZy
YWdtZW50IGNyZWF0ZUNvbnRleHR1YWxGcmFnbWVudChET01TdHJpbmcgaHRtbCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308478</attachid>
            <date>2017-04-27 16:54:46 -0700</date>
            <delta_ts>2017-04-28 07:39:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171393-20170427165446.patch</filename>
            <type>text/plain</type>
            <size>9472</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1ODk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZiYzZiMDk4NjZmMDRm
ZWM0OTBkZmI5MjNlYzg2NTQ0NzNmZmEzYy4uYjBkMmU4MDIzNmJmZDlkMGQ1Njc1Mjg3ODY5YjE5
YjIzZDk4ODgxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA0LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuZ2V0Q2xpZW50UmVj
dHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4gRE9NUmVjdCB0eXBl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4g
RE9NUmVjdCB0eXBlczoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jZXh0ZW5zaW9ucy10by10aGUtcmFuZ2UtaW50ZXJmYWNlCisKKyAgICAgICAgVGVzdDog
ZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVy
bi10eXBlLmh0bWwKKworICAgICAgICAqIGRvbS9ET01SZWN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01SZWN0OjpjcmVhdGVWZWN0b3IpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldENsaWVudFJlY3RzKToKKyAgICAgICAgKiBkb20v
UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmdldENsaWVudFJlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlOjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAq
IGRvbS9SYW5nZS5oOgorICAgICAgICAqIGRvbS9SYW5nZS5pZGw6CisKIDIwMTctMDQtMjcgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUGVyZm9ybWlu
ZyBkYXRhIGludGVyYWN0aW9uIHdpdGggcGxhaW4gdGV4dCBpbnRvIGEgY29udGVudGVkaXRhYmxl
IGRvZXMgbm90IGluc2VydCBhbnkgY29udGVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKaW5kZXggMDQ3YzUw
NmEwOGI3M2ZkZjU5ODJjOGM4ZDYyNWE3NTlmYjk4YmI1OS4uOTJkOGNlZTJiM2JiMjEyYTMzNzgy
NzQ2NDViMTExMWJmMjBlYTg0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJl
Y3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMCBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJET01SZWN0UmVhZE9ubHkuaCIKKyNpbmNsdWRlICJG
bG9hdFF1YWQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbnRSZWN0Lmgi
CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTM5
LDYgKzQxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8RE9NUmVjdD4gY3JlYXRlKEZsb2F0
UmVjdCByZWN0KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVJlY3QocmVjdC54KCksIHJlY3Qu
eSgpLCByZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsgfQogICAgIHN0YXRpYyBSZWY8RE9N
UmVjdD4gY3JlYXRlKEludFJlY3QgcmVjdCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01SZWN0
KHJlY3QueCgpLCByZWN0LnkoKSwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7IH0KICAg
ICBzdGF0aWMgUmVmPERPTVJlY3Q+IGZyb21SZWN0KGNvbnN0IERPTVJlY3RJbml0JiBpbml0KSB7
IHJldHVybiBjcmVhdGUoaW5pdC54LCBpbml0LnksIGluaXQud2lkdGgsIGluaXQuaGVpZ2h0KTsg
fQorICAgIHN0YXRpYyBWZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVWZWN0b3IoY29uc3QgVmVj
dG9yPEZsb2F0UXVhZD4mKTsKIAogICAgIHZvaWQgc2V0WChkb3VibGUgeCkgeyBtX3ggPSB4OyB9
CiAgICAgdm9pZCBzZXRZKGRvdWJsZSB5KSB7IG1feSA9IHk7IH0KQEAgLTU1LDQgKzU4LDEzIEBA
IHByaXZhdGU6CiAgICAgRE9NUmVjdCgpID0gZGVmYXVsdDsKIH07CiAKK2lubGluZSBWZWN0b3I8
UmVmPERPTVJlY3Q+PiBET01SZWN0OjpjcmVhdGVWZWN0b3IoY29uc3QgVmVjdG9yPEZsb2F0UXVh
ZD4mIHF1YWRzKQoreworICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IHJlc3VsdDsKKyAgICByZXN1
bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOworICAgIGZvciAoYXV0byYg
cXVhZCA6IHF1YWRzKQorICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKERPTVJlY3Q6OmNy
ZWF0ZShxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKKyAgICByZXR1cm4gcmVzdWx0Owor
fQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNDg2NDZjMGQ5NzIyYWU4MWQ1ZTgxMDA0
YTExZjIzNGM1OWM2ZDdkNy4uYjI3N2Y5YzYxN2M5YjBkZTQ0OTQ4YjQ5YjUyYzg3MThiZDAxZGM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTE0NiwxNSArMTE0Niw2IEBAIExheW91dFJl
Y3QgRWxlbWVudDo6YWJzb2x1dGVFdmVudEhhbmRsZXJCb3VuZHMoYm9vbCYgaW5jbHVkZXNGaXhl
ZFBvc2l0aW9uRWxlbWVuCiAgICAgcmV0dXJuIGFic29sdXRlRXZlbnRCb3VuZHNPZkVsZW1lbnRB
bmREZXNjZW5kYW50cyhpbmNsdWRlc0ZpeGVkUG9zaXRpb25FbGVtZW50cyk7CiB9CiAKLXN0YXRp
YyBWZWN0b3I8UmVmPERPTVJlY3Q+PiB0b0RPTVJlY3RWZWN0b3IoY29uc3QgVmVjdG9yPEZsb2F0
UXVhZD4mIHF1YWRzKQotewotICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IHJlc3VsdDsKLSAgICBy
ZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShxdWFkcy5zaXplKCkpOwotICAgIGZvciAoYXV0
byYgcXVhZCA6IHF1YWRzKQotICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKERPTVJlY3Q6
OmNyZWF0ZShxdWFkLmVuY2xvc2luZ0JvdW5kaW5nQm94KCkpKTsKLSAgICByZXR1cm4gcmVzdWx0
OwotfQotCiBWZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0cygpCiB7
CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
QEAgLTExNjksNyArMTE2MCw3IEBAIFZlY3RvcjxSZWY8RE9NUmVjdD4+IEVsZW1lbnQ6OmdldENs
aWVudFJlY3RzKCkKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICAgICByZW5kZXJCb3hN
b2RlbE9iamVjdC0+YWJzb2x1dGVRdWFkcyhxdWFkcyk7CiAgICAgZG9jdW1lbnQoKS5hZGp1c3RG
bG9hdFF1YWRzRm9yU2Nyb2xsQW5kQWJzb2x1dGVab29tQW5kRnJhbWVTY2FsZShxdWFkcywgcmVu
ZGVyQm94TW9kZWxPYmplY3QtPnN0eWxlKCkpOwotICAgIHJldHVybiB0b0RPTVJlY3RWZWN0b3Io
cXVhZHMpOworICAgIHJldHVybiBET01SZWN0OjpjcmVhdGVWZWN0b3IocXVhZHMpOwogfQogCiBS
ZWY8RE9NUmVjdD4gRWxlbWVudDo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
Y3BwCmluZGV4IDc3MzRhYmQxMjFiYWE5MDkyYzU1MDU3NDg3MzA5Y2Y1N2Y4OWY2OTIuLjk1NWQw
YjA2MmYxOGJmMGRlNWYzNDQyOWIxNmQxOTRlOWE5M2I4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcApA
QCAtMjUsOSArMjUsOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJhbmdlLmgi
CiAKLSNpbmNsdWRlICJDbGllbnRSZWN0LmgiCi0jaW5jbHVkZSAiQ2xpZW50UmVjdExpc3QuaCIK
ICNpbmNsdWRlICJDb21tZW50LmgiCisjaW5jbHVkZSAiRE9NUmVjdC5oIgogI2luY2x1ZGUgIkRv
Y3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0aW5nLmgiCiAjaW5jbHVkZSAiRXZlbnQu
aCIKQEAgLTE3NjMsMTQgKzE3NjIsMTQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUmFuZ2U6OmV4cGFu
ZChjb25zdCBTdHJpbmcmIHVuaXQpCiAgICAgcmV0dXJuIHNldEVuZCgqZW5kQ29udGFpbmVyLCBl
bmQuZGVlcEVxdWl2YWxlbnQoKS5jb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2RlKCkpOwogfQog
Ci1SZWY8Q2xpZW50UmVjdExpc3Q+IFJhbmdlOjpnZXRDbGllbnRSZWN0cygpIGNvbnN0CitWZWN0
b3I8UmVmPERPTVJlY3Q+PiBSYW5nZTo6Z2V0Q2xpZW50UmVjdHMoKSBjb25zdAogewotICAgIHJl
dHVybiBDbGllbnRSZWN0TGlzdDo6Y3JlYXRlKGJvcmRlckFuZFRleHRRdWFkcyhDb29yZGluYXRl
U3BhY2U6OkNsaWVudCkpOworICAgIHJldHVybiBET01SZWN0OjpjcmVhdGVWZWN0b3IoYm9yZGVy
QW5kVGV4dFF1YWRzKENvb3JkaW5hdGVTcGFjZTo6Q2xpZW50KSk7CiB9CiAKLVJlZjxDbGllbnRS
ZWN0PiBSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKK1JlZjxET01SZWN0PiBS
YW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ2xpZW50
UmVjdDo6Y3JlYXRlKGJvdW5kaW5nUmVjdChDb29yZGluYXRlU3BhY2U6OkNsaWVudCkpOworICAg
IHJldHVybiBET01SZWN0OjpjcmVhdGUoYm91bmRpbmdSZWN0KENvb3JkaW5hdGVTcGFjZTo6Q2xp
ZW50KSk7CiB9CiAKIFZlY3RvcjxGbG9hdFF1YWQ+IFJhbmdlOjpib3JkZXJBbmRUZXh0UXVhZHMo
Q29vcmRpbmF0ZVNwYWNlIHNwYWNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCA2NzRlMTM5MjE1
MTkyOGZkMjg3MWM1MTY1NTA5ODBkNmUwNjkwNmQzLi5lYTdjOTQ1Yzg2YzQ5MDE1Y2FkYjQ4YzIy
NGYwMzU2MmI4N2Q3YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApAQCAtMzQsOCArMzQsNyBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsaWVudFJlY3Q7Ci1jbGFzcyBDbGllbnRSZWN0TGlz
dDsKK2NsYXNzIERPTVJlY3Q7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtMTQyLDggKzE0MSw4IEBAIHB1YmxpYzoKICAg
ICAvLyBmb3IgZGV0YWlscy4KICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBl
eHBhbmQoY29uc3QgU3RyaW5nJik7CiAKLSAgICBSZWY8Q2xpZW50UmVjdExpc3Q+IGdldENsaWVu
dFJlY3RzKCkgY29uc3Q7Ci0gICAgUmVmPENsaWVudFJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpIGNvbnN0OworICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IGdldENsaWVudFJlY3RzKCkgY29u
c3Q7CisgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OwogCiAj
aWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQogICAgIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hh
ciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXgg
NWU4NTM5MzkxZGVmMDVjODE0MWIyMjY3NTdjOTlkZWQ0ZWM4M2U1Yy4uNzIxYzdmMjlmODQ1Yjgx
OGNjNTBhMzc3NWU3NWZhNjBiNjMwMWJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCkBAIC02Miw4ICs2
Miw4IEBACiAKICAgICB2b2lkIGRldGFjaCgpOwogCi0gICAgQ2xpZW50UmVjdExpc3QgZ2V0Q2xp
ZW50UmVjdHMoKTsKLSAgICBDbGllbnRSZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAg
IHNlcXVlbmNlPERPTVJlY3Q+IGdldENsaWVudFJlY3RzKCk7CisgICAgW05ld09iamVjdF0gRE9N
UmVjdCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIFtDRVJlYWN0aW9ucywgTWF5VGhy
b3dFeGNlcHRpb24sIE5ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBjcmVhdGVDb250ZXh0dWFs
RnJhZ21lbnQoRE9NU3RyaW5nIGh0bWwpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTI0OGMyZmJkZTU3MTU0MDQ1MDRh
YjRkODljMzRiNTY1NGFkNDc5MS4uYzBhNDY0ZTFkYjY2ODM0YTE0M2EzMGI4MjZiNzgzOTA1YjM1
ZWIxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA0LTI3ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKSAvIGdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4gRE9NUmVjdCB0eXBlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNv
dmVyYWdlLgorCisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0
LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJl
dHVybi10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA0LTI3ICBSeWFuIEhhZGRhZCAgPHJ5YW5o
YWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBtaXNzaW5nIGV4cGVjdGVkIGZpbGUgZm9y
IGZhc3QvaW5saW5lL3NpbXBsZS1saW5lLWxheW91dC0xNmJpdC1jb250ZW50Lmh0bWwuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJlY3Qt
Z2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10
eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzIxZjNhNTA3ZWZjMTAxMjMwMDEzOWVlMzAz
Y2MxY2MyMTk2NWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFu
Z2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IFJhbmdlLmdldENsaWVudFJlY3Rz
KCkgLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSByZXR1cm4gRE9NUmVjdCB0eXBlcy4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC5fX3Byb3RvX18gaXMgRE9NUmVj
dC5wcm90b3R5cGUKK1BBU1MgcmVjdHMuX19wcm90b19fIGlzIEFycmF5LnByb3RvdHlwZQorUEFT
UyByZWN0cy5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1MgcmVjdHNbMF0uX19wcm90b19fIGlzIERP
TVJlY3QucHJvdG90eXBlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91
bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJlY3QtZ2V0Q2xpZW50UmVjdHMt
cmV0dXJuLXR5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTcyMGE2ODQ1NzMxOWFmNDNhMGZmMzZmYTg1
MzA3NmZiY2QwYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFu
Z2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWwK
QEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlw
dCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgUmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKSAvIGdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpIHJldHVybiBET01SZWN0IHR5cGVzLiIpOworanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHJhbmdlID0gZG9jdW1l
bnQuY3JlYXRlUmFuZ2UoKTsKKyAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQu
Ym9keSkKKworICAgIHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBz
aG91bGRCZSgicmVjdC5fX3Byb3RvX18iLCAiRE9NUmVjdC5wcm90b3R5cGUiKTsKKworICAgIHJl
Y3RzID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKKyAgICBzaG91bGRCZSgicmVjdHMuX19wcm90
b19fIiwgIkFycmF5LnByb3RvdHlwZSIpOworICAgIHNob3VsZEJlVHJ1ZSgicmVjdHMubGVuZ3Ro
ID4gMCIpOworICAgIHNob3VsZEJlKCJyZWN0c1swXS5fX3Byb3RvX18iLCAiRE9NUmVjdC5wcm90
b3R5cGUiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308529</attachid>
            <date>2017-04-28 07:39:25 -0700</date>
            <delta_ts>2017-04-28 08:25:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171393-20170428073923.patch</filename>
            <type>text/plain</type>
            <size>15019</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzgyMTRkODI0OGEzMDVk
MjllM2I1YzM2NDA4ZjliYzVkMzQwMzI4MC4uODBiMjk4MTA2Njk0ODBhMzA3N2RhNDFjZDJiNGMz
ZjY0N2QyNWI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE3LTA0LTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuZ2V0Q2xpZW50UmVj
dHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4gRE9NUmVjdCB0eXBl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4g
RE9NUmVjdCB0eXBlczoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jZXh0ZW5zaW9ucy10by10aGUtcmFuZ2UtaW50ZXJmYWNlCisKKyAgICAgICAgVGVzdDog
ZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVy
bi10eXBlLmh0bWwKKworICAgICAgICAqIGRvbS9ET01SZWN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpET01SZWN0OjpjcmVhdGVWZWN0b3IpOgorICAgICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldENsaWVudFJlY3RzKToKKyAgICAgICAgKiBkb20v
UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmFuZ2U6OmdldENsaWVudFJlY3RzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJhbmdlOjpnZXRCb3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAq
IGRvbS9SYW5nZS5oOgorICAgICAgICAqIGRvbS9SYW5nZS5pZGw6CisKIDIwMTctMDQtMjcgIFdl
bnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgV0tVSURlbGVn
YXRlUHJpdmF0ZSBuZWVkcyBhIGhvb2sgdG8gdmVuZCBkYXRhIHVzZWQgdG8gaW5pdGlhbGl6ZSBp
dGVtIHByb3ZpZGVycyBmb3IgZGF0YSBpbnRlcmFjdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA0NGI0MTU1NGY4MjI4ZDU3NTViZTg3NmIyZDg3Yjc2MjMzODM2YmUyLi44ZGYxN2IxYTBkYmY3
NzU3OGM1ZjUyZWE5ZjhiYjRkZTRhZTdhOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ2
NCw2ICsxNDY0LDcgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9ET01FcnJvci5jcHAK
ICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uY3BwCiAgICAgZG9tL0RPTU5hbWVkRmxvd0NvbGxl
Y3Rpb24uY3BwCisgICAgZG9tL0RPTVJlY3QuY3BwCiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuY3Bw
CiAgICAgZG9tL0RhdGFUcmFuc2Zlci5jcHAKICAgICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBmNGZiOGNjZDgyNmVkZGJjYTY2ZmZlZWU2YjJkNTY0N2E0NjAzZmNkLi5hZTQwZWE5MThm
ZTFkYjMyM2MyMzY0NTc1YjE5NWFiODVkNGE0NzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zMzIyLDYgKzMzMjIsNyBAQAog
CQk4MzBBMzZCRDFEQUM1RkFEMDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODMwQTM2QkIxREFDNUZBNzAw
NkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCAqLzsgfTsKIAkJODMxMjBDNzAxQzU2RjNGNjAw
MUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFF
bGVtZW50LmNwcCAqLzsgfTsKIAkJODMxMjBDNzExQzU2RjNGQjAwMUNCMTEyIC8qIEhUTUxEYXRh
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODM0Qjg2QTcxQzU2RTgzQTAwRjNGMEUzIC8qIEhUTUxEYXRhRWxlbWVudC5oICovOyB9OworCQk4
MzE0OUZGNjFFQjM4QjM3MDAwODk2NjUgLyogRE9NUmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzE0OUZGNTFFQjM4QjEyMDAwODk2NjUgLyog
RE9NUmVjdC5jcHAgKi87IH07CiAJCTgzMkI4NDM0MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmlt
YXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2Uu
aCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4RTU3NDAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50
QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZHQW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLzsg
fTsKIAkJODM0MDdGQzExRThEOUMxNzAwRTA0OEQzIC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMw
MUU4RDlDMTIwMEUwNDhEMyAvKiBWaXNpYmlsaXR5Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMzU2LDYgKzExMzU3LDcg
QEAKIAkJODMwNzg0QjExQzUyRUUxOTAwMTA0RDFEIC8qIFhNTERvY3VtZW50LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTERvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTgzMEEzNkJBMURBQzVGQTcwMDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudElu
aXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzBBMzZCQjFEQUM1RkE3MDA2
RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBKU01vdXNlRXZlbnRJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgz
MTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01SZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFFbGVtZW50LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEYXRhRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMjlEQ0MyMUM3QTZBRTMwMDczMEIzMyAvKiBI
VE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1M
SHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlRWxlbWVudEJhc2UuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1NTM3LDYgKzI1NTM5LDcgQEAKIAkJCQkwRjQ5
NjZBMTFEQjQwOTAxMDBBMjc0QkIgLyogRE9NUG9pbnRJbml0LmlkbCAqLywKIAkJCQkwRjQ5NjY5
QjFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnRSZWFkT25seS5oICovLAogCQkJCTBGNDk2NjlD
MURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludFJlYWRPbmx5LmlkbCAqLywKKwkJCQk4MzE0OUZG
NTFFQjM4QjEyMDAwODk2NjUgLyogRE9NUmVjdC5jcHAgKi8sCiAJCQkJMEY0NzEwQTkxREI1NkFG
QzAwMkRDRUMzIC8qIERPTVJlY3QuaCAqLywKIAkJCQkwRjQ3MTBBQTFEQjU2QUZDMDAyRENFQzMg
LyogRE9NUmVjdC5pZGwgKi8sCiAJCQkJMEY0NzEwQUIxREI1NkFGQzAwMkRDRUMzIC8qIERPTVJl
Y3RJbml0LmggKi8sCkBAIC0zMzAxMyw2ICszMzAxNiw3IEBACiAJCQkJMEZFQTNFN0YxOTFCMzE2
OTAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJOTM5MUE5OUMxNjI5RDcwMDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQjg4OTBCMTY3RDJGQTEwMDEw
Q0RBNSAvKiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgz
MTQ5RkY2MUVCMzhCMzcwMDA4OTY2NSAvKiBET01SZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBQUZFOENGMTlDQjg2NzIwMDBGNTZEOCAvKiBTY3JvbGxMYXRjaGluZ1N0YXRlLmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUY0Nzg3NTU1MTk5ODNBRkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5p
bWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDMjQ0MUM0MEU4QjY1RDAwMDU1MzIw
RiAvKiBTY3JvbGxWaWV3LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RPTVJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjViZjJjNWZlODQyN2M5ODhkNTY2Yjc4YjYzZjIwNjJlNTU2MWM5YzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5jcHAKQEAgLTAsMCArMSw0
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJET01SZWN0
LmgiCisKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitW
ZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVET01SZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9h
dFF1YWQ+JiBxdWFkcykKK3sKKyAgICBWZWN0b3I8UmVmPERPTVJlY3Q+PiByZXN1bHQ7CisgICAg
cmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocXVhZHMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1
dG8mIHF1YWQgOiBxdWFkcykKKyAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChET01SZWN0
OjpjcmVhdGUocXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKSk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKaW5kZXggMDQ3YzUwNmEwOGI3M2ZkZjU5ODJjOGM4
ZDYyNWE3NTlmYjk4YmI1OS4uZGRkODhlNTkyMWU1MTk0ZGQwMzU1YzQ5NGY0NzhmNGY1ZjhkZmFk
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRE9NUmVjdC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw5ICsyOCwxMiBAQAogI2luY2x1ZGUgIkRPTVJlY3RS
ZWFkT25seS5oIgogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
KyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3Mg
RmxvYXRRdWFkOworCiBjbGFzcyBET01SZWN0IDogcHVibGljIERPTVJlY3RSZWFkT25seSB7CiAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC01NSw0ICs1OCw2IEBAIHBy
aXZhdGU6CiAgICAgRE9NUmVjdCgpID0gZGVmYXVsdDsKIH07CiAKK1ZlY3RvcjxSZWY8RE9NUmVj
dD4+IGNyZWF0ZURPTVJlY3RWZWN0b3IoY29uc3QgVmVjdG9yPEZsb2F0UXVhZD4mKTsKKwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQ4NjQ2YzBkOTcyMmFlODFkNWU4MTAwNGExMWYyMzRj
NTljNmQ3ZDcuLjA4NDhhYTU2NjYyZmRlNzVlZDhlMTUxZmQxYzY1YmViM2MwMzUzNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNDYsMTUgKzExNDYsNiBAQCBMYXlvdXRSZWN0IEVsZW1l
bnQ6OmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRzKGJvb2wmIGluY2x1ZGVzRml4ZWRQb3NpdGlv
bkVsZW1lbgogICAgIHJldHVybiBhYnNvbHV0ZUV2ZW50Qm91bmRzT2ZFbGVtZW50QW5kRGVzY2Vu
ZGFudHMoaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxlbWVudHMpOwogfQogCi1zdGF0aWMgVmVjdG9y
PFJlZjxET01SZWN0Pj4gdG9ET01SZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBx
dWFkcykKLXsKLSAgICBWZWN0b3I8UmVmPERPTVJlY3Q+PiByZXN1bHQ7Ci0gICAgcmVzdWx0LnJl
c2VydmVJbml0aWFsQ2FwYWNpdHkocXVhZHMuc2l6ZSgpKTsKLSAgICBmb3IgKGF1dG8mIHF1YWQg
OiBxdWFkcykKLSAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChET01SZWN0OjpjcmVhdGUo
cXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQog
VmVjdG9yPFJlZjxET01SZWN0Pj4gRWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogewogICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CkBAIC0xMTY5
LDcgKzExNjAsNyBAQCBWZWN0b3I8UmVmPERPTVJlY3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0
cygpCiAgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVhZHM7CiAgICAgcmVuZGVyQm94TW9kZWxPYmpl
Y3QtPmFic29sdXRlUXVhZHMocXVhZHMpOwogICAgIGRvY3VtZW50KCkuYWRqdXN0RmxvYXRRdWFk
c0ZvclNjcm9sbEFuZEFic29sdXRlWm9vbUFuZEZyYW1lU2NhbGUocXVhZHMsIHJlbmRlckJveE1v
ZGVsT2JqZWN0LT5zdHlsZSgpKTsKLSAgICByZXR1cm4gdG9ET01SZWN0VmVjdG9yKHF1YWRzKTsK
KyAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3RvcihxdWFkcyk7CiB9CiAKIFJlZjxET01SZWN0
PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXgg
NzczNGFiZDEyMWJhYTkwOTJjNTUwNTc0ODczMDljZjU3Zjg5ZjY5Mi4uNWRjYmQ2NzA3ZTVmNmFm
NjI0MGJhZGVlZmJlMWRjNjg3MmI4ZWNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuY3BwCkBAIC0yNSw5ICsy
NSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKIAotI2luY2x1
ZGUgIkNsaWVudFJlY3QuaCIKLSNpbmNsdWRlICJDbGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUg
IkNvbW1lbnQuaCIKKyNpbmNsdWRlICJET01SZWN0LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFn
bWVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMTc2
MywxNCArMTc2MiwxNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSYW5nZTo6ZXhwYW5kKGNvbnN0IFN0
cmluZyYgdW5pdCkKICAgICByZXR1cm4gc2V0RW5kKCplbmRDb250YWluZXIsIGVuZC5kZWVwRXF1
aXZhbGVudCgpLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5vZGUoKSk7CiB9CiAKLVJlZjxDbGll
bnRSZWN0TGlzdD4gUmFuZ2U6OmdldENsaWVudFJlY3RzKCkgY29uc3QKK1ZlY3RvcjxSZWY8RE9N
UmVjdD4+IFJhbmdlOjpnZXRDbGllbnRSZWN0cygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIENsaWVu
dFJlY3RMaXN0OjpjcmVhdGUoYm9yZGVyQW5kVGV4dFF1YWRzKENvb3JkaW5hdGVTcGFjZTo6Q2xp
ZW50KSk7CisgICAgcmV0dXJuIGNyZWF0ZURPTVJlY3RWZWN0b3IoYm9yZGVyQW5kVGV4dFF1YWRz
KENvb3JkaW5hdGVTcGFjZTo6Q2xpZW50KSk7CiB9CiAKLVJlZjxDbGllbnRSZWN0PiBSYW5nZTo6
Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKK1JlZjxET01SZWN0PiBSYW5nZTo6Z2V0Qm91
bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRl
KGJvdW5kaW5nUmVjdChDb29yZGluYXRlU3BhY2U6OkNsaWVudCkpOworICAgIHJldHVybiBET01S
ZWN0OjpjcmVhdGUoYm91bmRpbmdSZWN0KENvb3JkaW5hdGVTcGFjZTo6Q2xpZW50KSk7CiB9CiAK
IFZlY3RvcjxGbG9hdFF1YWQ+IFJhbmdlOjpib3JkZXJBbmRUZXh0UXVhZHMoQ29vcmRpbmF0ZVNw
YWNlIHNwYWNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAppbmRleCA2NzRlMTM5MjE1MTkyOGZkMjg3MWM1
MTY1NTA5ODBkNmUwNjkwNmQzLi5lYTdjOTQ1Yzg2YzQ5MDE1Y2FkYjQ4YzIyNGYwMzU2MmI4N2Q3
YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaApAQCAtMzQsOCArMzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIENsaWVudFJlY3Q7Ci1jbGFzcyBDbGllbnRSZWN0TGlzdDsKK2NsYXNzIERP
TVJlY3Q7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1
bWVudEZyYWdtZW50OwpAQCAtMTQyLDggKzE0MSw4IEBAIHB1YmxpYzoKICAgICAvLyBmb3IgZGV0
YWlscy4KICAgICBXRUJDT1JFX0VYUE9SVCBFeGNlcHRpb25Pcjx2b2lkPiBleHBhbmQoY29uc3Qg
U3RyaW5nJik7CiAKLSAgICBSZWY8Q2xpZW50UmVjdExpc3Q+IGdldENsaWVudFJlY3RzKCkgY29u
c3Q7Ci0gICAgUmVmPENsaWVudFJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0Owor
ICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7CisgICAgUmVm
PERPTVJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFRS
RUVfREVCVUdHSU5HKQogICAgIHZvaWQgZm9ybWF0Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1
bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1Jh
bmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5pZGwKaW5kZXggNWU4NTM5MzkxZGVm
MDVjODE0MWIyMjY3NTdjOTlkZWQ0ZWM4M2U1Yy4uNzIxYzdmMjlmODQ1YjgxOGNjNTBhMzc3NWU3
NWZhNjBiNjMwMWJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaWRsCkBAIC02Miw4ICs2Miw4IEBACiAKICAg
ICB2b2lkIGRldGFjaCgpOwogCi0gICAgQ2xpZW50UmVjdExpc3QgZ2V0Q2xpZW50UmVjdHMoKTsK
LSAgICBDbGllbnRSZWN0IGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOworICAgIHNlcXVlbmNlPERP
TVJlY3Q+IGdldENsaWVudFJlY3RzKCk7CisgICAgW05ld09iamVjdF0gRE9NUmVjdCBnZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIFtDRVJlYWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb24s
IE5ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBjcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoRE9N
U3RyaW5nIGh0bWwpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWIzY2QyM2Q3NWZkZTk1ODVjZjIzNzI1NjcwZTFhOTM2
YzNkYjc4Yi4uNjJmODFlZWM2Mjc4YzI1ZjVhOTI2OTVjNDRhMzBmMDFkNDk3YTZmNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDE3LTA0LTI3ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgUmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpIHNob3VsZCByZXR1cm4gRE9NUmVjdCB0eXBlcworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisg
ICAgICAgICogZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJl
Y3RzLXJldHVybi10eXBlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20v
UmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0
bWw6IEFkZGVkLgorCiAyMDE3LTA0LTI3ICBNYXR0IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+
CiAKICAgICAgICAgTWFyayBpbXBvcnRlZC9ibGluay9wYWludC9kZXByZWNhdGVkcGFpbnRsYXll
ci9ub24tc2VsZi1wYWludGluZy1sYXllci1vdmVycmlkZXMtdmlzaWJpbGl0eS5odG1sIGFzIGEg
Zmxha3kgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRC
b3VuZGluZ0NsaWVudFJlY3QtZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENs
aWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzIxZjNhNTA3
ZWZjMTAxMjMwMDEzOWVlMzAzY2MxY2MyMTk2NWJmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3Rz
LXJldHVybi10eXBlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUZXN0cyB0aGF0IFJh
bmdlLmdldENsaWVudFJlY3RzKCkgLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSByZXR1cm4gRE9N
UmVjdCB0eXBlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcmVjdC5f
X3Byb3RvX18gaXMgRE9NUmVjdC5wcm90b3R5cGUKK1BBU1MgcmVjdHMuX19wcm90b19fIGlzIEFy
cmF5LnByb3RvdHlwZQorUEFTUyByZWN0cy5sZW5ndGggPiAwIGlzIHRydWUKK1BBU1MgcmVjdHNb
MF0uX19wcm90b19fIGlzIERPTVJlY3QucHJvdG90eXBlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10
eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJl
Y3QtZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMTcyMGE2ODQ1
NzMxOWFmNDNhMGZmMzZmYTg1MzA3NmZiY2QwYTc4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3Rz
LXJldHVybi10eXBlLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHRoYXQgUmFuZ2UuZ2V0
Q2xpZW50UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHJldHVybiBET01SZWN0IHR5
cGVzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgewor
ICAgIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICByYW5nZS5zZWxlY3ROb2Rl
Q29udGVudHMoZG9jdW1lbnQuYm9keSkKKworICAgIHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKKyAgICBzaG91bGRCZSgicmVjdC5fX3Byb3RvX18iLCAiRE9NUmVjdC5wcm90
b3R5cGUiKTsKKworICAgIHJlY3RzID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKKyAgICBzaG91
bGRCZSgicmVjdHMuX19wcm90b19fIiwgIkFycmF5LnByb3RvdHlwZSIpOworICAgIHNob3VsZEJl
VHJ1ZSgicmVjdHMubGVuZ3RoID4gMCIpOworICAgIHNob3VsZEJlKCJyZWN0c1swXS5fX3Byb3Rv
X18iLCAiRE9NUmVjdC5wcm90b3R5cGUiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308530</attachid>
            <date>2017-04-28 08:25:56 -0700</date>
            <delta_ts>2017-04-28 14:14:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171393-20170428082555.patch</filename>
            <type>text/plain</type>
            <size>15160</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzgyMTRkODI0OGEzMDVk
MjllM2I1YzM2NDA4ZjliYzVkMzQwMzI4MC4uODk4ZThhMTM0MDdhYTExMmI3MTE2ODY4YjdmYTg2
YzM2ZjAyMzY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTA0LTI4ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuZ2V0Q2xpZW50UmVj
dHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4gRE9NUmVjdCB0eXBl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzkz
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4g
RE9NUmVjdCB0eXBlczoKKyAgICAgICAgLSBodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3Nzb20t
dmlldy8jZXh0ZW5zaW9ucy10by10aGUtcmFuZ2UtaW50ZXJmYWNlCisKKyAgICAgICAgVGVzdDog
ZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVy
bi10eXBlLmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRE9NUmVjdC5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmguCisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVET01SZWN0VmVjdG9yKToKKyAgICAgICAgKiBkb20vRE9NUmVjdC5oOgorICAg
ICAgICAqIGRvbS9FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmdldENs
aWVudFJlY3RzKToKKyAgICAgICAgKiBkb20vUmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmFuZ2U6OmdldENsaWVudFJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpnZXRCb3Vu
ZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGRvbS9SYW5nZS5oOgorICAgICAgICAqIGRvbS9S
YW5nZS5pZGw6CisKIDIwMTctMDQtMjcgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBs
ZS5jb20+CiAKICAgICAgICAgV0tVSURlbGVnYXRlUHJpdmF0ZSBuZWVkcyBhIGhvb2sgdG8gdmVu
ZCBkYXRhIHVzZWQgdG8gaW5pdGlhbGl6ZSBpdGVtIHByb3ZpZGVycyBmb3IgZGF0YSBpbnRlcmFj
dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA0NGI0MTU1NGY4MjI4ZDU3NTViZTg3NmIyZDg3
Yjc2MjMzODM2YmUyLi44ZGYxN2IxYTBkYmY3NzU3OGM1ZjUyZWE5ZjhiYjRkZTRhZTdhOGUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTQ2NCw2ICsxNDY0LDcgQEAgc2V0KFdlYkNvcmVfU09V
UkNFUwogICAgIGRvbS9ET01FcnJvci5jcHAKICAgICBkb20vRE9NSW1wbGVtZW50YXRpb24uY3Bw
CiAgICAgZG9tL0RPTU5hbWVkRmxvd0NvbGxlY3Rpb24uY3BwCisgICAgZG9tL0RPTVJlY3QuY3Bw
CiAgICAgZG9tL0RPTVN0cmluZ0xpc3QuY3BwCiAgICAgZG9tL0RhdGFUcmFuc2Zlci5jcHAKICAg
ICBkb20vRGF0YVRyYW5zZmVySXRlbS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmNGZiOGNjZDgyNmVkZGJjYTY2ZmZlZWU2
YjJkNTY0N2E0NjAzZmNkLi5hZTQwZWE5MThmZTFkYjMyM2MyMzY0NTc1YjE5NWFiODVkNGE0NzU3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC0zMzIyLDYgKzMzMjIsNyBAQAogCQk4MzBBMzZCRDFEQUM1RkFEMDA2RDdEMDkgLyog
SlNNb3VzZUV2ZW50SW5pdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODMwQTM2QkIxREFDNUZBNzAwNkQ3RDA5IC8qIEpTTW91c2VFdmVudEluaXQuaCAq
LzsgfTsKIAkJODMxMjBDNzAxQzU2RjNGNjAwMUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzFEMUYyOTFD
NTZFQ0EwMDBGNUY2QzAgLyogSFRNTERhdGFFbGVtZW50LmNwcCAqLzsgfTsKIAkJODMxMjBDNzEx
QzU2RjNGQjAwMUNCMTEyIC8qIEhUTUxEYXRhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODM0Qjg2QTcxQzU2RTgzQTAwRjNGMEUzIC8qIEhU
TUxEYXRhRWxlbWVudC5oICovOyB9OworCQk4MzE0OUZGNjFFQjM4QjM3MDAwODk2NjUgLyogRE9N
UmVjdC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
MzE0OUZGNTFFQjM4QjEyMDAwODk2NjUgLyogRE9NUmVjdC5jcHAgKi87IH07CiAJCTgzMkI4NDM0
MTlEOEU1NTEwMEIyNjA1NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzMkI4NDMzMTlEOEU1NTEwMEIyNjA1
NSAvKiBTVkdBbmltYXRlRWxlbWVudEJhc2UuaCAqLzsgfTsKIAkJODMyQjg0MzYxOUQ4RTU3NDAw
QjI2MDU1IC8qIFNWR0FuaW1hdGVFbGVtZW50QmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MzJCODQzNTE5RDhFNTc0MDBCMjYwNTUgLyogU1ZH
QW5pbWF0ZUVsZW1lbnRCYXNlLmNwcCAqLzsgfTsKIAkJODM0MDdGQzExRThEOUMxNzAwRTA0OEQz
IC8qIFZpc2liaWxpdHlDaGFuZ2VDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDgzNDA3RkMwMUU4RDlDMTIwMEUwNDhEMyAvKiBWaXNpYmlsaXR5
Q2hhbmdlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKQEAgLTExMzU2LDYgKzExMzU3LDcgQEAKIAkJODMwNzg0QjExQzUyRUUxOTAwMTA0RDFE
IC8qIFhNTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTERv
Y3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgzMEEzNkJBMURBQzVGQTcw
MDZEN0QwOSAvKiBKU01vdXNlRXZlbnRJbml0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEpTTW91c2VFdmVudEluaXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk4MzBBMzZCQjFEQUM1RkE3MDA2RDdEMDkgLyogSlNNb3VzZUV2ZW50SW5pdC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU01vdXNlRXZlbnRJbml0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzMTQ5RkY1MUVCMzhCMTIwMDA4OTY2NSAvKiBET01S
ZWN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERPTVJlY3QuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4MzFEMUYyOTFDNTZFQ0EwMDBGNUY2QzAg
LyogSFRNTERhdGFFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhUTUxEYXRhRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTgz
MjlEQ0MyMUM3QTZBRTMwMDczMEIzMyAvKiBIVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBIVE1MSHlwZXJsaW5rRWxlbWVudFV0aWxzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODMyQjg0MzMxOUQ4RTU1MTAwQjI2MDU1IC8qIFNW
R0FuaW1hdGVFbGVtZW50QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdBbmltYXRlRWxlbWVudEJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI1
NTM3LDYgKzI1NTM5LDcgQEAKIAkJCQkwRjQ5NjZBMTFEQjQwOTAxMDBBMjc0QkIgLyogRE9NUG9p
bnRJbml0LmlkbCAqLywKIAkJCQkwRjQ5NjY5QjFEQjQwOEMxMDBBMjc0QkIgLyogRE9NUG9pbnRS
ZWFkT25seS5oICovLAogCQkJCTBGNDk2NjlDMURCNDA4QzEwMEEyNzRCQiAvKiBET01Qb2ludFJl
YWRPbmx5LmlkbCAqLywKKwkJCQk4MzE0OUZGNTFFQjM4QjEyMDAwODk2NjUgLyogRE9NUmVjdC5j
cHAgKi8sCiAJCQkJMEY0NzEwQTkxREI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3QuaCAqLywKIAkJ
CQkwRjQ3MTBBQTFEQjU2QUZDMDAyRENFQzMgLyogRE9NUmVjdC5pZGwgKi8sCiAJCQkJMEY0NzEw
QUIxREI1NkFGQzAwMkRDRUMzIC8qIERPTVJlY3RJbml0LmggKi8sCkBAIC0zMzAxMyw2ICszMzAx
Niw3IEBACiAJCQkJMEZFQTNFN0YxOTFCMzE2OTAwMEYxQjU1IC8qIFNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbGluZ05vZGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5MUE5OUMxNjI5RDcw
MDAwMjk3MzMwIC8qIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGQjg4OTBCMTY3RDJGQTEwMDEwQ0RBNSAvKiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9k
ZS5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgzMTQ5RkY2MUVCMzhCMzcwMDA4OTY2NSAvKiBET01S
ZWN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTdBQUZFOENGMTlDQjg2NzIwMDBGNTZEOCAvKiBT
Y3JvbGxMYXRjaGluZ1N0YXRlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0Nzg3NTU1MTk5ODNB
RkYwMDI0QTI4NyAvKiBTY3JvbGxTbmFwQW5pbWF0b3JTdGF0ZS5tbSBpbiBTb3VyY2VzICovLAog
CQkJCUJDMjQ0MUM0MEU4QjY1RDAwMDU1MzIwRiAvKiBTY3JvbGxWaWV3LmNwcCBpbiBTb3VyY2Vz
ICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVJlY3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjViZjJjNWZlODQyN2M5ODhkNTY2
Yjc4YjYzZjIwNjJlNTU2MWM5YzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRE9NUmVjdC5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJET01SZWN0LmgiCisKKyNpbmNsdWRlICJGbG9hdFF1YWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitWZWN0b3I8UmVmPERPTVJlY3Q+PiBjcmVhdGVET01S
ZWN0VmVjdG9yKGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKK3sKKyAgICBWZWN0b3I8
UmVmPERPTVJlY3Q+PiByZXN1bHQ7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHko
cXVhZHMuc2l6ZSgpKTsKKyAgICBmb3IgKGF1dG8mIHF1YWQgOiBxdWFkcykKKyAgICAgICAgcmVz
dWx0LnVuY2hlY2tlZEFwcGVuZChET01SZWN0OjpjcmVhdGUocXVhZC5lbmNsb3NpbmdCb3VuZGlu
Z0JveCgpKSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL0RPTVJlY3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9ET01SZWN0LmgKaW5k
ZXggMDQ3YzUwNmEwOGI3M2ZkZjU5ODJjOGM4ZDYyNWE3NTlmYjk4YmI1OS4uZGRkODhlNTkyMWU1
MTk0ZGQwMzU1YzQ5NGY0NzhmNGY1ZjhkZmFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RPTVJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRE9NUmVjdC5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw5ICsy
OCwxMiBAQAogI2luY2x1ZGUgIkRPTVJlY3RSZWFkT25seS5oIgogI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRmxvYXRRdWFkOworCiBjbGFzcyBET01SZWN0IDog
cHVibGljIERPTVJlY3RSZWFkT25seSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBw
dWJsaWM6CkBAIC01NSw0ICs1OCw2IEBAIHByaXZhdGU6CiAgICAgRE9NUmVjdCgpID0gZGVmYXVs
dDsKIH07CiAKK1ZlY3RvcjxSZWY8RE9NUmVjdD4+IGNyZWF0ZURPTVJlY3RWZWN0b3IoY29uc3Qg
VmVjdG9yPEZsb2F0UXVhZD4mKTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDQ4NjQ2
YzBkOTcyMmFlODFkNWU4MTAwNGExMWYyMzRjNTljNmQ3ZDcuLjA4NDhhYTU2NjYyZmRlNzVlZDhl
MTUxZmQxYzY1YmViM2MwMzUzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExNDYsMTUg
KzExNDYsNiBAQCBMYXlvdXRSZWN0IEVsZW1lbnQ6OmFic29sdXRlRXZlbnRIYW5kbGVyQm91bmRz
KGJvb2wmIGluY2x1ZGVzRml4ZWRQb3NpdGlvbkVsZW1lbgogICAgIHJldHVybiBhYnNvbHV0ZUV2
ZW50Qm91bmRzT2ZFbGVtZW50QW5kRGVzY2VuZGFudHMoaW5jbHVkZXNGaXhlZFBvc2l0aW9uRWxl
bWVudHMpOwogfQogCi1zdGF0aWMgVmVjdG9yPFJlZjxET01SZWN0Pj4gdG9ET01SZWN0VmVjdG9y
KGNvbnN0IFZlY3RvcjxGbG9hdFF1YWQ+JiBxdWFkcykKLXsKLSAgICBWZWN0b3I8UmVmPERPTVJl
Y3Q+PiByZXN1bHQ7Ci0gICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkocXVhZHMuc2l6
ZSgpKTsKLSAgICBmb3IgKGF1dG8mIHF1YWQgOiBxdWFkcykKLSAgICAgICAgcmVzdWx0LnVuY2hl
Y2tlZEFwcGVuZChET01SZWN0OjpjcmVhdGUocXVhZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpKSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogVmVjdG9yPFJlZjxET01SZWN0Pj4gRWxlbWVudDo6
Z2V0Q2xpZW50UmVjdHMoKQogewogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CkBAIC0xMTY5LDcgKzExNjAsNyBAQCBWZWN0b3I8UmVmPERPTVJl
Y3Q+PiBFbGVtZW50OjpnZXRDbGllbnRSZWN0cygpCiAgICAgVmVjdG9yPEZsb2F0UXVhZD4gcXVh
ZHM7CiAgICAgcmVuZGVyQm94TW9kZWxPYmplY3QtPmFic29sdXRlUXVhZHMocXVhZHMpOwogICAg
IGRvY3VtZW50KCkuYWRqdXN0RmxvYXRRdWFkc0ZvclNjcm9sbEFuZEFic29sdXRlWm9vbUFuZEZy
YW1lU2NhbGUocXVhZHMsIHJlbmRlckJveE1vZGVsT2JqZWN0LT5zdHlsZSgpKTsKLSAgICByZXR1
cm4gdG9ET01SZWN0VmVjdG9yKHF1YWRzKTsKKyAgICByZXR1cm4gY3JlYXRlRE9NUmVjdFZlY3Rv
cihxdWFkcyk7CiB9CiAKIFJlZjxET01SZWN0PiBFbGVtZW50OjpnZXRCb3VuZGluZ0NsaWVudFJl
Y3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9SYW5nZS5jcHAKaW5kZXggNzczNGFiZDEyMWJhYTkwOTJjNTUwNTc0ODczMDlj
ZjU3Zjg5ZjY5Mi4uNWRjYmQ2NzA3ZTVmNmFmNjI0MGJhZGVlZmJlMWRjNjg3MmI4ZWNlMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuY3BwCkBAIC0yNSw5ICsyNSw4IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiUmFuZ2UuaCIKIAotI2luY2x1ZGUgIkNsaWVudFJlY3QuaCIKLSNpbmNsdWRlICJD
bGllbnRSZWN0TGlzdC5oIgogI2luY2x1ZGUgIkNvbW1lbnQuaCIKKyNpbmNsdWRlICJET01SZWN0
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRGcmFnbWVudC5oIgogI2luY2x1ZGUgIkVkaXRpbmcuaCIK
ICNpbmNsdWRlICJFdmVudC5oIgpAQCAtMTc2MywxNCArMTc2MiwxNCBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBSYW5nZTo6ZXhwYW5kKGNvbnN0IFN0cmluZyYgdW5pdCkKICAgICByZXR1cm4gc2V0RW5k
KCplbmRDb250YWluZXIsIGVuZC5kZWVwRXF1aXZhbGVudCgpLmNvbXB1dGVPZmZzZXRJbkNvbnRh
aW5lck5vZGUoKSk7CiB9CiAKLVJlZjxDbGllbnRSZWN0TGlzdD4gUmFuZ2U6OmdldENsaWVudFJl
Y3RzKCkgY29uc3QKK1ZlY3RvcjxSZWY8RE9NUmVjdD4+IFJhbmdlOjpnZXRDbGllbnRSZWN0cygp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIENsaWVudFJlY3RMaXN0OjpjcmVhdGUoYm9yZGVyQW5kVGV4
dFF1YWRzKENvb3JkaW5hdGVTcGFjZTo6Q2xpZW50KSk7CisgICAgcmV0dXJuIGNyZWF0ZURPTVJl
Y3RWZWN0b3IoYm9yZGVyQW5kVGV4dFF1YWRzKENvb3JkaW5hdGVTcGFjZTo6Q2xpZW50KSk7CiB9
CiAKLVJlZjxDbGllbnRSZWN0PiBSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QK
K1JlZjxET01SZWN0PiBSYW5nZTo6Z2V0Qm91bmRpbmdDbGllbnRSZWN0KCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gQ2xpZW50UmVjdDo6Y3JlYXRlKGJvdW5kaW5nUmVjdChDb29yZGluYXRlU3BhY2U6
OkNsaWVudCkpOworICAgIHJldHVybiBET01SZWN0OjpjcmVhdGUoYm91bmRpbmdSZWN0KENvb3Jk
aW5hdGVTcGFjZTo6Q2xpZW50KSk7CiB9CiAKIFZlY3RvcjxGbG9hdFF1YWQ+IFJhbmdlOjpib3Jk
ZXJBbmRUZXh0UXVhZHMoQ29vcmRpbmF0ZVNwYWNlIHNwYWNlKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApp
bmRleCA2NzRlMTM5MjE1MTkyOGZkMjg3MWM1MTY1NTA5ODBkNmUwNjkwNmQzLi5lYTdjOTQ1Yzg2
YzQ5MDE1Y2FkYjQ4YzIyNGYwMzU2MmI4N2Q3YjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vUmFuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaApAQCAtMzQsOCAr
MzQsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENsaWVudFJlY3Q7Ci1jbGFz
cyBDbGllbnRSZWN0TGlzdDsKK2NsYXNzIERPTVJlY3Q7CiBjbGFzcyBDb250YWluZXJOb2RlOwog
Y2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBEb2N1bWVudEZyYWdtZW50OwpAQCAtMTQyLDggKzE0MSw4
IEBAIHB1YmxpYzoKICAgICAvLyBmb3IgZGV0YWlscy4KICAgICBXRUJDT1JFX0VYUE9SVCBFeGNl
cHRpb25Pcjx2b2lkPiBleHBhbmQoY29uc3QgU3RyaW5nJik7CiAKLSAgICBSZWY8Q2xpZW50UmVj
dExpc3Q+IGdldENsaWVudFJlY3RzKCkgY29uc3Q7Ci0gICAgUmVmPENsaWVudFJlY3Q+IGdldEJv
dW5kaW5nQ2xpZW50UmVjdCgpIGNvbnN0OworICAgIFZlY3RvcjxSZWY8RE9NUmVjdD4+IGdldENs
aWVudFJlY3RzKCkgY29uc3Q7CisgICAgUmVmPERPTVJlY3Q+IGdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpIGNvbnN0OwogCiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQogICAgIHZvaWQgZm9ybWF0
Rm9yRGVidWdnZXIoY2hhciogYnVmZmVyLCB1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5pZGwKaW5kZXggNWU4NTM5MzkxZGVmMDVjODE0MWIyMjY3NTdjOTlkZWQ0ZWM4M2U1Yy4u
NzIxYzdmMjlmODQ1YjgxOGNjNTBhMzc3NWU3NWZhNjBiNjMwMWJkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2Uu
aWRsCkBAIC02Miw4ICs2Miw4IEBACiAKICAgICB2b2lkIGRldGFjaCgpOwogCi0gICAgQ2xpZW50
UmVjdExpc3QgZ2V0Q2xpZW50UmVjdHMoKTsKLSAgICBDbGllbnRSZWN0IGdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpOworICAgIHNlcXVlbmNlPERPTVJlY3Q+IGdldENsaWVudFJlY3RzKCk7CisgICAg
W05ld09iamVjdF0gRE9NUmVjdCBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIFtDRVJl
YWN0aW9ucywgTWF5VGhyb3dFeGNlcHRpb24sIE5ld09iamVjdF0gRG9jdW1lbnRGcmFnbWVudCBj
cmVhdGVDb250ZXh0dWFsRnJhZ21lbnQoRE9NU3RyaW5nIGh0bWwpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOWIzY2Qy
M2Q3NWZkZTk1ODVjZjIzNzI1NjcwZTFhOTM2YzNkYjc4Yi4uNjJmODFlZWM2Mjc4YzI1ZjVhOTI2
OTVjNDRhMzBmMDFkNDk3YTZmNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTA0LTI3ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgUmFuZ2UuZ2V0Q2xpZW50
UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xpZW50UmVjdCgpIHNob3VsZCByZXR1cm4gRE9NUmVjdCB0
eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcx
MzkzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGxheW91dCB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvZ2V0Qm91
bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRSZWN0LWdl
dENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWw6IEFkZGVkLgorCiAyMDE3LTA0LTI3ICBNYXR0
IExld2lzICA8amxld2lzM0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFyayBpbXBvcnRlZC9ibGlu
ay9wYWludC9kZXByZWNhdGVkcGFpbnRsYXllci9ub24tc2VsZi1wYWludGluZy1sYXllci1vdmVy
cmlkZXMtdmlzaWJpbGl0eS5odG1sIGFzIGEgZmxha3kgY3Jhc2guCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJlY3QtZ2V0Q2xpZW50UmVj
dHMtcmV0dXJuLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uv
Z2V0Qm91bmRpbmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wMzIxZjNhNTA3ZWZjMTAxMjMwMDEzOWVlMzAzY2MxY2MyMTk2NWJm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRp
bmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDEzIEBACitUZXN0cyB0aGF0IFJhbmdlLmdldENsaWVudFJlY3RzKCkgLyBnZXRCb3Vu
ZGluZ0NsaWVudFJlY3QoKSByZXR1cm4gRE9NUmVjdCB0eXBlcy4KKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgcmVjdC5fX3Byb3RvX18gaXMgRE9NUmVjdC5wcm90b3R5cGUK
K1BBU1MgcmVjdHMuX19wcm90b19fIGlzIEFycmF5LnByb3RvdHlwZQorUEFTUyByZWN0cy5sZW5n
dGggPiAwIGlzIHRydWUKK1BBU1MgcmVjdHNbMF0uX19wcm90b19fIGlzIERPTVJlY3QucHJvdG90
eXBlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRpbmdDbGllbnRS
ZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9SYW5nZS9nZXRCb3VuZGluZ0NsaWVudFJlY3QtZ2V0Q2xpZW50UmVjdHMtcmV0dXJuLXR5cGUu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMTcyMGE2ODQ1NzMxOWFmNDNhMGZmMzZmYTg1MzA3NmZiY2QwYTc4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2UvZ2V0Qm91bmRp
bmdDbGllbnRSZWN0LWdldENsaWVudFJlY3RzLXJldHVybi10eXBlLmh0bWwKQEAgLTAsMCArMSwy
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgUmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKSAvIGdldEJvdW5kaW5nQ2xp
ZW50UmVjdCgpIHJldHVybiBET01SZWN0IHR5cGVzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7
CisKK29ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFu
Z2UoKTsKKyAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuYm9keSkKKworICAg
IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKKyAgICBzaG91bGRCZSgicmVj
dC5fX3Byb3RvX18iLCAiRE9NUmVjdC5wcm90b3R5cGUiKTsKKworICAgIHJlY3RzID0gcmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKTsKKyAgICBzaG91bGRCZSgicmVjdHMuX19wcm90b19fIiwgIkFycmF5
LnByb3RvdHlwZSIpOworICAgIHNob3VsZEJlVHJ1ZSgicmVjdHMubGVuZ3RoID4gMCIpOworICAg
IHNob3VsZEJlKCJyZWN0c1swXS5fX3Byb3RvX18iLCAiRE9NUmVjdC5wcm90b3R5cGUiKTsKKwor
ICAgIGZpbmlzaEpTVGVzdCgpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="review"
          id="329680"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="329735"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>