<?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>167432</bug_id>
          
          <creation_ts>2017-01-25 14:09:21 -0800</creation_ts>
          <short_desc>[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks</short_desc>
          <delta_ts>2017-01-25 16:33:13 -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>WebCore Misc.</component>
          <version>WebKit 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1269959</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-25 14:09:21 -0800</bug_when>
    <thetext>[WebRTC] Add support for libwebrtc video incoming and outgoing video tracks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269984</commentid>
    <comment_count>1</comment_count>
      <attachid>299751</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-01-25 14:55:44 -0800</bug_when>
    <thetext>Created attachment 299751
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269985</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 14:58:25 -0800</bug_when>
    <thetext>Attachment 299751 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.h:56:  is_screencast is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
ERROR: Source/WebCore/platform/mediastream/mac/RealtimeOutgoingVideoSource.h:57:  needs_denoising is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270027</commentid>
    <comment_count>3</comment_count>
      <attachid>299751</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 16:33:09 -0800</bug_when>
    <thetext>Comment on attachment 299751
Patch

Clearing flags on attachment: 299751

Committed r211177: &lt;http://trac.webkit.org/changeset/211177&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1270028</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-25 16:33:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299751</attachid>
            <date>2017-01-25 14:55:44 -0800</date>
            <delta_ts>2017-01-25 16:33:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167432-20170125145343.patch</filename>
            <type>text/plain</type>
            <size>24217</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGVmY2QwZWViNDg4YTY2
MjZkMjM4M2U2ODlhYjA1NDhjZDBkYThlYy4uNDc5Yjc5MzI3NDFkYzI1OTI1MjNjZjU0ZTdkMDVm
YjhmNmE2Yjk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAxLTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViUlRDXSBBZGQgc3Vw
cG9ydCBmb3IgbGlid2VicnRjIHZpZGVvIGluY29taW5nIGFuZCBvdXRnb2luZyB2aWRlbyB0cmFj
a3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzQz
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBj
b3ZlcmVkIGJ5IHRlc3RzIHJpZ2h0IG5vdywgdGhpcyB3aWxsIGJlIGNvdmVyZWQgYnkgbGF5b3V0
L21vY2sgdGVzdHMuCisgICAgICAgIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZSBjb25zdW1l
cyB2aWRlbyBmcmFtZXMgZ2l2ZW4gYnkgbGlid2VicnRjLgorICAgICAgICBSZWFsdGltZU91dGdv
aW5nVmlkZW9Tb3VyY2UgY29uc3VtZXMgdmlkZW8gZnJhbWVzIGZyb20gV2ViQ29yZSB0cmFja3Mg
KGNhcHR1cmUgdHlwaWNhbGx5KSBhbmQgZmVlZHMgbGlid2VicnRjIHdpdGggdGhlbS4KKworICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZUluY29taW5nVmlkZW9Tb3Vy
Y2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c3RvcFByb2R1Y2luZ0RhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpPbkZyYW1l
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6cHJvY2Vz
c05ld1NhbXBsZSk6CisgICAgICAgIChXZWJDb3JlOjpkcmF3SW1hZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpjdXJyZW50RnJhbWVJbWFnZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U6OnBhaW50Q3VycmVu
dEZyYW1lSW5Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21pbmdWaWRl
b1NvdXJjZTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZTo6c2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVJbmNv
bWluZ1ZpZGVvU291cmNlOjpzdXBwb3J0ZWRDb25zdHJhaW50cyk6CisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5oOiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVv
U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OkdldFN0YXRzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6QWRkT3JVcGRhdGVTaW5rKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6UmVtb3ZlU2luayk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJjZUhhc01v
cmVNZWRpYURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU91dGdvaW5nVmlkZW9Tb3VyY2UuaDogQWRkZWQuCisKIDIwMTctMDEtMjUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5mQGdtYWlsLmNvbT4KIAogICAgICAgICBbV2ViUlRDXSBJbnRyb2R1Y2UgbGli
d2VicnRjIGFic3RyYWN0aW9uIGZvciBXSzEvV0syIGltcGxlbWVudGF0aW9ucwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jM2E5YjgwMjY2
NmE5MmRlZDE2MmI4ODVkYmJkYmI3YTE3ODZjNjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZS5jcHAKQEAgLTAsMCArMSwyMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiAgICBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiAgICBkaXN0cmlidXRpb24uCisgKiAzLiBO
ZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzIGNvbnRy
aWJ1dG9ycworICogICAgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbSB0aGlzCisgKiAgICBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEZJWE1FOiBEbyBjbGVhbi11cCBp
biB0aGUgaW5jbHVkZXMKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlYWx0aW1l
SW5jb21pbmdWaWRlb1NvdXJjZS5oIgorCisjaWYgVVNFKExJQldFQlJUQykKKworI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIk1lZGlhU2FtcGxlQVZGT2JqQy5oIgorI2luY2x1ZGUgPHdl
YnJ0Yy9jb21tb25fdmlkZW8vaW5jbHVkZS9jb3JldmlkZW9fZnJhbWVfYnVmZmVyLmg+CisjaW5j
bHVkZSA8d2VicnRjL2NvbW1vbl92aWRlby9saWJ5dXYvaW5jbHVkZS93ZWJydGNfbGlieXV2Lmg+
CisjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KKworI2luY2x1ZGUgIkNvcmVNZWRpYVNvZnRM
aW5rLmgiCisjaW5jbHVkZSAiQ29yZVZpZGVvU29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitSZWY8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBSZWFsdGltZUluY29taW5n
VmlkZW9Tb3VyY2U6OmNyZWF0ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNr
SW50ZXJmYWNlPiYmIHZpZGVvVHJhY2ssIFN0cmluZyYmIHRyYWNrSWQpCit7CisgICAgY29uc3Qg
T1NUeXBlIGltYWdlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdSQTsKKyAgICBSZXRh
aW5QdHI8Q0ZOdW1iZXJSZWY+IGltYWdlRm9ybWF0TnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNy
ZWF0ZShudWxscHRyLCAga0NGTnVtYmVySW50VHlwZSwgICZpbWFnZUZvcm1hdCkpOworCisgICAg
UmV0YWluUHRyPENGTXV0YWJsZURpY3Rpb25hcnlSZWY+IGNvbmZvcm1lck9wdGlvbnMgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoMCwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5
Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgIENGRGlj
dGlvbmFyeVNldFZhbHVlKGNvbmZvcm1lck9wdGlvbnMuZ2V0KCksIGtDVlBpeGVsQnVmZmVyUGl4
ZWxGb3JtYXRUeXBlS2V5LCBpbWFnZUZvcm1hdE51bWJlci5nZXQoKSk7CisgICAgUGl4ZWxCdWZm
ZXJDb25mb3JtZXJDViBjb25mb3JtZXIoY29uZm9ybWVyT3B0aW9ucy5nZXQoKSk7CisKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlKFdU
Rk1vdmUodmlkZW9UcmFjayksIFdURk1vdmUodHJhY2tJZCksIGNvbmZvcm1lck9wdGlvbnMuZ2V0
KCkpKTsKKyAgICBzb3VyY2UtPnN0YXJ0UHJvZHVjaW5nRGF0YSgpOworICAgIHJldHVybiBzb3Vy
Y2U7Cit9CisKK1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6UmVhbHRpbWVJbmNvbWluZ1Zp
ZGVvU291cmNlKHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZhY2U+
JiYgdmlkZW9UcmFjaywgU3RyaW5nJiYgdmlkZW9UcmFja0lkLCBDRk11dGFibGVEaWN0aW9uYXJ5
UmVmIGNvbmZvcm1lck9wdGlvbnMpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFdURk1vdmUo
dmlkZW9UcmFja0lkKSwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFN0cmluZygp
KQorICAgICwgbV92aWRlb1RyYWNrKFdURk1vdmUodmlkZW9UcmFjaykpCisgICAgLCBtX2NvbmZv
cm1lcihjb25mb3JtZXJPcHRpb25zKQoreworICAgIG1fbXV0ZWQgPSAhbV92aWRlb1RyYWNrOwor
ICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKDY0MCk7CisgICAgbV9jdXJyZW50U2V0dGlu
Z3Muc2V0SGVpZ2h0KDQ4MCk7Cit9CisKK3ZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNl
OjpzdGFydFByb2R1Y2luZ0RhdGEoKQoreworICAgIGlmIChtX2lzUHJvZHVjaW5nRGF0YSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9pc1Byb2R1Y2luZ0RhdGEgPSB0cnVlOworICAgIGlmICht
X3ZpZGVvVHJhY2spCisgICAgICAgIG1fdmlkZW9UcmFjay0+QWRkT3JVcGRhdGVTaW5rKHRoaXMs
IHJ0Yzo6VmlkZW9TaW5rV2FudHMoKSk7Cit9CisKK3ZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVv
U291cmNlOjpzdG9wUHJvZHVjaW5nRGF0YSgpCit7CisgICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0
YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pc1Byb2R1Y2luZ0RhdGEgPSBmYWxzZTsKKyAg
ICBpZiAobV92aWRlb1RyYWNrKQorICAgICAgICBtX3ZpZGVvVHJhY2stPlJlbW92ZVNpbmsodGhp
cyk7Cit9CisKK3ZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpPbkZyYW1lKGNvbnN0
IHdlYnJ0Yzo6VmlkZW9GcmFtZSYgZnJhbWUpCit7CisgICAgaWYgKCFtX2lzUHJvZHVjaW5nRGF0
YSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBidWZmZXIgPSBmcmFtZS52aWRlb19mcmFt
ZV9idWZmZXIoKTsKKyAgICBDVlBpeGVsQnVmZmVyUmVmIHBpeGVsQnVmZmVyID0gc3RhdGljX2Nh
c3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oYnVmZmVyLT5uYXRpdmVfaGFuZGxlKCkpOworCisgICAgLy8g
RklYTUU6IENvbnZlcnQgdGltaW5nIGluZm9ybWF0aW9uIGZyb20gVmlkZW9GcmFtZSB0byBDTVNh
bXBsZVRpbWluZ0luZm8uCisgICAgLy8gRm9yIHRoZSBtb21lbnQsIHdlIHdpbGwgcHJldGVuZCB0
aGF0IGZyYW1lcyBzaG91bGQgYmUgcmVuZGVyZWQgYXNhcC4KKyAgICBDTVNhbXBsZVRpbWluZ0lu
Zm8gdGltaW5nSW5mbzsKKyAgICB0aW1pbmdJbmZvLnByZXNlbnRhdGlvblRpbWVTdGFtcCA9IGtD
TVRpbWVJbnZhbGlkOworICAgIHRpbWluZ0luZm8uZGVjb2RlVGltZVN0YW1wID0ga0NNVGltZUlu
dmFsaWQ7CisgICAgdGltaW5nSW5mby5kdXJhdGlvbiA9IGtDTVRpbWVJbnZhbGlkOworCisgICAg
Q01WaWRlb0Zvcm1hdERlc2NyaXB0aW9uUmVmIGZvcm1hdERlc2NyaXB0aW9uOworICAgIE9TU3Rh
dHVzIG9zdGF0dXMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25DcmVhdGVGb3JJbWFnZUJ1ZmZl
cihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJlZilwaXhlbEJ1ZmZlciwgJmZv
cm1hdERlc2NyaXB0aW9uKTsKKyAgICBpZiAob3N0YXR1cyAhPSBub0VycikgeworICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBpbml0aWFsaXplIENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbjog
JWQiLCBvc3RhdHVzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIENNU2FtcGxlQnVm
ZmVyUmVmIHNhbXBsZUJ1ZmZlcjsKKyAgICBvc3RhdHVzID0gQ01TYW1wbGVCdWZmZXJDcmVhdGVS
ZWFkeVdpdGhJbWFnZUJ1ZmZlcihrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoQ1ZJbWFnZUJ1ZmZlclJl
ZilwaXhlbEJ1ZmZlciwgZm9ybWF0RGVzY3JpcHRpb24sICZ0aW1pbmdJbmZvLCAmc2FtcGxlQnVm
ZmVyKTsKKyAgICBpZiAob3N0YXR1cyAhPSBub0VycikgeworICAgICAgICBMT0dfRVJST1IoIkZh
aWxlZCB0byBjcmVhdGUgdGhlIHNhbXBsZSBidWZmZXI6ICVkIiwgb3N0YXR1cyk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisgICAgQ0ZSZWxlYXNlKGZvcm1hdERlc2NyaXB0aW9uKTsKKworICAg
IFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlID0gc2FtcGxlQnVmZmVyOworCisg
ICAgQ0ZBcnJheVJlZiBhdHRhY2htZW50c0FycmF5ID0gQ01TYW1wbGVCdWZmZXJHZXRTYW1wbGVB
dHRhY2htZW50c0FycmF5KHNhbXBsZUJ1ZmZlciwgdHJ1ZSk7CisgICAgZm9yIChDRkluZGV4IGkg
PSAwOyBpIDwgQ0ZBcnJheUdldENvdW50KGF0dGFjaG1lbnRzQXJyYXkpOyArK2kpIHsKKyAgICAg
ICAgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRhY2htZW50cyA9IChDRk11dGFibGVEaWN0aW9u
YXJ5UmVmKUNGQXJyYXlHZXRWYWx1ZUF0SW5kZXgoYXR0YWNobWVudHNBcnJheSwgaSk7CisgICAg
ICAgIENGRGljdGlvbmFyeVNldFZhbHVlKGF0dGFjaG1lbnRzLCBrQ01TYW1wbGVBdHRhY2htZW50
S2V5X0Rpc3BsYXlJbW1lZGlhdGVseSwga0NGQm9vbGVhblRydWUpOworICAgIH0KKworICAgIHVu
c2lnbmVkIHdpZHRoID0gZnJhbWUud2lkdGgoKTsKKyAgICB1bnNpZ25lZCBoZWlnaHQgPSBmcmFt
ZS5oZWlnaHQoKTsKKyAgICBSZWZQdHI8UmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlPiBwcm90
ZWN0ZWRUaGlzKHRoaXMpOworICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBX
VEZNb3ZlKHByb3RlY3RlZFRoaXMpLCBzYW1wbGUgPSBXVEZNb3ZlKHNhbXBsZSksIHdpZHRoLCBo
ZWlnaHRdIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+cHJvY2Vzc05ld1NhbXBsZShzYW1wbGUu
Z2V0KCksIHdpZHRoLCBoZWlnaHQpOworICAgIH0pOworfQorCit2b2lkIFJlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZTo6cHJvY2Vzc05ld1NhbXBsZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUs
IHVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQpCit7CisgICAgbV9idWZmZXIgPSBzYW1w
bGU7CisgICAgaWYgKHdpZHRoICE9IG1fY3VycmVudFNldHRpbmdzLndpZHRoKCkgfHwgaGVpZ2h0
ICE9IG1fY3VycmVudFNldHRpbmdzLmhlaWdodCgpKSB7CisgICAgICAgIG1fY3VycmVudFNldHRp
bmdzLnNldFdpZHRoKHdpZHRoKTsKKyAgICAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0SGVpZ2h0
KGhlaWdodCk7CisgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQorCisgICAgbWVk
aWFEYXRhVXBkYXRlZChNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShzYW1wbGUpKTsKK30KKwor
c3RhdGljIGlubGluZSB2b2lkIGRyYXdJbWFnZShJbWFnZUJ1ZmZlciYgaW1hZ2VCdWZmZXIsIENH
SW1hZ2VSZWYgaW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICBhdXRvJiBjb250
ZXh0ID0gaW1hZ2VCdWZmZXIuY29udGV4dCgpOworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2
ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKyAgICBjb250ZXh0LnRyYW5zbGF0ZShyZWN0LngoKSwg
cmVjdC55KCkgKyByZWN0LmhlaWdodCgpKTsKKyAgICBjb250ZXh0LnNjYWxlKEZsb2F0U2l6ZSgx
LCAtMSkpOworICAgIGNvbnRleHQuc2V0SW1hZ2VJbnRlcnBvbGF0aW9uUXVhbGl0eShJbnRlcnBv
bGF0aW9uTG93KTsKKyAgICBJbnRSZWN0IHBhaW50UmVjdChJbnRQb2ludCgwLCAwKSwgSW50U2l6
ZShyZWN0LndpZHRoKCksIHJlY3QuaGVpZ2h0KCkpKTsKKyAgICBDR0NvbnRleHREcmF3SW1hZ2Uo
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgQ0dSZWN0TWFrZSgwLCAwLCBwYWludFJlY3Qud2lk
dGgoKSwgcGFpbnRSZWN0LmhlaWdodCgpKSwgaW1hZ2UpOworfQorCitSZWZQdHI8SW1hZ2U+IFJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6Y3VycmVudEZyYW1lSW1hZ2UoKQoreworICAgIGlm
ICghbV9idWZmZXIpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgRmxvYXRSZWN0IHJl
Y3QoMCwgMCwgbV9jdXJyZW50U2V0dGluZ3Mud2lkdGgoKSwgbV9jdXJyZW50U2V0dGluZ3MuaGVp
Z2h0KCkpOworICAgIGF1dG8gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRlKHJlY3Qu
c2l6ZSgpLCBVbmFjY2VsZXJhdGVkKTsKKworICAgIGF1dG8gcGl4ZWxCdWZmZXIgPSBzdGF0aWNf
Y2FzdDxDVlBpeGVsQnVmZmVyUmVmPihDTVNhbXBsZUJ1ZmZlckdldEltYWdlQnVmZmVyKG1fYnVm
ZmVyLmdldCgpKSk7CisgICAgZHJhd0ltYWdlKCppbWFnZUJ1ZmZlciwgbV9jb25mb3JtZXIuY3Jl
YXRlSW1hZ2VGcm9tUGl4ZWxCdWZmZXIocGl4ZWxCdWZmZXIpLmdldCgpLCByZWN0KTsKKworICAg
IHJldHVybiBJbWFnZUJ1ZmZlcjo6c2lua0ludG9JbWFnZShXVEZNb3ZlKGltYWdlQnVmZmVyKSk7
Cit9CisKK3ZvaWQgUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlOjpwYWludEN1cnJlbnRGcmFt
ZUluQ29udGV4dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgcmVj
dCkKK3sKKyAgICBpZiAoY29udGV4dC5wYWludGluZ0Rpc2FibGVkKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIGlmICghbV9idWZmZXIpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIEZJWE1F
OiBDYW4gd2Ugb3B0aW1pemUgaGVyZSB0aGUgcGFpbnRpbmc/CisgICAgRmxvYXRSZWN0IGZ1bGxS
ZWN0KDAsIDAsIG1fY3VycmVudFNldHRpbmdzLndpZHRoKCksIG1fY3VycmVudFNldHRpbmdzLmhl
aWdodCgpKTsKKyAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZShmdWxs
UmVjdC5zaXplKCksIFVuYWNjZWxlcmF0ZWQpOworCisgICAgYXV0byBwaXhlbEJ1ZmZlciA9IHN0
YXRpY19jYXN0PENWUGl4ZWxCdWZmZXJSZWY+KENNU2FtcGxlQnVmZmVyR2V0SW1hZ2VCdWZmZXIo
bV9idWZmZXIuZ2V0KCkpKTsKKyAgICBkcmF3SW1hZ2UoKmltYWdlQnVmZmVyLCBtX2NvbmZvcm1l
ci5jcmVhdGVJbWFnZUZyb21QaXhlbEJ1ZmZlcihwaXhlbEJ1ZmZlcikuZ2V0KCksIGZ1bGxSZWN0
KTsKKworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsK
KyAgICBjb250ZXh0LnNldEltYWdlSW50ZXJwb2xhdGlvblF1YWxpdHkoSW50ZXJwb2xhdGlvbkxv
dyk7CisgICAgSW50UmVjdCBwYWludFJlY3QoSW50UG9pbnQoMCwgMCksIEludFNpemUocmVjdC53
aWR0aCgpLCByZWN0LmhlaWdodCgpKSk7CisgICAgY29udGV4dC5kcmF3SW1hZ2UoKmltYWdlQnVm
ZmVyLT5jb3B5SW1hZ2UoRG9udENvcHlCYWNraW5nU3RvcmUpLCByZWN0KTsKK30KKworUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXM+IFJlYWx0aW1lSW5jb21pbmdWaWRlb1Nv
dXJjZTo6Y2FwYWJpbGl0aWVzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7
Cit9CisKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgUmVhbHRpbWVJbmNvbWlu
Z1ZpZGVvU291cmNlOjpzZXR0aW5ncygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fY3VycmVudFNl
dHRpbmdzOworfQorCitSZWFsdGltZU1lZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmIFJl
YWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZTo6c3VwcG9ydGVkQ29uc3RyYWludHMoKQoreworICAg
IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lSW5jb21p
bmdWaWRlb1NvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY4NTlkZGNkNjhhZTFjYjA3NTUzYjg1NDFmMjcy
ZjYwOTJmNmRhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlLmgKQEAgLTAsMCArMSw4
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqICAg
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqICAgIGRpc3RyaWJ1dGlvbi4KKyAqIDMuIE5laXRoZXIgdGhlIG5hbWUgb2YgRXJp
Y3Nzb24gbm9yIHRoZSBuYW1lcyBvZiBpdHMgY29udHJpYnV0b3JzCisgKiAgICBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tIHRoaXMKKyAqICAg
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFO
RCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBVU0UoTElCV0VCUlRDKQorCisjaW5jbHVkZSAi
TGliV2ViUlRDTWFjcm9zLmgiCisjaW5jbHVkZSAiUGl4ZWxCdWZmZXJDb25mb3JtZXJDVi5oIgor
I2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlIDx3ZWJydGMvYXBpL21l
ZGlhc3RyZWFtaW50ZXJmYWNlLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCit0eXBl
ZGVmIHN0cnVjdCBvcGFxdWVDTVNhbXBsZUJ1ZmZlciAqQ01TYW1wbGVCdWZmZXJSZWY7CisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQ2FwdHVyZURldmljZTsKKworY2xhc3MgUmVhbHRp
bWVJbmNvbWluZ1ZpZGVvU291cmNlIGZpbmFsIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Us
IHByaXZhdGUgcnRjOjpWaWRlb1NpbmtJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFJlZjxSZWFsdGltZUluY29taW5nVmlkZW9Tb3VyY2U+IGNyZWF0
ZShydGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJp
bmcmJik7CisgICAgflJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZSgpIHsgc3RvcFByb2R1Y2lu
Z0RhdGEoKTsgfQorCitwcml2YXRlOgorICAgIFJlYWx0aW1lSW5jb21pbmdWaWRlb1NvdXJjZShy
dGM6OnNjb3BlZF9yZWZwdHI8d2VicnRjOjpWaWRlb1RyYWNrSW50ZXJmYWNlPiYmLCBTdHJpbmcm
JiwgQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZik7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNl
IEFQSQorICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKCkgZmluYWw7CisgICAgdm9pZCBzdG9w
UHJvZHVjaW5nRGF0YSgpICBmaW5hbDsKKworICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMoKSBjb25zdCBmaW5hbDsKKyAgICBjb25zdCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgY29uc3QgZmluYWw7CisKKyAgICBN
ZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cygpIHsgcmV0dXJuICptX2NvbnN0cmFpbnRzLmdl
dCgpOyB9CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBw
b3J0ZWRDb25zdHJhaW50cygpOworCisgICAgdm9pZCBwcm9jZXNzTmV3U2FtcGxlKENNU2FtcGxl
QnVmZmVyUmVmLCB1bnNpZ25lZCwgdW5zaWduZWQpOworICAgIFJlZlB0cjxJbWFnZT4gY3VycmVu
dEZyYW1lSW1hZ2UoKSBmaW5hbDsKKworICAgIHZvaWQgcGFpbnRDdXJyZW50RnJhbWVJbkNvbnRl
eHQoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikgZmluYWw7CisKKyAgICBib29s
IGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRh
ICYmIG1fYnVmZmVyOyB9CisgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KKworICAgIC8vIHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlCisgICAg
dm9pZCBPbkZyYW1lKGNvbnN0IHdlYnJ0Yzo6VmlkZW9GcmFtZSYpIGZpbmFsOworCisgICAgUmVm
UHRyPEltYWdlPiBtX2N1cnJlbnRJbWFnZTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MgbV9jdXJyZW50U2V0dGluZ3M7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENv
bnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CisgICAgUmVmUHRyPFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXM+IG1fY2FwYWJpbGl0aWVzOworICAgIFJlZlB0cjxNZWRpYUNv
bnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOworICAgIGJvb2wgbV9pc1Byb2R1Y2luZ0RhdGEgeyBm
YWxzZSB9OworICAgIHJ0Yzo6c2NvcGVkX3JlZnB0cjx3ZWJydGM6OlZpZGVvVHJhY2tJbnRlcmZh
Y2U+IG1fdmlkZW9UcmFjazsKKyAgICBSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IG1fYnVm
ZmVyOworICAgIFBpeGVsQnVmZmVyQ29uZm9ybWVyQ1YgbV9jb25mb3JtZXI7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29p
bmdWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MmVlM2FiM2E2
ZjhmNWM4NGUwODFlM2U1N2FiMDNiMjE1M2Q0NGNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1Nv
dXJjZS5jcHAKQEAgLTAsMCArMSwxMDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBw
bGUgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
LCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIHJlcXVpcmVk
IHRvIGJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVy
IHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUg
SU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMCisgKiBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorICogU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyAq
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksCisgKiBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmgiCisKKyNpZiBVU0UoTElCV0VCUlRDKQorCisjaW5jbHVkZSA8d2Vi
cnRjL2NvbW1vbl92aWRlby9saWJ5dXYvaW5jbHVkZS93ZWJydGNfbGlieXV2Lmg+CisjaW5jbHVk
ZSA8d2VicnRjL21lZGlhL2Jhc2UvdmlkZW9mcmFtZS5oPgorCisjaW5jbHVkZSAiQ29yZU1lZGlh
U29mdExpbmsuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitSZWFsdGltZU91dGdvaW5nVmlk
ZW9Tb3VyY2U6OlJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiB2aWRlb1NvdXJjZSkKKyAgICA6IG1fdmlkZW9Tb3VyY2UoV1RGTW92ZSh2aWRlb1Nv
dXJjZSkpCit7CisgICAgbV92aWRlb1NvdXJjZS0+YWRkT2JzZXJ2ZXIodGhpcyk7Cit9CisKK2Jv
b2wgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291cmNlOjpHZXRTdGF0cyhTdGF0cyopCit7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCit2b2lkIFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZTo6QWRk
T3JVcGRhdGVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9GcmFtZT4q
IHNpbmssIGNvbnN0IHJ0Yzo6VmlkZW9TaW5rV2FudHMmKQoreworICAgIC8vIEZJWE1FOiBzdXBw
b3J0IHNpbmtXYW50cworICAgIGlmICghbV9zaW5rcy5jb250YWlucyhzaW5rKSkKKyAgICAgICAg
bV9zaW5rcy5hcHBlbmQoc2luayk7Cit9CisKK3ZvaWQgUmVhbHRpbWVPdXRnb2luZ1ZpZGVvU291
cmNlOjpSZW1vdmVTaW5rKHJ0Yzo6VmlkZW9TaW5rSW50ZXJmYWNlPHdlYnJ0Yzo6VmlkZW9GcmFt
ZT4qIHNpbmspCit7CisgICAgbV9zaW5rcy5yZW1vdmVGaXJzdChzaW5rKTsKK30KKwordm9pZCBS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U6OnNvdXJjZUhhc01vcmVNZWRpYURhdGEoTWVkaWFT
YW1wbGUmIHNhbXBsZSkKK3sKKyAgICBpZiAoIW1fc2lua3Muc2l6ZSgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBBU1NFUlQoc2FtcGxlLnBsYXRmb3JtU2FtcGxlKCkudHlwZSA9PSBQbGF0Zm9y
bVNhbXBsZTo6Q01TYW1wbGVCdWZmZXJUeXBlKTsKKyAgICBhdXRvIHBpeGVsQnVmZmVyID0gc3Rh
dGljX2Nhc3Q8Q1ZQaXhlbEJ1ZmZlclJlZj4oQ01TYW1wbGVCdWZmZXJHZXRJbWFnZUJ1ZmZlcihz
YW1wbGUucGxhdGZvcm1TYW1wbGUoKS5zYW1wbGUuY21TYW1wbGVCdWZmZXIpKTsKKyAgICBhdXRv
IHBpeGVsRm9ybWF0VHlwZSA9IENWUGl4ZWxCdWZmZXJHZXRQaXhlbEZvcm1hdFR5cGUocGl4ZWxC
dWZmZXIpOworCisgICAgQ1ZQaXhlbEJ1ZmZlckxvY2tCYXNlQWRkcmVzcyhwaXhlbEJ1ZmZlciwg
MCk7CisgICAgdWludDhfdCogc3JjID0gcmVpbnRlcnByZXRfY2FzdDx1aW50OF90Kj4oQ1ZQaXhl
bEJ1ZmZlckdldEJhc2VBZGRyZXNzT2ZQbGFuZShwaXhlbEJ1ZmZlciwgMCkpOworCisgICAgLy8g
RklYTUU6IFNob3VsZG4ndCB3ZSB1c2UgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c2l6ZSgpCisgICAg
Y29uc3QgYXV0byYgc2V0dGluZ3MgPSBtX3ZpZGVvU291cmNlLT5zZXR0aW5ncygpOworCisgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCBub3QgbmVlZCB0byBhbGxvY2F0ZSBvbmUgYnVmZmVyIHBlciBm
cmFtZS4KKyAgICBhdXRvIGRlc3QgPSB3ZWJydGM6Okk0MjBCdWZmZXI6OkNyZWF0ZShzZXR0aW5n
cy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSk7CisKKyAgICBpZiAocGl4ZWxGb3JtYXRUeXBl
ID09IGtDVlBpeGVsRm9ybWF0VHlwZV80MjBZcENiQ3I4UGxhbmFyKSB7CisgICAgICAgIC8vIFdl
IHByb2JhYmx5IGNhbiBtZW1jcHkgdGhlIGRhdGEgZGlyZWN0bHkKKyAgICAgICAgd2VicnRjOjpD
b252ZXJ0VG9JNDIwKHdlYnJ0Yzo6a0k0MjAsIHNyYywgMCwgMCwgc2V0dGluZ3Mud2lkdGgoKSwg
c2V0dGluZ3MuaGVpZ2h0KCksIDAsIHdlYnJ0Yzo6a1ZpZGVvUm90YXRpb25fMCwgZGVzdCk7Cisg
ICAgfSBlbHNlIGlmIChwaXhlbEZvcm1hdFR5cGUgPT0ga0NWUGl4ZWxGb3JtYXRUeXBlXzMyQkdS
QSkKKyAgICAgICAgd2VicnRjOjpDb252ZXJ0VG9JNDIwKHdlYnJ0Yzo6a0FSR0IsIHNyYywgMCwg
MCwgc2V0dGluZ3Mud2lkdGgoKSwgc2V0dGluZ3MuaGVpZ2h0KCksIDAsIHdlYnJ0Yzo6a1ZpZGVv
Um90YXRpb25fMCwgZGVzdCk7CisgICAgZWxzZSB7CisgICAgICAgIC8vIEZJWE1FOiBNb2NrIHNv
dXJjZSBjb252ZXJzaW9uIHdvcmtzIHdpdGgga0JHUkEgd2hpbGUgcmVndWxhciBjYW1lcmEgd29y
a3Mgd2l0aCBrQVJHQgorICAgICAgICBBU1NFUlQocGl4ZWxGb3JtYXRUeXBlID09IGtDVlBpeGVs
Rm9ybWF0VHlwZV8zMkFSR0IpOworICAgICAgICB3ZWJydGM6OkNvbnZlcnRUb0k0MjAod2VicnRj
OjprQkdSQSwgc3JjLCAwLCAwLCBzZXR0aW5ncy53aWR0aCgpLCBzZXR0aW5ncy5oZWlnaHQoKSwg
MCwgd2VicnRjOjprVmlkZW9Sb3RhdGlvbl8wLCBkZXN0KTsKKyAgICB9CisKKyAgICBDVlBpeGVs
QnVmZmVyVW5sb2NrQmFzZUFkZHJlc3MocGl4ZWxCdWZmZXIsIDApOworCisgICAgd2VicnRjOjpW
aWRlb0ZyYW1lIGZyYW1lKGRlc3QsIDAsIDAsICB3ZWJydGM6OmtWaWRlb1JvdGF0aW9uXzApOwor
ICAgIGZvciAoYXV0byogc2luayA6IG1fc2lua3MpCisgICAgICAgIHNpbmstPk9uRnJhbWUoZnJh
bWUpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoTElCV0VC
UlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZS5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmEyNjMxZjMxMzdjZjkzYjk5M2U2OGMwNTIwNTg1NGU5OGIwMzZkOTEKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVPdXRn
b2luZ1ZpZGVvU291cmNlLmgKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNyBBcHBsZSBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQsIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
cmVxdWlyZWQgdG8gYmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4g
IE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAg
aXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwKKyAqIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisgKiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUgorICogQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyAqIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgVVNFKExJQldFQlJUQykK
KworI2luY2x1ZGUgIkxpYldlYlJUQ01hY3Jvcy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFT
b3VyY2UuaCIKKyNpbmNsdWRlIDx3ZWJydGMvYXBpL21lZGlhc3RyZWFtaW50ZXJmYWNlLmg+Cisj
aW5jbHVkZSA8d2VicnRjL2Jhc2Uvb3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3ZWJydGMvbWVkaWEv
YmFzZS92aWRlb3NpbmtpbnRlcmZhY2UuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2UgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxS
ZWFsdGltZU91dGdvaW5nVmlkZW9Tb3VyY2U+LCBwdWJsaWMgd2VicnRjOjpWaWRlb1RyYWNrU291
cmNlSW50ZXJmYWNlLCBwcml2YXRlIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ok9ic2VydmVyIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZT4gY3JlYXRl
KFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHZpZGVvU291cmNlKSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFJlYWx0aW1lT3V0Z29pbmdWaWRlb1NvdXJjZShXVEZNb3ZlKHZpZGVvU291cmNlKSkp
OyB9CisKKyAgICBpbnQgQWRkUmVmKCkgY29uc3QgZmluYWwgeyByZWYoKTsgcmV0dXJuIHJlZkNv
dW50KCk7IH0KKyAgICBpbnQgUmVsZWFzZSgpIGNvbnN0IGZpbmFsIHsgZGVyZWYoKTsgcmV0dXJu
IHJlZkNvdW50KCk7IH0KKworcHJpdmF0ZToKKyAgICBSZWFsdGltZU91dGdvaW5nVmlkZW9Tb3Vy
Y2UoUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+JiYpOworCisgICAgLy8gTm90aWZpZXIgQVBJCisg
ICAgdm9pZCBSZWdpc3Rlck9ic2VydmVyKHdlYnJ0Yzo6T2JzZXJ2ZXJJbnRlcmZhY2UqKSBmaW5h
bCB7IH0KKyAgICB2b2lkIFVucmVnaXN0ZXJPYnNlcnZlcih3ZWJydGM6Ok9ic2VydmVySW50ZXJm
YWNlKikgZmluYWwgeyB9CisKKyAgICAvLyBWaWRlb1RyYWNrU291cmNlSW50ZXJmYWNlIEFQSQor
ICAgIGJvb2wgaXNfc2NyZWVuY2FzdCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgcnRjOjpPcHRpb25hbDxib29sPiBuZWVkc19kZW5vaXNpbmcoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBydGM6Ok9wdGlvbmFsPGJvb2w+KCk7IH0KKyAgICBib29sIEdldFN0YXRzKFN0YXRzKikg
ZmluYWw7CisKKyAgICAvLyBNZWRpYVNvdXJjZUludGVyZmFjZSBBUEkKKyAgICBTb3VyY2VTdGF0
ZSBzdGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNvdXJjZVN0YXRlKCk7IH0KKyAgICBib29s
IHJlbW90ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKworICAgIC8vIHJ0Yzo6Vmlk
ZW9Tb3VyY2VJbnRlcmZhY2U8d2VicnRjOjpWaWRlb0ZyYW1lPiBBUEkKKyAgICB2b2lkIEFkZE9y
VXBkYXRlU2luayhydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kiwg
Y29uc3QgcnRjOjpWaWRlb1NpbmtXYW50cyYpIGZpbmFsOworICAgIHZvaWQgUmVtb3ZlU2luayhy
dGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+KikgZmluYWw7CisKKyAg
ICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlciBBUEkKKyAgICBib29sIHByZXZlbnRT
b3VyY2VGcm9tU3RvcHBpbmcoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgc291
cmNlU3RvcHBlZCgpIGZpbmFsIHsgfQorICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKCkgZmlu
YWwgeyB9CisgICAgdm9pZCBzb3VyY2VTZXR0aW5nc0NoYW5nZWQoKSBmaW5hbCB7IH0KKyAgICB2
b2lkIHNvdXJjZUhhc01vcmVNZWRpYURhdGEoTWVkaWFTYW1wbGUmKSBmaW5hbDsKKworICAgIFZl
Y3RvcjxydGM6OlZpZGVvU2lua0ludGVyZmFjZTx3ZWJydGM6OlZpZGVvRnJhbWU+Kj4gbV9zaW5r
czsKKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gbV92aWRlb1NvdXJjZTsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>