<?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>48339</bug_id>
          
          <creation_ts>2010-10-26 09:59:41 -0700</creation_ts>
          <short_desc>Add a &apos;grammar&apos; attribute for speech input.</short_desc>
          <delta_ts>2010-10-26 13:41:02 -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>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>39485</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Satish Sampath">satish</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>299537</commentid>
    <comment_count>0</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-10-26 09:59:41 -0700</bug_when>
    <thetext>To differentiate between various types of speech input, we add a &apos;x-webkit-grammar&apos; attribute to a speech enabled input element. This is passed without validation to the speech recognizer. Typical values could be &quot;builtin:search&quot;, &quot;builtin:dictation&quot; and even an externally hosted SRGS grammar XML file URI. It is up to the recognizer to interpret the value and use it as an aid in recognition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299545</commentid>
    <comment_count>1</comment_count>
      <attachid>71904</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-10-26 10:06:02 -0700</bug_when>
    <thetext>Created attachment 71904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299687</commentid>
    <comment_count>2</comment_count>
      <attachid>71904</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-10-26 12:08:24 -0700</bug_when>
    <thetext>Comment on attachment 71904
Patch

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

r=me

&gt; WebCore/page/SpeechInputClient.h:34
&gt; +#include &lt;wtf/Forward.h&gt;

Needed?

&gt; WebCore/platform/mock/SpeechInputClientMock.cpp:53
&gt; +bool SpeechInputClientMock::startRecognition(int requestId, const IntRect&amp;, const String&amp;)

include name

&gt; WebCore/platform/mock/SpeechInputClientMock.h:53
&gt; +    bool startRecognition(int, const IntRect&amp;, const String&amp;);

include name

&gt; WebKit/chromium/src/SpeechInputClientImpl.h:57
&gt; +    bool startRecognition(int, const WebCore::IntRect&amp;, const WTF::String&amp;);

you should include a name here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299761</commentid>
    <comment_count>3</comment_count>
      <attachid>71904</attachid>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-10-26 13:29:24 -0700</bug_when>
    <thetext>Comment on attachment 71904
Patch

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

Thanks, addressed the comments. Will land.

&gt;&gt; WebCore/page/SpeechInputClient.h:34
&gt;&gt; +#include &lt;wtf/Forward.h&gt;
&gt; 
&gt; Needed?

Yes since we are using WTF::String in the added code below.

&gt;&gt; WebCore/platform/mock/SpeechInputClientMock.cpp:53
&gt;&gt; +bool SpeechInputClientMock::startRecognition(int requestId, const IntRect&amp;, const String&amp;)
&gt; 
&gt; include name

Done

&gt;&gt; WebCore/platform/mock/SpeechInputClientMock.h:53
&gt;&gt; +    bool startRecognition(int, const IntRect&amp;, const String&amp;);
&gt; 
&gt; include name

Done

&gt;&gt; WebKit/chromium/src/SpeechInputClientImpl.h:57
&gt;&gt; +    bool startRecognition(int, const WebCore::IntRect&amp;, const WTF::String&amp;);
&gt; 
&gt; you should include a name here

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>299773</commentid>
    <comment_count>4</comment_count>
    <who name="Satish Sampath">satish</who>
    <bug_when>2010-10-26 13:41:02 -0700</bug_when>
    <thetext>Committed r70567: &lt;http://trac.webkit.org/changeset/70567&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71904</attachid>
            <date>2010-10-26 10:06:02 -0700</date>
            <delta_ts>2010-10-26 13:29:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48339-20101026180600.patch</filename>
            <type>text/plain</type>
            <size>13494</size>
            <attacher name="Satish Sampath">satish</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTRkYmRlOGZlYTFjMWNjMjI1MTU4MzU4ZjUyNjkzYTc3OWVlMDQzYy4uMzRlZThiZDU0NzAwMGQ4
N2NmNzFmZGJkNDMxMWRkYzkwYjI3NDBiMCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0xMC0yNiAgU2F0
aXNoIFNhbXBhdGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhICdncmFtbWFyJyBhdHRyaWJ1dGUgZm9y
IHNwZWVjaCBpbnB1dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQ4MzM5CisKKyAgICAgICAgVG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHZhcmlvdXMg
dHlwZXMgb2Ygc3BlZWNoIGlucHV0LCB3ZSBhZGQgYSAneC13ZWJraXQtZ3JhbW1hcicgYXR0cmli
dXRlIHRvIGEKKyAgICAgICAgc3BlZWNoIGVuYWJsZWQgaW5wdXQgZWxlbWVudC4gVGhpcyBpcyBw
YXNzZWQgd2l0aG91dCB2YWxpZGF0aW9uIHRvIHRoZSBzcGVlY2ggcmVjb2duaXplci4gVHlwaWNh
bCB2YWx1ZXMKKyAgICAgICAgY291bGQgYmUgImJ1aWx0aW46c2VhcmNoIiwgImJ1aWx0aW46ZGlj
dGF0aW9uIiBhbmQgZXZlbiBhbiBleHRlcm5hbGx5IGhvc3RlZCBTUkdTIGdyYW1tYXIgWE1MIGZp
bGUgVVJJLgorICAgICAgICBJdCBpcyB1cCB0byB0aGUgcmVjb2duaXplciB0byBpbnRlcnByZXQg
dGhlIHZhbHVlIGFuZCB1c2UgaXQgYXMgYW4gYWlkIGluIHJlY29nbml0aW9uLgorCisgICAgICAg
ICogYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJraXRHcmFtbWFyRW5hYmxlZCk6Cisg
ICAgICAgICogaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW46CisgICAgICAgICogaHRtbC9IVE1M
SW5wdXRFbGVtZW50LmlkbDoKKyAgICAgICAgKiBwYWdlL1NwZWVjaElucHV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaElucHV0OjpzdGFydFJlY29nbml0aW9uKToKKyAgICAgICAgKiBw
YWdlL1NwZWVjaElucHV0Lmg6CisgICAgICAgICogcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL21vY2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNwZWVjaElucHV0Q2xpZW50TW9jazo6c3RhcnRSZWNvZ25pdGlvbik6Cisg
ICAgICAgICogcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaDoKKyAgICAgICAg
KiByZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0RmllbGRTcGVlY2hCdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKToK
KwogMjAxMC0xMC0yNiAgSmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmggYi9XZWJDb3JlL2JpbmRpbmdzL2dl
bmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IGI1NzJiMmNhNmNjYzNkY2FiYmJi
Zjc0ZjAyM2MyMzljNzI2NWQxODQuLjRhOWE0MjA4ZmViOGMzYTI4ZTJlZjA0MGVhMDc5NTVjZjM3
YjRkMWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaApAQCAtMTM5LDYgKzEzOSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBz
ZXRTcGVlY2hJbnB1dEVuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgaXNTcGVlY2hJbnB1dEVuYWJs
ZWQgPSBpc0VuYWJsZWQ7IH0KICAgICBzdGF0aWMgYm9vbCBzcGVlY2hJbnB1dEVuYWJsZWQoKSB7
IHJldHVybiBpc1NwZWVjaElucHV0RW5hYmxlZDsgfQogICAgIHN0YXRpYyBib29sIHdlYmtpdFNw
ZWVjaEVuYWJsZWQoKSB7IHJldHVybiBpc1NwZWVjaElucHV0RW5hYmxlZDsgfQorICAgIHN0YXRp
YyBib29sIHdlYmtpdEdyYW1tYXJFbmFibGVkKCkgeyByZXR1cm4gaXNTcGVlY2hJbnB1dEVuYWJs
ZWQ7IH0KIAogI2lmIEVOQUJMRShYSFJfUkVTUE9OU0VfQkxPQikKICAgICBzdGF0aWMgYm9vbCB4
aHJSZXNwb25zZUJsb2JFbmFibGVkKCkgeyByZXR1cm4gaXNYSFJSZXNwb25zZUJsb2JFbmFibGVk
OyB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluIGIvV2Vi
Q29yZS9odG1sL0hUTUxBdHRyaWJ1dGVOYW1lcy5pbgppbmRleCBkNWM0OGM0MTU4NDZkZTM4Yjgx
ZjMxMDExZjlhYjk2Y2UxNTE3MDhiLi5kOTc1OWZjZGIwYTgyNDAxYTNmMDVmNThhYWFiZDlkYzIy
YzY0NmZmIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisr
KyBiL1dlYkNvcmUvaHRtbC9IVE1MQXR0cmlidXRlTmFtZXMuaW4KQEAgLTI2MCw2ICsyNjAsNyBA
QCBzb3J0YWJsZQogc29ydGRpcmVjdGlvbgogc3BhbgogeC13ZWJraXQtc3BlZWNoCit4LXdlYmtp
dC1ncmFtbWFyCiBzcGVsbGNoZWNrCiBzcmMKIHN0YW5kYnkKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmlkbCBiL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmlkbAppbmRleCAxY2E3ZDZjODA3YTIyZGE3NTllODNlZGVlMWJhOGRiMjdkYzNmMjNkLi5iODcz
ODI2ZDE0MzZlNjYyMGIyMDhjNmE3NGNlYjIyYmFkN2ZmYzI5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5pZGwKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuaWRsCkBAIC0xMDEsNiArMTAxLDcgQEAgbW9kdWxlIGh0bWwgewogCiAjaWYgZGVmaW5l
ZChFTkFCTEVfSU5QVVRfU1BFRUNIKSAmJiBFTkFCTEVfSU5QVVRfU1BFRUNICiAgICAgICAgIGF0
dHJpYnV0ZSBbUmVmbGVjdCwgRW5hYmxlZEF0UnVudGltZV0gYm9vbGVhbiB3ZWJraXRTcGVlY2g7
CisgICAgICAgIGF0dHJpYnV0ZSBbUmVmbGVjdCwgRW5hYmxlZEF0UnVudGltZV0gYm9vbGVhbiB3
ZWJraXRHcmFtbWFyOwogICAgICAgICBhdHRyaWJ1dGUgW0RvbnRFbnVtXSBFdmVudExpc3RlbmVy
IG9ud2Via2l0c3BlZWNoY2hhbmdlOwogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGFnZS9TcGVlY2hJbnB1dC5jcHAgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuY3BwCmlu
ZGV4IGIzZjU0OWU1ODk1MjgzNmRmMTE5ZGQ4MThmNTQzZjdmNDAyZDBiMjkuLmM1MzNhODA4MGQ1
NDM3NWQ2M2JhNjE2NTA2YTgyMjNmYTc2YjU4ZTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9T
cGVlY2hJbnB1dC5jcHAKKysrIGIvV2ViQ29yZS9wYWdlL1NwZWVjaElucHV0LmNwcApAQCAtOTMs
MTAgKzkzLDEwIEBAIHZvaWQgU3BlZWNoSW5wdXQ6OnNldFJlY29nbml0aW9uUmVzdWx0KGludCBs
aXN0ZW5lcklkLCBjb25zdCBTcGVlY2hJbnB1dFJlc3VsdEFyCiAgICAgICAgIG1fbGlzdGVuZXJz
LmdldChsaXN0ZW5lcklkKS0+c2V0UmVjb2duaXRpb25SZXN1bHQobGlzdGVuZXJJZCwgcmVzdWx0
KTsKIH0KIAotYm9vbCBTcGVlY2hJbnB1dDo6c3RhcnRSZWNvZ25pdGlvbihpbnQgbGlzdGVuZXJJ
ZCwgY29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QpCitib29sIFNwZWVjaElucHV0OjpzdGFydFJl
Y29nbml0aW9uKGludCBsaXN0ZW5lcklkLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29u
c3QgU3RyaW5nJiBncmFtbWFyKQogewogICAgIEFTU0VSVChtX2xpc3RlbmVycy5jb250YWlucyhs
aXN0ZW5lcklkKSk7Ci0gICAgcmV0dXJuIG1fY2xpZW50LT5zdGFydFJlY29nbml0aW9uKGxpc3Rl
bmVySWQsIGVsZW1lbnRSZWN0KTsKKyAgICByZXR1cm4gbV9jbGllbnQtPnN0YXJ0UmVjb2duaXRp
b24obGlzdGVuZXJJZCwgZWxlbWVudFJlY3QsIGdyYW1tYXIpOwogfQogCiB2b2lkIFNwZWVjaElu
cHV0OjpzdG9wUmVjb3JkaW5nKGludCBsaXN0ZW5lcklkKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9w
YWdlL1NwZWVjaElucHV0LmggYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaAppbmRleCBiNTIx
ZjNhMTUyOWJjOTdhZjI3YTI4MjY5OTRjMzUyMjRkOGYzZDc1Li4wOGQ5NWRlMDY3N2E2YWMxOTZh
YzNlODBmNjNiNDkyNDY1YzRiNDRmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5w
dXQuaAorKysgYi9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXQuaApAQCAtNjEsNyArNjEsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCB1bnJlZ2lzdGVyTGlzdGVuZXIoaW50KTsKIAogICAgIC8vIE1ldGhv
ZHMgaW52b2tlZCBieSB0aGUgaW5wdXQgZWxlbWVudHMuCi0gICAgYm9vbCBzdGFydFJlY29nbml0
aW9uKGludCwgY29uc3QgSW50UmVjdCYpOworICAgIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihpbnQg
bGlzdGVuZXJJZCwgY29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYgZ3Jh
bW1hcik7CiAgICAgdm9pZCBzdG9wUmVjb3JkaW5nKGludCk7CiAgICAgdm9pZCBjYW5jZWxSZWNv
Z25pdGlvbihpbnQpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BhZ2UvU3BlZWNoSW5wdXRDbGll
bnQuaCBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oCmluZGV4IGQ1ZmRhMTdmYWEy
Y2Q3OTVhZjQ0ZjUzYTQ2ZmNiYTU5NzQxYWI3NmMuLjQ1YjMwOWE3ZGE0ZTQzNjdmN2VhMzM3YzE1
ODc0ZGRjNjAzZTg0NGMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVu
dC5oCisrKyBiL1dlYkNvcmUvcGFnZS9TcGVlY2hJbnB1dENsaWVudC5oCkBAIC0zMSw2ICszMSw4
IEBACiAjaWZuZGVmIFNwZWVjaElucHV0Q2xpZW50X2gKICNkZWZpbmUgU3BlZWNoSW5wdXRDbGll
bnRfaAogCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKwogI2lmIEVOQUJMRShJTlBVVF9TUEVF
Q0gpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ4LDcgKzUwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRMaXN0ZW5lcihTcGVlY2hJbnB1dExpc3RlbmVyKikgPSAwOwogCiAg
ICAgLy8gU3RhcnRzIHNwZWVjaCByZWNvZ25pdGlvbiBhbmQgYXVkaW8gcmVjb3JkaW5nLgotICAg
IHZpcnR1YWwgYm9vbCBzdGFydFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQsIGNvbnN0IEludFJl
Y3QmIGVsZW1lbnRSZWN0KSA9IDA7CisgICAgdmlydHVhbCBib29sIHN0YXJ0UmVjb2duaXRpb24o
aW50IHJlcXVlc3RJZCwgY29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFN0cmluZyYg
Z3JhbW1hcikgPSAwOwogCiAgICAgLy8gU3RvcHMgYXVkaW8gcmVjb3JkaW5nIGFuZCBwZXJmb3Jt
cyByZWNvZ25pdGlvbiB3aXRoIHRoZSBhdWRpbyByZWNvcmRlZCB1bnRpbCBub3cKICAgICAvLyAo
ZG9lcyBub3QgZGlzY2FyZCBhdWRpbykuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svU3BlZWNoSW5wdXRDbGllbnRNb2NrLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVl
Y2hJbnB1dENsaWVudE1vY2suY3BwCmluZGV4IGExYjRkYTk4ZmYyMmU3NTJkMjlmOWNhNWJmN2Y0
MWU3M2U1Y2I2OWQuLmY0ZjNjNDk1NTI3MzczNTYxMTAxNGFjOTcxYmE3YWUzY2M0ZDg2OTMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suY3BwCkBA
IC01MCw3ICs1MCw3IEBAIHZvaWQgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzZXRMaXN0ZW5lcihT
cGVlY2hJbnB1dExpc3RlbmVyKiBsaXN0ZW5lcikKICAgICBtX2xpc3RlbmVyID0gbGlzdGVuZXI7
CiB9CiAKLWJvb2wgU3BlZWNoSW5wdXRDbGllbnRNb2NrOjpzdGFydFJlY29nbml0aW9uKGludCBy
ZXF1ZXN0SWQsIGNvbnN0IEludFJlY3QmKQorYm9vbCBTcGVlY2hJbnB1dENsaWVudE1vY2s6OnN0
YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCwgY29uc3QgSW50UmVjdCYsIGNvbnN0IFN0cmlu
ZyYpCiB7CiAgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9j
ay5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL1NwZWVjaElucHV0Q2xpZW50TW9jay5oCmluZGV4
IGNlODNkM2JiOWNiODhiMGEzYTk1YjU0OTU0MjdkMjk5MWYyZTBiNGYuLmIwYWU1ODI3NGI5YTEy
MWUwYWYwYzg1NDZjMjlmZmYzMWQyZWY0MTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9TcGVlY2hJbnB1dENsaWVudE1vY2suaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
U3BlZWNoSW5wdXRDbGllbnRNb2NrLmgKQEAgLTUwLDcgKzUwLDcgQEAgcHVibGljOgogCiAgICAg
Ly8gU3BlZWNoSW5wdXRDbGllbnQgbWV0aG9kcy4KICAgICB2b2lkIHNldExpc3RlbmVyKFNwZWVj
aElucHV0TGlzdGVuZXIqKTsKLSAgICBib29sIHN0YXJ0UmVjb2duaXRpb24oaW50LCBjb25zdCBJ
bnRSZWN0Jik7CisgICAgYm9vbCBzdGFydFJlY29nbml0aW9uKGludCwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3RvcFJlY29yZGluZyhpbnQpOwogICAgIHZvaWQg
Y2FuY2VsUmVjb2duaXRpb24oaW50KTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcv
VGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1RleHRDb250
cm9sSW5uZXJFbGVtZW50cy5jcHAKaW5kZXggZTE5M2ViYjE0NzIxMzVkNjVlODU3NTEyNWUwOTg2
ZTdlOGRhMjMwOS4uOTI0ODM5NTZiZmM4YjNjYzZiNmJmZDg1MTIxNzAyZDA0MDhjNDlmOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvVGV4dENvbnRyb2xJbm5lckVsZW1lbnRzLmNwcAor
KysgYi9XZWJDb3JlL3JlbmRlcmluZy9UZXh0Q29udHJvbElubmVyRWxlbWVudHMuY3BwCkBAIC00
MzEsNyArNDMxLDcgQEAgdm9pZCBJbnB1dEZpZWxkU3BlZWNoQnV0dG9uRWxlbWVudDo6ZGVmYXVs
dEV2ZW50SGFuZGxlcihFdmVudCogZXZlbnQpCiAgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZl
bnROYW1lcygpLmNsaWNrRXZlbnQpIHsKICAgICAgICAgc3dpdGNoIChtX3N0YXRlKSB7CiAgICAg
ICAgIGNhc2UgSWRsZToKLSAgICAgICAgICAgIGlmIChzcGVlY2hJbnB1dCgpLT5zdGFydFJlY29n
bml0aW9uKG1fbGlzdGVuZXJJZCwgaW5wdXQtPnJlbmRlcmVyKCktPmFic29sdXRlQm91bmRpbmdC
b3hSZWN0KCkpKQorICAgICAgICAgICAgaWYgKHNwZWVjaElucHV0KCktPnN0YXJ0UmVjb2duaXRp
b24obV9saXN0ZW5lcklkLCBpbnB1dC0+cmVuZGVyZXIoKS0+YWJzb2x1dGVCb3VuZGluZ0JveFJl
Y3QoKSwgaW5wdXQtPmdldEF0dHJpYnV0ZSh3ZWJraXRncmFtbWFyQXR0cikpKQogICAgICAgICAg
ICAgICAgIHNldFN0YXRlKFJlY29yZGluZyk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBSZWNvcmRpbmc6CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhNTQ5ZTdhMWI5YWQyMGRjNTdhYzQ4ZmZi
NWFkOWFmY2U0NWRiMTU2Li5mNDQ5YjBiM2IxOGZiZjg2ZGU0NDE5N2U4MzJiZDg5YTEyYzk5Mzcx
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAxMC0xMC0yNiAgU2F0aXNoIFNhbXBh
dGggIDxzYXRpc2hAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhICdncmFtbWFyJyBhdHRyaWJ1dGUgZm9yIHNwZWVjaCBp
bnB1dC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4
MzM5CisKKyAgICAgICAgVG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuIHZhcmlvdXMgdHlwZXMgb2Yg
c3BlZWNoIGlucHV0LCB3ZSBhZGQgYSAneC13ZWJraXQtZ3JhbW1hcicgYXR0cmlidXRlIHRvIGEK
KyAgICAgICAgc3BlZWNoIGVuYWJsZWQgaW5wdXQgZWxlbWVudC4gVGhpcyBpcyBwYXNzZWQgd2l0
aG91dCB2YWxpZGF0aW9uIHRvIHRoZSBzcGVlY2ggcmVjb2duaXplci4gVHlwaWNhbCB2YWx1ZXMK
KyAgICAgICAgY291bGQgYmUgImJ1aWx0aW46c2VhcmNoIiwgImJ1aWx0aW46ZGljdGF0aW9uIiBh
bmQgZXZlbiBhbiBleHRlcm5hbGx5IGhvc3RlZCBTUkdTIGdyYW1tYXIgWE1MIGZpbGUgVVJJLgor
ICAgICAgICBJdCBpcyB1cCB0byB0aGUgcmVjb2duaXplciB0byBpbnRlcnByZXQgdGhlIHZhbHVl
IGFuZCB1c2UgaXQgYXMgYW4gYWlkIGluIHJlY29nbml0aW9uLgorCisgICAgICAgICogcHVibGlj
L1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hJ
bnB1dENvbnRyb2xsZXI6OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAqIHNyYy9TcGVlY2hJ
bnB1dENsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpTcGVlY2hJbnB1dENsaWVudElt
cGw6OnN0YXJ0UmVjb2duaXRpb24pOgorICAgICAgICAqIHNyYy9TcGVlY2hJbnB1dENsaWVudElt
cGwuaDoKKyAgICAgICAgKiBzcmMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6c3Rh
cnRSZWNvZ25pdGlvbik6CisgICAgICAgICogc3JjL1dlYlNwZWVjaElucHV0Q29udHJvbGxlck1v
Y2tJbXBsLmg6CisKKzIwMTAtMTAtMjYgIFNhdGlzaCBTYW1wYXRoICA8c2F0aXNoQGNocm9taXVt
Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBTdGV2ZSBCbG9jay4KIAogICAgICAgICBSZW1v
dmUgb2Jzb2xldGUgcHVibGljL0FQSSBtZXRob2RzIGluIGNocm9taXVtIHBvcnQuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5oIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXIuaAppbmRleCA1
NDA4NzQxYTNjOTRkM2JmMWM1NDNkOTZlOWZjMTZhNjM5MGRiMDJmLi42MzI1MGNkZmMxZGJiMGM4
YTdlM2U5NThkMzU2ZDFjNDQ3NWM0YjdmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNwZWVjaElucHV0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyLmgKQEAgLTM2LDYgKzM2LDcgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBzdHJ1Y3QgV2ViUmVjdDsKK2NsYXNzIFdlYlN0cmluZzsKIAogLy8gUHJv
dmlkZXMgYW4gZW1iZWRkZXIgQVBJIGNhbGxlZCBieSBXZWJLaXQuCiBjbGFzcyBXZWJTcGVlY2hJ
bnB1dENvbnRyb2xsZXIgewpAQCAtNDMsNiArNDQsMTMgQEAgcHVibGljOgogICAgIC8vIFN0YXJ0
cyBzcGVlY2ggcmVjb2duaXRpb24uIFNwZWVjaCB3aWxsIGdldCByZWNvcmRlZCB1bnRpbCB0aGUg
ZW5kcG9pbnRlciBkZXRlY3RzIHNpbGVuY2UsCiAgICAgLy8gcnVucyB0byB0aGUgbGltaXQgb3Ig
c3RvcFJlY29yZGluZyBpcyBjYWxsZWQuIFByb2dyZXNzIGluZGljYXRpb25zIGFuZCB0aGUgcmVj
b2duaXplZAogICAgIC8vIHRleHQgYXJlIHJldHVybmVkIHZpYSB0aGUgbGlzdGVuZXIgaW50ZXJm
YWNlLgorICAgIHZpcnR1YWwgYm9vbCBzdGFydFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQsIGNv
bnN0IFdlYlJlY3QmIGVsZW1lbnRSZWN0LCBjb25zdCBXZWJTdHJpbmcmIGdyYW1tYXIpCisgICAg
eworICAgICAgICBzdGFydFJlY29nbml0aW9uKHJlcXVlc3RJZCwgZWxlbWVudFJlY3QpOworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgLy8gRklYTUU6IFJlbW92ZSB0aGlzIG1l
dGhvZCBvbmNlIGNocm9taXVtIGltcGxlbWVudHMgdGhlIGFib3ZlIG1ldGhvZC4KICAgICB2aXJ0
dWFsIGJvb2wgc3RhcnRSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJSZWN0JikK
ICAgICB7CiAgICAgICAgIFdFQktJVF9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9j
aHJvbWl1bS9zcmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmNwcAppbmRleCA4OGUxM2E3NmY5OGY4
YWUwYzBiMmE0ODVlNzBlNWVkYmY1Y2Y4MzJiLi42NzJkZTYzNjhiMDI4ZDliZmQ4MzZkYzM1NzFj
N2ZhMjBiZjk5MjBlIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NwZWVjaElucHV0
Q2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVlY2hJbnB1dENsaWVu
dEltcGwuY3BwCkBAIC01NiwxMCArNTYsMTAgQEAgdm9pZCBTcGVlY2hJbnB1dENsaWVudEltcGw6
OnNldExpc3RlbmVyKFdlYkNvcmU6OlNwZWVjaElucHV0TGlzdGVuZXIqIGxpc3RlbmVyKQogICAg
IG1fbGlzdGVuZXIgPSBsaXN0ZW5lcjsKIH0KIAotYm9vbCBTcGVlY2hJbnB1dENsaWVudEltcGw6
OnN0YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
ZWxlbWVudFJlY3QpCitib29sIFNwZWVjaElucHV0Q2xpZW50SW1wbDo6c3RhcnRSZWNvZ25pdGlv
bihpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBlbGVtZW50UmVjdCwgY29u
c3QgV1RGOjpTdHJpbmcmIGdyYW1tYXIpCiB7CiAgICAgQVNTRVJUKG1fbGlzdGVuZXIpOwotICAg
IHJldHVybiBtX2NvbnRyb2xsZXItPnN0YXJ0UmVjb2duaXRpb24ocmVxdWVzdElkLCBlbGVtZW50
UmVjdCk7CisgICAgcmV0dXJuIG1fY29udHJvbGxlci0+c3RhcnRSZWNvZ25pdGlvbihyZXF1ZXN0
SWQsIGVsZW1lbnRSZWN0LCBncmFtbWFyKTsKIH0KIAogdm9pZCBTcGVlY2hJbnB1dENsaWVudElt
cGw6OnN0b3BSZWNvcmRpbmcoaW50IHJlcXVlc3RJZCkKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9zcmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1Nw
ZWVjaElucHV0Q2xpZW50SW1wbC5oCmluZGV4IGM4YzIzZjhiZjQzMTQ4ZDZkZjQwYzBjMmNmNTg2
OWM0NzNhMmRlY2IuLjNhYmNjY2YyZWZjYTE5NTM3NWI1YjkxNzRmYzBmMjRkZjE5NWQxYmMgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvU3BlZWNoSW5wdXRDbGllbnRJbXBsLmgKKysr
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TcGVlY2hJbnB1dENsaWVudEltcGwuaApAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBTcGVlY2hJbnB1dENsaWVudCBtZXRob2RzLgogICAg
IHZvaWQgc2V0TGlzdGVuZXIoV2ViQ29yZTo6U3BlZWNoSW5wdXRMaXN0ZW5lciopOwotICAgIGJv
b2wgc3RhcnRSZWNvZ25pdGlvbihpbnQsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICBi
b29sIHN0YXJ0UmVjb2duaXRpb24oaW50LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3Qg
V1RGOjpTdHJpbmcmKTsKICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoaW50KTsKICAgICB2b2lkIGNh
bmNlbFJlY29nbml0aW9uKGludCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAKaW5kZXggYmQxNWZhNGUxMmU0
NTgzYmVjZTI3ZTQ4OGViMDgxZWMzOWIxOGJlMC4uOThjYzZjZmI5ODc0YWIwMDI4N2UyYmYyOGVm
MGQ3NWQzZjhiZDAwYiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJ
bnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
cGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbC5jcHAKQEAgLTc1LDkgKzc1LDkgQEAgdm9pZCBX
ZWJTcGVlY2hJbnB1dENvbnRyb2xsZXJNb2NrSW1wbDo6c2V0UmVjb2duaXRpb25SZXN1bHQoaW50
IHJlcXVlc3RJZCwgY29uc3QKICAgICBtX2xpc3RlbmVyLT5zZXRSZWNvZ25pdGlvblJlc3VsdChy
ZXF1ZXN0SWQsIHJlc3VsdCk7CiB9CiAKLWJvb2wgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9j
a0ltcGw6OnN0YXJ0UmVjb2duaXRpb24oaW50IHJlcXVlc3RJZCwgY29uc3QgV2ViUmVjdCYgZWxl
bWVudFJlY3QpCitib29sIFdlYlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsOjpzdGFydFJl
Y29nbml0aW9uKGludCByZXF1ZXN0SWQsIGNvbnN0IFdlYlJlY3QmIGVsZW1lbnRSZWN0LCBjb25z
dCBXZWJTdHJpbmcmIGdyYW1tYXIpCiB7Ci0gICAgcmV0dXJuIG1fd2ViY29yZU1vY2stPnN0YXJ0
UmVjb2duaXRpb24ocmVxdWVzdElkLCBlbGVtZW50UmVjdCk7CisgICAgcmV0dXJuIG1fd2ViY29y
ZU1vY2stPnN0YXJ0UmVjb2duaXRpb24ocmVxdWVzdElkLCBlbGVtZW50UmVjdCwgZ3JhbW1hcik7
CiB9CiAKIHZvaWQgV2ViU3BlZWNoSW5wdXRDb250cm9sbGVyTW9ja0ltcGw6OmNhbmNlbFJlY29n
bml0aW9uKGludCByZXF1ZXN0SWQpCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNwZWVjaElucHV0Q29udHJvbGxlck1vY2tJbXBsLmgKaW5kZXggNWQxMGY4OWIxYzMzZDViNGJm
YmNhNGI0OWY2NDA1NzIxYWRjNzIzNS4uMTQ2NzkzYWM2NDc5ZWY2MGUxMDY3NmNhMzlkZWNhNDk5
ZmNhNzBmNiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTcGVlY2hJbnB1dENv
bnRyb2xsZXJNb2NrSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU3BlZWNoSW5w
dXRDb250cm9sbGVyTW9ja0ltcGwuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRSZWNvZ25pdGlvblJlc3VsdChpbnQgcmVxdWVzdElkLCBjb25zdCBXZWJDb3JlOjpTcGVl
Y2hJbnB1dFJlc3VsdEFycmF5JiByZXN1bHQpOwogCiAgICAgLy8gV2ViU3BlZWNoSW5wdXRDb250
cm9sbGVyIG1ldGhvZHMuCi0gICAgYm9vbCBzdGFydFJlY29nbml0aW9uKGludCByZXF1ZXN0SWQs
IGNvbnN0IFdlYlJlY3QmIGVsZW1lbnRSZWN0KTsKKyAgICBib29sIHN0YXJ0UmVjb2duaXRpb24o
aW50IHJlcXVlc3RJZCwgY29uc3QgV2ViUmVjdCYgZWxlbWVudFJlY3QsIGNvbnN0IFdlYlN0cmlu
ZyYgZ3JhbW1hcik7CiAgICAgdm9pZCBjYW5jZWxSZWNvZ25pdGlvbihpbnQgcmVxdWVzdElkKTsK
ICAgICB2b2lkIHN0b3BSZWNvcmRpbmcoaW50IHJlcXVlc3RJZCk7CiAK
</data>
<flag name="review"
          id="62052"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>