<?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>17766</bug_id>
          
          <creation_ts>2008-03-11 07:28:23 -0700</creation_ts>
          <short_desc>Implement HTML media element support for QtWebKit, using Phonon.</short_desc>
          <delta_ts>2008-03-11 08:01:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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="Tor Arne Vestbø">vestbo</reporter>
          <assigned_to name="George Staikos">staikos</assigned_to>
          <cc>hausmann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>73305</commentid>
    <comment_count>0</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2008-03-11 07:28:23 -0700</bug_when>
    <thetext>Implement HTML media element support for QtWebKit, using Phonon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73307</commentid>
    <comment_count>1</comment_count>
      <attachid>19663</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2008-03-11 07:29:25 -0700</bug_when>
    <thetext>Created attachment 19663
Patch to implement MediaPlayerPrivate interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73313</commentid>
    <comment_count>2</comment_count>
      <attachid>19663</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-03-11 07:54:00 -0700</bug_when>
    <thetext>Comment on attachment 19663
Patch to implement MediaPlayerPrivate interface.

Looks like a good start, r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>73315</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2008-03-11 08:01:43 -0700</bug_when>
    <thetext>Landed in r30960

Thanks Darin for the quick review!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>19663</attachid>
            <date>2008-03-11 07:29:25 -0700</date>
            <delta_ts>2008-03-11 07:54:00 -0700</delta_ts>
            <desc>Patch to implement MediaPlayerPrivate interface.</desc>
            <filename>mediaelement.patch</filename>
            <type>text/plain</type>
            <size>24065</size>
            <attacher name="Tor Arne Vestbø">vestbo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDg4Y2U0Ni4uMGY2OTVjNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAwOC0wMy0xMSAgVG9yIEFybmUgVmVz
dGLDuCAgPHRhdmVzdGJvQHRyb2xsdGVjaC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgSFRNTCBtZWRpYSBlbGVtZW50IHN1
cHBvcnQgZm9yIFF0V2ViS2l0LCB1c2luZyBQaG9ub24uCisKKyAgICAgICAgKiBXZWJDb3JlLnBy
bzoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcDogQWRk
ZWQuCisgICAgICAgIChkZWJ1Z01lZGlhT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZTo6TWVkaWFQbGF5ZXJQcml2YXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6fk1lZGlhUGxheWVyUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGU6OmdldFN1cHBvcnRlZFR5cGVzKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6aGFzVmlkZW8pOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpsb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6Y2FuY2VsTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6
OnBsYXkpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpwYXVzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnBhdXNlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNlZWspOgorICAgICAgICAoV2ViQ29yZTo6TWVk
aWFQbGF5ZXJQcml2YXRlOjpzZWVraW5nKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVy
UHJpdmF0ZTo6ZHVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
OjpjdXJyZW50VGltZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNl
dEVuZFRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1l
QnVmZmVyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1l
U2Vla2FibGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpieXRlc0xv
YWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnRvdGFsQnl0ZXNL
bm93bik6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnRvdGFsQnl0ZXMp
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0Vm9sdW1lKToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0TXV0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlOjpkYXRhUmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGU6Om5ldHdvcmtTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXll
clByaXZhdGU6OnJlYWR5U3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2
YXRlOjp1cGRhdGVTdGF0ZXMpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
OjpzZXRWaXNpYmxlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0
UmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmxvYWRTdGF0ZUNo
YW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpyYXRlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnNpemVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6dGltZUNoYW5nZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2VkKToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6ZGlkRW5kKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6bG9hZGluZ0ZhaWxlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVBsYXllclByaXZhdGU6Om5hdHVyYWxTaXplKToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZTo6ZXZlbnRGaWx0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQ
bGF5ZXJQcml2YXRlOjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZTo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpzdGF0
ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjp0aWNrKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6bWV0YURhdGFDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6c2Vla2FibGVDaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6aGFzVmlkZW9DaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyU3RhdHVzKToKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6ZmluaXNoZWQpOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpjdXJyZW50U291cmNlQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmFib3V0VG9GaW5pc2gpOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpwcmVmaW5pc2hNYXJrUmVhY2hlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OnRvdGFsVGltZUNoYW5nZWQpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6KToKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZTo6aXNBdmFpbGFibGUpOgorCiAyMDA4LTAz
LTEwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QmV0aCBEYWtpbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5wcm8gYi9XZWJDb3JlL1dl
YkNvcmUucHJvCmluZGV4IDQ4ZTdmOGEuLjM1MzY4ZmQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtNzYsNyArNzYsOCBAQCBndGst
cG9ydDohY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1hTTFQ9Lik6IERFRklORVMgKz0gRU5BQkxF
X1hTTFQ9MQogIyFjb250YWlucyhERUZJTkVTLCBFTkFCTEVfWEJMPS4pOiBERUZJTkVTICs9IEVO
QUJMRV9YQkw9MQogcXQtcG9ydDogIWNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9TVkc9Lik6IERF
RklORVMgKz0gRU5BQkxFX1NWRz0xCiBndGstcG9ydDpERUZJTkVTICs9IEVOQUJMRV9TVkc9MAot
REVGSU5FUyArPSBFTkFCTEVfVklERU89MAorcXQtcG9ydDpjb250YWlucyhRVF9DT05GSUcsIHBo
b25vbik6REVGSU5FUyArPSBFTkFCTEVfVklERU89MQorZWxzZTpERUZJTkVTICs9IEVOQUJMRV9W
SURFTz0wCiAKIERFRklORVMgKz0gV1RGX0NIQU5HRVM9MQogCkBAIC0xMjIxLDYgKzEyMjIsMTYg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX1ZJREVPPTEpIHsKICAgICAgICAgcmVuZGVyaW5n
L1JlbmRlck1lZGlhLmNwcCBcCiAgICAgICAgIGJpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rv
ci5jcHAKIAorICAgIHF0LXBvcnQgeworICAgICAgICBIRUFERVJTICs9IFwKKyAgICAgICAgICAg
IHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oCisKKyAgICAg
ICAgU09VUkNFUyArPSBcCisgICAgICAgICAgICBwbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBs
YXllclByaXZhdGVQaG9ub24uY3BwCisKKyAgICAgICAgUVQgKz0gcGhvbm9uCisgICAgfQorCiAg
ICAgZ3RrLXBvcnQgewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIFwKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKaW5kZXggODJlOTk1MC4uM2I1OWNhYyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAKQEAgLTM3LDYgKzM3
LDggQEAKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaCIKICNlbGlm
IFBMQVRGT1JNKEdUSykKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuaCIK
KyNlbGlmIFBMQVRGT1JNKFFUKQorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5o
IgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43OWFmODE4Ci0tLSAvZGV2L251bGwKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3Bw
CkBAIC0wLDAgKzEsNTI0IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAwOCBUcm9sbHRlY2gg
QVNBCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCisgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKKyAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxv
bmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwg
d3JpdGUgdG8KKyAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNB
LgorKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk1lZGlhUGxheWVyUHJpdmF0
ZVBob25vbi5oIgorCisjaW5jbHVkZSA8bGltaXRzPgorCisjaW5jbHVkZSAiQ1N0cmluZy5oIgor
I2luY2x1ZGUgIkZyYW1lVmlldy5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgorI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiV2lkZ2V0LmgiCisjaW5jbHVkZSA8
d3RmL0hhc2hTZXQuaD4KKworI2luY2x1ZGUgPFFEZWJ1Zz4KKyNpbmNsdWRlIDxRUGFpbnRlcj4K
KyNpbmNsdWRlIDxRV2lkZ2V0PgorI2luY2x1ZGUgPHBob25vbj4KKwordXNpbmcgbmFtZXNwYWNl
IFBob25vbjsKKworI2RlZmluZSBMT0dfTUVESUFPQkpFQ1QoKSAoTE9HKE1lZGlhLCIlcyIsIGRl
YnVnTWVkaWFPYmplY3QoKm1fbWVkaWFPYmplY3QpLmNvbnN0RGF0YSgpKSkKKworc3RhdGljIFFC
eXRlQXJyYXkgZGVidWdNZWRpYU9iamVjdChjb25zdCBNZWRpYU9iamVjdCYgbWVkaWFPYmplY3Qp
Cit7CisgICAgUUJ5dGVBcnJheSBieXRlQXJyYXk7CisgICAgUVRleHRTdHJlYW0gc3RyZWFtKCZi
eXRlQXJyYXkpOworICAgIAorICAgIGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRhT2JqZWN0ID0gbWVk
aWFPYmplY3QubWV0YU9iamVjdCgpOworICAgIFFNZXRhRW51bSBwaG9ub25TdGF0ZXMgPSBtZXRh
T2JqZWN0LT5lbnVtZXJhdG9yKG1ldGFPYmplY3QtPmluZGV4T2ZFbnVtZXJhdG9yKCJQaG9ub25T
dGF0ZSIpKTsKKworICAgIHN0cmVhbSA8PCAiUGhvbm9uOjpNZWRpYU9iamVjdCgiOworICAgIHN0
cmVhbSA8PCAiU3RhdGU6IiA8PCBwaG9ub25TdGF0ZXMudmFsdWVUb0tleShtZWRpYU9iamVjdC5z
dGF0ZSgpKTsKKyAgICBzdHJlYW0gPDwgInwgQ3VycmVudCB0aW1lOiIgPDwgbWVkaWFPYmplY3Qu
Y3VycmVudFRpbWUoKTsKKyAgICBzdHJlYW0gPDwgInwgUmVtYWluaW5nIHRpbWU6IiA8PCBtZWRp
YU9iamVjdC5yZW1haW5pbmdUaW1lKCk7CisgICAgc3RyZWFtIDw8ICJ8IFRvdGFsIHRpbWU6IiA8
PCBtZWRpYU9iamVjdC50b3RhbFRpbWUoKTsKKyAgICBzdHJlYW0gPDwgInwgTWV0YS1kYXRhOiI7
CisgICAgUU11bHRpTWFwPFFTdHJpbmcsIFFTdHJpbmc+IG1hcCA9IG1lZGlhT2JqZWN0Lm1ldGFE
YXRhKCk7CisgICAgZm9yIChRTWFwPFFTdHJpbmcsIFFTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBp
dCA9IG1hcC5jb25zdEJlZ2luKCk7CisgICAgICAgIGl0ICE9IG1hcC5jb25zdEVuZCgpOyArK2l0
KSB7CisgICAgICAgIHN0cmVhbSA8PCAiKCIgPDwgaXQua2V5KCkgPDwgIiwgIiA8PCBpdC52YWx1
ZSgpIDw8ICIpIjsKKyAgICB9CisgICAgc3RyZWFtIDw8ICJ8IEhhcyB2aWRlbzoiIDw8IG1lZGlh
T2JqZWN0Lmhhc1ZpZGVvKCk7CisgICAgc3RyZWFtIDw8ICJ8IElzIHNlZWthYmxlOiIgPDwgbWVk
aWFPYmplY3QuaXNTZWVrYWJsZSgpOworICAgIHN0cmVhbSA8PCAiKSI7CisgICAgCisgICAgc3Ry
ZWFtLmZsdXNoKCk7CisKKyAgICByZXR1cm4gYnl0ZUFycmF5OworfQorCit1c2luZyBuYW1lc3Bh
Y2UgV1RGOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK01lZGlhUGxheWVyUHJpdmF0ZTo6TWVk
aWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKiBwbGF5ZXIpCisgICAgOiBtX3BsYXllcihwbGF5
ZXIpCisgICAgLCBtX25ldHdvcmtTdGF0ZShNZWRpYVBsYXllcjo6RW1wdHkpCisgICAgLCBtX3Jl
YWR5U3RhdGUoTWVkaWFQbGF5ZXI6OkRhdGFVbmF2YWlsYWJsZSkKKyAgICAsIG1fbWVkaWFPYmpl
Y3QobmV3IE1lZGlhT2JqZWN0KCkpCisgICAgLCBtX3ZpZGVvV2lkZ2V0KG5ldyBWaWRlb1dpZGdl
dCgwKSkKKyAgICAsIG1fYXVkaW9PdXRwdXQobmV3IEF1ZGlvT3V0cHV0KCkpCisgICAgLCBtX2lz
VmlzaWJsZShmYWxzZSkKK3sKKyAgICAvLyBIaW50IHRvIFBob25vbiB0byBkaXNhYmxlIG92ZXJs
YXkgcGFpbnRpbmcKKyAgICBtX3ZpZGVvV2lkZ2V0LT5zZXRBdHRyaWJ1dGUoUXQ6OldBX0RvbnRT
aG93T25TY3JlZW4pOworCisgICAgY3JlYXRlUGF0aChtX21lZGlhT2JqZWN0LCBtX3ZpZGVvV2lk
Z2V0KTsKKyAgICBjcmVhdGVQYXRoKG1fbWVkaWFPYmplY3QsIG1fYXVkaW9PdXRwdXQpOworCisg
ICAgLy8gTWFrZSBzdXJlIHdlIGdldCB1cGRhdGVzIGZvciBlYWNoIGZyYW1lCisgICAgbV92aWRl
b1dpZGdldC0+aW5zdGFsbEV2ZW50RmlsdGVyKHRoaXMpOworICAgIGZvcmVhY2goUVdpZGdldCog
d2lkZ2V0LCBxRmluZENoaWxkcmVuPFFXaWRnZXQqPihtX3ZpZGVvV2lkZ2V0KSkgeworICAgICAg
ICB3aWRnZXQtPmluc3RhbGxFdmVudEZpbHRlcih0aGlzKTsKKyAgICB9CisKKyAgICBjb25uZWN0
KG1fbWVkaWFPYmplY3QsIFNJR05BTChzdGF0ZUNoYW5nZWQoUGhvbm9uOjpTdGF0ZSwgUGhvbm9u
OjpTdGF0ZSkpLAorICAgICAgICAgICAgdGhpcywgU0xPVChzdGF0ZUNoYW5nZWQoUGhvbm9uOjpT
dGF0ZSwgUGhvbm9uOjpTdGF0ZSkpKTsKKyAgICBjb25uZWN0KG1fbWVkaWFPYmplY3QsIFNJR05B
TCh0aWNrKHFpbnQ2NCkpLCB0aGlzLCBTTE9UKHRpY2socWludDY0KSkpOworICAgIGNvbm5lY3Qo
bV9tZWRpYU9iamVjdCwgU0lHTkFMKG1ldGFEYXRhQ2hhbmdlZCgpKSwgdGhpcywgU0xPVChtZXRh
RGF0YUNoYW5nZWQoKSkpOworICAgIGNvbm5lY3QobV9tZWRpYU9iamVjdCwgU0lHTkFMKHNlZWth
YmxlQ2hhbmdlZChib29sKSksIHRoaXMsIFNMT1Qoc2Vla2FibGVDaGFuZ2VkKGJvb2wpKSk7Cisg
ICAgY29ubmVjdChtX21lZGlhT2JqZWN0LCBTSUdOQUwoaGFzVmlkZW9DaGFuZ2VkKGJvb2wpKSwg
dGhpcywgU0xPVChoYXNWaWRlb0NoYW5nZWQoYm9vbCkpKTsKKyAgICBjb25uZWN0KG1fbWVkaWFP
YmplY3QsIFNJR05BTChidWZmZXJTdGF0dXMoaW50KSksIHRoaXMsIFNMT1QoYnVmZmVyU3RhdHVz
KGludCkpKTsKKyAgICBjb25uZWN0KG1fbWVkaWFPYmplY3QsIFNJR05BTChmaW5pc2hlZCgpKSwg
dGhpcywgU0xPVChmaW5pc2hlZCgpKSk7CisgICAgY29ubmVjdChtX21lZGlhT2JqZWN0LCBTSUdO
QUwoY3VycmVudFNvdXJjZUNoYW5nZWQoY29uc3QgUGhvbm9uOjpNZWRpYVNvdXJjZSYpKSwKKyAg
ICAgICAgICAgIHRoaXMsIFNMT1QoY3VycmVudFNvdXJjZUNoYW5nZWQoY29uc3QgUGhvbm9uOjpN
ZWRpYVNvdXJjZSYpKSk7CisgICAgY29ubmVjdChtX21lZGlhT2JqZWN0LCBTSUdOQUwoYWJvdXRU
b0ZpbmlzaCgpKSwgdGhpcywgU0xPVChhYm91dFRvRmluaXNoKCkpKTsKKyAgICBjb25uZWN0KG1f
bWVkaWFPYmplY3QsIFNJR05BTChwcmVmaW5pc2hNYXJrUmVhY2hlZChxaW50MzIpKSwgdGhpcywg
U0xPVChwcmVmaW5pc2hNYXJrUmVhY2hlZChxaW50MzIpKSk7CisgICAgY29ubmVjdChtX21lZGlh
T2JqZWN0LCBTSUdOQUwodG90YWxUaW1lQ2hhbmdlZChxaW50NjQpKSwgdGhpcywgU0xPVCh0b3Rh
bFRpbWVDaGFuZ2VkKHFpbnQ2NCkpKTsKK30KKworTWVkaWFQbGF5ZXJQcml2YXRlOjp+TWVkaWFQ
bGF5ZXJQcml2YXRlKCkKK3sKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVQaG9u
b246OmR0b3IgZGVsZXRpbmcgdmlkZW93aWRnZXQiKTsKKyAgICBkZWxldGUgbV92aWRlb1dpZGdl
dDsKKyAgICBtX3ZpZGVvV2lkZ2V0ID0gMDsKKworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVy
UHJpdmF0ZVBob25vbjo6ZHRvciBkZWxldGluZyBhdWRpb291dHB1dCIpOworICAgIGRlbGV0ZSBt
X2F1ZGlvT3V0cHV0OworICAgIG1fYXVkaW9PdXRwdXQgPSAwOworCisgICAgTE9HKE1lZGlhLCAi
TWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpkdG9yIGRlbGV0aW5nIG1lZGlhb2JqZWN0Iik7Cisg
ICAgZGVsZXRlIG1fbWVkaWFPYmplY3Q7CisgICAgbV9tZWRpYU9iamVjdCA9IDA7Cit9CisKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0PFN0cmluZz4m
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQcml2YXRl
OjpoYXNWaWRlbygpIGNvbnN0Cit7CisgICAgYm9vbCBoYXNWaWRlbyA9IG1fbWVkaWFPYmplY3Qt
Pmhhc1ZpZGVvKCk7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpo
YXNWaWRlbygpIC0+ICVzIiwgaGFzVmlkZW8gPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKyAgICByZXR1
cm4gaGFzVmlkZW87Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpsb2FkKFN0cmluZyB1
cmwpCit7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpsb2FkKFwi
JXNcIikiLCB1cmwudXRmOCgpLmRhdGEoKSk7CisKKyAgICAvLyBXZSBhcmUgbm93IGxvYWRpbmcK
KyAgICBpZiAobV9uZXR3b3JrU3RhdGUgIT0gTWVkaWFQbGF5ZXI6OkxvYWRpbmcpIHsKKyAgICAg
ICAgbV9uZXR3b3JrU3RhdGUgPSBNZWRpYVBsYXllcjo6TG9hZGluZzsKKyAgICAgICAgbV9wbGF5
ZXItPm5ldHdvcmtTdGF0ZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICAvLyBBbmQgd2UgZG9uJ3Qg
aGF2ZSBhbnkgZGF0YSB5ZXQKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IE1lZGlhUGxheWVyOjpE
YXRhVW5hdmFpbGFibGUpIHsKKyAgICAgICAgbV9yZWFkeVN0YXRlID0gTWVkaWFQbGF5ZXI6OkRh
dGFVbmF2YWlsYWJsZTsKKyAgICAgICAgbV9wbGF5ZXItPnJlYWR5U3RhdGVDaGFuZ2VkKCk7Cisg
ICAgfQorCisgICAgbV9tZWRpYU9iamVjdC0+c2V0Q3VycmVudFNvdXJjZShRVXJsKHVybCkpOwor
ICAgIG1fYXVkaW9PdXRwdXQtPnNldFZvbHVtZShtX3BsYXllci0+dm9sdW1lKCkpOworICAgIHNl
dFZpc2libGUobV9wbGF5ZXItPnZpc2libGUoKSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpjYW5jZWxMb2FkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjpwbGF5KCkKK3sKKyAgICBRX0FTU0VSVChtX21lZGlhT2JqZWN0
KTsKKworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVBob25vbjo6cGxheSgpIik7
CisgICAgbV9tZWRpYU9iamVjdC0+cGxheSgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6cGF1c2UoKQoreworICAgIFFfQVNTRVJUKG1fbWVkaWFPYmplY3QpOworCisgICAgTE9HKE1l
ZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpwYXVzZSgpIik7CisgICAgbV9tZWRpYU9i
amVjdC0+cGF1c2UoKTsKK30KKworCitib29sIE1lZGlhUGxheWVyUHJpdmF0ZTo6cGF1c2VkKCkg
Y29uc3QKK3sKKyAgICBRX0FTU0VSVChtX21lZGlhT2JqZWN0KTsKKworICAgIGJvb2wgcGF1c2Vk
ID0gbV9tZWRpYU9iamVjdC0+c3RhdGUoKSA9PSBQaG9ub246OlBhdXNlZFN0YXRlOworICAgIExP
RyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVBob25vbjo6cGF1c2VkKCkgLS0+ICVzIiwgcGF1
c2VkID8gInRydWUiIDogImZhbHNlIik7CisgICAgcmV0dXJuIHBhdXNlZDsKK30KKwordm9pZCBN
ZWRpYVBsYXllclByaXZhdGU6OnNlZWsoZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnNlZWtpbmcoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitmbG9hdCBNZWRpYVBsYXll
clByaXZhdGU6OmR1cmF0aW9uKCkgY29uc3QKK3sKKyAgICBRX0FTU0VSVChtX21lZGlhT2JqZWN0
KTsKKworICAgIGlmIChtX25ldHdvcmtTdGF0ZSA8IE1lZGlhUGxheWVyOjpMb2FkZWRNZXRhRGF0
YSkKKyAgICAgICAgcmV0dXJuIDAuMGY7CisKKyAgICBmbG9hdCBkdXJhdGlvbiA9IG1fbWVkaWFP
YmplY3QtPnRvdGFsVGltZSgpIC8gMTAwMC4wZjsKKworICAgIGlmIChkdXJhdGlvbiA9PSAwLjBm
KSAvLyBXZSBhcmUgc3RyZWFtaW5nCisgICAgICAgIGR1cmF0aW9uID0gc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46OmluZmluaXR5KCk7CisKKyAgICBMT0coTWVkaWEsICJNZWRpYVBsYXllclBy
aXZhdGVQaG9ub246OmR1cmF0aW9uKCkgLS0+ICVmIiwgZHVyYXRpb24pOworICAgIHJldHVybiBk
dXJhdGlvbjsKK30KKworZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjpjdXJyZW50VGltZSgpIGNv
bnN0Cit7CisgICAgUV9BU1NFUlQobV9tZWRpYU9iamVjdCk7CisKKyAgICBmbG9hdCBjdXJyZW50
VGltZSA9IG1fbWVkaWFPYmplY3QtPmN1cnJlbnRUaW1lKCkgLyAxMDAwLjBmOworCisgICAgTE9H
KE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpjdXJyZW50VGltZSgpIC0tPiAlZiIs
IGN1cnJlbnRUaW1lKTsKKyAgICByZXR1cm4gY3VycmVudFRpbWU7Cit9CisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpzZXRFbmRUaW1lKGZsb2F0IGVuZFRpbWUpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lQnVmZmVyZWQo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMGY7Cit9CisK
K2Zsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWF4VGltZVNlZWthYmxlKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjBmOworfQorCit1bnNpZ25lZCBNZWRp
YVBsYXllclByaXZhdGU6OmJ5dGVzTG9hZGVkKCkgY29uc3QKK3sgCisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBNZWRpYVBsYXllclByaXZhdGU6OnRvdGFs
Qnl0ZXNLbm93bigpIGNvbnN0Cit7CisgICAgLy9ub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKwordW5zaWduZWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp0b3RhbEJ5dGVzKCkg
Y29uc3QKK3sKKyAgICAvL25vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3Zv
aWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRSYXRlKGZsb2F0KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRWb2x1bWUoZmxvYXQgdm9s
dW1lKQoreworICAgIFFfQVNTRVJUKG1fYXVkaW9PdXRwdXQpOworCisgICAgbV9hdWRpb091dHB1
dC0+c2V0Vm9sdW1lKHZvbHVtZSk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRN
dXRlZChib29sIG11dGVkKQoreworICAgIFFfQVNTRVJUKG1fYXVkaW9PdXRwdXQpOworCisgICAg
bV9hdWRpb091dHB1dC0+c2V0TXV0ZWQobXV0ZWQpOworfQorCisKK2ludCBNZWRpYVBsYXllclBy
aXZhdGU6OmRhdGFSYXRlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAwOworfQorCisKK01lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgTWVkaWFQbGF5ZXJQcml2
YXRlOjpuZXR3b3JrU3RhdGUoKSBjb25zdAoreworICAgIGNvbnN0IFFNZXRhT2JqZWN0KiBtZXRh
T2JqID0gdGhpcy0+bWV0YU9iamVjdCgpOworICAgIFFNZXRhRW51bSBuZXR3b3JrU3RhdGVzID0g
bWV0YU9iai0+ZW51bWVyYXRvcihtZXRhT2JqLT5pbmRleE9mRW51bWVyYXRvcigiTmV0d29ya1N0
YXRlIikpOworICAgIExPRyhNZWRpYSwgIk1lZGlhUGxheWVyUHJpdmF0ZVBob25vbjo6bmV0d29y
a1N0YXRlKCkgLS0+ICVzIiwgbmV0d29ya1N0YXRlcy52YWx1ZVRvS2V5KG1fbmV0d29ya1N0YXRl
KSk7CisgICAgcmV0dXJuIG1fbmV0d29ya1N0YXRlOworfQorCitNZWRpYVBsYXllcjo6UmVhZHlT
dGF0ZSBNZWRpYVBsYXllclByaXZhdGU6OnJlYWR5U3RhdGUoKSBjb25zdAoreworICAgIGNvbnN0
IFFNZXRhT2JqZWN0KiBtZXRhT2JqID0gdGhpcy0+bWV0YU9iamVjdCgpOworICAgIFFNZXRhRW51
bSByZWFkeVN0YXRlcyA9IG1ldGFPYmotPmVudW1lcmF0b3IobWV0YU9iai0+aW5kZXhPZkVudW1l
cmF0b3IoIlJlYWR5U3RhdGUiKSk7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRl
UGhvbm9uOjpyZWFkeVN0YXRlKCkgLS0+ICVzIiwgcmVhZHlTdGF0ZXMudmFsdWVUb0tleShtX3Jl
YWR5U3RhdGUpKTsKKyAgICByZXR1cm4gbV9yZWFkeVN0YXRlOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6dXBkYXRlU3RhdGVzKCkKK3sKKyAgICBRX0FTU0VSVChtX21lZGlhT2JqZWN0
KTsKKworICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgb2xkTmV0d29ya1N0YXRlID0gbV9u
ZXR3b3JrU3RhdGU7CisgICAgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgb2xkUmVhZHlTdGF0ZSA9
IG1fcmVhZHlTdGF0ZTsKKworICAgIFBob25vbjo6U3RhdGUgc3RhdGUgPSBtX21lZGlhT2JqZWN0
ID8gbV9tZWRpYU9iamVjdC0+c3RhdGUoKSA6IFBob25vbjo6RXJyb3JTdGF0ZTsKKworICAgIGlm
IChzdGF0ZSA9PSBQaG9ub246OlN0b3BwZWRTdGF0ZSkgeworICAgICAgICBpZiAob2xkTmV0d29y
a1N0YXRlIDwgTWVkaWFQbGF5ZXI6OkxvYWRlZE1ldGFEYXRhKSB7CisgICAgICAgICAgICBtX25l
dHdvcmtTdGF0ZSA9IE1lZGlhUGxheWVyOjpMb2FkZWRNZXRhRGF0YTsKKyAgICAgICAgICAgIG1f
cmVhZHlTdGF0ZSA9IE1lZGlhUGxheWVyOjpEYXRhVW5hdmFpbGFibGU7CisgICAgICAgICAgICBt
X21lZGlhT2JqZWN0LT5wYXVzZSgpOworICAgICAgICB9CisgICAgfSBlbHNlIGlmIChzdGF0ZSA9
PSBQaG9ub246OlBhdXNlZFN0YXRlKSB7CisgICAgICAgIG1fbmV0d29ya1N0YXRlID0gTWVkaWFQ
bGF5ZXI6OkxvYWRlZEZpcnN0RnJhbWU7CisgICAgICAgIG1fcmVhZHlTdGF0ZSA9IE1lZGlhUGxh
eWVyOjpDYW5QbGF5VGhyb3VnaDsKKyAgICB9CisKKyAgICBpZiAoc2Vla2luZygpKQorICAgICAg
ICBtX3JlYWR5U3RhdGUgPSBNZWRpYVBsYXllcjo6RGF0YVVuYXZhaWxhYmxlOworCisgICAgaWYg
KG1fbmV0d29ya1N0YXRlICE9IG9sZE5ldHdvcmtTdGF0ZSkgeworICAgICAgICBjb25zdCBRTWV0
YU9iamVjdCogbWV0YU9iaiA9IHRoaXMtPm1ldGFPYmplY3QoKTsKKyAgICAgICAgUU1ldGFFbnVt
IG5ldHdvcmtTdGF0ZXMgPSBtZXRhT2JqLT5lbnVtZXJhdG9yKG1ldGFPYmotPmluZGV4T2ZFbnVt
ZXJhdG9yKCJOZXR3b3JrU3RhdGUiKSk7CisgICAgICAgIHFEZWJ1ZygiTmV0d29yayBzdGF0ZSBj
aGFuZ2VkIGZyb20gJyVzJyB0byAnJXMnIiwKKyAgICAgICAgICAgICAgICBuZXR3b3JrU3RhdGVz
LnZhbHVlVG9LZXkob2xkTmV0d29ya1N0YXRlKSwKKyAgICAgICAgICAgICAgICBuZXR3b3JrU3Rh
dGVzLnZhbHVlVG9LZXkobV9uZXR3b3JrU3RhdGUpKTsKKyAgICAgICAgbV9wbGF5ZXItPm5ldHdv
cmtTdGF0ZUNoYW5nZWQoKTsKKyAgICB9CisKKyAgICBpZiAobV9yZWFkeVN0YXRlICE9IG9sZFJl
YWR5U3RhdGUpIHsKKyAgICAgICAgY29uc3QgUU1ldGFPYmplY3QqIG1ldGFPYmogPSB0aGlzLT5t
ZXRhT2JqZWN0KCk7CisgICAgICAgIFFNZXRhRW51bSByZWFkeVN0YXRlcyA9IG1ldGFPYmotPmVu
dW1lcmF0b3IobWV0YU9iai0+aW5kZXhPZkVudW1lcmF0b3IoIlJlYWR5U3RhdGUiKSk7CisgICAg
ICAgIHFEZWJ1ZygiUmVhZHkgc3RhdGUgY2hhbmdlZCBmcm9tICclcycgdG8gJyVzJyIsCisgICAg
ICAgICAgICAgICAgcmVhZHlTdGF0ZXMudmFsdWVUb0tleShvbGRSZWFkeVN0YXRlKSwKKyAgICAg
ICAgICAgICAgICByZWFkeVN0YXRlcy52YWx1ZVRvS2V5KG1fcmVhZHlTdGF0ZSkpOworICAgICAg
ICBtX3BsYXllci0+cmVhZHlTdGF0ZUNoYW5nZWQoKTsKKyAgICB9Cit9CisKK3ZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjpzZXRWaXNpYmxlKGJvb2wgdmlzaWJsZSkKK3sKKyAgICBtX2lzVmlzaWJs
ZSA9IHZpc2libGU7CisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpz
ZXRWaXNpYmxlKCVzKSIsIHZpc2libGUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKKworICAgIG1fdmlk
ZW9XaWRnZXQtPnNldFZpc2libGUobV9pc1Zpc2libGUpOworfQorCit2b2lkIE1lZGlhUGxheWVy
UHJpdmF0ZTo6c2V0UmVjdChjb25zdCBJbnRSZWN0JiBuZXdSZWN0KQoreworICAgIGlmICghbV92
aWRlb1dpZGdldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5
ZXJQcml2YXRlUGhvbm9uOjpzZXRSZWN0KCVkLCVkICVkeCVkKSIsCisgICAgICAgICAgICAgICAg
bmV3UmVjdC54KCksIG5ld1JlY3QueSgpLAorICAgICAgICAgICAgICAgIG5ld1JlY3Qud2lkdGgo
KSwgbmV3UmVjdC5oZWlnaHQoKSk7CisKKyAgICBRUmVjdCBjdXJyZW50UmVjdCA9IG1fdmlkZW9X
aWRnZXQtPnJlY3QoKTsKKworICAgIGlmIChuZXdSZWN0LndpZHRoKCkgIT0gY3VycmVudFJlY3Qu
d2lkdGgoKSB8fCBuZXdSZWN0LmhlaWdodCgpICE9IGN1cnJlbnRSZWN0LmhlaWdodCgpKQorICAg
ICAgICBtX3ZpZGVvV2lkZ2V0LT5yZXNpemUobmV3UmVjdC53aWR0aCgpLCBuZXdSZWN0LmhlaWdo
dCgpKTsKK30KKworCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bG9hZFN0YXRlQ2hhbmdlZCgp
IAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjpyYXRlQ2hhbmdlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBNZWRp
YVBsYXllclByaXZhdGU6OnNpemVDaGFuZ2VkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6dGltZUNoYW5nZWQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjp2b2x1bWVDaGFuZ2Vk
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0
ZTo6ZGlkRW5kKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIE1lZGlhUGxh
eWVyUHJpdmF0ZTo6bG9hZGluZ0ZhaWxlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
KworSW50U2l6ZSBNZWRpYVBsYXllclByaXZhdGU6Om5hdHVyYWxTaXplKCkgY29uc3QKK3sKKyAg
ICBRX0FTU0VSVChtX3ZpZGVvV2lkZ2V0KTsKKworICAgIGlmICghaGFzVmlkZW8oKSkKKyAgICAg
ICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAgICBpZiAobV9uZXR3b3JrU3RhdGUgPCBNZWRpYVBs
YXllcjo6TG9hZGVkTWV0YURhdGEpCisgICAgICAgICAgIHJldHVybiBJbnRTaXplKCk7CisKKyAg
ICBRU2l6ZSB2aWRlb1NpemUgPSBtX3ZpZGVvV2lkZ2V0LT5zaXplSGludCgpOworICAgIEludFNp
emUgbmF0dXJhbFNpemUodmlkZW9TaXplLndpZHRoKCksIHZpZGVvU2l6ZS5oZWlnaHQoKSk7Cisg
ICAgTE9HKE1lZGlhLCAiTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uOjpuYXR1cmFsU2l6ZSgpIC0+
ICVkeCVkIiwKKyAgICAgICAgICAgIG5hdHVyYWxTaXplLndpZHRoKCksIG5hdHVyYWxTaXplLmhl
aWdodCgpKTsKKyAgICByZXR1cm4gbmF0dXJhbFNpemU7Cit9CisKK2Jvb2wgTWVkaWFQbGF5ZXJQ
cml2YXRlOjpldmVudEZpbHRlcihRT2JqZWN0KiBvYmosIFFFdmVudCogZXZlbnQpCit7CisgICAg
aWYgKGV2ZW50LT50eXBlKCkgPT0gUUV2ZW50OjpQYWludCkKKyAgICAgICAgbV9wbGF5ZXItPnJl
cGFpbnQoKTsKKworICAgIHJldHVybiBRT2JqZWN0OjpldmVudEZpbHRlcihvYmosIGV2ZW50KTsK
K30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnJlcGFpbnQoKQoreworICAgIG1fcGxheWVy
LT5yZXBhaW50KCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpwYWludChHcmFwaGlj
c0NvbnRleHQqIGdyYXBoaWNzQ29udGVjdCwgY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBR
X0FTU0VSVChtX3ZpZGVvV2lkZ2V0KTsKKworICAgIGlmIChncmFwaGljc0NvbnRlY3QtPnBhaW50
aW5nRGlzYWJsZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2lzVmlzaWJsZSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy9RUGFpbnRlciogcGFpbnRlciA9IHN0YXRpY19jYXN0
PFFQYWludGVyKj4oZ3JhcGhpY3NDb250ZWN0LT5wbGF0Zm9ybUNvbnRleHQoKSk7CisgICAgUVBh
aW50ZXIqIHBhaW50ZXIgPSBncmFwaGljc0NvbnRlY3QtPnBsYXRmb3JtQ29udGV4dCgpOworCisg
ICAgcGFpbnRlci0+ZmlsbFJlY3QocmVjdCwgUXQ6OmJsYWNrKTsKKworICAgIG1fdmlkZW9XaWRn
ZXQtPnJlbmRlcihwYWludGVyLCBRUG9pbnQocmVjdC54KCksIHJlY3QueSgpKSwKKyAgICAgICAg
ICAgIFFSZWdpb24oMCwgMCwgcmVjdC53aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7Cit9CisKKy8v
ID09PT09PT09PT09PT09PT09PT09PT0gUGhvbm9uOjpNZWRpYU9iamVjdCBzaWduYWxzID09PT09
PT09PT09PT09PT09PT09PT0KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnN0YXRlQ2hhbmdl
ZChQaG9ub246OlN0YXRlLCBQaG9ub246OlN0YXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgTE9HX01FRElBT0JKRUNUKCk7CisgICAgdXBkYXRlU3RhdGVzKCk7Cit9CisKK3ZvaWQg
TWVkaWFQbGF5ZXJQcml2YXRlOjp0aWNrKHFpbnQ2NCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6bWV0YURhdGFDaGFuZ2VkKCkKK3sKKyAg
ICBMT0coTWVkaWEsICJNZWRpYVBsYXllclByaXZhdGVQaG9ub246Om1ldGFEYXRhQ2hhbmdlZCgp
Iik7CisgICAgTE9HX01FRElBT0JKRUNUKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRl
OjpzZWVrYWJsZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIExP
R19NRURJQU9CSkVDVCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6aGFzVmlkZW9D
aGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBMT0dfTUVESUFPQkpF
Q1QoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlclN0YXR1cyhpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBMT0dfTUVESUFPQkpFQ1QoKTsKK30KKwordm9p
ZCBNZWRpYVBsYXllclByaXZhdGU6OmZpbmlzaGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIExPR19NRURJQU9CSkVDVCgpOworfQorCit2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6
Y3VycmVudFNvdXJjZUNoYW5nZWQoY29uc3QgUGhvbm9uOjpNZWRpYVNvdXJjZSYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICBMT0dfTUVESUFPQkpFQ1QoKTsKK30KKwordm9pZCBNZWRp
YVBsYXllclByaXZhdGU6OmFib3V0VG9GaW5pc2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgTE9HX01FRElBT0JKRUNUKCk7Cit9CisKK3ZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpw
cmVmaW5pc2hNYXJrUmVhY2hlZChxaW50MzIpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICBMT0dfTUVESUFPQkpFQ1QoKTsKK30KKwordm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnRvdGFs
VGltZUNoYW5nZWQocWludDY0IHRvdGFsVGltZSkKK3sKKyAgICBMT0coTWVkaWEsICJNZWRpYVBs
YXllclByaXZhdGVQaG9ub246OnRvdGFsVGltZUNoYW5nZWQoJWQpIiwgdG90YWxUaW1lKTsKKyAg
ICBMT0dfTUVESUFPQkpFQ1QoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjaW5j
bHVkZSAibW9jX01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHAiCmRpZmYgLS1naXQgYS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zZGY1Y2Y5Ci0tLSAvZGV2L251bGwKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24u
aApAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAgICBDb3B5cmlnaHQgKEMpIDIwMDggVHJvbGx0ZWNo
IEFTQQorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFs
b25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3Qs
IHdyaXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVT
QS4KKyovCisKKyNpZm5kZWYgTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uX2gKKyNkZWZpbmUgTWVk
aWFQbGF5ZXJQcml2YXRlUGhvbm9uX2gKKworI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCisjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKKyNpbmNsdWRlIDxRT2JqZWN0PgorI2luY2x1ZGUg
PHBob25vbm5hbWVzcGFjZS5oPgorCitRVF9CRUdJTl9OQU1FU1BBQ0UKK2NsYXNzIFFXaWRnZXQ7
CitjbGFzcyBRVXJsOworUVRfRU5EX05BTUVTUEFDRQorCituYW1lc3BhY2UgUGhvbm9uIHsKKyAg
ICBjbGFzcyBNZWRpYU9iamVjdDsKKyAgICBjbGFzcyBWaWRlb1dpZGdldDsKKyAgICBjbGFzcyBB
dWRpb091dHB1dDsKKyAgICBjbGFzcyBNZWRpYVNvdXJjZTsKK30KKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCisgICAgY2xhc3MgTWVkaWFQbGF5ZXJQcml2YXRlIDogcHVibGljIFFPYmplY3QsIE5v
bmNvcHlhYmxlIHsKKworICAgICAgICBRX09CSkVDVAorCisgICAgcHVibGljOgkKKyAgICAgICAg
TWVkaWFQbGF5ZXJQcml2YXRlKE1lZGlhUGxheWVyKik7CisgICAgICAgIH5NZWRpYVBsYXllclBy
aXZhdGUoKTsKKworICAgICAgICAvLyBUaGVzZSBlbnVtcyBhcmUgdXNlZCBmb3IgZGVidWdnaW5n
CisgICAgICAgIFFfRU5VTVMoUmVhZHlTdGF0ZSBOZXR3b3JrU3RhdGUgUGhvbm9uU3RhdGUpCisK
KyAgICAgICAgZW51bSBSZWFkeVN0YXRlIHsKKyAgICAgICAgICAgIERhdGFVbmF2YWlsYWJsZSwK
KyAgICAgICAgICAgIENhblNob3dDdXJyZW50RnJhbWUsCisgICAgICAgICAgICBDYW5QbGF5LAor
ICAgICAgICAgICAgQ2FuUGxheVRocm91Z2gKKyAgICAgICAgfTsKKworICAgICAgICBlbnVtIE5l
dHdvcmtTdGF0ZSB7CisgICAgICAgICAgICBFbXB0eSwKKyAgICAgICAgICAgIExvYWRGYWlsZWQs
CisgICAgICAgICAgICBMb2FkaW5nLAorICAgICAgICAgICAgTG9hZGVkTWV0YURhdGEsCisgICAg
ICAgICAgICBMb2FkZWRGaXJzdEZyYW1lLAorICAgICAgICAgICAgTG9hZGVkCisgICAgICAgIH07
CisKKyAgICAgICAgZW51bSBQaG9ub25TdGF0ZSB7CisgICAgICAgICAgICBMb2FkaW5nU3RhdGUs
CisgICAgICAgICAgICBTdG9wcGVkU3RhdGUsCisgICAgICAgICAgICBQbGF5aW5nU3RhdGUsCisg
ICAgICAgICAgICBCdWZmZXJpbmdTdGF0ZSwKKyAgICAgICAgICAgIFBhdXNlZFN0YXRlLAorICAg
ICAgICAgICAgRXJyb3JTdGF0ZQorICAgICAgICB9OworCisgICAgICAgIEludFNpemUgbmF0dXJh
bFNpemUoKSBjb25zdDsKKyAgICAgICAgYm9vbCBoYXNWaWRlbygpIGNvbnN0OworCisgICAgICAg
IHZvaWQgbG9hZChTdHJpbmcgdXJsKTsKKyAgICAgICAgdm9pZCBjYW5jZWxMb2FkKCk7CisKKyAg
ICAgICAgdm9pZCBwbGF5KCk7CisgICAgICAgIHZvaWQgcGF1c2UoKTsKKworICAgICAgICBib29s
IHBhdXNlZCgpIGNvbnN0OworICAgICAgICBib29sIHNlZWtpbmcoKSBjb25zdDsKKworICAgICAg
ICBmbG9hdCBkdXJhdGlvbigpIGNvbnN0OworICAgICAgICBmbG9hdCBjdXJyZW50VGltZSgpIGNv
bnN0OworICAgICAgICB2b2lkIHNlZWsoZmxvYXQpOworICAgICAgICB2b2lkIHNldEVuZFRpbWUo
ZmxvYXQpOworCisgICAgICAgIHZvaWQgc2V0UmF0ZShmbG9hdCk7CisgICAgICAgIHZvaWQgc2V0
Vm9sdW1lKGZsb2F0KTsKKyAgICAgICAgdm9pZCBzZXRNdXRlZChib29sKTsKKworICAgICAgICBp
bnQgZGF0YVJhdGUoKSBjb25zdDsKKworICAgICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRl
IG5ldHdvcmtTdGF0ZSgpIGNvbnN0OworICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBy
ZWFkeVN0YXRlKCkgY29uc3Q7CisKKyAgICAgICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29u
c3Q7CisgICAgICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OworICAgICAgICB1bnNp
Z25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OworICAgICAgICBib29sIHRvdGFsQnl0ZXNLbm93bigp
IGNvbnN0OworICAgICAgICB1bnNpZ25lZCB0b3RhbEJ5dGVzKCkgY29uc3Q7CisKKyAgICAgICAg
dm9pZCBzZXRWaXNpYmxlKGJvb2wpOworICAgICAgICB2b2lkIHNldFJlY3QoY29uc3QgSW50UmVj
dCYpOworCisgICAgICAgIHZvaWQgbG9hZFN0YXRlQ2hhbmdlZCgpOworICAgICAgICB2b2lkIHJh
dGVDaGFuZ2VkKCk7CisgICAgICAgIHZvaWQgc2l6ZUNoYW5nZWQoKTsKKyAgICAgICAgdm9pZCB0
aW1lQ2hhbmdlZCgpOworICAgICAgICB2b2lkIHZvbHVtZUNoYW5nZWQoKTsKKyAgICAgICAgdm9p
ZCBkaWRFbmQoKTsKKyAgICAgICAgdm9pZCBsb2FkaW5nRmFpbGVkKCk7CisKKyAgICAgICAgdm9p
ZCByZXBhaW50KCk7CisgICAgICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3Qg
SW50UmVjdCYpOworICAgICAgICBzdGF0aWMgdm9pZCBnZXRTdXBwb3J0ZWRUeXBlcyhIYXNoU2V0
PFN0cmluZz4mKTsKKyAgICAgICAgc3RhdGljIGJvb2wgaXNBdmFpbGFibGUoKSAgIHsgcmV0dXJu
IHRydWU7IH0KKworICAgIHByb3RlY3RlZDoKKyAgICAgICAgYm9vbCBldmVudEZpbHRlcihRT2Jq
ZWN0KiwgUUV2ZW50Kik7CisKKyAgICBwcml2YXRlIHNsb3RzOgorICAgICAgICB2b2lkIHN0YXRl
Q2hhbmdlZChQaG9ub246OlN0YXRlLCBQaG9ub246OlN0YXRlKTsKKyAgICAgICAgdm9pZCB0aWNr
KHFpbnQ2NCk7CisgICAgICAgIHZvaWQgbWV0YURhdGFDaGFuZ2VkKCk7CisgICAgICAgIHZvaWQg
c2Vla2FibGVDaGFuZ2VkKGJvb2wpOworICAgICAgICB2b2lkIGhhc1ZpZGVvQ2hhbmdlZChib29s
KTsKKyAgICAgICAgdm9pZCBidWZmZXJTdGF0dXMoaW50KTsKKyAgICAgICAgdm9pZCBmaW5pc2hl
ZCgpOworICAgICAgICB2b2lkIGN1cnJlbnRTb3VyY2VDaGFuZ2VkKGNvbnN0IFBob25vbjo6TWVk
aWFTb3VyY2UmKTsKKyAgICAgICAgdm9pZCBhYm91dFRvRmluaXNoKCk7CisgICAgICAgIHZvaWQg
cHJlZmluaXNoTWFya1JlYWNoZWQocWludDMyKTsKKyAgICAgICAgdm9pZCB0b3RhbFRpbWVDaGFu
Z2VkKHFpbnQ2NCk7CisKKyAgICBwcml2YXRlOgorICAgICAgICB2b2lkIHVwZGF0ZVN0YXRlcygp
OworCisgICAgICAgIE1lZGlhUGxheWVyKiBtX3BsYXllcjsKKworICAgICAgICBNZWRpYVBsYXll
cjo6TmV0d29ya1N0YXRlIG1fbmV0d29ya1N0YXRlOworICAgICAgICBNZWRpYVBsYXllcjo6UmVh
ZHlTdGF0ZSBtX3JlYWR5U3RhdGU7CisKKyAgICAgICAgUGhvbm9uOjpNZWRpYU9iamVjdCogbV9t
ZWRpYU9iamVjdDsKKyAgICAgICAgUGhvbm9uOjpWaWRlb1dpZGdldCogbV92aWRlb1dpZGdldDsK
KyAgICAgICAgUGhvbm9uOjpBdWRpb091dHB1dCogbV9hdWRpb091dHB1dDsKKworICAgICAgICBi
b29sIG1faXNWaXNpYmxlOworICAgIH07Cit9CisKKyNlbmRpZiAvLyBNZWRpYVBsYXllclByaXZh
dGVQaG9ub25faAo=
</data>
<flag name="review"
          id="8603"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>