<?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>140398</bug_id>
          
          <creation_ts>2015-01-13 11:41:00 -0800</creation_ts>
          <short_desc>[Mac] HLS audio is not correctly selected according to system language</short_desc>
          <delta_ts>2019-10-22 14:12:37 -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>New Bugs</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>cturner</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1060862</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-13 11:41:00 -0800</bug_when>
    <thetext>[Mac] HLS audio is not correctly selected according to system language</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060869</commentid>
    <comment_count>1</comment_count>
      <attachid>244529</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-13 11:45:57 -0800</bug_when>
    <thetext>Created attachment 244529
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061362</commentid>
    <comment_count>2</comment_count>
      <attachid>244529</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-14 15:43:06 -0800</bug_when>
    <thetext>Comment on attachment 244529
Patch

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

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:94
&gt; +    bool m_shouldSelectOptionAutomatically;

In new code, it’s better to initialize here:

    bool m_shouldSelectOptionAutomatically { true };

I suggest doing the same with m_selectedOption.

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:95
&gt; +    , m_shouldSelectOptionAutomatically(true)

Then you would not have to initialize here.

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:136
&gt; +    if (!m_shouldSelectOptionAutomatically)
&gt; +        return;

Should we clear this flag after doing it once? Do we want to do this repeatedly on successive calls to updateOptions?

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:140
&gt; +    RetainPtr&lt;NSMutableArray&gt; nsLanguages = adoptNS([[NSMutableArray alloc] initWithCapacity:userPreferredLanguages().size()]);
&gt; +    for (auto&amp; language : userPreferredLanguages())
&gt; +        [nsLanguages addObject:(NSString*)language];

We ought to have a helper function that turns a Vector&lt;String&gt; into an NSArray containing NSString. This idiom comes up too often to have it written out like this.

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:141
&gt; +    RetainPtr&lt;NSArray&gt; filteredOptions = [getAVMediaSelectionGroupClass() mediaSelectionOptionsFromArray:[m_mediaSelectionGroup options] filteredAndSortedAccordingToPreferredLanguages:nsLanguages.get()];

Why a RetainPtr here?

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:146
&gt; +    AVMediaSelectionOption* preferredOption = [filteredOptions firstObject];

Looks like this does not compile on older versions of OS X. I’m guessing this has something to do with RetainPtr. Seems like we should have firstObject available since it was added in OS X 10.6.

&gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:154
&gt; +    if (m_selectionTimer.isActive())
&gt; +        m_selectionTimer.stop();
&gt; +    m_selectionTimer.startOneShot(0);

I think you can leave out all that isActive/stop stuff; that’s part of what startOneShot guarantees anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1061820</commentid>
    <comment_count>3</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2015-01-16 08:48:20 -0800</bug_when>
    <thetext>rdar://problem/19218487</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064161</commentid>
    <comment_count>4</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-26 08:25:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 244529 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=244529&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.h:94
&gt; &gt; +    bool m_shouldSelectOptionAutomatically;
&gt; 
&gt; In new code, it’s better to initialize here:
&gt; 
&gt;     bool m_shouldSelectOptionAutomatically { true };
&gt; 
&gt; I suggest doing the same with m_selectedOption.

Neat. I was unaware of this C++11 feature.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:95
&gt; &gt; +    , m_shouldSelectOptionAutomatically(true)
&gt; 
&gt; Then you would not have to initialize here.
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:136
&gt; &gt; +    if (!m_shouldSelectOptionAutomatically)
&gt; &gt; +        return;
&gt; 
&gt; Should we clear this flag after doing it once? Do we want to do this
&gt; repeatedly on successive calls to updateOptions?

Yes, we may need to allow the automatic selection to occur if new tracks appear, as will happen with HLS streams.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:140
&gt; &gt; +    RetainPtr&lt;NSMutableArray&gt; nsLanguages = adoptNS([[NSMutableArray alloc] initWithCapacity:userPreferredLanguages().size()]);
&gt; &gt; +    for (auto&amp; language : userPreferredLanguages())
&gt; &gt; +        [nsLanguages addObject:(NSString*)language];
&gt; 
&gt; We ought to have a helper function that turns a Vector&lt;String&gt; into an
&gt; NSArray containing NSString. This idiom comes up too often to have it
&gt; written out like this.

True.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:141
&gt; &gt; +    RetainPtr&lt;NSArray&gt; filteredOptions = [getAVMediaSelectionGroupClass() mediaSelectionOptionsFromArray:[m_mediaSelectionGroup options] filteredAndSortedAccordingToPreferredLanguages:nsLanguages.get()];
&gt; 
&gt; Why a RetainPtr here?

I always wrap ObjC objects in RetainPtr&lt;&gt;, even if they&apos;re autoreleased.  Perhaps that&apos;s over-cautious.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:146
&gt; &gt; +    AVMediaSelectionOption* preferredOption = [filteredOptions firstObject];
&gt; 
&gt; Looks like this does not compile on older versions of OS X. I’m guessing
&gt; this has something to do with RetainPtr. Seems like we should have
&gt; firstObject available since it was added in OS X 10.6.

Aha! It existed in 10.6, but was not public. It was only made public in 10.9, and the NS_AVAILABLE() macro reflects when it existed, not when it was made public. I&apos;ll use a more standard idiom here.

&gt; &gt; Source/WebCore/platform/graphics/avfoundation/MediaSelectionGroupAVFObjC.mm:154
&gt; &gt; +    if (m_selectionTimer.isActive())
&gt; &gt; +        m_selectionTimer.stop();
&gt; &gt; +    m_selectionTimer.startOneShot(0);
&gt; 
&gt; I think you can leave out all that isActive/stop stuff; that’s part of what
&gt; startOneShot guarantees anyway.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064168</commentid>
    <comment_count>5</comment_count>
      <attachid>245353</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2015-01-26 09:16:49 -0800</bug_when>
    <thetext>Created attachment 245353
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066455</commentid>
    <comment_count>6</comment_count>
      <attachid>245353</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-03 09:28:01 -0800</bug_when>
    <thetext>Comment on attachment 245353
Patch for landing

Clearing flags on attachment: 245353

Committed r179549: &lt;http://trac.webkit.org/changeset/179549&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1582560</commentid>
    <comment_count>7</comment_count>
    <who name="Charlie Turner">cturner</who>
    <bug_when>2019-10-22 14:12:37 -0700</bug_when>
    <thetext>Am I right to think this is Mac specific behaviour? I don&apos;t think it&apos;s spec&apos;d anywhere that we have to do this. In GStreamer it&apos;s not going to happen without quite a bit of churn, so I&apos;d rather skip it if it&apos;s optional for now. Jer, can you confirm?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244529</attachid>
            <date>2015-01-13 11:45:57 -0800</date>
            <delta_ts>2015-01-14 15:43:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140398-20150113114603.patch</filename>
            <type>text/plain</type>
            <size>10927</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc4MjkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWYwMTlhOGFmZmVjMWNl
OWFkZDkwODYyZGI2YmE4OGZkNmM0ZWIzZi4uMzNhNTA2OTlhODNjZWI5YzA4OWI1NWY1NWUwNTIy
ZGNhZTJiZjVjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAxLTEzICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEhMUyBhdWRpbyBp
cyBub3QgY29ycmVjdGx5IHNlbGVjdGVkIGFjY29yZGluZyB0byBzeXN0ZW0gbGFuZ3VhZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDM5OAorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8xOTIxODQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRp
by10cmFja3MtbG9jYWxlLXNlbGVjdGlvbi5odG1sCisKKyAgICAgICAgV2hlbiBBVk1lZGlhU2Vs
ZWN0aW9uT3B0aW9ucyBjb21lIGFuZCBnbyBhbmQgbm8gZXhwbGljaXQgdHJhY2sgc2VsZWN0aW9u
IGNob2ljZSBoYXMKKyAgICAgICAgYmVlbiBtYWRlLCBhdXRvbWF0aWNhbGx5IHBpY2sgdGhlIG1v
c3QgYXBwcm9wcmlhdGUgdHJhY2sgYWNjb3JkaW5nIHRvIHRoZSB1c2VyJ3MKKyAgICAgICAgY3Vy
cmVudCBwcmVmZXJyZWQgbG9jYWxlIHNldHRpbmdzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZP
YmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6Ok1l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDKTogU2V0IG1fc2hvdWxkU2VsZWN0T3B0aW9uQXV0b21h
dGljYWxseQorICAgICAgICAgICAgdG8gdHJ1ZSBieSBkZWZhdWx0LgorICAgICAgICAoV2ViQ29y
ZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMpOiBJZiBtX3Nob3Vs
ZFNlbGVjdE9wdGlvbkF1dG9tYXRpY2FsbHkgaXMgc2V0CisgICAgICAgICAgICBwaWNrIHRoZSBt
b3N0IGFwcHJvcHJpYXRlIG1lZGlhIHNlbGVjdGlvbiBvcHRpb24uCisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6c2V0U2VsZWN0ZWRPcHRpb24pOiBTZXQgbV9z
aG91bGRTZWxlY3RPcHRpb25BdXRvbWF0aWNhbGx5IHRvIGZhbHNlLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRh
dGlvbk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0pOiBSZW1vdmUgdGhlc2UgYXV0b21hdGljIHNl
bGVjdGlvbgorICAgICAgICAgICAgcmVxdWVzdHMgYXMgdGhleSBhcmUgaW5lZmZlY3RpdmUgd2hl
biAtYXBwbGllc01lZGlhU2VsZWN0aW9uQ3JpdGVyaWFBdXRvbWF0aWNhbGx5IGlzIE5PLgorCiAy
MDE1LTAxLTA4ICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGRl
ZmF1bHRQbGF5YmFja1JhdGUgbm90IHJlc3BlY3RlZCB3aGVuIHNldCBiZWZvcmUgc291cmNlIGlz
IGxvYWRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMu
aAppbmRleCBiZTNkYWM3NGM5ZThlMTAwNTMyMWQ1OTI2YWZhN2Y5NTVlNDE4Zjk1Li42NDY5MmYy
NDhkODVkYzE0ZWM0ZWZiNmM0YjcwYzNhMzJjNGZiYTQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFW
Rk9iakMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMuaApAQCAtOTEsNiArOTEsNyBAQCBwcml2YXRl
OgogICAgIE9wdGlvbkNvbnRhaW5lciBtX29wdGlvbnM7CiAgICAgTWVkaWFTZWxlY3Rpb25PcHRp
b25BVkZPYmpDKiBtX3NlbGVjdGVkT3B0aW9uOwogICAgIFRpbWVyIG1fc2VsZWN0aW9uVGltZXI7
CisgICAgYm9vbCBtX3Nob3VsZFNlbGVjdE9wdGlvbkF1dG9tYXRpY2FsbHk7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KaW5kZXgg
ZTdhMTZiZjhlZTlhYTFlZTMzZGEwZjIyYmI3NjYxZTJhNTg5YWMyMS4uMGEyMjYyNmIyZDRiYTY1
OGM4YWE2ODgzZmI2MzQzMjE5ZmQ3OWNmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQogCisjaW1wb3J0ICJMYW5ndWFnZS5oIgogI2ltcG9ydCAiU29mdExpbmtp
bmcuaCIKICNpbXBvcnQgPEFWRm91bmRhdGlvbi9BVkFzc2V0Lmg+CiAjaW1wb3J0IDxBVkZvdW5k
YXRpb24vQVZNZWRpYVNlbGVjdGlvbkdyb3VwLmg+CkBAIC0zNSw2ICszNiw3IEBACiAjaW1wb3J0
IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHd0Zi9IYXNoTWFwLmg+CiAjaW1wb3J0IDx3dGYv
SGFzaFNldC5oPgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKIFNPRlRfTElOS19G
UkFNRVdPUktfT1BUSU9OQUwoQVZGb3VuZGF0aW9uKQogCkBAIC05MCw2ICs5Miw3IEBAIE1lZGlh
U2VsZWN0aW9uR3JvdXBBVkZPYmpDOjpNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQyhBVlBsYXll
ckl0ZW0gKml0ZW0sIEFWTWVkCiAgICAgLCBtX21lZGlhU2VsZWN0aW9uR3JvdXAoZ3JvdXApCiAg
ICAgLCBtX3NlbGVjdGVkT3B0aW9uKG51bGxwdHIpCiAgICAgLCBtX3NlbGVjdGlvblRpbWVyKCp0
aGlzLCAmTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnNlbGVjdGlvblRpbWVyRmlyZWQpCisg
ICAgLCBtX3Nob3VsZFNlbGVjdE9wdGlvbkF1dG9tYXRpY2FsbHkodHJ1ZSkKIHsKICAgICB1cGRh
dGVPcHRpb25zKCk7CiB9CkBAIC0xMjgsNiArMTMxLDI3IEBAIHZvaWQgTWVkaWFTZWxlY3Rpb25H
cm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMoKQogICAgICAgICAgICAgbV9zZWxlY3RlZE9wdGlv
biA9IGFkZGVkT3B0aW9uLmdldCgpOwogICAgICAgICBtX29wdGlvbnMuc2V0KGFkZGVkQVZPcHRp
b24sIGFkZGVkT3B0aW9uLnJlbGVhc2UoKSk7CiAgICAgfQorCisgICAgaWYgKCFtX3Nob3VsZFNl
bGVjdE9wdGlvbkF1dG9tYXRpY2FsbHkpCisgICAgICAgIHJldHVybjsKKworICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gbnNMYW5ndWFnZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6dXNlclByZWZlcnJlZExhbmd1YWdlcygpLnNpemUoKV0p
OworICAgIGZvciAoYXV0byYgbGFuZ3VhZ2UgOiB1c2VyUHJlZmVycmVkTGFuZ3VhZ2VzKCkpCisg
ICAgICAgIFtuc0xhbmd1YWdlcyBhZGRPYmplY3Q6KE5TU3RyaW5nKilsYW5ndWFnZV07CisgICAg
UmV0YWluUHRyPE5TQXJyYXk+IGZpbHRlcmVkT3B0aW9ucyA9IFtnZXRBVk1lZGlhU2VsZWN0aW9u
R3JvdXBDbGFzcygpIG1lZGlhU2VsZWN0aW9uT3B0aW9uc0Zyb21BcnJheTpbbV9tZWRpYVNlbGVj
dGlvbkdyb3VwIG9wdGlvbnNdIGZpbHRlcmVkQW5kU29ydGVkQWNjb3JkaW5nVG9QcmVmZXJyZWRM
YW5ndWFnZXM6bnNMYW5ndWFnZXMuZ2V0KCldOworCisgICAgaWYgKCFbZmlsdGVyZWRPcHRpb25z
IGNvdW50XSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVZNZWRpYVNlbGVjdGlvbk9wdGlvbiog
cHJlZmVycmVkT3B0aW9uID0gW2ZpbHRlcmVkT3B0aW9ucyBmaXJzdE9iamVjdF07CisgICAgaWYg
KG1fc2VsZWN0ZWRPcHRpb24gJiYgbV9zZWxlY3RlZE9wdGlvbi0+YXZNZWRpYVNlbGVjdGlvbk9w
dGlvbigpID09IHByZWZlcnJlZE9wdGlvbikKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJU
KG1fb3B0aW9ucy5jb250YWlucyhwcmVmZXJyZWRPcHRpb24pKTsKKyAgICBtX3NlbGVjdGVkT3B0
aW9uID0gbV9vcHRpb25zLmdldChwcmVmZXJyZWRPcHRpb24pOworICAgIGlmIChtX3NlbGVjdGlv
blRpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fc2VsZWN0aW9uVGltZXIuc3RvcCgpOworICAg
IG1fc2VsZWN0aW9uVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCiB2b2lkIE1lZGlhU2VsZWN0
aW9uR3JvdXBBVkZPYmpDOjpzZXRTZWxlY3RlZE9wdGlvbihNZWRpYVNlbGVjdGlvbk9wdGlvbkFW
Rk9iakMqIG9wdGlvbikKQEAgLTEzNSw2ICsxNTksNyBAQCB2b2lkIE1lZGlhU2VsZWN0aW9uR3Jv
dXBBVkZPYmpDOjpzZXRTZWxlY3RlZE9wdGlvbihNZWRpYVNlbGVjdGlvbk9wdGlvbkFWRk9iakMq
CiAgICAgaWYgKG1fc2VsZWN0ZWRPcHRpb24gPT0gb3B0aW9uKQogICAgICAgICByZXR1cm47CiAK
KyAgICBtX3Nob3VsZFNlbGVjdE9wdGlvbkF1dG9tYXRpY2FsbHkgPSBmYWxzZTsKICAgICBtX3Nl
bGVjdGVkT3B0aW9uID0gb3B0aW9uOwogICAgIGlmIChtX3NlbGVjdGlvblRpbWVyLmlzQWN0aXZl
KCkpCiAgICAgICAgIG1fc2VsZWN0aW9uVGltZXIuc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbk9iakMu
bW0KaW5kZXggZjc3MDBmNjVlYWQ4MTI3MzgzODk2ZjVmMWQ0NWYzNjIyMGI4NTk0MC4uOTU1YWY5
MzI5YzUwOTMyODVhZTUzOGI1MmU5YTEzMDdkZjE1ZTYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlQVZGb3VuZGF0aW9uT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpD
Lm1tCkBAIC05MzUsMTIgKzkzNSw2IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0
aW9uT2JqQzo6Y3JlYXRlQVZQbGF5ZXJJdGVtKCkKICAgICBbbV9hdlBsYXllckl0ZW0uZ2V0KCkg
YWRkT3V0cHV0Om1fbGVnaWJsZU91dHB1dC5nZXQoKV07CiAjZW5kaWYKIAotI2lmIEhBVkUoQVZG
T1VOREFUSU9OX01FRElBX1NFTEVDVElPTl9HUk9VUCkgJiYgSEFWRShBVkZPVU5EQVRJT05fTEVH
SUJMRV9PVVRQVVRfU1VQUE9SVCkKLSAgICAgICAgW21fYXZQbGF5ZXJJdGVtIHNlbGVjdE1lZGlh
T3B0aW9uQXV0b21hdGljYWxseUluTWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFTZWxlY3Rp
b25Hcm91cEZvckxlZ2libGVNZWRpYSgpXTsKLSAgICAgICAgW21fYXZQbGF5ZXJJdGVtIHNlbGVj
dE1lZGlhT3B0aW9uQXV0b21hdGljYWxseUluTWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZlTWVkaWFT
ZWxlY3Rpb25Hcm91cEZvckF1ZGlibGVNZWRpYSgpXTsKLSAgICAgICAgW21fYXZQbGF5ZXJJdGVt
IHNlbGVjdE1lZGlhT3B0aW9uQXV0b21hdGljYWxseUluTWVkaWFTZWxlY3Rpb25Hcm91cDpzYWZl
TWVkaWFTZWxlY3Rpb25Hcm91cEZvclZpc3VhbE1lZGlhKCldOwotI2VuZGlmCi0KICNpZiBFTkFC
TEUoV0VCX0FVRElPKSAmJiBVU0UoTUVESUFUT09MQk9YKQogICAgIGlmIChtX3Byb3ZpZGVyKQog
ICAgICAgICBtX3Byb3ZpZGVyLT5zZXRQbGF5ZXJJdGVtKG1fYXZQbGF5ZXJJdGVtLmdldCgpKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5Y2Q0YTVlMjMyMDkyMWMxMjk4MTIzODEyMmU5MTgyZjVjNWJjMzRjLi4zZDIwODk4
YTdkOTAyZWM4ZTUyMzQxNDhmNzliMjk4NGY0NWY4MGU5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTUtMDEtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAg
W01hY10gSExTIGF1ZGlvIGlzIG5vdCBjb3JyZWN0bHkgc2VsZWN0ZWQgYWNjb3JkaW5nIHRvIHN5
c3RlbSBsYW5ndWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQwMzk4CisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzE5MjE4NDg3CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlh
L2hscy9obHMtYXVkaW8tdHJhY2tzLWxvY2FsZS1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tzLWxvY2Fs
ZS1zZWxlY3Rpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9tZWRpYS9yZXNv
dXJjZXMvaGxzL2F1ZGlvLXRyYWNrcy5tM3U4OgorCiAyMDE1LTAxLTA4ICBKZXIgTm9ibGUgIDxq
ZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIGRlZmF1bHRQbGF5YmFja1JhdGUgbm90IHJl
c3BlY3RlZCB3aGVuIHNldCBiZWZvcmUgc291cmNlIGlzIGxvYWRlZApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2Vs
ZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxzL2hs
cy1hdWRpby10cmFja3MtbG9jYWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzhhNzZjNGRhNGZlNjI1ZThkNGY1MzAzMTUwMTMxYjBjODE5OGI2MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3MtbG9j
YWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1JVTihpbnRlcm5h
bHMuc2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyhbImpwIiwgImZyIiwgImVzLUVOIiwgImVuIl0p
KQorRVZFTlQoY2FucGxheXRocm91Z2gpCitFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3MubGVu
Z3RoID09ICczJykgT0sKK0VYUEVDVEVEICh2aWRlby5hdWRpb1RyYWNrc1swXS5lbmFibGVkID09
ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9PSAn
dHJ1ZScpIE9LCitFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9PSAnZmFs
c2UnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tzLWxvY2FsZS1zZWxl
Y3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTQwOTQwN2IyYmFlZWY1ODJlYjUyNzA3N2QxMzkwNjYx
MDVhMzJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9o
bHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Li4vLi4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRpYS1jb250cm9scy5qcz48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0VXNlclByZWZl
cnJlZExhbmd1YWdlcyhbImpwIiwgImZyIiwgImVzLUVOIiwgImVuIl0pJyk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ0NoYW5nZSB5b3Vy
IHN5c3RlbSBsYW5ndWFnZSB0byBGcmVuY2gsIGFuZCBjaGVjayB0aGF0IHRoZSBmcmVuY2ggYXVk
aW8gdHJhY2sgd2FzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuJyk7CisKKyAgICAgICAgICAgICAgICB2
aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWRlbycpOworICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAg
ICAgICAgICAgdmlkZW8uc3JjID0gIi4uL3Jlc291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0zdTgi
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0
aCIsIDMpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uYXVkaW9UcmFja3Nb
MF0uZW5hYmxlZCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQiLCBmYWxzZSk7CisgICAgICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2
aWRlbyI+PC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0zdTggYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0z
dTgKaW5kZXggMTFhYjFkYWNjN2I2ZDg5N2YwOWU1ZTg5NTMzMjRhNjMxZTVlNGYzOC4uNTY0Y2I3
NDJmYzllNTgwODJjYjRiZmM0YzA3M2YyMzdlMzdjOTE0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvaGxzL2F1ZGlvLXRyYWNrcy5tM3U4CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2hscy9hdWRpby10cmFja3Mu
bTN1OApAQCAtMSw4ICsxLDggQEAKICNFWFRNM1UKIAotI0VYVC1YLU1FRElBOlRZUEU9QVVESU8s
R1JPVVAtSUQ9ImJpcGJvcF9hdWRpbyIsTEFOR1VBR0U9ImVuZyIsTkFNRT0iRW5nbGlzaCBTb3Vu
ZCIsQVVUT1NFTEVDVD1ZRVMsREVGQVVMVD1ZRVMKLSNFWFQtWC1NRURJQTpUWVBFPUFVRElPLEdS
T1VQLUlEPSJiaXBib3BfYXVkaW8iLExBTkdVQUdFPSJmcmUiLE5BTUU9IkZyZW5jaCBTb3VuZCIs
QVVUT1NFTEVDVD1OTyxERUZBVUxUPU5PLFVSST0iZnJlbmNoL3Byb2dfaW5kZXgubTN1OCIKLSNF
WFQtWC1NRURJQTpUWVBFPUFVRElPLEdST1VQLUlEPSJiaXBib3BfYXVkaW8iLExBTkdVQUdFPSJz
cGEiLE5BTUU9IlNwYW5pc2ggU291bmQiLEFVVE9TRUxFQ1Q9Tk8sREVGQVVMVD1OTyxVUkk9InNw
YW5pc2gvcHJvZ19pbmRleC5tM3U4IgorI0VYVC1YLU1FRElBOlRZUEU9QVVESU8sR1JPVVAtSUQ9
ImJpcGJvcF9hdWRpbyIsTEFOR1VBR0U9ImVuLVVTIixOQU1FPSJFbmdsaXNoIFNvdW5kIixBVVRP
U0VMRUNUPVlFUyxERUZBVUxUPVlFUworI0VYVC1YLU1FRElBOlRZUEU9QVVESU8sR1JPVVAtSUQ9
ImJpcGJvcF9hdWRpbyIsTEFOR1VBR0U9ImZyLUZSIixOQU1FPSJGcmVuY2ggU291bmQiLEFVVE9T
RUxFQ1Q9Tk8sREVGQVVMVD1OTyxVUkk9ImZyZW5jaC9wcm9nX2luZGV4Lm0zdTgiCisjRVhULVgt
TUVESUE6VFlQRT1BVURJTyxHUk9VUC1JRD0iYmlwYm9wX2F1ZGlvIixMQU5HVUFHRT0iZXMtVVMi
LE5BTUU9IlNwYW5pc2ggU291bmQiLEFVVE9TRUxFQ1Q9Tk8sREVGQVVMVD1OTyxVUkk9InNwYW5p
c2gvcHJvZ19pbmRleC5tM3U4IgogCiAjRVhULVgtU1RSRUFNLUlORjpCQU5EV0lEVEg9NjM0NDUx
LENPREVDUz0ibXA0YS40MC4yLCBhdmMxLjRkNDAxZSIsUkVTT0xVVElPTj02NDB4NDgwLEFVRElP
PSJiaXBib3BfYXVkaW8iCiBiaXBib3AvcHJvZ19pbmRleC5tM3U4Cg==
</data>
<flag name="review"
          id="269465"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245353</attachid>
            <date>2015-01-26 09:16:49 -0800</date>
            <delta_ts>2015-02-03 09:28:01 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-140398-20150126181650.patch</filename>
            <type>text/plain</type>
            <size>11098</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MDYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTkxYTE4OTA2MDFiNjcx
Mzc1ZWU4MTI2MjQzNDUwYTRkMzA4MDZhNC4uZmVlZTU0YzRlNDE3YzZhZThjNDBkNTAwMjRlOGUz
NmNlM2ZkZDAyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE1LTAxLTI2ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIFtNYWNdIEhMUyBhdWRpbyBp
cyBub3QgY29ycmVjdGx5IHNlbGVjdGVkIGFjY29yZGluZyB0byBzeXN0ZW0gbGFuZ3VhZ2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDM5OAorICAg
ICAgICByZGFyOi8vcHJvYmxlbS8xOTIxODQ4NworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10
cmFja3MtbG9jYWxlLXNlbGVjdGlvbi5odG1sCisKKyAgICAgICAgV2hlbiBBVk1lZGlhU2VsZWN0
aW9uT3B0aW9ucyBjb21lIGFuZCBnbyBhbmQgbm8gZXhwbGljaXQgdHJhY2sgc2VsZWN0aW9uIGNo
b2ljZSBoYXMKKyAgICAgICAgYmVlbiBtYWRlLCBhdXRvbWF0aWNhbGx5IHBpY2sgdGhlIG1vc3Qg
YXBwcm9wcmlhdGUgdHJhY2sgYWNjb3JkaW5nIHRvIHRoZSB1c2VyJ3MKKyAgICAgICAgY3VycmVu
dCBwcmVmZXJyZWQgbG9jYWxlIHNldHRpbmdzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6Ok1lZGlh
U2VsZWN0aW9uR3JvdXBBVkZPYmpDKTogU2V0IG1fc2hvdWxkU2VsZWN0T3B0aW9uQXV0b21hdGlj
YWxseQorICAgICAgICAgICAgdG8gdHJ1ZSBieSBkZWZhdWx0LgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6OnVwZGF0ZU9wdGlvbnMpOiBJZiBtX3Nob3VsZFNl
bGVjdE9wdGlvbkF1dG9tYXRpY2FsbHkgaXMgc2V0CisgICAgICAgICAgICBwaWNrIHRoZSBtb3N0
IGFwcHJvcHJpYXRlIG1lZGlhIHNlbGVjdGlvbiBvcHRpb24uCisgICAgICAgIChXZWJDb3JlOjpN
ZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6c2V0U2VsZWN0ZWRPcHRpb24pOiBTZXQgbV9zaG91
bGRTZWxlY3RPcHRpb25BdXRvbWF0aWNhbGx5IHRvIGZhbHNlLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0pOiBSZW1vdmUgdGhlc2UgYXV0b21hdGljIHNlbGVj
dGlvbgorICAgICAgICAgICAgcmVxdWVzdHMgYXMgdGhleSBhcmUgaW5lZmZlY3RpdmUgd2hlbiAt
YXBwbGllc01lZGlhU2VsZWN0aW9uQ3JpdGVyaWFBdXRvbWF0aWNhbGx5IGlzIE5PLgorCiAyMDE1
LTAxLTIzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWNd
W0VNRV0gU3VwcG9ydCBDbGVhcktleSBlbmNyeXB0aW9uIHdpdGggQUVTMTI4LWVuY3J5cHRlZCBI
TFMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgKaW5k
ZXggYmUzZGFjNzRjOWU4ZTEwMDUzMjFkNTkyNmFmYTdmOTU1ZTQxOGY5NS4uYjM0MTJmZjYyYmIz
NjI2MTAwZDVlMWVmYzA3ZmU3YjZiMWFiMTg2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLmgKQEAgLTg5LDggKzg5LDkgQEAgcHJpdmF0ZToKICAg
ICBSZXRhaW5QdHI8QVZQbGF5ZXJJdGVtPiBtX3BsYXllckl0ZW07CiAgICAgUmV0YWluUHRyPEFW
TWVkaWFTZWxlY3Rpb25Hcm91cD4gbV9tZWRpYVNlbGVjdGlvbkdyb3VwOwogICAgIE9wdGlvbkNv
bnRhaW5lciBtX29wdGlvbnM7Ci0gICAgTWVkaWFTZWxlY3Rpb25PcHRpb25BVkZPYmpDKiBtX3Nl
bGVjdGVkT3B0aW9uOworICAgIE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZGT2JqQyogbV9zZWxlY3Rl
ZE9wdGlvbiB7IG51bGxwdHIgfTsKICAgICBUaW1lciBtX3NlbGVjdGlvblRpbWVyOworICAgIGJv
b2wgbV9zaG91bGRTZWxlY3RPcHRpb25BdXRvbWF0aWNhbGx5IHsgdHJ1ZSB9OwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDLm1tCmluZGV4
IGU3YTE2YmY4ZWU5YWExZWUzM2RhMGYyMmJiNzY2MWUyYTU4OWFjMjEuLjdlMmUzNGI3YzcyMmU0
ZmY0Zjg4YjRkMjllNmU1Y2VjNGY3MWZkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFTZWxlY3Rpb25Hcm91cEFWRk9iakMubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKIAorI2ltcG9ydCAiTGFuZ3VhZ2UuaCIKICNpbXBvcnQgIlNvZnRMaW5r
aW5nLmgiCiAjaW1wb3J0IDxBVkZvdW5kYXRpb24vQVZBc3NldC5oPgogI2ltcG9ydCA8QVZGb3Vu
ZGF0aW9uL0FWTWVkaWFTZWxlY3Rpb25Hcm91cC5oPgpAQCAtMzUsNiArMzYsNyBAQAogI2ltcG9y
dCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDx3dGYvSGFzaE1hcC5oPgogI2ltcG9ydCA8d3Rm
L0hhc2hTZXQuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBTT0ZUX0xJTktf
RlJBTUVXT1JLX09QVElPTkFMKEFWRm91bmRhdGlvbikKIApAQCAtODgsNyArOTAsNiBAQCBQYXNz
UmVmUHRyPE1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDPiBNZWRpYVNlbGVjdGlvbkdyb3VwQVZG
T2JqQzo6Y3JlYXRlKEFWUGxheQogTWVkaWFTZWxlY3Rpb25Hcm91cEFWRk9iakM6Ok1lZGlhU2Vs
ZWN0aW9uR3JvdXBBVkZPYmpDKEFWUGxheWVySXRlbSAqaXRlbSwgQVZNZWRpYVNlbGVjdGlvbkdy
b3VwICpncm91cCkKICAgICA6IG1fcGxheWVySXRlbShpdGVtKQogICAgICwgbV9tZWRpYVNlbGVj
dGlvbkdyb3VwKGdyb3VwKQotICAgICwgbV9zZWxlY3RlZE9wdGlvbihudWxscHRyKQogICAgICwg
bV9zZWxlY3Rpb25UaW1lcigqdGhpcywgJk1lZGlhU2VsZWN0aW9uR3JvdXBBVkZPYmpDOjpzZWxl
Y3Rpb25UaW1lckZpcmVkKQogewogICAgIHVwZGF0ZU9wdGlvbnMoKTsKQEAgLTEyOCw2ICsxMjks
MjUgQEAgdm9pZCBNZWRpYVNlbGVjdGlvbkdyb3VwQVZGT2JqQzo6dXBkYXRlT3B0aW9ucygpCiAg
ICAgICAgICAgICBtX3NlbGVjdGVkT3B0aW9uID0gYWRkZWRPcHRpb24uZ2V0KCk7CiAgICAgICAg
IG1fb3B0aW9ucy5zZXQoYWRkZWRBVk9wdGlvbiwgYWRkZWRPcHRpb24ucmVsZWFzZSgpKTsKICAg
ICB9CisKKyAgICBpZiAoIW1fc2hvdWxkU2VsZWN0T3B0aW9uQXV0b21hdGljYWxseSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBuc0xhbmd1YWdlcyA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhDYXBhY2l0eTp1c2VyUHJl
ZmVycmVkTGFuZ3VhZ2VzKCkuc2l6ZSgpXSk7CisgICAgZm9yIChhdXRvJiBsYW5ndWFnZSA6IHVz
ZXJQcmVmZXJyZWRMYW5ndWFnZXMoKSkKKyAgICAgICAgW25zTGFuZ3VhZ2VzIGFkZE9iamVjdDoo
TlNTdHJpbmcqKWxhbmd1YWdlXTsKKyAgICBOU0FycmF5KiBmaWx0ZXJlZE9wdGlvbnMgPSBbZ2V0
QVZNZWRpYVNlbGVjdGlvbkdyb3VwQ2xhc3MoKSBtZWRpYVNlbGVjdGlvbk9wdGlvbnNGcm9tQXJy
YXk6W21fbWVkaWFTZWxlY3Rpb25Hcm91cCBvcHRpb25zXSBmaWx0ZXJlZEFuZFNvcnRlZEFjY29y
ZGluZ1RvUHJlZmVycmVkTGFuZ3VhZ2VzOm5zTGFuZ3VhZ2VzLmdldCgpXTsKKworICAgIGlmICgh
W2ZpbHRlcmVkT3B0aW9ucyBjb3VudF0pCisgICAgICAgIHJldHVybjsKKworICAgIEFWTWVkaWFT
ZWxlY3Rpb25PcHRpb24qIHByZWZlcnJlZE9wdGlvbiA9IFtmaWx0ZXJlZE9wdGlvbnMgb2JqZWN0
QXRJbmRleDowXTsKKyAgICBpZiAobV9zZWxlY3RlZE9wdGlvbiAmJiBtX3NlbGVjdGVkT3B0aW9u
LT5hdk1lZGlhU2VsZWN0aW9uT3B0aW9uKCkgPT0gcHJlZmVycmVkT3B0aW9uKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBBU1NFUlQobV9vcHRpb25zLmNvbnRhaW5zKHByZWZlcnJlZE9wdGlvbikp
OworICAgIG1fc2VsZWN0ZWRPcHRpb24gPSBtX29wdGlvbnMuZ2V0KHByZWZlcnJlZE9wdGlvbik7
CisgICAgbV9zZWxlY3Rpb25UaW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKIHZvaWQgTWVkaWFT
ZWxlY3Rpb25Hcm91cEFWRk9iakM6OnNldFNlbGVjdGVkT3B0aW9uKE1lZGlhU2VsZWN0aW9uT3B0
aW9uQVZGT2JqQyogb3B0aW9uKQpAQCAtMTM1LDYgKzE1NSw3IEBAIHZvaWQgTWVkaWFTZWxlY3Rp
b25Hcm91cEFWRk9iakM6OnNldFNlbGVjdGVkT3B0aW9uKE1lZGlhU2VsZWN0aW9uT3B0aW9uQVZG
T2JqQyoKICAgICBpZiAobV9zZWxlY3RlZE9wdGlvbiA9PSBvcHRpb24pCiAgICAgICAgIHJldHVy
bjsKIAorICAgIG1fc2hvdWxkU2VsZWN0T3B0aW9uQXV0b21hdGljYWxseSA9IGZhbHNlOwogICAg
IG1fc2VsZWN0ZWRPcHRpb24gPSBvcHRpb247CiAgICAgaWYgKG1fc2VsZWN0aW9uVGltZXIuaXNB
Y3RpdmUoKSkKICAgICAgICAgbV9zZWxlY3Rpb25UaW1lci5zdG9wKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
T2JqQy5tbQppbmRleCA2MmM0NTQ4ZWJlNWQwNGY3NTMwMTMzN2UyOWVhNzhjMGVkYjU5MjMwLi41
ZmE0ZmVhN2NjNmQ4NWQwYmJhNTM2NjA5MzAwMzcxMGY1YjAxM2E3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb25PYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlv
bk9iakMubW0KQEAgLTkzNiwxMiArOTM2LDYgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVBVkZv
dW5kYXRpb25PYmpDOjpjcmVhdGVBVlBsYXllckl0ZW0oKQogICAgIFttX2F2UGxheWVySXRlbS5n
ZXQoKSBhZGRPdXRwdXQ6bV9sZWdpYmxlT3V0cHV0LmdldCgpXTsKICNlbmRpZgogCi0jaWYgSEFW
RShBVkZPVU5EQVRJT05fTUVESUFfU0VMRUNUSU9OX0dST1VQKSAmJiBIQVZFKEFWRk9VTkRBVElP
Tl9MRUdJQkxFX09VVFBVVF9TVVBQT1JUKQotICAgICAgICBbbV9hdlBsYXllckl0ZW0gc2VsZWN0
TWVkaWFPcHRpb25BdXRvbWF0aWNhbGx5SW5NZWRpYVNlbGVjdGlvbkdyb3VwOnNhZmVNZWRpYVNl
bGVjdGlvbkdyb3VwRm9yTGVnaWJsZU1lZGlhKCldOwotICAgICAgICBbbV9hdlBsYXllckl0ZW0g
c2VsZWN0TWVkaWFPcHRpb25BdXRvbWF0aWNhbGx5SW5NZWRpYVNlbGVjdGlvbkdyb3VwOnNhZmVN
ZWRpYVNlbGVjdGlvbkdyb3VwRm9yQXVkaWJsZU1lZGlhKCldOwotICAgICAgICBbbV9hdlBsYXll
ckl0ZW0gc2VsZWN0TWVkaWFPcHRpb25BdXRvbWF0aWNhbGx5SW5NZWRpYVNlbGVjdGlvbkdyb3Vw
OnNhZmVNZWRpYVNlbGVjdGlvbkdyb3VwRm9yVmlzdWFsTWVkaWEoKV07Ci0jZW5kaWYKLQogI2lm
IEVOQUJMRShXRUJfQVVESU8pICYmIFVTRShNRURJQVRPT0xCT1gpCiAgICAgaWYgKG1fcHJvdmlk
ZXIpCiAgICAgICAgIG1fcHJvdmlkZXItPnNldFBsYXllckl0ZW0obV9hdlBsYXllckl0ZW0uZ2V0
KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDc0OWJiYzUwMDZhNGFkZjcwN2U5MDA3MTE5NmNlODM5YzQ1YTIxNzMuLjY5
YzRkYWMxZThjMWJiNThkMWE2ZmFlNDk2MGMwNmUxYTBmZTljMzMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxNS0wMS0yNiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBbTWFjXSBITFMgYXVkaW8gaXMgbm90IGNvcnJlY3RseSBzZWxlY3RlZCBhY2NvcmRpbmcg
dG8gc3lzdGVtIGxhbmd1YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDAzOTgKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMTkyMTg0ODcKKworICAg
ICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGh0dHAvdGVzdHMvbWVk
aWEvaGxzL2hscy1hdWRpby10cmFja3MtbG9jYWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3MtbG9j
YWxlLXNlbGVjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL3Jl
c291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0zdTg6CisKIDIwMTUtMDEtMjMgIEplciBOb2JsZSAg
PGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY11bRU1FXSBTdXBwb3J0IENsZWFy
S2V5IGVuY3J5cHRpb24gd2l0aCBBRVMxMjgtZW5jcnlwdGVkIEhMUwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2Vs
ZWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxzL2hs
cy1hdWRpby10cmFja3MtbG9jYWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzhhNzZjNGRhNGZlNjI1ZThkNGY1MzAzMTUwMTMxYjBjODE5OGI2MwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvaGxzL2hscy1hdWRpby10cmFja3MtbG9j
YWxlLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACisKK1JVTihpbnRlcm5h
bHMuc2V0VXNlclByZWZlcnJlZExhbmd1YWdlcyhbImpwIiwgImZyIiwgImVzLUVOIiwgImVuIl0p
KQorRVZFTlQoY2FucGxheXRocm91Z2gpCitFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3MubGVu
Z3RoID09ICczJykgT0sKK0VYUEVDVEVEICh2aWRlby5hdWRpb1RyYWNrc1swXS5lbmFibGVkID09
ICdmYWxzZScpIE9LCitFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3NbMV0uZW5hYmxlZCA9PSAn
dHJ1ZScpIE9LCitFWFBFQ1RFRCAodmlkZW8uYXVkaW9UcmFja3NbMl0uZW5hYmxlZCA9PSAnZmFs
c2UnKSBPSworRU5EIE9GIFRFU1QKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9obHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL2hscy9obHMtYXVkaW8tdHJhY2tzLWxvY2FsZS1zZWxl
Y3Rpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYTQwOTQwN2IyYmFlZWY1ODJlYjUyNzA3N2QxMzkwNjYx
MDVhMzJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9o
bHMvaGxzLWF1ZGlvLXRyYWNrcy1sb2NhbGUtc2VsZWN0aW9uLmh0bWwKQEAgLTAsMCArMSwzNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Li4vLi4vbWVkaWEtcmVzb3VyY2VzL3ZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CisgICAgICAg
IDxzY3JpcHQgc3JjPS4uLy4uL21lZGlhLXJlc291cmNlcy9tZWRpYS1jb250cm9scy5qcz48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBmdW5jdGlvbiBzdGFydCgpIHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgICAgICAgICAgcnVuKCdpbnRlcm5hbHMuc2V0VXNlclByZWZl
cnJlZExhbmd1YWdlcyhbImpwIiwgImZyIiwgImVzLUVOIiwgImVuIl0pJyk7CisgICAgICAgICAg
ICAgICAgZWxzZQorICAgICAgICAgICAgICAgICAgICBjb25zb2xlV3JpdGUoJ0NoYW5nZSB5b3Vy
IHN5c3RlbSBsYW5ndWFnZSB0byBGcmVuY2gsIGFuZCBjaGVjayB0aGF0IHRoZSBmcmVuY2ggYXVk
aW8gdHJhY2sgd2FzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuJyk7CisKKyAgICAgICAgICAgICAgICB2
aWRlbyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd2aWRlbycpOworICAgICAgICAgICAgICAg
IHdhaXRGb3JFdmVudCgnY2FucGxheXRocm91Z2gnLCBjYW5wbGF5dGhyb3VnaCk7CisgICAgICAg
ICAgICAgICAgdmlkZW8uc3JjID0gIi4uL3Jlc291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0zdTgi
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBjYW5wbGF5dGhyb3VnaCgp
IHsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmF1ZGlvVHJhY2tzLmxlbmd0
aCIsIDMpOworICAgICAgICAgICAgICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uYXVkaW9UcmFja3Nb
MF0uZW5hYmxlZCIsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVv
LmF1ZGlvVHJhY2tzWzFdLmVuYWJsZWQiLCB0cnVlKTsKKyAgICAgICAgICAgICAgICB0ZXN0RXhw
ZWN0ZWQoInZpZGVvLmF1ZGlvVHJhY2tzWzJdLmVuYWJsZWQiLCBmYWxzZSk7CisgICAgICAgICAg
ICAgICAgZW5kVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJzdGFydCgpIj4KKyAgICAgICAgPHZpZGVvIGlkPSJ2
aWRlbyI+PC92aWRlbz4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0zdTggYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL3Jlc291cmNlcy9obHMvYXVkaW8tdHJhY2tzLm0z
dTgKaW5kZXggMTFhYjFkYWNjN2I2ZDg5N2YwOWU1ZTg5NTMzMjRhNjMxZTVlNGYzOC4uNTY0Y2I3
NDJmYzllNTgwODJjYjRiZmM0YzA3M2YyMzdlMzdjOTE0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9tZWRpYS9yZXNvdXJjZXMvaGxzL2F1ZGlvLXRyYWNrcy5tM3U4CisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWVkaWEvcmVzb3VyY2VzL2hscy9hdWRpby10cmFja3Mu
bTN1OApAQCAtMSw4ICsxLDggQEAKICNFWFRNM1UKIAotI0VYVC1YLU1FRElBOlRZUEU9QVVESU8s
R1JPVVAtSUQ9ImJpcGJvcF9hdWRpbyIsTEFOR1VBR0U9ImVuZyIsTkFNRT0iRW5nbGlzaCBTb3Vu
ZCIsQVVUT1NFTEVDVD1ZRVMsREVGQVVMVD1ZRVMKLSNFWFQtWC1NRURJQTpUWVBFPUFVRElPLEdS
T1VQLUlEPSJiaXBib3BfYXVkaW8iLExBTkdVQUdFPSJmcmUiLE5BTUU9IkZyZW5jaCBTb3VuZCIs
QVVUT1NFTEVDVD1OTyxERUZBVUxUPU5PLFVSST0iZnJlbmNoL3Byb2dfaW5kZXgubTN1OCIKLSNF
WFQtWC1NRURJQTpUWVBFPUFVRElPLEdST1VQLUlEPSJiaXBib3BfYXVkaW8iLExBTkdVQUdFPSJz
cGEiLE5BTUU9IlNwYW5pc2ggU291bmQiLEFVVE9TRUxFQ1Q9Tk8sREVGQVVMVD1OTyxVUkk9InNw
YW5pc2gvcHJvZ19pbmRleC5tM3U4IgorI0VYVC1YLU1FRElBOlRZUEU9QVVESU8sR1JPVVAtSUQ9
ImJpcGJvcF9hdWRpbyIsTEFOR1VBR0U9ImVuLVVTIixOQU1FPSJFbmdsaXNoIFNvdW5kIixBVVRP
U0VMRUNUPVlFUyxERUZBVUxUPVlFUworI0VYVC1YLU1FRElBOlRZUEU9QVVESU8sR1JPVVAtSUQ9
ImJpcGJvcF9hdWRpbyIsTEFOR1VBR0U9ImZyLUZSIixOQU1FPSJGcmVuY2ggU291bmQiLEFVVE9T
RUxFQ1Q9Tk8sREVGQVVMVD1OTyxVUkk9ImZyZW5jaC9wcm9nX2luZGV4Lm0zdTgiCisjRVhULVgt
TUVESUE6VFlQRT1BVURJTyxHUk9VUC1JRD0iYmlwYm9wX2F1ZGlvIixMQU5HVUFHRT0iZXMtVVMi
LE5BTUU9IlNwYW5pc2ggU291bmQiLEFVVE9TRUxFQ1Q9Tk8sREVGQVVMVD1OTyxVUkk9InNwYW5p
c2gvcHJvZ19pbmRleC5tM3U4IgogCiAjRVhULVgtU1RSRUFNLUlORjpCQU5EV0lEVEg9NjM0NDUx
LENPREVDUz0ibXA0YS40MC4yLCBhdmMxLjRkNDAxZSIsUkVTT0xVVElPTj02NDB4NDgwLEFVRElP
PSJiaXBib3BfYXVkaW8iCiBiaXBib3AvcHJvZ19pbmRleC5tM3U4Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>