<?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>138739</bug_id>
          
          <creation_ts>2014-11-14 04:38:54 -0800</creation_ts>
          <short_desc>start/stop method for AudioBufferSourceNodes and OscillatorNodes can take no args</short_desc>
          <delta_ts>2014-11-18 23:49:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>crogers</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1048729</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-14 04:38:54 -0800</bug_when>
    <thetext>Port Blink patch: https://codereview.chromium.org/26913005</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048730</commentid>
    <comment_count>1</comment_count>
      <attachid>241579</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-14 04:43:23 -0800</bug_when>
    <thetext>Created attachment 241579
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048754</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-14 08:09:02 -0800</bug_when>
    <thetext>Eric, Jer, can you please review this patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1048767</commentid>
    <comment_count>3</comment_count>
      <attachid>241579</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2014-11-14 09:03:07 -0800</bug_when>
    <thetext>Comment on attachment 241579
patch

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

The Blink patch includes changes to a test as well. I see we don&apos;t have dom-exceptions.html at all, but could you create it with just the start() tests?

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:375
&gt; +    startPlaying(false, 0, 0, buffer()-&gt;duration(), ec);

Looking a startPlaying call site I have no idea what the first parameter means. I think an enum would be much better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049169</commentid>
    <comment_count>4</comment_count>
      <attachid>241703</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-17 05:31:18 -0800</bug_when>
    <thetext>Created attachment 241703
patch

Eric, I&apos;m asking another review because I&apos;m not sure I&apos;ve chosen the
best name for the added enum. Please let me know what you think or if
you have better suggestions :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049170</commentid>
    <comment_count>5</comment_count>
      <attachid>241704</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-17 05:34:04 -0800</bug_when>
    <thetext>Created attachment 241704
patch

Cleaned up the test a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049498</commentid>
    <comment_count>6</comment_count>
      <attachid>241704</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-11-18 09:16:38 -0800</bug_when>
    <thetext>Comment on attachment 241704
patch

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

Not sure this code has enough test coverage.

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:375
&gt; +    startPlaying(BufferPlaybackMode::Entire, 0, 0, buffer() ? buffer()-&gt;duration() : 0, ec);

The syntax here doesn’t seem quite right. Since BufferPlaybackMode is just an enum, not an enum class, we don’t need the enum name qualifier. Maybe it was intended to be an enum class?

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:428
&gt; +        grainOffset = std::max(0.0, grainOffset);

This std::max is not needed since we check above for grainOffset &lt; 0.

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:430
&gt; +        m_grainOffset = grainOffset;

This should just be written in a single line:

    m_grainOffset = std::min(bufferDuration, grainOffset);

It’s also slightly clearer not to modify the passed in arguments.

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:433
&gt; +        grainDuration = std::max(0.0, grainDuration);

This std::max is not needed since we check above for grainDuration &lt; 0.

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:435
&gt; +        m_grainDuration = grainDuration;

This should just be written in a single line:

    m_grainDuration = std::min(bufferDuration - m_grainOffset, grainDuration);

It’s also slightly clearer not to modify the passed in arguments.

&gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:457
&gt; +    // Handle unspecified duration where 0 means the rest of the buffer.
&gt; +    if (!grainDuration)
&gt; +        grainDuration = buffer()-&gt;duration();

I don’t understand the mention of “unspecified” here and “0”. Where is the code that turns unspecified into 0? Or is 0 a magic value?

&gt; Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp:184
&gt;      when = std::max&lt;double&gt;(0, when);

This std::max is not needed now that we check &quot;when &lt; 0&quot; above, and should be removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049501</commentid>
    <comment_count>7</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-18 09:40:12 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 241704 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=241704&amp;action=review
&gt; 
&gt; Not sure this code has enough test coverage.
&gt; 

I think we need a major update of our WebAudio implementation in general. We&apos;ve fallen quite behind the spec :(

&gt; &gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:375
&gt; &gt; +    startPlaying(BufferPlaybackMode::Entire, 0, 0, buffer() ? buffer()-&gt;duration() : 0, ec);
&gt; 
&gt; The syntax here doesn’t seem quite right. Since BufferPlaybackMode is just
&gt; an enum, not an enum class, we don’t need the enum name qualifier. Maybe it
&gt; was intended to be an enum class?
&gt; 

I somehow got the habit of using enums in C++ as enum classes but yeah I can drop the enum qualifier.

&gt; &gt; Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp:457
&gt; &gt; +    // Handle unspecified duration where 0 means the rest of the buffer.
&gt; &gt; +    if (!grainDuration)
&gt; &gt; +        grainDuration = buffer()-&gt;duration();
&gt; 
&gt; I don’t understand the mention of “unspecified” here and “0”. Where is the
&gt; code that turns unspecified into 0? Or is 0 a magic value?
&gt; 

A 0-duration means the whole buffer should be played, if I understand the spec correctly.

Thanks for the review Darin, I&apos;ll upload the patch-for-landing so EWS can check it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049517</commentid>
    <comment_count>8</comment_count>
      <attachid>241793</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-18 10:09:45 -0800</bug_when>
    <thetext>Created attachment 241793
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049738</commentid>
    <comment_count>9</comment_count>
      <attachid>241793</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-18 23:49:24 -0800</bug_when>
    <thetext>Comment on attachment 241793
patch for landing

Clearing flags on attachment: 241793

Committed r176311: &lt;http://trac.webkit.org/changeset/176311&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1049739</commentid>
    <comment_count>10</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-18 23:49:32 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241579</attachid>
            <date>2014-11-14 04:43:23 -0800</date>
            <delta_ts>2014-11-17 05:31:18 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>10399</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAzNTM5ZDJjYTUwZjk5OThjOGFiMjBlYmFjNWY3Y2Q1OThiYzk1N2IyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDEzOjQzOjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAyNCArKysrKysrKysrCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNv
dXJjZU5vZGUuY3BwICAgICB8IDU2ICsrKysrKysrKysrKysrLS0tLS0tLS0KIC4uLi9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oICAgICAgIHwgIDggKysrLQogLi4uL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCAgICAgfCAgNiArLS0KIC4u
Li9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgIHwgMTAgKysr
KwogLi4uL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggICAgfCAg
MiArCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbCB8
ICA0ICstCiA3IGZpbGVzIGNoYW5nZWQsIDgzIGluc2VydGlvbnMoKyksIDI3IGRlbGV0aW9ucygt
KQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCA3ZDM4ODM3Li4zNThhNzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjcgQEAKKzIwMTQtMTEtMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgorCisgICAgICAgIHN0YXJ0L3N0b3AgbWV0aG9kIGZvciBBdWRpb0J1ZmZlclNvdXJjZU5vZGVz
IGFuZCBPc2NpbGxhdG9yTm9kZXMgY2FuIHRha2Ugbm8gYXJncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzM5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGlzIGluc3BpcmVkIGJ5IHRo
ZSBmb2xsb3dpbmcgQmxpbmsgcmV2aXNpb24gYnkKKyAgICAgICAgPHJ0b3lAZ29vZ2xlLmNvbT46
CisgICAgICAgIDxodHRwczovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2
JnJldmlzaW9uPTE2MDg0NT4KKworICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9k
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFy
dFBsYXlpbmcpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpub3Rl
R3JhaW5Pbik6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0
R3JhaW4pOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3Vy
Y2VOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6
c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9w
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsOgorCiAyMDE0
LTExLTEzICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAg
ICAgW0VGTF0gVW5leHBlY3RlZCBjcmFzaGVzIGluIGxheW91dCB0ZXN0IGFmdGVyIHIxNzU5NTMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmNwcAppbmRleCA2MjAwZmM5Li40MTEzNDVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
Y3BwCkBAIC0zNzAsMTMgKzM3MCwyNyBAQCB1bnNpZ25lZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6
Om51bWJlck9mQ2hhbm5lbHMoKQogICAgIHJldHVybiBvdXRwdXQoMCktPm51bWJlck9mQ2hhbm5l
bHMoKTsKIH0KIAotdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0R3JhaW4oZG91Ymxl
IHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEF1ZGlv
QnVmZmVyU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gRHVy
YXRpb24gb2YgMCBoYXMgc3BlY2lhbCB2YWx1ZSwgbWVhbmluZyBjYWxjdWxhdGUgYmFzZWQgb24g
dGhlIGVudGlyZSBidWZmZXIncyBkdXJhdGlvbi4KLSAgICBzdGFydEdyYWluKHdoZW4sIGdyYWlu
T2Zmc2V0LCAwLCBlYyk7CisgICAgc3RhcnRQbGF5aW5nKGZhbHNlLCAwLCAwLCBidWZmZXIoKS0+
ZHVyYXRpb24oKSwgZWMpOwogfQogCi12b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRH
cmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlv
biwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQo
ZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHN0YXJ0UGxheWluZyhmYWxz
ZSwgd2hlbiwgMCwgYnVmZmVyKCktPmR1cmF0aW9uKCksIGVjKTsKK30KKwordm9pZCBBdWRpb0J1
ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHN0YXJ0UGxheWluZyh0cnVlLCB3aGVuLCBncmFpbk9m
ZnNldCwgMCwgZWMpOworfQorCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoZG91
YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2Vw
dGlvbkNvZGUmIGVjKQoreworICAgIHN0YXJ0UGxheWluZyh0cnVlLCB3aGVuLCBncmFpbk9mZnNl
dCwgZ3JhaW5EdXJhdGlvbiwgZWMpOworfQorCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6
c3RhcnRQbGF5aW5nKGJvb2wgaXNHcmFpbiwgZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNl
dCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTM5MCwyNCArNDA0LDI1IEBAIHZvaWQgQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjpzdGFydEdyYWluKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQs
IGRvdWJsZSBnCiAKICAgICBpZiAoIWJ1ZmZlcigpKQogICAgICAgICByZXR1cm47Ci0gICAgICAg
IAotICAgIC8vIERvIHNhbml0eSBjaGVja2luZyBvZiBncmFpbiBwYXJhbWV0ZXJzIHZlcnN1cyBi
dWZmZXIgc2l6ZS4KLSAgICBkb3VibGUgYnVmZmVyRHVyYXRpb24gPSBidWZmZXIoKS0+ZHVyYXRp
b24oKTsKIAotICAgIGdyYWluT2Zmc2V0ID0gc3RkOjptYXgoMC4wLCBncmFpbk9mZnNldCk7Ci0g
ICAgZ3JhaW5PZmZzZXQgPSBzdGQ6Om1pbihidWZmZXJEdXJhdGlvbiwgZ3JhaW5PZmZzZXQpOwot
ICAgIG1fZ3JhaW5PZmZzZXQgPSBncmFpbk9mZnNldDsKKyAgICBpZiAoaXNHcmFpbikgeworICAg
ICAgICAvLyBEbyBzYW5pdHkgY2hlY2tpbmcgb2YgZ3JhaW4gcGFyYW1ldGVycyB2ZXJzdXMgYnVm
ZmVyIHNpemUuCisgICAgICAgIGRvdWJsZSBidWZmZXJEdXJhdGlvbiA9IGJ1ZmZlcigpLT5kdXJh
dGlvbigpOwogCi0gICAgLy8gSGFuZGxlIGRlZmF1bHQvdW5zcGVjaWZpZWQgZHVyYXRpb24uCi0g
ICAgZG91YmxlIG1heER1cmF0aW9uID0gYnVmZmVyRHVyYXRpb24gLSBncmFpbk9mZnNldDsKLSAg
ICBpZiAoIWdyYWluRHVyYXRpb24pCi0gICAgICAgIGdyYWluRHVyYXRpb24gPSBtYXhEdXJhdGlv
bjsKKyAgICAgICAgZ3JhaW5PZmZzZXQgPSBzdGQ6Om1heCgwLjAsIGdyYWluT2Zmc2V0KTsKKyAg
ICAgICAgZ3JhaW5PZmZzZXQgPSBzdGQ6Om1pbihidWZmZXJEdXJhdGlvbiwgZ3JhaW5PZmZzZXQp
OworICAgICAgICBtX2dyYWluT2Zmc2V0ID0gZ3JhaW5PZmZzZXQ7CiAKLSAgICBncmFpbkR1cmF0
aW9uID0gc3RkOjptYXgoMC4wLCBncmFpbkR1cmF0aW9uKTsKLSAgICBncmFpbkR1cmF0aW9uID0g
c3RkOjptaW4obWF4RHVyYXRpb24sIGdyYWluRHVyYXRpb24pOwotICAgIG1fZ3JhaW5EdXJhdGlv
biA9IGdyYWluRHVyYXRpb247CisgICAgICAgIGRvdWJsZSBtYXhEdXJhdGlvbiA9IGJ1ZmZlckR1
cmF0aW9uIC0gZ3JhaW5PZmZzZXQ7CisgICAgICAgIGdyYWluRHVyYXRpb24gPSBzdGQ6Om1heCgw
LjAsIGdyYWluRHVyYXRpb24pOworICAgICAgICBncmFpbkR1cmF0aW9uID0gc3RkOjptaW4obWF4
RHVyYXRpb24sIGdyYWluRHVyYXRpb24pOworICAgICAgICBtX2dyYWluRHVyYXRpb24gPSBncmFp
bkR1cmF0aW9uOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fZ3JhaW5PZmZzZXQgPSAwLjA7Cisg
ICAgICAgIG1fZ3JhaW5EdXJhdGlvbiA9IERlZmF1bHRHcmFpbkR1cmF0aW9uOworICAgIH0KIAot
ICAgIG1faXNHcmFpbiA9IHRydWU7CisgICAgbV9pc0dyYWluID0gaXNHcmFpbjsKICAgICBtX3N0
YXJ0VGltZSA9IHdoZW47CiAgICAgCiAgICAgLy8gV2UgY2FsbCB0aW1lVG9TYW1wbGVGcmFtZSBo
ZXJlIHNpbmNlIGF0IHBsYXliYWNrUmF0ZSA9PSAxIHdlIGRvbid0IHdhbnQgdG8gZ28gdGhyb3Vn
aCBsaW5lYXIgaW50ZXJwb2xhdGlvbgpAQCAtNDIyLDcgKzQzNywxMCBAQCB2b2lkIEF1ZGlvQnVm
ZmVyU291cmNlTm9kZTo6c3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0
LCBkb3VibGUgZwogI2lmIEVOQUJMRShMRUdBQ1lfV0VCX0FVRElPKQogdm9pZCBBdWRpb0J1ZmZl
clNvdXJjZU5vZGU6Om5vdGVHcmFpbk9uKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQs
IGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBzdGFydEdy
YWluKHdoZW4sIGdyYWluT2Zmc2V0LCBncmFpbkR1cmF0aW9uLCBlYyk7CisgICAgLy8gSGFuZGxl
IHVuc3BlY2lmaWVkIGR1cmF0aW9uIHdoZXJlIDAgbWVhbnMgdGhlIHJlc3Qgb2YgdGhlIGJ1ZmZl
ci4KKyAgICBpZiAoIWdyYWluRHVyYXRpb24pCisgICAgICAgIGdyYWluRHVyYXRpb24gPSBidWZm
ZXIoKS0+ZHVyYXRpb24oKTsKKyAgICBzdGFydFBsYXlpbmcodHJ1ZSwgd2hlbiwgZ3JhaW5PZmZz
ZXQsIGdyYWluRHVyYXRpb24sIGVjKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaAppbmRleCAx
NWZjNTZhLi5iZGMyNGQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKQEAgLTYzLDggKzYzLDEwIEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBudW1iZXJPZkNoYW5uZWxzKCk7CiAKICAgICAvLyBQbGF5LXN0YXRl
Ci0gICAgdm9pZCBzdGFydEdyYWluKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIEV4
Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHN0YXJ0R3JhaW4oZG91YmxlIHdoZW4sIGRvdWJsZSBn
cmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2
b2lkIHN0YXJ0KEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwgZG91YmxlIGdyYWlu
T2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwgZG91
YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYpOwog
CiAjaWYgRU5BQkxFKExFR0FDWV9XRUJfQVVESU8pCiAgICAgdm9pZCBub3RlR3JhaW5Pbihkb3Vi
bGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0
aW9uQ29kZSYpOwpAQCAtMTA1LDYgKzEwNyw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3Vi
bGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBk
b3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKKyAgICB2
b2lkIHN0YXJ0UGxheWluZyhib29sIGlzR3JhaW4sIGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5P
ZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7CisKICAgICAvLyBS
ZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KICAgICBib29sIHJlbmRlckZyb21CdWZmZXIoQXVkaW9C
dXMqLCB1bnNpZ25lZCBkZXN0aW5hdGlvbkZyYW1lT2Zmc2V0LCBzaXplX3QgbnVtYmVyT2ZGcmFt
ZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXggNWY5ODRiMi4uM2U0MmU5MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmlkbApAQCAtNDQsMTAgKzQ0LDggQEAKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZSBsb29wU3RhcnQ7CiAgICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9v
cEVuZDsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRv
dWJsZSB3aGVuKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zdGFydEdyYWluLCBSYWlzZXNFeGNlcHRp
b25dIHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuLCB1bnJlc3RyaWN0ZWQgZG91
YmxlIGdyYWluT2Zmc2V0KTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zdGFydEdyYWluLCBSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuLCB1bnJlc3RyaWN0
ZWQgZG91YmxlIGdyYWluT2Zmc2V0LCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVyYXRpb24p
OwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdo
ZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluT2Zmc2V0
LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVyYXRpb24pOworICAgIFtSYWlz
ZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4p
OwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU9dIGF0dHJpYnV0ZSBib29sZWFu
IGxvb3Bpbmc7IC8vIFRoaXMgaXMgYW4gYWxpYXMgZm9yIHRoZSAubG9vcCBhdHRyaWJ1dGUgZm9y
IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXgg
ZGQ5MjgxOS4uZTAyYzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtMTM3LDYgKzEz
NywxMSBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6dXBkYXRlU2NoZWR1bGluZ0lu
Zm8oc2l6ZV90IHF1YW50dW1GcmFtZVNpemUsCiAgICAgcmV0dXJuOwogfQogCit2b2lkIEF1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc3Rh
cnQoMCwgZWMpOworfQorCiB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoZG91
YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CkBAIC0xNTMsNiArMTU4LDExIEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpz
dGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgbV9wbGF5YmFja1N0YXRl
ID0gU0NIRURVTEVEX1NUQVRFOwogfQogCit2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6
c3RvcChFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzdG9wKDAsIGVjKTsKK30KKwogdm9pZCBB
dWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaApp
bmRleCBhMDVhNTQyLi4yNTcwOWFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKQEAgLTU4LDYgKzU4
LDggQEAgcHVibGljOgogICAgIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZShBdWRpb0NvbnRleHQq
LCBmbG9hdCBzYW1wbGVSYXRlKTsKIAogICAgIC8vIFNjaGVkdWxpbmcuCisgICAgdm9pZCBzdGFy
dChFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzdG9wKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzdG9wKGRv
dWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwKaW5kZXggZjFmM2UwYy4uODc4YmM4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9k
ZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9k
ZS5pZGwKQEAgLTQ4LDggKzQ4LDggQEAKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJh
bSBmcmVxdWVuY3k7IC8vIGluIEhlcnR6CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFy
YW0gZGV0dW5lOyAvLyBpbiBDZW50cwogCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFy
dCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQg
c3RvcCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZv
aWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKKyAgICBbUmFpc2Vz
RXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsK
IAogICAgIFtDb25kaXRpb25hbD1MRUdBQ1lfV0VCX0FVRElPLCBSYWlzZXNFeGNlcHRpb25dIHZv
aWQgbm90ZU9uKHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7CiAgICAgW0NvbmRpdGlvbmFsPUxF
R0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBub3RlT2ZmKHVucmVzdHJpY3Rl
ZCBkb3VibGUgd2hlbik7Ci0tIAoyLjEuMw==
</data>
<flag name="review"
          id="266441"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241703</attachid>
            <date>2014-11-17 05:31:18 -0800</date>
            <delta_ts>2014-11-17 05:34:04 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>20179</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyNjY5MjU2MTg0OTM5NTJhNmNmNzM1OTI4NzI0ZmFlOGJlNzI4YmMxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDEzOjQzOjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgMTAgKysKIExheW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dCAgIHwgIDU3ICsrKysrKysrKysrKwogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4
Y2VwdGlvbnMuaHRtbCAgICAgICAgICAgfCAxMDMgKysrKysrKysrKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNiArKysr
KysKIC4uLi9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAgICAgIHwg
IDcxICsrKysrKysrKystLS0tCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaCAgICAgICB8ICAxMyArKy0KIC4uLi9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5pZGwgICAgIHwgICA2ICstCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGUuY3BwICB8ICAyMiArKysrLQogLi4uL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggICAgfCAgIDIgKwogU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwgfCAgIDQgKy0KIDEwIGZpbGVzIGNoYW5n
ZWQsIDI4NiBpbnNlcnRpb25zKCspLCAyOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQKIGNyZWF0
ZSBtb2RlIDEwMDY0NCBMYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy5odG1sCgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDM2ZDQ0NTcuLjY3YWNiOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0xMS0x
NyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgc3Rh
cnQvc3RvcCBtZXRob2QgZm9yIEF1ZGlvQnVmZmVyU291cmNlTm9kZXMgYW5kIE9zY2lsbGF0b3JO
b2RlcyBjYW4gdGFrZSBubyBhcmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzg3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHdlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMuaHRtbDogQWRkZWQuCisKIDIw
MTQtMTEtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQgR1RLKyBnYXJkZW5pbmcuIFNraXAgbW9yZSB0ZXN0cyBmYWlsaW5n
IGFmdGVyIHIxNzU3NzYuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhj
ZXB0aW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9u
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZTM3MjUz
YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25z
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDU3IEBACitUZXN0cyBET00gZXhjZXB0aW9uIG1lc3Nh
Z2VzCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2Fn
ZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBzb3VyY2UgPSBjb250ZXh0
LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3Vy
Y2UuYnVmZmVyID0gYnVmZmVyIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2Uu
c3RhcnQoLTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBF
eGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFydChJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNl
LnN0YXJ0KC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0YXJ0KE5hTikgdGhyZXcgZXhjZXB0
aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291
cmNlLnN0YXJ0KDEsIEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0
ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoMSwgLUluZmluaXR5
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9u
IDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoMSwgTmFOKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElu
dmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoMSwg
LTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIHNvdXJjZS5zdGFydCgxLCAxLCBJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNl
LnN0YXJ0KDEsIDEsIC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3Rh
dGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0YXJ0KDEsIDEsIE5hTikg
dGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAx
MS4KK1BBU1Mgc291cmNlLnN0YXJ0KDEsIDEsIC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElu
dmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc291cmNlLnN0b3AoLTEpIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNv
dXJjZS5zdG9wKEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVy
cm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RvcCgtSW5maW5pdHkpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQ
QVNTIHNvdXJjZS5zdG9wKE5hTikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVF
cnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0b3AoKSBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4KK1BBU1Mgc291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKSBk
aWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc291cmNlLnN0YXJ0KCkgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkg
ZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5idWZmZXIgPSBidWZmZXIgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5zdG9wKCkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNl
ID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4K
K1BBU1Mgc291cmNlLmJ1ZmZlciA9IGJ1ZmZlciBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BB
U1Mgc291cmNlLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5z
dGFydCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNl
cHRpb24gMTEuCitQQVNTIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5idWZmZXIgPSBidWZmZXIgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyBzb3VyY2Uuc3RvcCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKSBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1Mgc291cmNlLnN0YXJ0KC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFs
aWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoSW5maW5p
dHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIHNvdXJjZS5zdGFydCgtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFy
dChOYU4pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNl
cHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBzb3VyY2Uuc3RvcCgtMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVF
cnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0b3AoSW5maW5pdHkpIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQ
QVNTIHNvdXJjZS5zdG9wKC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlk
U3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0b3AoTmFOKSB0aHJl
dyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgor
UEFTUyBzb3VyY2Uuc3RvcCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvc2MgPSBj
b250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
b3NjLnN0b3AoKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00g
RXhjZXB0aW9uIDExLgorUEFTUyBvc2MxID0gY29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG9zYzEuc3RhcnQoKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1Mgb3NjMS5zdG9wKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMuaHRtbCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzFiOWZlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L2RvbS1leGNlcHRpb25zLmh0bWwKQEAgLTAsMCArMSwxMDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBV
QkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorPHNj
cmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvYmlxdWFkLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9k
eT4KKworPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9k
aXY+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIERPTSBleGNlcHRpb24gbWVzc2FnZXMi
KTsKKwordmFyIGNvbnRleHQ7Cit2YXIgb3RoZXJDb250ZXh0OwordmFyIG5vZGU7Cit2YXIgbm9k
ZTI7Cit2YXIgbW9kZTsKK3ZhciBwYW5uZXI7Cit2YXIgc2NyaXB0OworCitmdW5jdGlvbiBydW5U
ZXN0KCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB9CisgICAgCisgICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRp
b0NvbnRleHQoKTsKKworICAgIC8vIFN0YXJ0L3N0b3AgZm9yIEF1ZGlvQnVmZmVyU291cmNlTm9k
ZXMKKyAgICBidWZmZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigxLDEsIGNvbnRleHQuc2FtcGxl
UmF0ZSk7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVy
U291cmNlKCkiKTsKKyAgICBzaG91bGROb3RUaHJvdygic291cmNlLmJ1ZmZlciA9IGJ1ZmZlciIp
OworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RhcnQoLTEpIik7CisgICAgc2hvdWxkVGhyb3co
InNvdXJjZS5zdGFydChJbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0
KC1JbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KE5hTikiKTsKKyAg
ICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KDEsIEluZmluaXR5KSIpOworICAgIHNob3VsZFRo
cm93KCJzb3VyY2Uuc3RhcnQoMSwgLUluZmluaXR5KSIpOworICAgIHNob3VsZFRocm93KCJzb3Vy
Y2Uuc3RhcnQoMSwgTmFOKSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RhcnQoMSwgLTEp
Iik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdGFydCgxLCAxLCBJbmZpbml0eSkiKTsKKyAg
ICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KDEsIDEsIC1JbmZpbml0eSkiKTsKKyAgICBzaG91
bGRUaHJvdygic291cmNlLnN0YXJ0KDEsIDEsIE5hTikiKTsKKyAgICBzaG91bGRUaHJvdygic291
cmNlLnN0YXJ0KDEsIDEsIC0xKSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2Uuc3RhcnQo
KSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RvcCgtMSkiKTsKKyAgICBzaG91bGRUaHJv
dygic291cmNlLnN0b3AoSW5maW5pdHkpIik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdG9w
KC1JbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0b3AoTmFOKSIpOworICAg
IHNob3VsZE5vdFRocm93KCJzb3VyY2Uuc3RvcCgpIik7CisKKyAgICAvLyBJdCdzIG5vdCBjbGVh
ciBmcm9tIHRoZSBzcGVjLCBidXQgSSB0aGluayBpdCdzIHZhbGlkIHRvIGNhbGwgc3RhcnQoKS4g
VGhlIHNwZWMgaXMgc2lsZW50IG9uCisgICAgLy8gd2hhdCBoYXBwZW5zIGlmIHdlIGNhbGwgc3Rv
cCgpIGFmdGVyd2FyZHMsIHNvIGRvbid0IGNhbGwgaXQuCisgICAgc2hvdWxkTm90VGhyb3coInNv
dXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkiKTsKKyAgICBzaG91bGROb3RUaHJv
dygic291cmNlLnN0YXJ0KCkiKTsKKworICAgIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVy
KDEsMSwgY29udGV4dC5zYW1wbGVSYXRlKTsKKyAgICBzaG91bGROb3RUaHJvdygic291cmNlID0g
Y29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3Vy
Y2UuYnVmZmVyID0gYnVmZmVyIik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdG9wKCkiKTsK
KworICAgIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKDEsMSwgY29udGV4dC5zYW1wbGVS
YXRlKTsKKyAgICBzaG91bGROb3RUaHJvdygic291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJT
b3VyY2UoKSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2UuYnVmZmVyID0gYnVmZmVyIik7
CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZS5zdGFydCgpIik7CisgICAgc2hvdWxkVGhyb3co
InNvdXJjZS5zdGFydCgpIik7CisKKyAgICBidWZmZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigx
LDEsIGNvbnRleHQuc2FtcGxlUmF0ZSk7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZSA9IGNv
bnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkiKTsKKyAgICBzaG91bGROb3RUaHJvdygic291cmNl
LmJ1ZmZlciA9IGJ1ZmZlciIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2Uuc3RhcnQoKSIp
OworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2Uuc3RvcCgpIik7CisKKyAgICAvLyBTdGFydC9z
dG9wIGZvciBPc2NpbGxhdG9yTm9kZXMKKyAgICBzaG91bGROb3RUaHJvdygic291cmNlID0gY29u
dGV4dC5jcmVhdGVPc2NpbGxhdG9yKCkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0
KC0xKSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RhcnQoSW5maW5pdHkpIik7CisgICAg
c2hvdWxkVGhyb3coInNvdXJjZS5zdGFydCgtSW5maW5pdHkpIik7CisgICAgc2hvdWxkVGhyb3co
InNvdXJjZS5zdGFydChOYU4pIik7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZS5zdGFydCgp
Iik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdG9wKC0xKSIpOworICAgIHNob3VsZFRocm93
KCJzb3VyY2Uuc3RvcChJbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0b3Ao
LUluZmluaXR5KSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RvcChOYU4pIik7CisgICAg
c2hvdWxkTm90VGhyb3coInNvdXJjZS5zdG9wKCkiKTsKKworICAgIHNob3VsZE5vdFRocm93KCJv
c2MgPSBjb250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKSIpOworICAgIHNob3VsZFRocm93KCJvc2Mu
c3RvcCgpIik7CisgICAgc2hvdWxkTm90VGhyb3coIm9zYzEgPSBjb250ZXh0LmNyZWF0ZU9zY2ls
bGF0b3IoKSIpOworICAgIHNob3VsZE5vdFRocm93KCJvc2MxLnN0YXJ0KCkiKTsKKyAgICBzaG91
bGROb3RUaHJvdygib3NjMS5zdG9wKCkiKTsKKworfQorCitydW5UZXN0KCk7CitzdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4gICAgCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYjU4M2Y0My4uZDc2ZWYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisy
MDE0LTExLTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KKworICAg
ICAgICBzdGFydC9zdG9wIG1ldGhvZCBmb3IgQXVkaW9CdWZmZXJTb3VyY2VOb2RlcyBhbmQgT3Nj
aWxsYXRvck5vZGVzIGNhbiB0YWtlIG5vIGFyZ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODczOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwYXRjaCBpcyBpbnNwaXJlZCBieSB0aGUgZm9sbG93
aW5nIEJsaW5rIHJldmlzaW9uIGJ5CisgICAgICAgIDxydG95QGdvb2dsZS5jb20+OgorICAgICAg
ICA8aHR0cHM6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9ibGluaz92aWV3PXJldiZyZXZpc2lv
bj0xNjA4NDU+CisKKyAgICAgICAgVGVzdDogd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMuaHRtbAor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0UGxheWluZyk6CisgICAgICAg
IChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6Om5vdGVHcmFpbk9uKToKKyAgICAgICAg
KFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRHcmFpbik6IERlbGV0ZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGw6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3ApOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGw6CisKIDIwMTQtMTEtMTYgIFphbiBEb2JlcnNl
ayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFJlcGxhY2UgUmVuZGVyU1ZHUmVz
b3VyY2U6OmNhc3Q8VD4oKSB3aXRoIGRvd25jYXN0PFQ+KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRl
eCA2MjAwZmM5Li5hOTI4MTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC0zNzAsMTMgKzM3MCwy
NyBAQCB1bnNpZ25lZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6Om51bWJlck9mQ2hhbm5lbHMoKQog
ICAgIHJldHVybiBvdXRwdXQoMCktPm51bWJlck9mQ2hhbm5lbHMoKTsKIH0KIAotdm9pZCBBdWRp
b0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0R3JhaW4oZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9m
ZnNldCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3Rh
cnQoRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgLy8gRHVyYXRpb24gb2YgMCBoYXMgc3BlY2lh
bCB2YWx1ZSwgbWVhbmluZyBjYWxjdWxhdGUgYmFzZWQgb24gdGhlIGVudGlyZSBidWZmZXIncyBk
dXJhdGlvbi4KLSAgICBzdGFydEdyYWluKHdoZW4sIGdyYWluT2Zmc2V0LCAwLCBlYyk7CisgICAg
c3RhcnRQbGF5aW5nKEJ1ZmZlclBsYXliYWNrTW9kZTo6RW50aXJlLCAwLCAwLCBidWZmZXIoKSA/
IGJ1ZmZlcigpLT5kdXJhdGlvbigpIDogMCwgZWMpOwogfQogCi12b2lkIEF1ZGlvQnVmZmVyU291
cmNlTm9kZTo6c3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3Vi
bGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEF1ZGlvQnVmZmVyU291
cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHN0
YXJ0UGxheWluZyhCdWZmZXJQbGF5YmFja01vZGU6OkVudGlyZSwgd2hlbiwgMCwgYnVmZmVyKCkg
PyBidWZmZXIoKS0+ZHVyYXRpb24oKSA6IDAsIGVjKTsKK30KKwordm9pZCBBdWRpb0J1ZmZlclNv
dXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIEV4Y2VwdGlv
bkNvZGUmIGVjKQoreworICAgIHN0YXJ0UGxheWluZyhCdWZmZXJQbGF5YmFja01vZGU6OlBhcnRp
YWwsIHdoZW4sIGdyYWluT2Zmc2V0LCAwLCBlYyk7Cit9CisKK3ZvaWQgQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3Jh
aW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc3RhcnRQbGF5aW5nKEJ1ZmZl
clBsYXliYWNrTW9kZTo6UGFydGlhbCwgd2hlbiwgZ3JhaW5PZmZzZXQsIGdyYWluRHVyYXRpb24s
IGVjKTsKK30KKwordm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0UGxheWluZyhCdWZm
ZXJQbGF5YmFja01vZGUgcGxheWJhY2tNb2RlLCBkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zm
c2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMzg4LDI2ICs0MDIsNDIgQEAgdm9pZCBBdWRpb0J1
ZmZlclNvdXJjZU5vZGU6OnN0YXJ0R3JhaW4oZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNl
dCwgZG91YmxlIGcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGlmICghc3RkOjppc2Zp
bml0ZSh3aGVuKSB8fCAod2hlbiA8IDApKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXN0ZDo6aXNmaW5pdGUoZ3Jh
aW5PZmZzZXQpIHx8IChncmFpbk9mZnNldCA8IDApKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9T
VEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIXN0ZDo6aXNmaW5p
dGUoZ3JhaW5EdXJhdGlvbikgfHwgKGdyYWluRHVyYXRpb24gPCAwKSkgeworICAgICAgICBlYyA9
IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgaWYgKCFi
dWZmZXIoKSkKICAgICAgICAgcmV0dXJuOwotICAgICAgICAKLSAgICAvLyBEbyBzYW5pdHkgY2hl
Y2tpbmcgb2YgZ3JhaW4gcGFyYW1ldGVycyB2ZXJzdXMgYnVmZmVyIHNpemUuCi0gICAgZG91Ymxl
IGJ1ZmZlckR1cmF0aW9uID0gYnVmZmVyKCktPmR1cmF0aW9uKCk7CiAKLSAgICBncmFpbk9mZnNl
dCA9IHN0ZDo6bWF4KDAuMCwgZ3JhaW5PZmZzZXQpOwotICAgIGdyYWluT2Zmc2V0ID0gc3RkOjpt
aW4oYnVmZmVyRHVyYXRpb24sIGdyYWluT2Zmc2V0KTsKLSAgICBtX2dyYWluT2Zmc2V0ID0gZ3Jh
aW5PZmZzZXQ7CisgICAgbV9pc0dyYWluID0gcGxheWJhY2tNb2RlID09IEJ1ZmZlclBsYXliYWNr
TW9kZTo6UGFydGlhbDsKKyAgICBpZiAobV9pc0dyYWluKSB7CisgICAgICAgIC8vIERvIHNhbml0
eSBjaGVja2luZyBvZiBncmFpbiBwYXJhbWV0ZXJzIHZlcnN1cyBidWZmZXIgc2l6ZS4KKyAgICAg
ICAgZG91YmxlIGJ1ZmZlckR1cmF0aW9uID0gYnVmZmVyKCktPmR1cmF0aW9uKCk7CiAKLSAgICAv
LyBIYW5kbGUgZGVmYXVsdC91bnNwZWNpZmllZCBkdXJhdGlvbi4KLSAgICBkb3VibGUgbWF4RHVy
YXRpb24gPSBidWZmZXJEdXJhdGlvbiAtIGdyYWluT2Zmc2V0OwotICAgIGlmICghZ3JhaW5EdXJh
dGlvbikKLSAgICAgICAgZ3JhaW5EdXJhdGlvbiA9IG1heER1cmF0aW9uOworICAgICAgICBncmFp
bk9mZnNldCA9IHN0ZDo6bWF4KDAuMCwgZ3JhaW5PZmZzZXQpOworICAgICAgICBncmFpbk9mZnNl
dCA9IHN0ZDo6bWluKGJ1ZmZlckR1cmF0aW9uLCBncmFpbk9mZnNldCk7CisgICAgICAgIG1fZ3Jh
aW5PZmZzZXQgPSBncmFpbk9mZnNldDsKIAotICAgIGdyYWluRHVyYXRpb24gPSBzdGQ6Om1heCgw
LjAsIGdyYWluRHVyYXRpb24pOwotICAgIGdyYWluRHVyYXRpb24gPSBzdGQ6Om1pbihtYXhEdXJh
dGlvbiwgZ3JhaW5EdXJhdGlvbik7Ci0gICAgbV9ncmFpbkR1cmF0aW9uID0gZ3JhaW5EdXJhdGlv
bjsKKyAgICAgICAgZG91YmxlIG1heER1cmF0aW9uID0gYnVmZmVyRHVyYXRpb24gLSBncmFpbk9m
ZnNldDsKKyAgICAgICAgZ3JhaW5EdXJhdGlvbiA9IHN0ZDo6bWF4KDAuMCwgZ3JhaW5EdXJhdGlv
bik7CisgICAgICAgIGdyYWluRHVyYXRpb24gPSBzdGQ6Om1pbihtYXhEdXJhdGlvbiwgZ3JhaW5E
dXJhdGlvbik7CisgICAgICAgIG1fZ3JhaW5EdXJhdGlvbiA9IGdyYWluRHVyYXRpb247CisgICAg
fSBlbHNlIHsKKyAgICAgICAgbV9ncmFpbk9mZnNldCA9IDAuMDsKKyAgICAgICAgbV9ncmFpbkR1
cmF0aW9uID0gRGVmYXVsdEdyYWluRHVyYXRpb247CisgICAgfQogCi0gICAgbV9pc0dyYWluID0g
dHJ1ZTsKICAgICBtX3N0YXJ0VGltZSA9IHdoZW47CiAgICAgCiAgICAgLy8gV2UgY2FsbCB0aW1l
VG9TYW1wbGVGcmFtZSBoZXJlIHNpbmNlIGF0IHBsYXliYWNrUmF0ZSA9PSAxIHdlIGRvbid0IHdh
bnQgdG8gZ28gdGhyb3VnaCBsaW5lYXIgaW50ZXJwb2xhdGlvbgpAQCAtNDIyLDcgKzQ1MiwxMCBA
QCB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91
YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZwogI2lmIEVOQUJMRShMRUdBQ1lfV0VCX0FVRElPKQog
dm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6Om5vdGVHcmFpbk9uKGRvdWJsZSB3aGVuLCBkb3Vi
bGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKLSAgICBzdGFydEdyYWluKHdoZW4sIGdyYWluT2Zmc2V0LCBncmFpbkR1cmF0aW9uLCBlYyk7
CisgICAgLy8gSGFuZGxlIHVuc3BlY2lmaWVkIGR1cmF0aW9uIHdoZXJlIDAgbWVhbnMgdGhlIHJl
c3Qgb2YgdGhlIGJ1ZmZlci4KKyAgICBpZiAoIWdyYWluRHVyYXRpb24pCisgICAgICAgIGdyYWlu
RHVyYXRpb24gPSBidWZmZXIoKS0+ZHVyYXRpb24oKTsKKyAgICBzdGFydFBsYXlpbmcoQnVmZmVy
UGxheWJhY2tNb2RlOjpQYXJ0aWFsLCB3aGVuLCBncmFpbk9mZnNldCwgZ3JhaW5EdXJhdGlvbiwg
ZWMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCmluZGV4IDE1ZmM1NmEuLmZjMGZhZDUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaApAQCAtNjMsOCArNjMsMTAgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMoKTsKIAogICAgIC8vIFBsYXktc3RhdGUKLSAgICB2b2lkIHN0YXJ0R3Jh
aW4oZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgRXhjZXB0aW9uQ29kZSYpOwotICAg
IHZvaWQgc3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUg
Z3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc3RhcnQoRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIEV4Y2VwdGlvbkNv
ZGUmKTsKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRv
dWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7CiAKICNpZiBFTkFCTEUoTEVHQUNZ
X1dFQl9BVURJTykKICAgICB2b2lkIG5vdGVHcmFpbk9uKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3Jh
aW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMDUs
NiArMTA3LDEzIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgdGFpbFRpbWUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBkb3VibGUgbGF0ZW5jeVRpbWUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKKyAgICBlbnVtIEJ1ZmZlclBsYXliYWNr
TW9kZSB7CisgICAgICAgIEVudGlyZSwKKyAgICAgICAgUGFydGlhbAorICAgIH07CisKKyAgICB2
b2lkIHN0YXJ0UGxheWluZyhCdWZmZXJQbGF5YmFja01vZGUsIGRvdWJsZSB3aGVuLCBkb3VibGUg
Z3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7CisKICAg
ICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KICAgICBib29sIHJlbmRlckZyb21CdWZmZXIo
QXVkaW9CdXMqLCB1bnNpZ25lZCBkZXN0aW5hdGlvbkZyYW1lT2Zmc2V0LCBzaXplX3QgbnVtYmVy
T2ZGcmFtZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXggNWY5ODRiMi4uM2U0MmU5MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlLmlkbApAQCAtNDQsMTAgKzQ0LDggQEAKICAgICBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSBsb29wU3RhcnQ7CiAgICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3Vi
bGUgbG9vcEVuZDsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuKTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zdGFydEdyYWluLCBSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuLCB1bnJlc3RyaWN0
ZWQgZG91YmxlIGdyYWluT2Zmc2V0KTsKLSAgICBbSW1wbGVtZW50ZWRBcz1zdGFydEdyYWluLCBS
YWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuLCB1bnJl
c3RyaWN0ZWQgZG91YmxlIGdyYWluT2Zmc2V0LCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVy
YXRpb24pOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcCh1bnJlc3RyaWN0ZWQgZG91
YmxlIHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5y
ZXN0cmljdGVkIGRvdWJsZSB3aGVuLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWlu
T2Zmc2V0LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluRHVyYXRpb24pOworICAg
IFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IHdoZW4pOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU9dIGF0dHJpYnV0ZSBi
b29sZWFuIGxvb3Bpbmc7IC8vIFRoaXMgaXMgYW4gYWxpYXMgZm9yIHRoZSAubG9vcCBhdHRyaWJ1
dGUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAK
aW5kZXggZGQ5MjgxOS4uYTA2YjFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcApAQCAtMTM3
LDYgKzEzNywxMSBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6dXBkYXRlU2NoZWR1
bGluZ0luZm8oc2l6ZV90IHF1YW50dW1GcmFtZVNpemUsCiAgICAgcmV0dXJuOwogfQogCit2b2lk
IEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgc3RhcnQoMCwgZWMpOworfQorCiB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3Rh
cnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CkBAIC0xNDksMTAgKzE1NCwyMCBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICByZXR1
cm47CiAgICAgfQogCisgICAgaWYgKCFzdGQ6OmlzZmluaXRlKHdoZW4pIHx8ICh3aGVuIDwgMCkp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIG1fc3RhcnRUaW1lID0gd2hlbjsKICAgICBtX3BsYXliYWNrU3RhdGUgPSBTQ0hF
RFVMRURfU1RBVEU7CiB9CiAKK3ZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKEV4
Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHN0b3AoMCwgZWMpOworfQorCiB2b2lkIEF1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZTo6c3RvcChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE2MCw3ICsxNzUsMTIgQEAgdm9pZCBB
dWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUm
IGVjKQogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOwogICAgICAgICByZXR1cm47CiAg
ICAgfQotICAgIAorCisgICAgaWYgKCFzdGQ6OmlzZmluaXRlKHdoZW4pIHx8ICh3aGVuIDwgMCkp
IHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKwogICAgIHdoZW4gPSBzdGQ6Om1heDxkb3VibGU+KDAsIHdoZW4pOwogICAgIG1fZW5kVGlt
ZSA9IHdoZW47CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaAppbmRleCBhMDVhNTQyLi4yNTcwOWFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9T
Y2hlZHVsZWRTb3VyY2VOb2RlLmgKQEAgLTU4LDYgKzU4LDggQEAgcHVibGljOgogICAgIEF1ZGlv
U2NoZWR1bGVkU291cmNlTm9kZShBdWRpb0NvbnRleHQqLCBmbG9hdCBzYW1wbGVSYXRlKTsKIAog
ICAgIC8vIFNjaGVkdWxpbmcuCisgICAgdm9pZCBzdGFydChFeGNlcHRpb25Db2RlJik7CisgICAg
dm9pZCBzdG9wKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBF
eGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzdG9wKGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2Rl
Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vT3NjaWxs
YXRvck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9y
Tm9kZS5pZGwKaW5kZXggZjFmM2UwYy4uODc4YmM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwKQEAgLTQ4LDggKzQ4LDggQEAK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBmcmVxdWVuY3k7IC8vIGluIEhlcnR6
CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gZGV0dW5lOyAvLyBpbiBDZW50cwog
Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdo
ZW4pOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcCh1bnJlc3RyaWN0ZWQgZG91Ymxl
IHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0
cmljdGVkIGRvdWJsZSB3aGVuKTsKKyAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0b3Aob3B0
aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKIAogICAgIFtDb25kaXRpb25hbD1MRUdB
Q1lfV0VCX0FVRElPLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgbm90ZU9uKHVucmVzdHJpY3RlZCBk
b3VibGUgd2hlbik7CiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4
Y2VwdGlvbl0gdm9pZCBub3RlT2ZmKHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7Ci0tIAoyLjEu
Mw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241704</attachid>
            <date>2014-11-17 05:34:04 -0800</date>
            <delta_ts>2014-11-18 10:09:45 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.patch</filename>
            <type>text/plain</type>
            <size>20070</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSAyZjc5OGJjYzNlMGE5ODA4NmE4ZWFkNjM1MGQwMWE3ZmFhZTQ3Y2M2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDE0IE5vdiAyMDE0IDEzOjQzOjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cGF0Y2gKCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAxMCArKysKIExheW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVj
dGVkLnR4dCAgIHwgNTcgKysrKysrKysrKysrKwogTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4
Y2VwdGlvbnMuaHRtbCAgICAgICAgICAgfCA5NSArKysrKysrKysrKysrKysrKysrKysrCiBTb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysr
KwogLi4uL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCAgICAgfCA3
MSArKysrKysrKysrKy0tLS0tCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaCAgICAgICB8IDEzICsrLQogLi4uL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJT
b3VyY2VOb2RlLmlkbCAgICAgfCAgNiArLQogLi4uL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlLmNwcCAgfCAyMiArKysrLQogLi4uL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbCB8ICA0ICstCiAxMCBmaWxlcyBjaGFuZ2VkLCAy
NzggaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5
b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9k
ZSAxMDA2NDQgTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMuaHRtbAoKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAzNmQ0NDU3Li42N2FjYjhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTQtMTEtMTcgIFBo
aWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgorCisgICAgICAgIHN0YXJ0L3N0
b3AgbWV0aG9kIGZvciBBdWRpb0J1ZmZlclNvdXJjZU5vZGVzIGFuZCBPc2NpbGxhdG9yTm9kZXMg
Y2FuIHRha2Ugbm8gYXJncworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM4NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYmF1ZGlvL2RvbS1leGNlcHRpb25zLmh0bWw6IEFkZGVkLgorCiAyMDE0LTEx
LTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkIEdUSysgZ2FyZGVuaW5nLiBTa2lwIG1vcmUgdGVzdHMgZmFpbGluZyBhZnRl
ciByMTc1Nzc2LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlv
bnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vZG9tLWV4Y2VwdGlvbnMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUzNzI1M2EKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20tZXhjZXB0aW9ucy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw1NyBAQAorVGVzdHMgRE9NIGV4Y2VwdGlvbiBtZXNzYWdlcwor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1Mgc291cmNlID0gY29udGV4dC5jcmVh
dGVCdWZmZXJTb3VyY2UoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc291cmNlLmJ1
ZmZlciA9IGJ1ZmZlciBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc291cmNlLnN0YXJ0
KC0xKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0
aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFy
dCgtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERP
TSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFydChOYU4pIHRocmV3IGV4Y2VwdGlvbiBF
cnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5z
dGFydCgxLCBJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJv
cjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0YXJ0KDEsIC1JbmZpbml0eSkgdGhy
ZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4K
K1BBU1Mgc291cmNlLnN0YXJ0KDEsIE5hTikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlk
U3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0YXJ0KDEsIC0xKSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDEx
LgorUEFTUyBzb3VyY2Uuc3RhcnQoMSwgMSwgSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFy
dCgxLCAxLCAtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJy
b3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdGFydCgxLCAxLCBOYU4pIHRocmV3
IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQ
QVNTIHNvdXJjZS5zdGFydCgxLCAxLCAtMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlk
U3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0YXJ0KCkgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5zdG9wKC0xKSB0aHJldyBleGNlcHRpb24g
RXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uu
c3RvcChJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0b3AoLUluZmluaXR5KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBz
b3VyY2Uuc3RvcChOYU4pIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdG9wKCkgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIHNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkgZGlkIG5v
dCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNvdXJjZS5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2UuYnVmZmVyID0gYnVmZmVyIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2Uuc3RvcCgpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSW52YWxpZFN0YXRlRXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZSA9IGNv
bnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IHNvdXJjZS5idWZmZXIgPSBidWZmZXIgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIHNv
dXJjZS5zdGFydCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2Uuc3RhcnQo
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9u
IDExLgorUEFTUyBzb3VyY2UgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlclNvdXJjZSgpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2UuYnVmZmVyID0gYnVmZmVyIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBzb3VyY2Uuc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1Mgc291cmNlLnN0b3AoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgc291
cmNlID0gY29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CitQQVNTIHNvdXJjZS5zdGFydCgtMSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3Rh
dGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mgc291cmNlLnN0YXJ0KEluZmluaXR5KSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDEx
LgorUEFTUyBzb3VyY2Uuc3RhcnQoLUluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IElu
dmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoTmFO
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9u
IDExLgorUEFTUyBzb3VyY2Uuc3RhcnQoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mg
c291cmNlLnN0b3AoLTEpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRlRXJyb3I6
IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdG9wKEluZmluaXR5KSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IEludmFsaWRTdGF0ZUVycm9yOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBz
b3VyY2Uuc3RvcCgtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSW52YWxpZFN0YXRl
RXJyb3I6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIHNvdXJjZS5zdG9wKE5hTikgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
c291cmNlLnN0b3AoKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1Mgb3NjID0gY29udGV4
dC5jcmVhdGVPc2NpbGxhdG9yKCkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG9zYy5z
dG9wKCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJbnZhbGlkU3RhdGVFcnJvcjogRE9NIEV4Y2Vw
dGlvbiAxMS4KK1BBU1Mgb3NjMSA9IGNvbnRleHQuY3JlYXRlT3NjaWxsYXRvcigpIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBvc2MxLnN0YXJ0KCkgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIG9zYzEuc3RvcCgpIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL2RvbS1leGNlcHRpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby9kb20tZXhjZXB0aW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjg2MjEyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9kb20t
ZXhjZXB0aW9ucy5odG1sCkBAIC0wLDAgKzEsOTUgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vVzNDLy9EVEQgSFRNTCA0LjAxIFRyYW5zaXRpb25hbC8vRU4iPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY29tcGF0aWJpbGl0eS5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvYmlxdWFkLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKwor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIERPTSBleGNlcHRpb24gbWVzc2FnZXMiKTsKKwor
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgY29udGV4dCA9IG5ldyB3
ZWJraXRBdWRpb0NvbnRleHQoKTsKKworICAgIC8vIFN0YXJ0L3N0b3AgZm9yIEF1ZGlvQnVmZmVy
U291cmNlTm9kZXMKKyAgICBidWZmZXIgPSBjb250ZXh0LmNyZWF0ZUJ1ZmZlcigxLDEsIGNvbnRl
eHQuc2FtcGxlUmF0ZSk7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZSA9IGNvbnRleHQuY3Jl
YXRlQnVmZmVyU291cmNlKCkiKTsKKyAgICBzaG91bGROb3RUaHJvdygic291cmNlLmJ1ZmZlciA9
IGJ1ZmZlciIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RhcnQoLTEpIik7CisgICAgc2hv
dWxkVGhyb3coInNvdXJjZS5zdGFydChJbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291
cmNlLnN0YXJ0KC1JbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KE5h
TikiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KDEsIEluZmluaXR5KSIpOworICAg
IHNob3VsZFRocm93KCJzb3VyY2Uuc3RhcnQoMSwgLUluZmluaXR5KSIpOworICAgIHNob3VsZFRo
cm93KCJzb3VyY2Uuc3RhcnQoMSwgTmFOKSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3Rh
cnQoMSwgLTEpIik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdGFydCgxLCAxLCBJbmZpbml0
eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KDEsIDEsIC1JbmZpbml0eSkiKTsK
KyAgICBzaG91bGRUaHJvdygic291cmNlLnN0YXJ0KDEsIDEsIE5hTikiKTsKKyAgICBzaG91bGRU
aHJvdygic291cmNlLnN0YXJ0KDEsIDEsIC0xKSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3Vy
Y2Uuc3RhcnQoKSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RvcCgtMSkiKTsKKyAgICBz
aG91bGRUaHJvdygic291cmNlLnN0b3AoSW5maW5pdHkpIik7CisgICAgc2hvdWxkVGhyb3coInNv
dXJjZS5zdG9wKC1JbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291cmNlLnN0b3AoTmFO
KSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2Uuc3RvcCgpIik7CisKKyAgICAvLyBJdCdz
IG5vdCBjbGVhciBmcm9tIHRoZSBzcGVjLCBidXQgSSB0aGluayBpdCdzIHZhbGlkIHRvIGNhbGwg
c3RhcnQoKS4gVGhlIHNwZWMgaXMgc2lsZW50IG9uCisgICAgLy8gd2hhdCBoYXBwZW5zIGlmIHdl
IGNhbGwgc3RvcCgpIGFmdGVyd2FyZHMsIHNvIGRvbid0IGNhbGwgaXQuCisgICAgc2hvdWxkTm90
VGhyb3coInNvdXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkiKTsKKyAgICBzaG91
bGROb3RUaHJvdygic291cmNlLnN0YXJ0KCkiKTsKKworICAgIGJ1ZmZlciA9IGNvbnRleHQuY3Jl
YXRlQnVmZmVyKDEsMSwgY29udGV4dC5zYW1wbGVSYXRlKTsKKyAgICBzaG91bGROb3RUaHJvdygi
c291cmNlID0gY29udGV4dC5jcmVhdGVCdWZmZXJTb3VyY2UoKSIpOworICAgIHNob3VsZE5vdFRo
cm93KCJzb3VyY2UuYnVmZmVyID0gYnVmZmVyIik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5z
dG9wKCkiKTsKKworICAgIGJ1ZmZlciA9IGNvbnRleHQuY3JlYXRlQnVmZmVyKDEsMSwgY29udGV4
dC5zYW1wbGVSYXRlKTsKKyAgICBzaG91bGROb3RUaHJvdygic291cmNlID0gY29udGV4dC5jcmVh
dGVCdWZmZXJTb3VyY2UoKSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2UuYnVmZmVyID0g
YnVmZmVyIik7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZS5zdGFydCgpIik7CisgICAgc2hv
dWxkVGhyb3coInNvdXJjZS5zdGFydCgpIik7CisKKyAgICBidWZmZXIgPSBjb250ZXh0LmNyZWF0
ZUJ1ZmZlcigxLDEsIGNvbnRleHQuc2FtcGxlUmF0ZSk7CisgICAgc2hvdWxkTm90VGhyb3coInNv
dXJjZSA9IGNvbnRleHQuY3JlYXRlQnVmZmVyU291cmNlKCkiKTsKKyAgICBzaG91bGROb3RUaHJv
dygic291cmNlLmJ1ZmZlciA9IGJ1ZmZlciIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2Uu
c3RhcnQoKSIpOworICAgIHNob3VsZE5vdFRocm93KCJzb3VyY2Uuc3RvcCgpIik7CisKKyAgICAv
LyBTdGFydC9zdG9wIGZvciBPc2NpbGxhdG9yTm9kZXMKKyAgICBzaG91bGROb3RUaHJvdygic291
cmNlID0gY29udGV4dC5jcmVhdGVPc2NpbGxhdG9yKCkiKTsKKyAgICBzaG91bGRUaHJvdygic291
cmNlLnN0YXJ0KC0xKSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RhcnQoSW5maW5pdHkp
Iik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdGFydCgtSW5maW5pdHkpIik7CisgICAgc2hv
dWxkVGhyb3coInNvdXJjZS5zdGFydChOYU4pIik7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJj
ZS5zdGFydCgpIik7CisgICAgc2hvdWxkVGhyb3coInNvdXJjZS5zdG9wKC0xKSIpOworICAgIHNo
b3VsZFRocm93KCJzb3VyY2Uuc3RvcChJbmZpbml0eSkiKTsKKyAgICBzaG91bGRUaHJvdygic291
cmNlLnN0b3AoLUluZmluaXR5KSIpOworICAgIHNob3VsZFRocm93KCJzb3VyY2Uuc3RvcChOYU4p
Iik7CisgICAgc2hvdWxkTm90VGhyb3coInNvdXJjZS5zdG9wKCkiKTsKKworICAgIHNob3VsZE5v
dFRocm93KCJvc2MgPSBjb250ZXh0LmNyZWF0ZU9zY2lsbGF0b3IoKSIpOworICAgIHNob3VsZFRo
cm93KCJvc2Muc3RvcCgpIik7CisgICAgc2hvdWxkTm90VGhyb3coIm9zYzEgPSBjb250ZXh0LmNy
ZWF0ZU9zY2lsbGF0b3IoKSIpOworICAgIHNob3VsZE5vdFRocm93KCJvc2MxLnN0YXJ0KCkiKTsK
KyAgICBzaG91bGROb3RUaHJvdygib3NjMS5zdG9wKCkiKTsKKworfQorCitydW5UZXN0KCk7Citz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiNTgzZjQzLi5kNzZlZjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTQtMTEtMTQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgor
CisgICAgICAgIHN0YXJ0L3N0b3AgbWV0aG9kIGZvciBBdWRpb0J1ZmZlclNvdXJjZU5vZGVzIGFu
ZCBPc2NpbGxhdG9yTm9kZXMgY2FuIHRha2Ugbm8gYXJncworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4NzM5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHBhdGNoIGlzIGluc3BpcmVkIGJ5IHRoZSBm
b2xsb3dpbmcgQmxpbmsgcmV2aXNpb24gYnkKKyAgICAgICAgPHJ0b3lAZ29vZ2xlLmNvbT46Cisg
ICAgICAgIDxodHRwczovL3NyYy5jaHJvbWl1bS5vcmcvdmlld3ZjL2JsaW5rP3ZpZXc9cmV2JnJl
dmlzaW9uPTE2MDg0NT4KKworICAgICAgICBUZXN0OiB3ZWJhdWRpby9kb20tZXhjZXB0aW9ucy5o
dG1sCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRQbGF5aW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bm90ZUdyYWluT24pOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydEdyYWluKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbDoKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0YXJ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RvcCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbDoKKwogMjAxNC0xMS0xNiAgWmFuIERv
YmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmVwbGFjZSBSZW5kZXJT
VkdSZXNvdXJjZTo6Y2FzdDxUPigpIHdpdGggZG93bmNhc3Q8VD4oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuY3Bw
CmluZGV4IDYyMDBmYzkuLmE5MjgxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5jcHAKQEAgLTM3MCwxMyAr
MzcwLDI3IEBAIHVuc2lnbmVkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bnVtYmVyT2ZDaGFubmVs
cygpCiAgICAgcmV0dXJuIG91dHB1dCgwKS0+bnVtYmVyT2ZDaGFubmVscygpOwogfQogCi12b2lk
IEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdy
YWluT2Zmc2V0LCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
OjpzdGFydChFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICAvLyBEdXJhdGlvbiBvZiAwIGhhcyBz
cGVjaWFsIHZhbHVlLCBtZWFuaW5nIGNhbGN1bGF0ZSBiYXNlZCBvbiB0aGUgZW50aXJlIGJ1ZmZl
cidzIGR1cmF0aW9uLgotICAgIHN0YXJ0R3JhaW4od2hlbiwgZ3JhaW5PZmZzZXQsIDAsIGVjKTsK
KyAgICBzdGFydFBsYXlpbmcoQnVmZmVyUGxheWJhY2tNb2RlOjpFbnRpcmUsIDAsIDAsIGJ1ZmZl
cigpID8gYnVmZmVyKCktPmR1cmF0aW9uKCkgOiAwLCBlYyk7CiB9CiAKLXZvaWQgQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjpzdGFydEdyYWluKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQs
IGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKK3ZvaWQgQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCit7Cisg
ICAgc3RhcnRQbGF5aW5nKEJ1ZmZlclBsYXliYWNrTW9kZTo6RW50aXJlLCB3aGVuLCAwLCBidWZm
ZXIoKSA/IGJ1ZmZlcigpLT5kdXJhdGlvbigpIDogMCwgZWMpOworfQorCit2b2lkIEF1ZGlvQnVm
ZmVyU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc3RhcnRQbGF5aW5nKEJ1ZmZlclBsYXliYWNrTW9kZTo6
UGFydGlhbCwgd2hlbiwgZ3JhaW5PZmZzZXQsIDAsIGVjKTsKK30KKwordm9pZCBBdWRpb0J1ZmZl
clNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJs
ZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBzdGFydFBsYXlpbmco
QnVmZmVyUGxheWJhY2tNb2RlOjpQYXJ0aWFsLCB3aGVuLCBncmFpbk9mZnNldCwgZ3JhaW5EdXJh
dGlvbiwgZWMpOworfQorCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRQbGF5aW5n
KEJ1ZmZlclBsYXliYWNrTW9kZSBwbGF5YmFja01vZGUsIGRvdWJsZSB3aGVuLCBkb3VibGUgZ3Jh
aW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC0zODgsMjYgKzQwMiw0MiBAQCB2b2lkIEF1
ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdyYWlu
T2Zmc2V0LCBkb3VibGUgZwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCFzdGQ6
OmlzZmluaXRlKHdoZW4pIHx8ICh3aGVuIDwgMCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NU
QVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghc3RkOjppc2Zpbml0
ZShncmFpbk9mZnNldCkgfHwgKGdyYWluT2Zmc2V0IDwgMCkpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghc3RkOjpp
c2Zpbml0ZShncmFpbkR1cmF0aW9uKSB8fCAoZ3JhaW5EdXJhdGlvbiA8IDApKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBp
ZiAoIWJ1ZmZlcigpKQogICAgICAgICByZXR1cm47Ci0gICAgICAgIAotICAgIC8vIERvIHNhbml0
eSBjaGVja2luZyBvZiBncmFpbiBwYXJhbWV0ZXJzIHZlcnN1cyBidWZmZXIgc2l6ZS4KLSAgICBk
b3VibGUgYnVmZmVyRHVyYXRpb24gPSBidWZmZXIoKS0+ZHVyYXRpb24oKTsKIAotICAgIGdyYWlu
T2Zmc2V0ID0gc3RkOjptYXgoMC4wLCBncmFpbk9mZnNldCk7Ci0gICAgZ3JhaW5PZmZzZXQgPSBz
dGQ6Om1pbihidWZmZXJEdXJhdGlvbiwgZ3JhaW5PZmZzZXQpOwotICAgIG1fZ3JhaW5PZmZzZXQg
PSBncmFpbk9mZnNldDsKKyAgICBtX2lzR3JhaW4gPSBwbGF5YmFja01vZGUgPT0gQnVmZmVyUGxh
eWJhY2tNb2RlOjpQYXJ0aWFsOworICAgIGlmIChtX2lzR3JhaW4pIHsKKyAgICAgICAgLy8gRG8g
c2FuaXR5IGNoZWNraW5nIG9mIGdyYWluIHBhcmFtZXRlcnMgdmVyc3VzIGJ1ZmZlciBzaXplLgor
ICAgICAgICBkb3VibGUgYnVmZmVyRHVyYXRpb24gPSBidWZmZXIoKS0+ZHVyYXRpb24oKTsKIAot
ICAgIC8vIEhhbmRsZSBkZWZhdWx0L3Vuc3BlY2lmaWVkIGR1cmF0aW9uLgotICAgIGRvdWJsZSBt
YXhEdXJhdGlvbiA9IGJ1ZmZlckR1cmF0aW9uIC0gZ3JhaW5PZmZzZXQ7Ci0gICAgaWYgKCFncmFp
bkR1cmF0aW9uKQotICAgICAgICBncmFpbkR1cmF0aW9uID0gbWF4RHVyYXRpb247CisgICAgICAg
IGdyYWluT2Zmc2V0ID0gc3RkOjptYXgoMC4wLCBncmFpbk9mZnNldCk7CisgICAgICAgIGdyYWlu
T2Zmc2V0ID0gc3RkOjptaW4oYnVmZmVyRHVyYXRpb24sIGdyYWluT2Zmc2V0KTsKKyAgICAgICAg
bV9ncmFpbk9mZnNldCA9IGdyYWluT2Zmc2V0OwogCi0gICAgZ3JhaW5EdXJhdGlvbiA9IHN0ZDo6
bWF4KDAuMCwgZ3JhaW5EdXJhdGlvbik7Ci0gICAgZ3JhaW5EdXJhdGlvbiA9IHN0ZDo6bWluKG1h
eER1cmF0aW9uLCBncmFpbkR1cmF0aW9uKTsKLSAgICBtX2dyYWluRHVyYXRpb24gPSBncmFpbkR1
cmF0aW9uOworICAgICAgICBkb3VibGUgbWF4RHVyYXRpb24gPSBidWZmZXJEdXJhdGlvbiAtIGdy
YWluT2Zmc2V0OworICAgICAgICBncmFpbkR1cmF0aW9uID0gc3RkOjptYXgoMC4wLCBncmFpbkR1
cmF0aW9uKTsKKyAgICAgICAgZ3JhaW5EdXJhdGlvbiA9IHN0ZDo6bWluKG1heER1cmF0aW9uLCBn
cmFpbkR1cmF0aW9uKTsKKyAgICAgICAgbV9ncmFpbkR1cmF0aW9uID0gZ3JhaW5EdXJhdGlvbjsK
KyAgICB9IGVsc2UgeworICAgICAgICBtX2dyYWluT2Zmc2V0ID0gMC4wOworICAgICAgICBtX2dy
YWluRHVyYXRpb24gPSBEZWZhdWx0R3JhaW5EdXJhdGlvbjsKKyAgICB9CiAKLSAgICBtX2lzR3Jh
aW4gPSB0cnVlOwogICAgIG1fc3RhcnRUaW1lID0gd2hlbjsKICAgICAKICAgICAvLyBXZSBjYWxs
IHRpbWVUb1NhbXBsZUZyYW1lIGhlcmUgc2luY2UgYXQgcGxheWJhY2tSYXRlID09IDEgd2UgZG9u
J3Qgd2FudCB0byBnbyB0aHJvdWdoIGxpbmVhciBpbnRlcnBvbGF0aW9uCkBAIC00MjIsNyArNDUy
LDEwIEBAIHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydEdyYWluKGRvdWJsZSB3aGVu
LCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBnCiAjaWYgRU5BQkxFKExFR0FDWV9XRUJfQVVE
SU8pCiB2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6bm90ZUdyYWluT24oZG91YmxlIHdoZW4s
IGRvdWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUm
IGVjKQogewotICAgIHN0YXJ0R3JhaW4od2hlbiwgZ3JhaW5PZmZzZXQsIGdyYWluRHVyYXRpb24s
IGVjKTsKKyAgICAvLyBIYW5kbGUgdW5zcGVjaWZpZWQgZHVyYXRpb24gd2hlcmUgMCBtZWFucyB0
aGUgcmVzdCBvZiB0aGUgYnVmZmVyLgorICAgIGlmICghZ3JhaW5EdXJhdGlvbikKKyAgICAgICAg
Z3JhaW5EdXJhdGlvbiA9IGJ1ZmZlcigpLT5kdXJhdGlvbigpOworICAgIHN0YXJ0UGxheWluZyhC
dWZmZXJQbGF5YmFja01vZGU6OlBhcnRpYWwsIHdoZW4sIGdyYWluT2Zmc2V0LCBncmFpbkR1cmF0
aW9uLCBlYyk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKaW5kZXggMTVmYzU2YS4uZmMwZmFk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
QnVmZmVyU291cmNlTm9kZS5oCkBAIC02Myw4ICs2MywxMCBAQCBwdWJsaWM6CiAgICAgdW5zaWdu
ZWQgbnVtYmVyT2ZDaGFubmVscygpOwogCiAgICAgLy8gUGxheS1zdGF0ZQotICAgIHZvaWQgc3Rh
cnRHcmFpbihkb3VibGUgd2hlbiwgZG91YmxlIGdyYWluT2Zmc2V0LCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBzdGFydEdyYWluKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRv
dWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzdGFydChFeGNl
cHRpb25Db2RlJik7CisgICAgdm9pZCBzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYp
OworICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgRXhjZXB0
aW9uQ29kZSYpOworICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNl
dCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKIAogI2lmIEVOQUJMRShM
RUdBQ1lfV0VCX0FVRElPKQogICAgIHZvaWQgbm90ZUdyYWluT24oZG91YmxlIHdoZW4sIGRvdWJs
ZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsKQEAg
LTEwNSw2ICsxMDcsMTMgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSB0YWlsVGltZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGRvdWJsZSBsYXRlbmN5
VGltZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KIAorICAgIGVudW0gQnVmZmVyUGxh
eWJhY2tNb2RlIHsKKyAgICAgICAgRW50aXJlLAorICAgICAgICBQYXJ0aWFsCisgICAgfTsKKwor
ICAgIHZvaWQgc3RhcnRQbGF5aW5nKEJ1ZmZlclBsYXliYWNrTW9kZSwgZG91YmxlIHdoZW4sIGRv
dWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmKTsK
KwogICAgIC8vIFJldHVybnMgdHJ1ZSBvbiBzdWNjZXNzLgogICAgIGJvb2wgcmVuZGVyRnJvbUJ1
ZmZlcihBdWRpb0J1cyosIHVuc2lnbmVkIGRlc3RpbmF0aW9uRnJhbWVPZmZzZXQsIHNpemVfdCBu
dW1iZXJPZkZyYW1lcyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbAppbmRleCA1Zjk4NGIyLi4zZTQyZTky
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0J1ZmZlclNvdXJjZU5vZGUuaWRsCkBAIC00NCwxMCArNDQsOCBAQAogICAgIGF0dHJpYnV0ZSB1
bnJlc3RyaWN0ZWQgZG91YmxlIGxvb3BTdGFydDsKICAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZSBsb29wRW5kOwogCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydCh1bnJl
c3RyaWN0ZWQgZG91YmxlIHdoZW4pOwotICAgIFtJbXBsZW1lbnRlZEFzPXN0YXJ0R3JhaW4sIFJh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4sIHVucmVz
dHJpY3RlZCBkb3VibGUgZ3JhaW5PZmZzZXQpOwotICAgIFtJbXBsZW1lbnRlZEFzPXN0YXJ0R3Jh
aW4sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4s
IHVucmVzdHJpY3RlZCBkb3VibGUgZ3JhaW5PZmZzZXQsIHVucmVzdHJpY3RlZCBkb3VibGUgZ3Jh
aW5EdXJhdGlvbik7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKHVucmVzdHJpY3Rl
ZCBkb3VibGUgd2hlbik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydChvcHRpb25h
bCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4sIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUg
Z3JhaW5PZmZzZXQsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBkb3VibGUgZ3JhaW5EdXJhdGlvbik7
CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKG9wdGlvbmFsIHVucmVzdHJpY3RlZCBk
b3VibGUgd2hlbik7CiAKICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJT10gYXR0cmli
dXRlIGJvb2xlYW4gbG9vcGluZzsgLy8gVGhpcyBpcyBhbiBhbGlhcyBmb3IgdGhlIC5sb29wIGF0
dHJpYnV0ZSBmb3IgYmFja3dhcmRzIGNvbXBhdGliaWxpdHkuCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
LmNwcAppbmRleCBkZDkyODE5Li5hMDZiMWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuY3BwCkBA
IC0xMzcsNiArMTM3LDExIEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjp1cGRhdGVT
Y2hlZHVsaW5nSW5mbyhzaXplX3QgcXVhbnR1bUZyYW1lU2l6ZSwKICAgICByZXR1cm47CiB9CiAK
K3ZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdGFydChFeGNlcHRpb25Db2RlJiBlYykK
K3sKKyAgICBzdGFydCgwLCBlYyk7Cit9CisKIHZvaWQgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
OjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKQEAgLTE0OSwxMCArMTU0LDIwIEBAIHZvaWQgQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hlbiwgRXhjZXB0aW9uQ29kZSYgZWMpCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKKyAgICBpZiAoIXN0ZDo6aXNmaW5pdGUod2hlbikgfHwgKHdoZW4g
PCAwKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgbV9zdGFydFRpbWUgPSB3aGVuOwogICAgIG1fcGxheWJhY2tTdGF0ZSA9
IFNDSEVEVUxFRF9TVEFURTsKIH0KIAordm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0
b3AoRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc3RvcCgwLCBlYyk7Cit9CisKIHZvaWQgQXVk
aW9TY2hlZHVsZWRTb3VyY2VOb2RlOjpzdG9wKGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2RlJiBl
YykKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtMTYwLDcgKzE3NSwxMiBAQCB2
b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RvcChkb3VibGUgd2hlbiwgRXhjZXB0aW9u
Q29kZSYgZWMpCiAgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgCisKKyAgICBpZiAoIXN0ZDo6aXNmaW5pdGUod2hlbikgfHwgKHdoZW4g
PCAwKSkgeworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47
CisgICAgfQorCiAgICAgd2hlbiA9IHN0ZDo6bWF4PGRvdWJsZT4oMCwgd2hlbik7CiAgICAgbV9l
bmRUaW1lID0gd2hlbjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCmluZGV4IGEwNWE1NDIuLjI1NzA5
YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hl
ZHVsZWRTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9B
dWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaApAQCAtNTgsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAg
QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlKEF1ZGlvQ29udGV4dCosIGZsb2F0IHNhbXBsZVJhdGUp
OwogCiAgICAgLy8gU2NoZWR1bGluZy4KKyAgICB2b2lkIHN0YXJ0KEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHN0b3AoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc3RhcnQoZG91YmxlIHdo
ZW4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHN0b3AoZG91YmxlIHdoZW4sIEV4Y2VwdGlv
bkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9P
c2NpbGxhdG9yTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2ls
bGF0b3JOb2RlLmlkbAppbmRleCBmMWYzZTBjLi44NzhiYzg5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbApAQCAtNDgsOCArNDgs
OCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIGZyZXF1ZW5jeTsgLy8gaW4g
SGVydHoKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBkZXR1bmU7IC8vIGluIENl
bnRzCiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0YXJ0KHVucmVzdHJpY3RlZCBkb3Vi
bGUgd2hlbik7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdG9wKHVucmVzdHJpY3RlZCBk
b3VibGUgd2hlbik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzdGFydChvcHRpb25hbCB1
bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3Rv
cChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOwogCiAgICAgW0NvbmRpdGlvbmFs
PUxFR0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9pZCBub3RlT24odW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuKTsKICAgICBbQ29uZGl0aW9uYWw9TEVHQUNZX1dFQl9BVURJTywgUmFp
c2VzRXhjZXB0aW9uXSB2b2lkIG5vdGVPZmYodW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKLS0g
CjIuMS4z
</data>
<flag name="review"
          id="266566"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>241793</attachid>
            <date>2014-11-18 10:09:45 -0800</date>
            <delta_ts>2014-11-18 10:09:45 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>startstop-method-for-AudioBufferSourceNodes-and-Os.patch</filename>
            <type>text/plain</type>
            <size>12963</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSA5OTZjNDU1ZGYwMWQzOTM1NDQ4M2Y0MGE4MTEzYmM4OGViZmM4ZjE4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBUdWUsIDE4IE5vdiAyMDE0IDE5OjA5OjAzICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
c3RhcnQvc3RvcCBtZXRob2QgZm9yIEF1ZGlvQnVmZmVyU291cmNlTm9kZXMgYW5kCiBPc2NpbGxh
dG9yTm9kZXMgY2FuIHRha2Ugbm8gYXJncwogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEzODczOQoKUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCgpTb3VyY2UvV2ViQ29y
ZToKClRoZSBwYXRjaCBpcyBpbnNwaXJlZCBieSB0aGUgZm9sbG93aW5nIEJsaW5rIHJldmlzaW9u
IGJ5CjxydG95QGdvb2dsZS5jb20+Ogo8aHR0cHM6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9i
bGluaz92aWV3PXJldiZyZXZpc2lvbj0xNjA4NDU+CgpUZXN0OiB3ZWJhdWRpby9kb20tZXhjZXB0
aW9ucy5odG1sCgoqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcDoK
KFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQpOgooV2ViQ29yZTo6QXVkaW9C
dWZmZXJTb3VyY2VOb2RlOjpzdGFydFBsYXlpbmcpOgooV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3Vy
Y2VOb2RlOjpub3RlR3JhaW5Pbik6CihXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0
YXJ0R3JhaW4pOiBEZWxldGVkLgoqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VO
b2RlLmg6CiogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsOgoqIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmNwcDoKKFdlYkNvcmU6OkF1
ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQpOgooV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlOjpzdG9wKToKKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNl
Tm9kZS5oOgoqIE1vZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsOgoKTGF5b3V0VGVz
dHM6CgoqIHdlYmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCiogd2Vi
YXVkaW8vZG9tLWV4Y2VwdGlvbnMuaHRtbDogQWRkZWQuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrCiBTb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI2ICsrKysrKysrKwogLi4u
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCAgICAgfCA2NyArKysr
KysrKysrKysrKysrLS0tLS0tCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJj
ZU5vZGUuaCAgICAgICB8IDEzICsrKystCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaWRsICAgICB8ICA2ICstCiAuLi4vTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Nj
aGVkdWxlZFNvdXJjZU5vZGUuY3BwICB8IDIzICsrKysrKystCiAuLi4vTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaCAgICB8ICAyICsKIFNvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vT3NjaWxsYXRvck5vZGUuaWRsIHwgIDQgKy0KIDggZmlsZXMgY2hhbmdl
ZCwgMTIyIGluc2VydGlvbnMoKyksIDI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NjBkZTcyLi5i
ZTAzOWMzZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNC0xMS0xNyAgUGhpbGlwcGUgTm9y
bWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CisKKyAgICAgICAgc3RhcnQvc3RvcCBtZXRob2Qg
Zm9yIEF1ZGlvQnVmZmVyU291cmNlTm9kZXMgYW5kIE9zY2lsbGF0b3JOb2RlcyBjYW4gdGFrZSBu
byBhcmdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
Mzg3MzkKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIHdl
YmF1ZGlvL2RvbS1leGNlcHRpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2Vi
YXVkaW8vZG9tLWV4Y2VwdGlvbnMuaHRtbDogQWRkZWQuCisKIDIwMTQtMTEtMTggIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIxNzYyMTguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjhlNmRhYi4uNTI0MDAxMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE0LTExLTE0ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5v
cm1hbmRAaWdhbGlhLmNvbT4KKworICAgICAgICBzdGFydC9zdG9wIG1ldGhvZCBmb3IgQXVkaW9C
dWZmZXJTb3VyY2VOb2RlcyBhbmQgT3NjaWxsYXRvck5vZGVzIGNhbiB0YWtlIG5vIGFyZ3MKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODczOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFRoZSBwYXRjaCBpcyBp
bnNwaXJlZCBieSB0aGUgZm9sbG93aW5nIEJsaW5rIHJldmlzaW9uIGJ5CisgICAgICAgIDxydG95
QGdvb2dsZS5jb20+OgorICAgICAgICA8aHR0cHM6Ly9zcmMuY2hyb21pdW0ub3JnL3ZpZXd2Yy9i
bGluaz92aWV3PXJldiZyZXZpc2lvbj0xNjA4NDU+CisKKyAgICAgICAgVGVzdDogd2ViYXVkaW8v
ZG9tLWV4Y2VwdGlvbnMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9CdWZmZXJTb3VyY2VO
b2RlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0
YXJ0UGxheWluZyk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0J1ZmZlclNvdXJjZU5vZGU6Om5v
dGVHcmFpbk9uKToKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3Rh
cnRHcmFpbik6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZl
clNvdXJjZU5vZGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNv
dXJjZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0
b3ApOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2Rl
Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGw6CisKIDIw
MTQtMTEtMTggIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIEhSVEZEYXRhYmFzZUxvYWRlciBpcyBub3QgYW4gYWJzb2x1dGUgY29uZGl0aW9uIHRvIHJ1
biBhdWRpb0NvbnRleHQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAppbmRleCA2MjAwZmM5Li40NWZkY2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291
cmNlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1
ZmZlclNvdXJjZU5vZGUuY3BwCkBAIC0zNzAsMTMgKzM3MCwyNyBAQCB1bnNpZ25lZCBBdWRpb0J1
ZmZlclNvdXJjZU5vZGU6Om51bWJlck9mQ2hhbm5lbHMoKQogICAgIHJldHVybiBvdXRwdXQoMCkt
Pm51bWJlck9mQ2hhbm5lbHMoKTsKIH0KIAotdm9pZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0
YXJ0R3JhaW4oZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgRXhjZXB0aW9uQ29kZSYg
ZWMpCit2b2lkIEF1ZGlvQnVmZmVyU291cmNlTm9kZTo6c3RhcnQoRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgLy8gRHVyYXRpb24gb2YgMCBoYXMgc3BlY2lhbCB2YWx1ZSwgbWVhbmluZyBjYWxj
dWxhdGUgYmFzZWQgb24gdGhlIGVudGlyZSBidWZmZXIncyBkdXJhdGlvbi4KLSAgICBzdGFydEdy
YWluKHdoZW4sIGdyYWluT2Zmc2V0LCAwLCBlYyk7CisgICAgc3RhcnRQbGF5aW5nKEVudGlyZSwg
MCwgMCwgYnVmZmVyKCkgPyBidWZmZXIoKS0+ZHVyYXRpb24oKSA6IDAsIGVjKTsKIH0KIAotdm9p
ZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0R3JhaW4oZG91YmxlIHdoZW4sIGRvdWJsZSBn
cmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQordm9p
ZCBBdWRpb0J1ZmZlclNvdXJjZU5vZGU6OnN0YXJ0KGRvdWJsZSB3aGVuLCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBzdGFydFBsYXlpbmcoRW50aXJlLCB3aGVuLCAwLCBidWZmZXIoKSA/IGJ1
ZmZlcigpLT5kdXJhdGlvbigpIDogMCwgZWMpOworfQorCit2b2lkIEF1ZGlvQnVmZmVyU291cmNl
Tm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgc3RhcnRQbGF5aW5nKFBhcnRpYWwsIHdoZW4sIGdyYWluT2Zmc2V0LCAw
LCBlYyk7Cit9CisKK3ZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydChkb3VibGUgd2hl
biwgZG91YmxlIGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29k
ZSYgZWMpCit7CisgICAgc3RhcnRQbGF5aW5nKFBhcnRpYWwsIHdoZW4sIGdyYWluT2Zmc2V0LCBn
cmFpbkR1cmF0aW9uLCBlYyk7Cit9CisKK3ZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFy
dFBsYXlpbmcoQnVmZmVyUGxheWJhY2tNb2RlIHBsYXliYWNrTW9kZSwgZG91YmxlIHdoZW4sIGRv
dWJsZSBncmFpbk9mZnNldCwgZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTM4OCwyNiArNDAyLDM4IEBA
IHZvaWQgQXVkaW9CdWZmZXJTb3VyY2VOb2RlOjpzdGFydEdyYWluKGRvdWJsZSB3aGVuLCBkb3Vi
bGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBnCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICBp
ZiAoIXN0ZDo6aXNmaW5pdGUod2hlbikgfHwgKHdoZW4gPCAwKSkgeworICAgICAgICBlYyA9IElO
VkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFzdGQ6
OmlzZmluaXRlKGdyYWluT2Zmc2V0KSB8fCAoZ3JhaW5PZmZzZXQgPCAwKSkgeworICAgICAgICBl
YyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KCFzdGQ6OmlzZmluaXRlKGdyYWluRHVyYXRpb24pIHx8IChncmFpbkR1cmF0aW9uIDwgMCkpIHsK
KyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KwogICAgIGlmICghYnVmZmVyKCkpCiAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgLy8g
RG8gc2FuaXR5IGNoZWNraW5nIG9mIGdyYWluIHBhcmFtZXRlcnMgdmVyc3VzIGJ1ZmZlciBzaXpl
LgotICAgIGRvdWJsZSBidWZmZXJEdXJhdGlvbiA9IGJ1ZmZlcigpLT5kdXJhdGlvbigpOwogCi0g
ICAgZ3JhaW5PZmZzZXQgPSBzdGQ6Om1heCgwLjAsIGdyYWluT2Zmc2V0KTsKLSAgICBncmFpbk9m
ZnNldCA9IHN0ZDo6bWluKGJ1ZmZlckR1cmF0aW9uLCBncmFpbk9mZnNldCk7Ci0gICAgbV9ncmFp
bk9mZnNldCA9IGdyYWluT2Zmc2V0OworICAgIG1faXNHcmFpbiA9IHBsYXliYWNrTW9kZSA9PSBQ
YXJ0aWFsOworICAgIGlmIChtX2lzR3JhaW4pIHsKKyAgICAgICAgLy8gRG8gc2FuaXR5IGNoZWNr
aW5nIG9mIGdyYWluIHBhcmFtZXRlcnMgdmVyc3VzIGJ1ZmZlciBzaXplLgorICAgICAgICBkb3Vi
bGUgYnVmZmVyRHVyYXRpb24gPSBidWZmZXIoKS0+ZHVyYXRpb24oKTsKIAotICAgIC8vIEhhbmRs
ZSBkZWZhdWx0L3Vuc3BlY2lmaWVkIGR1cmF0aW9uLgotICAgIGRvdWJsZSBtYXhEdXJhdGlvbiA9
IGJ1ZmZlckR1cmF0aW9uIC0gZ3JhaW5PZmZzZXQ7Ci0gICAgaWYgKCFncmFpbkR1cmF0aW9uKQot
ICAgICAgICBncmFpbkR1cmF0aW9uID0gbWF4RHVyYXRpb247CisgICAgICAgIG1fZ3JhaW5PZmZz
ZXQgPSBzdGQ6Om1pbihidWZmZXJEdXJhdGlvbiwgZ3JhaW5PZmZzZXQpOwogCi0gICAgZ3JhaW5E
dXJhdGlvbiA9IHN0ZDo6bWF4KDAuMCwgZ3JhaW5EdXJhdGlvbik7Ci0gICAgZ3JhaW5EdXJhdGlv
biA9IHN0ZDo6bWluKG1heER1cmF0aW9uLCBncmFpbkR1cmF0aW9uKTsKLSAgICBtX2dyYWluRHVy
YXRpb24gPSBncmFpbkR1cmF0aW9uOworICAgICAgICBkb3VibGUgbWF4RHVyYXRpb24gPSBidWZm
ZXJEdXJhdGlvbiAtIG1fZ3JhaW5PZmZzZXQ7CisgICAgICAgIG1fZ3JhaW5EdXJhdGlvbiA9IHN0
ZDo6bWluKG1heER1cmF0aW9uLCBncmFpbkR1cmF0aW9uKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBtX2dyYWluT2Zmc2V0ID0gMC4wOworICAgICAgICBtX2dyYWluRHVyYXRpb24gPSBEZWZhdWx0
R3JhaW5EdXJhdGlvbjsKKyAgICB9CiAKLSAgICBtX2lzR3JhaW4gPSB0cnVlOwogICAgIG1fc3Rh
cnRUaW1lID0gd2hlbjsKICAgICAKICAgICAvLyBXZSBjYWxsIHRpbWVUb1NhbXBsZUZyYW1lIGhl
cmUgc2luY2UgYXQgcGxheWJhY2tSYXRlID09IDEgd2UgZG9uJ3Qgd2FudCB0byBnbyB0aHJvdWdo
IGxpbmVhciBpbnRlcnBvbGF0aW9uCkBAIC00MjIsNyArNDQ4LDEwIEBAIHZvaWQgQXVkaW9CdWZm
ZXJTb3VyY2VOb2RlOjpzdGFydEdyYWluKGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQs
IGRvdWJsZSBnCiAjaWYgRU5BQkxFKExFR0FDWV9XRUJfQVVESU8pCiB2b2lkIEF1ZGlvQnVmZmVy
U291cmNlTm9kZTo6bm90ZUdyYWluT24oZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwg
ZG91YmxlIGdyYWluRHVyYXRpb24sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHN0YXJ0R3Jh
aW4od2hlbiwgZ3JhaW5PZmZzZXQsIGdyYWluRHVyYXRpb24sIGVjKTsKKyAgICAvLyBIYW5kbGUg
dW5zcGVjaWZpZWQgZHVyYXRpb24gd2hlcmUgMCBtZWFucyB0aGUgcmVzdCBvZiB0aGUgYnVmZmVy
LgorICAgIGlmICghZ3JhaW5EdXJhdGlvbikKKyAgICAgICAgZ3JhaW5EdXJhdGlvbiA9IGJ1ZmZl
cigpLT5kdXJhdGlvbigpOworICAgIHN0YXJ0UGxheWluZyhQYXJ0aWFsLCB3aGVuLCBncmFpbk9m
ZnNldCwgZ3JhaW5EdXJhdGlvbiwgZWMpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5oCmluZGV4
IDE1ZmM1NmEuLmZjMGZhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaApAQCAtNjMsOCArNjMsMTAgQEAgcHVi
bGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mQ2hhbm5lbHMoKTsKIAogICAgIC8vIFBsYXktc3Rh
dGUKLSAgICB2b2lkIHN0YXJ0R3JhaW4oZG91YmxlIHdoZW4sIGRvdWJsZSBncmFpbk9mZnNldCwg
RXhjZXB0aW9uQ29kZSYpOwotICAgIHZvaWQgc3RhcnRHcmFpbihkb3VibGUgd2hlbiwgZG91Ymxl
IGdyYWluT2Zmc2V0LCBkb3VibGUgZ3JhaW5EdXJhdGlvbiwgRXhjZXB0aW9uQ29kZSYpOworICAg
IHZvaWQgc3RhcnQoRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc3RhcnQoZG91YmxlIHdoZW4s
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBkb3VibGUgZ3Jh
aW5PZmZzZXQsIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0YXJ0KGRvdWJsZSB3aGVuLCBk
b3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNlcHRpb25Db2RlJik7
CiAKICNpZiBFTkFCTEUoTEVHQUNZX1dFQl9BVURJTykKICAgICB2b2lkIG5vdGVHcmFpbk9uKGRv
dWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBFeGNl
cHRpb25Db2RlJik7CkBAIC0xMDUsNiArMTA3LDEzIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBk
b3VibGUgdGFpbFRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAgICAgdmlydHVh
bCBkb3VibGUgbGF0ZW5jeVRpbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAwOyB9CiAKKyAg
ICBlbnVtIEJ1ZmZlclBsYXliYWNrTW9kZSB7CisgICAgICAgIEVudGlyZSwKKyAgICAgICAgUGFy
dGlhbAorICAgIH07CisKKyAgICB2b2lkIHN0YXJ0UGxheWluZyhCdWZmZXJQbGF5YmFja01vZGUs
IGRvdWJsZSB3aGVuLCBkb3VibGUgZ3JhaW5PZmZzZXQsIGRvdWJsZSBncmFpbkR1cmF0aW9uLCBF
eGNlcHRpb25Db2RlJik7CisKICAgICAvLyBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KICAgICBi
b29sIHJlbmRlckZyb21CdWZmZXIoQXVkaW9CdXMqLCB1bnNpZ25lZCBkZXN0aW5hdGlvbkZyYW1l
T2Zmc2V0LCBzaXplX3QgbnVtYmVyT2ZGcmFtZXMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQnVmZmVyU291cmNlTm9kZS5pZGwKaW5kZXgg
NWY5ODRiMi4uM2U0MmU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbApAQCAtNDQsMTAgKzQ0LDggQEAK
ICAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBsb29wU3RhcnQ7CiAgICAgYXR0cmli
dXRlIHVucmVzdHJpY3RlZCBkb3VibGUgbG9vcEVuZDsKIAotICAgIFtSYWlzZXNFeGNlcHRpb25d
IHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKLSAgICBbSW1wbGVtZW50ZWRB
cz1zdGFydEdyYWluLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmljdGVkIGRv
dWJsZSB3aGVuLCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluT2Zmc2V0KTsKLSAgICBbSW1wbGVt
ZW50ZWRBcz1zdGFydEdyYWluLCBSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RhcnQodW5yZXN0cmlj
dGVkIGRvdWJsZSB3aGVuLCB1bnJlc3RyaWN0ZWQgZG91YmxlIGdyYWluT2Zmc2V0LCB1bnJlc3Ry
aWN0ZWQgZG91YmxlIGdyYWluRHVyYXRpb24pOwotICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQg
c3RvcCh1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZv
aWQgc3RhcnQob3B0aW9uYWwgdW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuLCBvcHRpb25hbCB1bnJl
c3RyaWN0ZWQgZG91YmxlIGdyYWluT2Zmc2V0LCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91Ymxl
IGdyYWluRHVyYXRpb24pOworICAgIFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25h
bCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOwogCiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9X
RUJfQVVESU9dIGF0dHJpYnV0ZSBib29sZWFuIGxvb3Bpbmc7IC8vIFRoaXMgaXMgYW4gYWxpYXMg
Zm9yIHRoZSAubG9vcCBhdHRyaWJ1dGUgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVk
U291cmNlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZS5jcHAKaW5kZXggZGQ5MjgxOS4uZjM3MTk5ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRT
b3VyY2VOb2RlLmNwcApAQCAtMTM3LDYgKzEzNywxMSBAQCB2b2lkIEF1ZGlvU2NoZWR1bGVkU291
cmNlTm9kZTo6dXBkYXRlU2NoZWR1bGluZ0luZm8oc2l6ZV90IHF1YW50dW1GcmFtZVNpemUsCiAg
ICAgcmV0dXJuOwogfQogCit2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoRXhj
ZXB0aW9uQ29kZSYgZWMpCit7CisgICAgc3RhcnQoMCwgZWMpOworfQorCiB2b2lkIEF1ZGlvU2No
ZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQog
ewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0xNDksMTAgKzE1NCwyMCBAQCB2b2lk
IEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgaWYgKCFzdGQ6OmlzZmluaXRl
KHdoZW4pIHx8ICh3aGVuIDwgMCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIG1fc3RhcnRUaW1lID0gd2hlbjsKICAgICBt
X3BsYXliYWNrU3RhdGUgPSBTQ0hFRFVMRURfU1RBVEU7CiB9CiAKK3ZvaWQgQXVkaW9TY2hlZHVs
ZWRTb3VyY2VOb2RlOjpzdG9wKEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHN0b3AoMCwgZWMp
OworfQorCiB2b2lkIEF1ZGlvU2NoZWR1bGVkU291cmNlTm9kZTo6c3RvcChkb3VibGUgd2hlbiwg
RXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTE2
MCw4ICsxNzUsMTIgQEAgdm9pZCBBdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGU6OnN0b3AoZG91Ymxl
IHdoZW4sIEV4Y2VwdGlvbkNvZGUmIGVjKQogICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJS
OwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAgIHdoZW4gPSBzdGQ6Om1heDxkb3Vi
bGU+KDAsIHdoZW4pOworCisgICAgaWYgKCFzdGQ6OmlzZmluaXRlKHdoZW4pIHx8ICh3aGVuIDwg
MCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIG1fZW5kVGltZSA9IHdoZW47CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvU2NoZWR1bGVkU291cmNlTm9kZS5oCmlu
ZGV4IGEwNWE1NDIuLjI1NzA5YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1NjaGVkdWxlZFNvdXJjZU5vZGUuaApAQCAtNTgsNiArNTgs
OCBAQCBwdWJsaWM6CiAgICAgQXVkaW9TY2hlZHVsZWRTb3VyY2VOb2RlKEF1ZGlvQ29udGV4dCos
IGZsb2F0IHNhbXBsZVJhdGUpOwogCiAgICAgLy8gU2NoZWR1bGluZy4KKyAgICB2b2lkIHN0YXJ0
KEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHN0b3AoRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc3RhcnQoZG91YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHN0b3AoZG91
YmxlIHdoZW4sIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9Pc2NpbGxhdG9yTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2RlLmlkbAppbmRleCBmMWYzZTBjLi44NzhiYzg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2Rl
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL09zY2lsbGF0b3JOb2Rl
LmlkbApAQCAtNDgsOCArNDgsOCBAQAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFt
IGZyZXF1ZW5jeTsgLy8gaW4gSGVydHoKICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJh
bSBkZXR1bmU7IC8vIGluIENlbnRzCiAKLSAgICBbUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHN0YXJ0
KHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7Ci0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBz
dG9wKHVucmVzdHJpY3RlZCBkb3VibGUgd2hlbik7CisgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBzdGFydChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOworICAgIFtSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc3RvcChvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZG91YmxlIHdoZW4pOwog
CiAgICAgW0NvbmRpdGlvbmFsPUxFR0FDWV9XRUJfQVVESU8sIFJhaXNlc0V4Y2VwdGlvbl0gdm9p
ZCBub3RlT24odW5yZXN0cmljdGVkIGRvdWJsZSB3aGVuKTsKICAgICBbQ29uZGl0aW9uYWw9TEVH
QUNZX1dFQl9BVURJTywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIG5vdGVPZmYodW5yZXN0cmljdGVk
IGRvdWJsZSB3aGVuKTsKLS0gCjIuMS4z
</data>

          </attachment>
      

    </bug>

</bugzilla>