<?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>133524</bug_id>
          
          <creation_ts>2014-06-04 13:18:14 -0700</creation_ts>
          <short_desc>[iOS] Input type=time elements styled with SVG fonts have 0 width</short_desc>
          <delta_ts>2014-06-17 14:30:04 -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>Layout and Rendering</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="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1013360</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-04 13:18:14 -0700</bug_when>
    <thetext>See related bug https://bugs.webkit.org/show_bug.cgi?id=133198. Fixing this requires a somewhat heavyweight refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1013437</commentid>
    <comment_count>1</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-04 18:41:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/17166620&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015592</commentid>
    <comment_count>2</comment_count>
      <attachid>233097</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-13 19:09:35 -0700</bug_when>
    <thetext>Created attachment 233097
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1015935</commentid>
    <comment_count>3</comment_count>
      <attachid>233097</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-16 12:48:20 -0700</bug_when>
    <thetext>Comment on attachment 233097
Patch

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

&gt; Source/WebCore/platform/text/ios/LocalizedDateCache.mm:96
&gt; +    if (m_font == font &amp;&amp; m_maxWidthMap.contains(key)) {
&gt; +        cachedResult = m_maxWidthMap.get(key);
&gt; +        return Vector&lt;String&gt;();
&gt; +    }

This conflation of caching max widths per type (globally)? and the getting of list of strings is super confusing, and I don&apos;t understand the global per-type cache.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016223</commentid>
    <comment_count>4</comment_count>
      <attachid>233255</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-17 12:56:32 -0700</bug_when>
    <thetext>Created attachment 233255
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016224</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-06-17 12:57:40 -0700</bug_when>
    <thetext>Attachment 233255 did not pass style-queue:


ERROR: Source/WebCore/rendering/RenderThemeIOS.mm:566:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 16 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>1016226</commentid>
    <comment_count>6</comment_count>
      <attachid>233255</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-06-17 13:09:24 -0700</bug_when>
    <thetext>Comment on attachment 233255
Patch

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

&gt; Source/WebCore/platform/text/ios/LocalizedDateCache.h:43
&gt; +    virtual ~MeasureTextClient() { }

Not sure you want this. See https://bugs.webkit.org/show_bug.cgi?id=133908#c3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1016253</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-06-17 14:30:04 -0700</bug_when>
    <thetext>Just talked to Anders, we decided to keep it in.

http://trac.webkit.org/changeset/170072</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233097</attachid>
            <date>2014-06-13 19:09:35 -0700</date>
            <delta_ts>2014-06-17 12:56:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133524-20140613190911.patch</filename>
            <type>text/plain</type>
            <size>13870</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY5OTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTIyOGM4NmZiMjlmZjVl
OWZkYjU1NjBlODAzMDc0Mzc3YjgwNzhmOS4uYWY4MWNiMjc3OGMxMTAwMWQ0YTljZDYyZmZjZmU4
NTUzMjFiZmFlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTA2LTEzICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gSW5w
dXQgdHlwZT10aW1lIGVsZW1lbnRzIHN0eWxlZCB3aXRoIFNWRyBmb250cyBoYXZlIDAgd2lkdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzUyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9y
IGhvdyB0aGUgTG9jYWxpemVkRGF0ZUNhY2hlIHJldHVybnMgbWF4aW11bSB3aWR0aHMgZm9yIGlu
cHV0IGVsZW1lbnRzLiBDdXJyZW50bHksCisgICAgICAgIG1lYXN1cmluZyB0aGUgd2lkdGggb2Yg
YW4gU1ZHIGZvbnQgcmVxdWlyZXMgYSBSZW5kZXJPYmplY3QgZm9yIGNvbnRleHQsIHdoaWNoIHRo
ZQorICAgICAgICBMb2NhbGl6ZWREYXRlQ2FjaGUgY2FuJ3Qga25vdyBhYm91dCAoaXQgd291bGQg
YmUgYSBwbGF0Zm9ybSB2aW9sYXRpb24pLiBJbnN0ZWFkLCB0aGUKKyAgICAgICAgTG9jYWxpemVk
RGF0ZUNhY2hlIGNhbiByZXR1cm4gdGhlIHN0cmluZ3MgdGhhdCBpdCB3b3VsZCB1c2UgdG8gbWVh
c3VyZSB0aGUgd2lkdGgsIGFuZCB0aGUKKyAgICAgICAgY2FsbGVyIGNhbiBhY3R1YWxseSBydW4g
dGhlIHdpZHRoIGNvbXB1dGF0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvdGltZS1p
bnB1dC1zdmctZm9udC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9j
YWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLmg6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxpemVkRGF0ZUNhY2hlOjpwb3NzaWJsZVN0cmluZ3NGb3JNZWFz
dXJpbmdEYXRlVHlwZVdpZHRoKTogTG9va3VwIGludG8gdGhlCisgICAgICAgIGNhY2hlLCBvdGhl
cndpc2UgY2FsY3VsY2F0ZSByZXN1bHQuCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZWREYXRl
Q2FjaGU6OnNldE1heGltdW1XaWR0aEZvckRhdGVUeXBlKTogSW5zZXJ0IGludG8gdGhlIGNhY2hl
CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZWREYXRlQ2FjaGU6OmNhbGN1bGF0ZVBvc3NpYmxl
U3RyaW5nc0Zvck1lYXN1cmluZ0RhdGVUeXBlV2lkdGgpOiBSZXR1cm4KKyAgICAgICAgc3RyaW5n
cyBpbnN0ZWFkIG9mIGEgd2lkdGguCisgICAgICAgIChXZWJDb3JlOjpMb2NhbGl6ZWREYXRlQ2Fj
aGU6Om1heGltdW1XaWR0aEZvckRhdGVUeXBlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkxvY2FsaXplZERhdGVDYWNoZTo6Y2FsY3VsYXRlTWF4aW11bVdpZHRoKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L21hYy9Mb2NhbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVNYWM6OmZv
cm1hdERhdGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU1hYzo6bWF4aW11bVdpZHRo
Rm9yRGF0ZVR5cGUpOiBEZWxldGVkLiBTaG9ydC1jaXJjdWl0IHRoaXMgYW5kIGdvCisgICAgICAg
IGRpcmVjdGx5IHRvIHRoZSBMb2NhbGl6ZWREYXRlQ2FjaGUuIFRoaXMgbWFrZXMgc2Vuc2UgYmVj
YXVzZSB3ZSBoYXZlIHRvIGV4cGxpY2l0bHkKKyAgICAgICAgaW5zZXJ0IGNvbXB1dGVkIHZhbHVl
cyBiYWNrIGludG8gdGhlIGNhY2hlIGluIHRoaXMgbmV3IG1vZGVsLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdElucHV0RWxl
bWVudEJ1dHRvblN0eWxlKTogUGVyZm9ybSBtYXhpbXVtIHdpZHRoIGNvbXB1dGF0aW9uIGdpdmVu
CisgICAgICAgIHRoZSBzdHJpbmdzIGZyb20gdGhlIExvY2FsaXplZERhdGVDYWNoZS4KKwogMjAx
NC0wNi0xMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBhIEhUVFBIZWFkZXJNYXA6OmZpbmQgb3ZlcmxvYWQgdGhhdCB0YWtlcyBhIEhUVFBIZWFk
ZXJOYW1lCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3Jt
TG9jYWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmgK
aW5kZXggOWZjNjM5Y2VhNjBhNDkzNzc2M2ZjYjQzODcwNzY0ZGY2ZDNiMGRiZS4uZWY4NTIyYzg5
NTQyNzQ1NGQzZGIxYmIwM2IzNWM0MDI3NGQ2ZDk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9QbGF0Zm9ybUxvY2FsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvUGxhdGZvcm1Mb2NhbGUuaApAQCAtMTI0LDEyICsxMjQsNiBAQCBwdWJsaWM6
CiAjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQot
ICAgIC8vIEZJWE1FOiBUaGlzIGNvZGUgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIE9wZW4gU291cmNl
IGluIGEgd2F5IHRoYXQgaXMgZnV0dXJlIGNvbXBhdGlibGUuCi0gICAgLy8gTWF4aW11bSB3aWR0
aCBmb3IgYSBmb3JtYXR0ZWQgZGF0ZSBzdHJpbmcgd2l0aCBhIHNwZWNpZmllZCBmb250LgotICAg
IHZpcnR1YWwgZmxvYXQgbWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5
cGUsIGNvbnN0IEZvbnQmKSA9IDA7Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgfkxvY2FsZSgpOwog
CiBwcm90ZWN0ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2lv
cy9Mb2NhbGl6ZWREYXRlQ2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9z
L0xvY2FsaXplZERhdGVDYWNoZS5oCmluZGV4IGQ3YWQyYmNiNzk0ZGJiZTRlYjQ0NGZlMjFjNjZj
ZDVkYThjNDk5MWYuLmNlZmJmZWY3N2ZmMjMyMThiZTlmZDc2OTM3YWEzOTViMjQ3YjY1MTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVD
YWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERh
dGVDYWNoZS5oCkBAIC00MCw3ICs0MCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIExv
Y2FsaXplZERhdGVDYWNoZSB7CiBwdWJsaWM6CiAgICAgTlNEYXRlRm9ybWF0dGVyICpmb3JtYXR0
ZXJGb3JEYXRlVHlwZShEYXRlQ29tcG9uZW50czo6VHlwZSk7Ci0gICAgZmxvYXQgbWF4aW11bVdp
ZHRoRm9yRGF0ZVR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5cGUsIGNvbnN0IEZvbnQmKTsKKyAgICBW
ZWN0b3I8U3RyaW5nPiBwb3NzaWJsZVN0cmluZ3NGb3JNZWFzdXJpbmdEYXRlVHlwZVdpZHRoKERh
dGVDb21wb25lbnRzOjpUeXBlLCBjb25zdCBGb250JiwgZmxvYXQmIGNhY2hlZFJlc3VsdCk7Cisg
ICAgdm9pZCBzZXRNYXhpbXVtV2lkdGhGb3JEYXRlVHlwZShEYXRlQ29tcG9uZW50czo6VHlwZSwg
Y29uc3QgRm9udCYsIGZsb2F0IHdpZHRoKTsKICAgICB2b2lkIGxvY2FsZUNoYW5nZWQoKTsKIAog
cHJpdmF0ZToKQEAgLTQ4LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB+TG9jYWxpemVkRGF0ZUNh
Y2hlKCk7CiAKICAgICBOU0RhdGVGb3JtYXR0ZXIgKmNyZWF0ZUZvcm1hdHRlckZvclR5cGUoRGF0
ZUNvbXBvbmVudHM6OlR5cGUpOwotICAgIGZsb2F0IGNhbGN1bGF0ZU1heGltdW1XaWR0aChEYXRl
Q29tcG9uZW50czo6VHlwZSwgY29uc3QgRm9udCYpOworICAgIFZlY3RvcjxTdHJpbmc+IGNhbGN1
bGF0ZVBvc3NpYmxlU3RyaW5nc0Zvck1lYXN1cmluZ0RhdGVUeXBlV2lkdGgoRGF0ZUNvbXBvbmVu
dHM6OlR5cGUpOwogCiAgICAgLy8gVXNpbmcgaW50IGluc3RlYWQgb2YgRGF0ZUNvbXBvbmVudHM6
OlR5cGUgZm9yIHRoZSBrZXkgYmVjYXVzZSB0aGUgZW51bQogICAgIC8vIGRvZXMgbm90IGhhdmUg
YSBkZWZhdWx0IGhhc2ggYW5kIGhhc2ggdHJhaXRzLiBVc2FnZSBvZiB0aGUgbWFwcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hl
Lm1tCmluZGV4IGNkZDhjNmI2MTkzMTQ1ZTc0MGI3ZjQ2YTJjNGNjYmRkMWZhYTllYjMuLjMyMzQ2
OGJlMjEyYTI1OWUyNWFiYjFmYWEzMzJiYTkxMzg5NjcwY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUubW0KQEAgLTg0
LDIwICs4NCwzMSBAQCBOU0RhdGVGb3JtYXR0ZXIgKkxvY2FsaXplZERhdGVDYWNoZTo6Zm9ybWF0
dGVyRm9yRGF0ZVR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdAogICAgIHJldHVybiBkYXRlRm9y
bWF0dGVyOwogfQogCi1mbG9hdCBMb2NhbGl6ZWREYXRlQ2FjaGU6Om1heGltdW1XaWR0aEZvckRh
dGVUeXBlKERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUsIGNvbnN0IEZvbnQmIGZvbnQpCitWZWN0
b3I8U3RyaW5nPiBMb2NhbGl6ZWREYXRlQ2FjaGU6OnBvc3NpYmxlU3RyaW5nc0Zvck1lYXN1cmlu
Z0RhdGVUeXBlV2lkdGgoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSwgY29uc3QgRm9udCYgZm9u
dCwgZmxvYXQmIGNhY2hlZFJlc3VsdCkKIHsKKyAgICBBU1NFUlQodHlwZSAhPSBEYXRlQ29tcG9u
ZW50czo6SW52YWxpZCk7CisgICAgQVNTRVJUKHR5cGUgIT0gRGF0ZUNvbXBvbmVudHM6OldlZWsp
OworCiAgICAgaW50IGtleSA9IHN0YXRpY19jYXN0PGludD4odHlwZSk7Ci0gICAgaWYgKG1fZm9u
dCA9PSBmb250KSB7Ci0gICAgICAgIGlmIChtX21heFdpZHRoTWFwLmNvbnRhaW5zKGtleSkpCi0g
ICAgICAgICAgICByZXR1cm4gbV9tYXhXaWR0aE1hcC5nZXQoa2V5KTsKLSAgICB9IGVsc2Ugewor
ICAgIGlmIChtX2ZvbnQgPT0gZm9udCAmJiBtX21heFdpZHRoTWFwLmNvbnRhaW5zKGtleSkpIHsK
KyAgICAgICAgY2FjaGVkUmVzdWx0ID0gbV9tYXhXaWR0aE1hcC5nZXQoa2V5KTsKKyAgICAgICAg
cmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CisgICAgfQorCisgICAgY2FjaGVkUmVzdWx0ID0gLTE7
CisKKyAgICByZXR1cm4gY2FsY3VsYXRlUG9zc2libGVTdHJpbmdzRm9yTWVhc3VyaW5nRGF0ZVR5
cGVXaWR0aCh0eXBlKTsKK30KKwordm9pZCBMb2NhbGl6ZWREYXRlQ2FjaGU6OnNldE1heGltdW1X
aWR0aEZvckRhdGVUeXBlKERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUsIGNvbnN0IEZvbnQmIGZv
bnQsIGZsb2F0IHdpZHRoKQoreworICAgIGlmIChmb250ICE9IG1fZm9udCkgewogICAgICAgICBt
X2ZvbnQgPSBGb250KGZvbnQpOwogICAgICAgICBtX21heFdpZHRoTWFwLmNsZWFyKCk7CiAgICAg
fQotCi0gICAgZmxvYXQgY2FsY3VsYXRlZE1heGltdW0gPSBjYWxjdWxhdGVNYXhpbXVtV2lkdGgo
dHlwZSwgZm9udCk7Ci0gICAgbV9tYXhXaWR0aE1hcC5zZXQoa2V5LCBjYWxjdWxhdGVkTWF4aW11
bSk7Ci0gICAgcmV0dXJuIGNhbGN1bGF0ZWRNYXhpbXVtOworICAgIGludCBrZXkgPSBzdGF0aWNf
Y2FzdDxpbnQ+KHR5cGUpOworICAgIEFTU0VSVCghbV9tYXhXaWR0aE1hcC5jb250YWlucyhrZXkp
KTsKKyAgICBtX21heFdpZHRoTWFwLnNldChrZXksIHdpZHRoKTsKIH0KIAogTlNEYXRlRm9ybWF0
dGVyICpMb2NhbGl6ZWREYXRlQ2FjaGU6OmNyZWF0ZUZvcm1hdHRlckZvclR5cGUoRGF0ZUNvbXBv
bmVudHM6OlR5cGUgdHlwZSkKQEAgLTE0NCw5ICsxNTUsOSBAQCBOU0RhdGVGb3JtYXR0ZXIgKkxv
Y2FsaXplZERhdGVDYWNoZTo6Y3JlYXRlRm9ybWF0dGVyRm9yVHlwZShEYXRlQ29tcG9uZW50czo6
VHlwZQogCiAvLyBOT1RFOiBUaGlzIGRvZXMgbm90IGNoZWNrIGZvciB0aGUgd2lkZXN0IGRheSBv
ZiB0aGUgd2Vlay4KIC8vIFdlIGFzc3VtZSBubyBmb3JtYXR0ZXIgb3B0aW9uIHNob3dzIHRoYXQg
aW5mb3JtYXRpb24uCi1mbG9hdCBMb2NhbGl6ZWREYXRlQ2FjaGU6OmNhbGN1bGF0ZU1heGltdW1X
aWR0aChEYXRlQ29tcG9uZW50czo6VHlwZSB0eXBlLCBjb25zdCBGb250JiBmb250KQorVmVjdG9y
PFN0cmluZz4gTG9jYWxpemVkRGF0ZUNhY2hlOjpjYWxjdWxhdGVQb3NzaWJsZVN0cmluZ3NGb3JN
ZWFzdXJpbmdEYXRlVHlwZVdpZHRoKERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUpCiB7Ci0gICAg
ZmxvYXQgbWF4aW11bVdpZHRoID0gMDsKKyAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CiAKICAg
ICAvLyBHZXQgdGhlIGZvcm1hdHRlciB3ZSB3b3VsZCB1c2UsIGNvcHkgaXQgYmVjYXVzZSB3ZSB3
aWxsIGZvcmNlIGl0cyB0aW1lIHpvbmUgdG8gYmUgVVRDLgogICAgIE5TRGF0ZUZvcm1hdHRlciAq
ZGF0ZUZvcm1hdHRlciA9IFtbZm9ybWF0dGVyRm9yRGF0ZVR5cGUodHlwZSkgY29weV0gYXV0b3Jl
bGVhc2VdOwpAQCAtMTgyLDExICsxOTMsMTAgQEAgZmxvYXQgTG9jYWxpemVkRGF0ZUNhY2hlOjpj
YWxjdWxhdGVNYXhpbXVtV2lkdGgoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSwgY29uc3QKICAg
ICAgICAgW2NvbXBvbmVudHMuZ2V0KCkgc2V0TW9udGg6KGkgKyAxKV07CiAgICAgICAgIE5TRGF0
ZSAqZGF0ZSA9IFtncmVnb3JpYW4uZ2V0KCkgZGF0ZUZyb21Db21wb25lbnRzOmNvbXBvbmVudHMu
Z2V0KCldOwogICAgICAgICBOU1N0cmluZyAqZm9ybWF0dGVkRGF0ZSA9IFtkYXRlRm9ybWF0dGVy
IHN0cmluZ0Zyb21EYXRlOmRhdGVdOwotICAgICAgICBTdHJpbmcgc3RyID0gU3RyaW5nKGZvcm1h
dHRlZERhdGUpOwotICAgICAgICBtYXhpbXVtV2lkdGggPSBtYXgobWF4aW11bVdpZHRoLCBmb250
LndpZHRoKHN0cikpOworICAgICAgICByZXN1bHQuYXBwZW5kKFN0cmluZyhmb3JtYXR0ZWREYXRl
KSk7CiAgICAgfQogCi0gICAgcmV0dXJuIG1heGltdW1XaWR0aDsKKyAgICByZXR1cm4gcmVzdWx0
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvbWFjL0xvY2FsZU1hYy5oCmluZGV4IGM0YTFlOWFlYzQyNzk4YmMzZDJlMjgwNzExODk2
MjUxMjI0N2ExZTkuLjUzYTZkYjdhOThlODFmZjdhZTJiZDMzY2U1YTJmZGEzMTkzZTAxYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCkBAIC01MSw3
ICs1MSw2IEBAIHB1YmxpYzoKICAgICB+TG9jYWxlTWFjKCk7CiAKICNpZiBQTEFURk9STShJT1Mp
Ci0gICAgdmlydHVhbCBmbG9hdCBtYXhpbXVtV2lkdGhGb3JEYXRlVHlwZShEYXRlQ29tcG9uZW50
czo6VHlwZSwgY29uc3QgRm9udCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1h
dERhdGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVV
bnNwZWNpZmllZCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tCmluZGV4IDM5MjYxMTQyNDNkMDA1NGYxODRkZWRiY2Q0
MTJiOTE4MjgzYzEyMzQuLmMzNzI0YzllZmRjOWMzYzhlZGIxNGRlNWM2YmFkMTI3MmM0YzYzNTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KQEAg
LTEzMywxNCArMTMzLDYgQEAgU3RyaW5nIExvY2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUoY29uc3Qg
RGF0ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzLCBGb3JtYXRUeXAKICAgICBOU0RhdGVGb3Jt
YXR0ZXIgKmRhdGVGb3JtYXR0ZXIgPSBsb2NhbGl6ZWREYXRlQ2FjaGUoKS5mb3JtYXR0ZXJGb3JE
YXRlVHlwZSh0eXBlKTsKICAgICByZXR1cm4gW2RhdGVGb3JtYXR0ZXIgc3RyaW5nRnJvbURhdGU6
ZGF0ZV07CiB9Ci0KLWZsb2F0IExvY2FsZU1hYzo6bWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoRGF0
ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSwgY29uc3QgRm9udCYgZm9udCkKLXsKLSAgICBBU1NFUlQo
dHlwZSAhPSBEYXRlQ29tcG9uZW50czo6SW52YWxpZCk7Ci0gICAgQVNTRVJUKHR5cGUgIT0gRGF0
ZUNvbXBvbmVudHM6OldlZWspOwotCi0gICAgcmV0dXJuIGxvY2FsaXplZERhdGVDYWNoZSgpLm1h
eGltdW1XaWR0aEZvckRhdGVUeXBlKHR5cGUsIGZvbnQpOwotfQogI2VuZGlmCiAKICNpZiBFTkFC
TEUoREFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbQppbmRleCAzZmM3OWQzMjRlNDEzZjNhNTZiMTY5Yjg0ZWIxOGUyYjZm
NWY0ZDkwLi5mMjU5NTEzNzA2ZWEzYWM3OGQwYTkwYTkwYjcxOTZhMjA5MjI3ZDNlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC00NCw2ICs0NCw3IEBA
CiAjaW1wb3J0ICJIVE1MTmFtZXMuaCIKICNpbXBvcnQgIkhUTUxTZWxlY3RFbGVtZW50LmgiCiAj
aW1wb3J0ICJJY29uLmgiCisjaW1wb3J0ICJMb2NhbGl6ZWREYXRlQ2FjaGUuaCIKICNpbXBvcnQg
Ik5vZGVSZW5kZXJTdHlsZS5oIgogI2ltcG9ydCAiUGFnZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1M
b2NhbGUuaCIKQEAgLTU3MCwxMCArNTcxLDI0IEBAIHN0YXRpYyB2b2lkIGFkanVzdElucHV0RWxl
bWVudEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgSFRNTElucHV0RWxlbWVudCoKICAg
ICAvLyBFbmZvcmNlIHRoZSB3aWR0aCBhbmQgc2V0IHRoZSBib3gtc2l6aW5nIHRvIGNvbnRlbnQt
Ym94IHRvIG5vdCBjb25mbGljdCB3aXRoIHRoZSBwYWRkaW5nLgogICAgIEZvbnQgZm9udCA9IHN0
eWxlLT5mb250KCk7CiAgICAgRm9udENhY2hlUHVyZ2VQcmV2ZW50ZXIgZm9udENhY2hlUHVyZ2VQ
cmV2ZW50ZXI7Ci0gICAgLy8gRklYTUU6IENob29zZSBhbiBhcHByb3ByaWF0ZSB3aWR0aCBmb3Ig
dGhlc2UgZWxlbWVudHMgd2hlbgotICAgIC8vIHN0eWxlZCB3aXRoIFNWRyBmb250cyAocmF0aGVy
IHRoYW4gc2ltcGx5IDApLgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzM1MjQKLSAgICBmbG9hdCBtYXhpbXVtV2lkdGggPSBmb250LmlzU1ZHRm9udCgp
ID8gMCA6IGlucHV0RWxlbWVudC0+bG9jYWxlKCkubWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoZGF0
ZVR5cGUsIGZvbnQpOworCisgICAgaWYgKChmb250LmlzU1ZHRm9udCgpICYmICFpbnB1dEVsZW1l
bnQtPnJlbmRlcmVyKCkpIHx8ICFzdHlsZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZmxvYXQg
bWF4aW11bVdpZHRoOworICAgIExvY2FsaXplZERhdGVDYWNoZSYgY2FjaGUgPSBsb2NhbGl6ZWRE
YXRlQ2FjaGUoKTsKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3RyaW5ncyA9IGNhY2hlLnBv
c3NpYmxlU3RyaW5nc0Zvck1lYXN1cmluZ0RhdGVUeXBlV2lkdGgoZGF0ZVR5cGUsIGZvbnQsIG1h
eGltdW1XaWR0aCk7CisgICAgaWYgKG1heGltdW1XaWR0aCA8IDApIHsKKyAgICAgICAgRm9udENh
Y2hlUHVyZ2VQcmV2ZW50ZXIgZm9udENhY2hlUHVyZ2VQcmV2ZW50ZXI7CisgICAgICAgIGZvciAo
Y29uc3QgU3RyaW5nJiBzIDogc3RyaW5ncykgeworICAgICAgICAgICAgVGV4dFJ1biBydW4gPSBS
ZW5kZXJCbG9jazo6Y29uc3RydWN0VGV4dFJ1bihpbnB1dEVsZW1lbnQtPnJlbmRlcmVyKCksIGZv
bnQsIHMsICpzdHlsZSwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4cGFuc2lvbiB8IFRleHRSdW46
OkZvcmJpZExlYWRpbmdFeHBhbnNpb24sIERlZmF1bHRUZXh0UnVuRmxhZ3MpOworICAgICAgICAg
ICAgbWF4aW11bVdpZHRoID0gZm1heChtYXhpbXVtV2lkdGgsIGZvbnQud2lkdGgocnVuKSk7Cisg
ICAgICAgIH0KKyAgICAgICAgY2FjaGUuc2V0TWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoZGF0ZVR5
cGUsIGZvbnQsIG1heGltdW1XaWR0aCk7CisgICAgfQorCisgICAgQVNTRVJUKG1heGltdW1XaWR0
aCA+PSAwKTsKKwogICAgIGlmIChtYXhpbXVtV2lkdGggPiAwKSB7ICAgIAogICAgICAgICBpbnQg
d2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KG1heGltdW1XaWR0aCArIE1lbnVMaXN0QnV0dG9uUGFk
ZGluZ1JpZ2h0KTsKICAgICAgICAgc3R5bGUtPnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4ZWQp
KTsKQEAgLTEwNDYsNyArMTA2MSw3IEBAIGJvb2wgUmVuZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVw
bG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBSCiAKICAgICBy
ZXR1cm4gZmFsc2U7CiB9Ci0gICAgCisKIENvbG9yIFJlbmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIENvbG9y
Ojp0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5YzkzMWI1YjA3YWYwZmMyZjU2ZmVhNjc4MDlhOTg5NWM0
NzRjMzgzLi4yNzEyN2E3ZDAzNjM4NjY0YTk2YjkxNWFlNjJhZmM1MTQxMWE3MGUyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTYgQEAKKzIwMTQtMDYtMTMgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBJbnB1dCB0eXBlPXRpbWUgZWxlbWVudHMgc3R5
bGVkIHdpdGggU1ZHIGZvbnRzIGhhdmUgMCB3aWR0aAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzNTI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2ltcGx5IHJlbmRlciBhIHZhcmlldHkgb2YgaW5wdXQg
ZWxlbWVudHMgd2l0aCBTVkcgZm9udHMsIGFuZCBtYWtlIHN1cmUgdGhleSBoYXZlIHNhbmUgd2lk
dGhzLiBOb3RlIHRoYXQgdGhpcworICAgICAgICB0ZXN0IGlzIG5vdCBwbGF0Zm9ybS1zcGVjaWZp
YywgZXZlbiB0aG91Z2ggdGhlIGJ1ZyBpcy4KKworICAgICAgICAqIGZhc3QvZm9ybXMvdGltZS1p
bnB1dC1zdmctZm9udC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
dGltZS1pbnB1dC1zdmctZm9udC5odG1sOiBBZGRlZC4KKwogMjAxNC0wNi0xMyAgRW5yaXF1ZSBP
Y2HDsWEgR29uesOhbGV6ICA8ZW9jYW5oYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGlt
ZS1pbnB1dC1zdmctZm9udC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Rp
bWUtaW5wdXQtc3ZnLWZvbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NjhjZDU2MjBjYjAw
MmIxYjYyY2E2YmIwNGY0Y2NkYTNiOTdlMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL3RpbWUtaW5wdXQtc3ZnLWZvbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBpbnB1dCBlbGVtZW50cyBnZXQgcmVuZGVy
ZWQgd2l0aCBhIHNhbmUgd2lkdGguIFlvdSBzaG91bGQgc2VlIGZpdmUgdGltZSBpbnB1dCBlbGVt
ZW50cywgZm9sbG93ZWQgYnkgZml2ZSAiUEFTUyJlcy4KKyAgICAKK1Bhc3MgUGFzcyBQYXNzIFBh
c3MgUGFzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLWlucHV0LXN2
Zy1mb250Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtaW5wdXQtc3ZnLWZvbnQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yNWFlNTM5YzYxYjA5MjE1ZDFiNjlmNWFkNWNmZGE2ZjEzYTA0NGE3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLWlucHV0LXN2
Zy1mb250Lmh0bWwKQEAgLTAsMCArMSw0MCBAQAorPHN0eWxlPgorQGZvbnQtZmFjZSB7CisgICAg
Zm9udC1mYW1pbHk6ICdTVkdyYWZmaXRpJzsKKyAgICBzcmM6IHVybCgiLi4vLi4vc3ZnL2N1c3Rv
bS9yZXNvdXJjZXMvZ3JhZmZpdGkuc3ZnIikgZm9ybWF0KHN2ZykKK30KKzwvc3R5bGU+Cis8ZGl2
PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCBpbnB1dCBlbGVtZW50cyBnZXQgcmVuZGVyZWQg
d2l0aAorYSBzYW5lIHdpZHRoLiBZb3Ugc2hvdWxkIHNlZSBmaXZlIHRpbWUgaW5wdXQgZWxlbWVu
dHMsIGZvbGxvd2VkIGJ5IGZpdmUgIlBBU1MiZXMuCis8L2Rpdj4KKzxkaXYgc3R5bGU9ImZvbnQt
ZmFtaWx5OiBTVkdyYWZmaXRpOyI+Cis8aW5wdXQgaWQ9ImkiIHR5cGU9InRpbWUiPgorPGlucHV0
IGlkPSJkIiB0eXBlPSJkYXRlIj4KKzxpbnB1dCBpZD0iZHQiIHR5cGU9ImRhdGV0aW1lIj4KKzxp
bnB1dCBpZD0iZHRsIiB0eXBlPSJkYXRldGltZS1sb2NhbCI+Cis8aW5wdXQgaWQ9Im0iIHR5cGU9
Im1vbnRoIj4KKzwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gdGVzdChpbnB1dElkKSB7CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJp
Iikub2Zmc2V0V2lkdGggPiA1MCkKKyAgICAgICAgcmV0dXJuICJQYXNzIgorICAgIGVsc2UKKyAg
ICAgICAgcmV0dXJuICJGYWlsIgorfQorCit3aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKSB7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS50ZXh0Q29udGVudCArPSB0
ZXN0KCJpIikgKyAiICI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS50
ZXh0Q29udGVudCArPSB0ZXN0KCJkIikgKyAiICI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS50ZXh0Q29udGVudCArPSB0ZXN0KCJkdCIpICsgIiAiOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikudGV4dENvbnRlbnQgKz0gdGVzdCgiZHRsIikg
KyAiICI7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS50ZXh0Q29udGVu
dCArPSB0ZXN0KCJtIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKK30pLCAwKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworfQorPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>233255</attachid>
            <date>2014-06-17 12:56:32 -0700</date>
            <delta_ts>2014-06-17 13:09:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-133524-20140617125609.patch</filename>
            <type>text/plain</type>
            <size>26691</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTcwMDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTg2OWRiZWE1ZmZhMDhi
NGU0ZmU1YmI4MjM3YzFlY2Y4YTdjMjgyNi4uNzA4MTgwMzdiNTE3MDdkMzk4YjQwZmUzY2YwNGQx
OGVjZmI4YzYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDE0LTA2LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gSW5w
dXQgdHlwZT10aW1lIGVsZW1lbnRzIHN0eWxlZCB3aXRoIFNWRyBmb250cyBoYXZlIDAgd2lkdGgK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzUyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9y
IGhvdyB0aGUgTG9jYWxpemVkRGF0ZUNhY2hlIHJldHVybnMgbWF4aW11bSB3aWR0aHMgZm9yIGlu
cHV0IGVsZW1lbnRzLiBDdXJyZW50bHksCisgICAgICAgIG1lYXN1cmluZyB0aGUgd2lkdGggb2Yg
YW4gU1ZHIGZvbnQgcmVxdWlyZXMgYSBSZW5kZXJPYmplY3QgZm9yIGNvbnRleHQsIHdoaWNoIHRo
ZQorICAgICAgICBMb2NhbGl6ZWREYXRlQ2FjaGUgY2FuJ3Qga25vdyBhYm91dCAoaXQgd291bGQg
YmUgYSBwbGF0Zm9ybSB2aW9sYXRpb24pLiBJbnN0ZWFkLCB0aGUKKyAgICAgICAgTG9jYWxpemVk
RGF0ZUNhY2hlIGNhbiByZXR1cm4gdGhlIHN0cmluZ3MgdGhhdCBpdCB3b3VsZCB1c2UgdG8gbWVh
c3VyZSB0aGUgd2lkdGgsIGFuZCB0aGUKKyAgICAgICAgY2FsbGVyIGNhbiBhY3R1YWxseSBydW4g
dGhlIHdpZHRoIGNvbXB1dGF0aW9uLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvdGltZS1p
bnB1dC1zdmctZm9udC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9j
YWxlLmg6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLmg6
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9pb3MvTG9jYWxpemVkRGF0ZUNhY2hlLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6TG9jYWxpemVkRGF0ZUNhY2hlOjptYXhpbXVtV2lkdGhGb3JEYXRlVHlw
ZSk6IFRha2UgYSBkZWxlZ2F0ZSB3aGljaCBjYW4KKyAgICAgICAgbWVhc3VyZSB0ZXh0CisgICAg
ICAgIChXZWJDb3JlOjpMb2NhbGl6ZWREYXRlQ2FjaGU6OmNhbGN1bGF0ZU1heGltdW1XaWR0aCk6
IFBlcmZvcm0gbWF4aW11bSB3aWR0aAorICAgICAgICBjb21wdXRhdGlvbiB1c2luZyBkZWxlZ2F0
ZS4KKyAgICAgICAgKiBwbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpMb2NhbGVN
YWM6OmZvcm1hdERhdGVUaW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkxvY2FsZU1hYzo6bWF4aW11
bVdpZHRoRm9yRGF0ZVR5cGUpOiBEZWxldGVkLiBTaG9ydC1jaXJjdWl0IHRoaXMgYW5kIGdvCisg
ICAgICAgIGRpcmVjdGx5IHRvIHRoZSBMb2NhbGl6ZWREYXRlQ2FjaGUuIFRoaXMgbWFrZXMgc2Vu
c2UgYmVjYXVzZSB3ZSBoYXZlIHRvIGV4cGxpY2l0bHkKKyAgICAgICAgaW5zZXJ0IGNvbXB1dGVk
IHZhbHVlcyBiYWNrIGludG8gdGhlIGNhY2hlIGluIHRoaXMgbmV3IG1vZGVsLgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdElu
cHV0RWxlbWVudEJ1dHRvblN0eWxlKTogQ3JlYXRlIGEgZGVsZWdhdGUgYW5kIHBhc3MgaXQgdG8g
dGhlCisgICAgICAgIExvY2FsaXplZERhdGVDYWNoZQorCiAyMDE0LTA2LTE3ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IGNzcyBqaXQg
cmVnaXN0ZXIgdXNhZ2Ugb24gYXJtdjcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L1JlbmRlclRoZW1lRWZsLmNwcAppbmRleCBkNzAxZmRlNzE2NGZiNmI2NGRkNDFjZjRkY2FlNzVh
OThkMTBiNDlhLi5mYWQwZDUzZjcxZWE1NmNmZDViMmY1ZWI0NGRkNTM5YjBjY2M1NTQ4IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5jcHAKQEAgLTg0
NywyMCArODQ3LDIwIEBAIGJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVudUxpc3QoY29uc3Qg
UmVuZGVyT2JqZWN0JiBvYmplY3QsIGNvbnN0IFBhaW50SW5mbyYKICAgICByZXR1cm4gcGFpbnRU
aGVtZVBhcnQob2JqZWN0LCBDb21ib0JveCwgaW5mbywgSW50UmVjdChyZWN0KSk7CiB9CiAKLXZv
aWQgUmVuZGVyVGhlbWVFZmw6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZl
ciogc3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50KSBj
b25zdAordm9pZCBSZW5kZXJUaGVtZUVmbDo6YWRqdXN0TWVudUxpc3RCdXR0b25TdHlsZShTdHls
ZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBSZW5kZXJTdHlsZSYgc3R5bGUsIEVsZW1lbnQmIGVs
ZW1lbnQpIGNvbnN0CiB7CiAgICAgLy8gSGVpZ2h0IGlzIGxvY2tlZCB0byBhdXRvIGlmIGhlaWdo
dCBpcyBub3Qgc3BlY2lmaWVkLgotICAgIHN0eWxlLT5zZXRIZWlnaHQoTGVuZ3RoKEF1dG8pKTsK
KyAgICBzdHlsZS5zZXRIZWlnaHQoTGVuZ3RoKEF1dG8pKTsKIAogICAgIC8vIFRoZSA8c2VsZWN0
PiBib3ggbXVzdCBiZSBhdCBsZWFzdCAxMnB4IGhpZ2ggZm9yIHRoZSBidXR0b24gdG8gcmVuZGVy
IHRoZSB0ZXh0IGluc2lkZSB0aGUgYm94IHdpdGhvdXQgY2xpcHBpbmcuCiAgICAgY29uc3QgaW50
IGRyb3BEb3duQm94TWluSGVpZ2h0ID0gMTI7CiAKICAgICAvLyBDYWxjdWxhdGUgbWluLWhlaWdo
dCBvZiB0aGUgPHNlbGVjdD4gZWxlbWVudC4KLSAgICBpbnQgbWluSGVpZ2h0ID0gc3R5bGUtPmZv
bnRNZXRyaWNzKCkuaGVpZ2h0KCk7CisgICAgaW50IG1pbkhlaWdodCA9IHN0eWxlLmZvbnRNZXRy
aWNzKCkuaGVpZ2h0KCk7CiAgICAgbWluSGVpZ2h0ID0gc3RkOjptYXgobWluSGVpZ2h0LCBkcm9w
RG93bkJveE1pbkhlaWdodCk7Ci0gICAgc3R5bGUtPnNldE1pbkhlaWdodChMZW5ndGgobWluSGVp
Z2h0LCBGaXhlZCkpOworICAgIHN0eWxlLnNldE1pbkhlaWdodChMZW5ndGgobWluSGVpZ2h0LCBG
aXhlZCkpOwogCi0gICAgYWRqdXN0TWVudUxpc3RTdHlsZShzdHlsZVJlc29sdmVyLCBzdHlsZSwg
ZWxlbWVudCk7CisgICAgYWRqdXN0TWVudUxpc3RTdHlsZSgmc3R5bGVSZXNvbHZlciwgJnN0eWxl
LCAmZWxlbWVudCk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVFZmw6OnBhaW50TWVudUxpc3RCdXR0
b25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCwgY29uc3QgUGFpbnRJbmZv
JiBpbmZvLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9lZmwvUmVuZGVyVGhlbWVFZmwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2VmbC9SZW5kZXJUaGVtZUVmbC5oCmluZGV4IDYxZDlkNmM2ZDA1NmY2NjMwOGE0NTllNjlmODIx
NWQwODMwMTdlYjEuLjYwMzllOWM1NDRkMTQxNDQyNWQwZDkzYzc0NDYyZjEwZDhiMTUxNTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9SZW5kZXJUaGVtZUVmbC5oCkBAIC0xMjgs
NyArMTI4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdFN0eWxl
KFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25z
dCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKIAotICAgIHZpcnR1YWwg
dm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHls
ZSosIEVsZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVu
dUxpc3RCdXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiwgUmVuZGVyU3R5bGUmLCBFbGVtZW50Jikg
Y29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVudUxpc3RCdXR0b25EZWNv
cmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RTZWFyY2hGaWVsZFJl
c3VsdHNEZWNvcmF0aW9uUGFydFN0eWxlKFN0eWxlUmVzb2x2ZXIqLCBSZW5kZXJTdHlsZSosIEVs
ZW1lbnQqKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UmVuZGVyVGhlbWVHdGsuY3BwCmluZGV4IDI2NTYxN2ZlY2U0MTFhNzZmOTUyYzU0NTU3OTc2MzIx
OTJmMGU2MTcuLmQ0YTc4OTVhZjZlOTA0N2I4NTc0MTU1MWFkZGVkMTkzYjRlZThhYzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1JlbmRlclRoZW1lR3RrLmNwcApAQCAtMjM2
LDkgKzIzNiw5IEBAIHZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0U3R5bGUoU3R5
bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlCiAgICAgc3R5bGUtPnJlc2V0Qm9y
ZGVyUmFkaXVzKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWVHdGs6OmFkanVzdE1lbnVMaXN0QnV0
dG9uU3R5bGUoU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlciwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBFbGVtZW50KiBlKSBjb25zdAordm9pZCBSZW5kZXJUaGVtZUd0azo6YWRqdXN0TWVudUxpc3RC
dXR0b25TdHlsZShTdHlsZVJlc29sdmVyJiBzdHlsZVJlc29sdmVyLCBSZW5kZXJTdHlsZSYgc3R5
bGUsIEVsZW1lbnQmIGUpIGNvbnN0CiB7Ci0gICAgYWRqdXN0TWVudUxpc3RTdHlsZShzdHlsZVJl
c29sdmVyLCBzdHlsZSwgZSk7CisgICAgYWRqdXN0TWVudUxpc3RTdHlsZSgmc3R5bGVSZXNvbHZl
ciwgJnN0eWxlLCAmZSk7CiB9CiAKIGJvb2wgUmVuZGVyVGhlbWVHdGs6OnBhaW50TWVudUxpc3RC
dXR0b25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmIG9iamVjdCwgY29uc3QgUGFpbnRJ
bmZvJiBpbmZvLCBjb25zdCBGbG9hdFJlY3QmIHJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvUmVuZGVyVGhlbWVHdGsuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCmluZGV4IGExMjUwNTUyMjQ0MzU3YmYyMzNmOGIzZDI3
Y2Y4NzJlMzY2ZjVjNTAuLmYwNDM4ZDI5MzBjYTI4YTlmMGNjYjI0ZmNiYTI1MzRhZmMwYWZhZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9SZW5kZXJUaGVtZUd0ay5oCkBAIC0x
MzYsNyArMTM2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBBcXVhIHRoZW1lZCBjb250cm9scyB3aGVu
ZXZlciBwb3NzaWJsZS4gV2UgYWx3YXlzIHdhbnQgdG8gdXNlIEdUSysgdGhlbWluZywgc28KICAg
ICAvLyB3ZSBkb24ndCBtYWludGFpbiB0aGlzIGRpZmZlcmVudGlhdGlvbi4KICAgICB2aXJ0dWFs
IHZvaWQgYWRqdXN0TWVudUxpc3RTdHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBF
bGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0
QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFN0
eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdChjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQ
YWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wg
cGFpbnRNZW51TGlzdEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0
IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1BsYXRmb3JtTG9jYWxlLmgKaW5kZXggOWZjNjM5Y2VhNjBhNDkz
Nzc2M2ZjYjQzODcwNzY0ZGY2ZDNiMGRiZS4uZWY4NTIyYzg5NTQyNzQ1NGQzZGIxYmIwM2IzNWM0
MDI3NGQ2ZDk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9QbGF0
Zm9ybUxvY2FsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvUGxhdGZvcm1M
b2NhbGUuaApAQCAtMTI0LDEyICsxMjQsNiBAQCBwdWJsaWM6CiAjZW5kaWYgLy8gIVBMQVRGT1JN
KElPUykKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQotICAgIC8vIEZJWE1FOiBUaGlzIGNv
ZGUgc2hvdWxkIGJlIG1lcmdlZCB3aXRoIE9wZW4gU291cmNlIGluIGEgd2F5IHRoYXQgaXMgZnV0
dXJlIGNvbXBhdGlibGUuCi0gICAgLy8gTWF4aW11bSB3aWR0aCBmb3IgYSBmb3JtYXR0ZWQgZGF0
ZSBzdHJpbmcgd2l0aCBhIHNwZWNpZmllZCBmb250LgotICAgIHZpcnR1YWwgZmxvYXQgbWF4aW11
bVdpZHRoRm9yRGF0ZVR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5cGUsIGNvbnN0IEZvbnQmKSA9IDA7
Ci0jZW5kaWYKLQogICAgIHZpcnR1YWwgfkxvY2FsZSgpOwogCiBwcm90ZWN0ZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2lvcy9Mb2NhbGl6ZWREYXRlQ2FjaGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5o
CmluZGV4IGQ3YWQyYmNiNzk0ZGJiZTRlYjQ0NGZlMjFjNjZjZDVkYThjNDk5MWYuLmFmNWJkZTQy
NDZhMDljNTFhOTJiMzMwY2ZkZjM2NDUxOWUxNjA1YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5oCkBAIC0zNiwxMSAr
MzYsMTcgQEAKICNpZiBQTEFURk9STShJT1MpCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKyAgICAK
K2NsYXNzIE1lYXN1cmVUZXh0Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGZsb2F0IG1l
YXN1cmVUZXh0KGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIH5NZWFzdXJl
VGV4dENsaWVudCgpIHsgfQorfTsKIAogY2xhc3MgTG9jYWxpemVkRGF0ZUNhY2hlIHsKIHB1Ymxp
YzoKICAgICBOU0RhdGVGb3JtYXR0ZXIgKmZvcm1hdHRlckZvckRhdGVUeXBlKERhdGVDb21wb25l
bnRzOjpUeXBlKTsKLSAgICBmbG9hdCBtYXhpbXVtV2lkdGhGb3JEYXRlVHlwZShEYXRlQ29tcG9u
ZW50czo6VHlwZSwgY29uc3QgRm9udCYpOworICAgIGZsb2F0IG1heGltdW1XaWR0aEZvckRhdGVU
eXBlKERhdGVDb21wb25lbnRzOjpUeXBlLCBjb25zdCBGb250JiwgY29uc3QgTWVhc3VyZVRleHRD
bGllbnQmKTsKICAgICB2b2lkIGxvY2FsZUNoYW5nZWQoKTsKIAogcHJpdmF0ZToKQEAgLTQ4LDcg
KzU0LDcgQEAgcHJpdmF0ZToKICAgICB+TG9jYWxpemVkRGF0ZUNhY2hlKCk7CiAKICAgICBOU0Rh
dGVGb3JtYXR0ZXIgKmNyZWF0ZUZvcm1hdHRlckZvclR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5cGUp
OwotICAgIGZsb2F0IGNhbGN1bGF0ZU1heGltdW1XaWR0aChEYXRlQ29tcG9uZW50czo6VHlwZSwg
Y29uc3QgRm9udCYpOworICAgIGZsb2F0IGNhbGN1bGF0ZU1heGltdW1XaWR0aChEYXRlQ29tcG9u
ZW50czo6VHlwZSwgY29uc3QgTWVhc3VyZVRleHRDbGllbnQmKTsKIAogICAgIC8vIFVzaW5nIGlu
dCBpbnN0ZWFkIG9mIERhdGVDb21wb25lbnRzOjpUeXBlIGZvciB0aGUga2V5IGJlY2F1c2UgdGhl
IGVudW0KICAgICAvLyBkb2VzIG5vdCBoYXZlIGEgZGVmYXVsdCBoYXNoIGFuZCBoYXNoIHRyYWl0
cy4gVXNhZ2Ugb2YgdGhlIG1hcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvaW9zL0xvY2FsaXplZERhdGVDYWNoZS5tbQppbmRleCBjZGQ4YzZiNjE5MzE0NWU3NDBi
N2Y0NmEyYzRjY2JkZDFmYWE5ZWIzLi4xYTNkNmNiMWJlMTkxZmY5NWM0MTQ2Y2MxOTRlZDJjYWEy
NDdiYzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L2lvcy9Mb2Nh
bGl6ZWREYXRlQ2FjaGUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9pb3Mv
TG9jYWxpemVkRGF0ZUNhY2hlLm1tCkBAIC04NCw3ICs4NCw3IEBAIE5TRGF0ZUZvcm1hdHRlciAq
TG9jYWxpemVkRGF0ZUNhY2hlOjpmb3JtYXR0ZXJGb3JEYXRlVHlwZShEYXRlQ29tcG9uZW50czo6
VHlwZSB0CiAgICAgcmV0dXJuIGRhdGVGb3JtYXR0ZXI7CiB9CiAKLWZsb2F0IExvY2FsaXplZERh
dGVDYWNoZTo6bWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlw
ZSwgY29uc3QgRm9udCYgZm9udCkKK2Zsb2F0IExvY2FsaXplZERhdGVDYWNoZTo6bWF4aW11bVdp
ZHRoRm9yRGF0ZVR5cGUoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlwZSwgY29uc3QgRm9udCYgZm9u
dCwgY29uc3QgTWVhc3VyZVRleHRDbGllbnQmIG1lYXN1cmVyKQogewogICAgIGludCBrZXkgPSBz
dGF0aWNfY2FzdDxpbnQ+KHR5cGUpOwogICAgIGlmIChtX2ZvbnQgPT0gZm9udCkgewpAQCAtOTUs
NyArOTUsNyBAQCBmbG9hdCBMb2NhbGl6ZWREYXRlQ2FjaGU6Om1heGltdW1XaWR0aEZvckRhdGVU
eXBlKERhdGVDb21wb25lbnRzOjpUeXBlIHR5cGUsIGNvbgogICAgICAgICBtX21heFdpZHRoTWFw
LmNsZWFyKCk7CiAgICAgfQogCi0gICAgZmxvYXQgY2FsY3VsYXRlZE1heGltdW0gPSBjYWxjdWxh
dGVNYXhpbXVtV2lkdGgodHlwZSwgZm9udCk7CisgICAgZmxvYXQgY2FsY3VsYXRlZE1heGltdW0g
PSBjYWxjdWxhdGVNYXhpbXVtV2lkdGgodHlwZSwgbWVhc3VyZXIpOwogICAgIG1fbWF4V2lkdGhN
YXAuc2V0KGtleSwgY2FsY3VsYXRlZE1heGltdW0pOwogICAgIHJldHVybiBjYWxjdWxhdGVkTWF4
aW11bTsKIH0KQEAgLTE0NCw3ICsxNDQsNyBAQCBOU0RhdGVGb3JtYXR0ZXIgKkxvY2FsaXplZERh
dGVDYWNoZTo6Y3JlYXRlRm9ybWF0dGVyRm9yVHlwZShEYXRlQ29tcG9uZW50czo6VHlwZQogCiAv
LyBOT1RFOiBUaGlzIGRvZXMgbm90IGNoZWNrIGZvciB0aGUgd2lkZXN0IGRheSBvZiB0aGUgd2Vl
ay4KIC8vIFdlIGFzc3VtZSBubyBmb3JtYXR0ZXIgb3B0aW9uIHNob3dzIHRoYXQgaW5mb3JtYXRp
b24uCi1mbG9hdCBMb2NhbGl6ZWREYXRlQ2FjaGU6OmNhbGN1bGF0ZU1heGltdW1XaWR0aChEYXRl
Q29tcG9uZW50czo6VHlwZSB0eXBlLCBjb25zdCBGb250JiBmb250KQorZmxvYXQgTG9jYWxpemVk
RGF0ZUNhY2hlOjpjYWxjdWxhdGVNYXhpbXVtV2lkdGgoRGF0ZUNvbXBvbmVudHM6OlR5cGUgdHlw
ZSwgY29uc3QgTWVhc3VyZVRleHRDbGllbnQmIG1lYXN1cmVyKQogewogICAgIGZsb2F0IG1heGlt
dW1XaWR0aCA9IDA7CiAKQEAgLTE4Miw4ICsxODIsNyBAQCBmbG9hdCBMb2NhbGl6ZWREYXRlQ2Fj
aGU6OmNhbGN1bGF0ZU1heGltdW1XaWR0aChEYXRlQ29tcG9uZW50czo6VHlwZSB0eXBlLCBjb25z
dAogICAgICAgICBbY29tcG9uZW50cy5nZXQoKSBzZXRNb250aDooaSArIDEpXTsKICAgICAgICAg
TlNEYXRlICpkYXRlID0gW2dyZWdvcmlhbi5nZXQoKSBkYXRlRnJvbUNvbXBvbmVudHM6Y29tcG9u
ZW50cy5nZXQoKV07CiAgICAgICAgIE5TU3RyaW5nICpmb3JtYXR0ZWREYXRlID0gW2RhdGVGb3Jt
YXR0ZXIgc3RyaW5nRnJvbURhdGU6ZGF0ZV07Ci0gICAgICAgIFN0cmluZyBzdHIgPSBTdHJpbmco
Zm9ybWF0dGVkRGF0ZSk7Ci0gICAgICAgIG1heGltdW1XaWR0aCA9IG1heChtYXhpbXVtV2lkdGgs
IGZvbnQud2lkdGgoc3RyKSk7CisgICAgICAgIG1heGltdW1XaWR0aCA9IG1heChtYXhpbXVtV2lk
dGgsIG1lYXN1cmVyLm1lYXN1cmVUZXh0KFN0cmluZyhmb3JtYXR0ZWREYXRlKSkpOwogICAgIH0K
IAogICAgIHJldHVybiBtYXhpbXVtV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvbWFjL0xvY2FsZU1hYy5oCmluZGV4IGM0YTFlOWFlYzQyNzk4YmMzZDJlMjgwNzExODk2MjUx
MjI0N2ExZTkuLjUzYTZkYjdhOThlODFmZjdhZTJiZDMzY2U1YTJmZGEzMTkzZTAxYmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5oCkBAIC01MSw3ICs1
MSw2IEBAIHB1YmxpYzoKICAgICB+TG9jYWxlTWFjKCk7CiAKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgdmlydHVhbCBmbG9hdCBtYXhpbXVtV2lkdGhGb3JEYXRlVHlwZShEYXRlQ29tcG9uZW50czo6
VHlwZSwgY29uc3QgRm9udCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgU3RyaW5nIGZvcm1hdERh
dGVUaW1lKGNvbnN0IERhdGVDb21wb25lbnRzJiwgRm9ybWF0VHlwZSA9IEZvcm1hdFR5cGVVbnNw
ZWNpZmllZCkgb3ZlcnJpZGU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9tYWMvTG9jYWxlTWFjLm1tCmluZGV4IDM5MjYxMTQyNDNkMDA1NGYxODRkZWRiY2Q0MTJi
OTE4MjgzYzEyMzQuLmMzNzI0YzllZmRjOWMzYzhlZGIxNGRlNWM2YmFkMTI3MmM0YzYzNTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGVNYWMubW0KQEAgLTEz
MywxNCArMTMzLDYgQEAgU3RyaW5nIExvY2FsZU1hYzo6Zm9ybWF0RGF0ZVRpbWUoY29uc3QgRGF0
ZUNvbXBvbmVudHMmIGRhdGVDb21wb25lbnRzLCBGb3JtYXRUeXAKICAgICBOU0RhdGVGb3JtYXR0
ZXIgKmRhdGVGb3JtYXR0ZXIgPSBsb2NhbGl6ZWREYXRlQ2FjaGUoKS5mb3JtYXR0ZXJGb3JEYXRl
VHlwZSh0eXBlKTsKICAgICByZXR1cm4gW2RhdGVGb3JtYXR0ZXIgc3RyaW5nRnJvbURhdGU6ZGF0
ZV07CiB9Ci0KLWZsb2F0IExvY2FsZU1hYzo6bWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoRGF0ZUNv
bXBvbmVudHM6OlR5cGUgdHlwZSwgY29uc3QgRm9udCYgZm9udCkKLXsKLSAgICBBU1NFUlQodHlw
ZSAhPSBEYXRlQ29tcG9uZW50czo6SW52YWxpZCk7Ci0gICAgQVNTRVJUKHR5cGUgIT0gRGF0ZUNv
bXBvbmVudHM6OldlZWspOwotCi0gICAgcmV0dXJuIGxvY2FsaXplZERhdGVDYWNoZSgpLm1heGlt
dW1XaWR0aEZvckRhdGVUeXBlKHR5cGUsIGZvbnQpOwotfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
REFURV9BTkRfVElNRV9JTlBVVF9UWVBFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWUuY3BwCmluZGV4IGJjYWVmNzFjOTg2YjI2YTQzNzJlMWMwYTQ3ZWE3ODBiNmM0YzhlMmEu
Ljg0ZTBhMmQ5ZTMxYzhkNWE5MmRjNmU5MGYyODE3YjQzZGRkMjRkOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lLmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgUmVu
ZGVyVGhlbWU6OmFkanVzdFN0eWxlKFN0eWxlUmVzb2x2ZXImIHN0eWxlUmVzb2x2ZXIsIFJlbmRl
clN0eWxlJiBzdHlsZSwKICAgICBjYXNlIE1lbnVsaXN0UGFydDoKICAgICAgICAgcmV0dXJuIGFk
anVzdE1lbnVMaXN0U3R5bGUoJnN0eWxlUmVzb2x2ZXIsICZzdHlsZSwgZSk7CiAgICAgY2FzZSBN
ZW51bGlzdEJ1dHRvblBhcnQ6Ci0gICAgICAgIHJldHVybiBhZGp1c3RNZW51TGlzdEJ1dHRvblN0
eWxlKCZzdHlsZVJlc29sdmVyLCAmc3R5bGUsIGUpOworICAgICAgICByZXR1cm4gYWRqdXN0TWVu
dUxpc3RCdXR0b25TdHlsZShzdHlsZVJlc29sdmVyLCBzdHlsZSwgKmUpOwogICAgIGNhc2UgTWVk
aWFQbGF5QnV0dG9uUGFydDoKICAgICBjYXNlIE1lZGlhQ3VycmVudFRpbWVQYXJ0OgogICAgIGNh
c2UgTWVkaWFUaW1lUmVtYWluaW5nUGFydDoKQEAgLTExMTksNyArMTExOSw3IEBAIGJvb2wgUmVu
ZGVyVGhlbWU6OnNob3VsZEhhdmVTcGluQnV0dG9uKEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxl
bWVudCkgY29uc3QKICAgICByZXR1cm4gaW5wdXRFbGVtZW50LT5pc1N0ZXBwYWJsZSgpICYmICFp
bnB1dEVsZW1lbnQtPmlzUmFuZ2VDb250cm9sKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGhlbWU6OmFk
anVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxl
bWVudCopIGNvbnN0Cit2b2lkIFJlbmRlclRoZW1lOjphZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxl
KFN0eWxlUmVzb2x2ZXImLCBSZW5kZXJTdHlsZSYsIEVsZW1lbnQmKSBjb25zdAogewogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCmluZGV4IDc3MGNmNjdkMDkwOGM0YTFm
ZjdlMjU1MWM5MmZiMGFkNzk0OTMxMzQuLjhmOWUwMDk0OWNmZDFkNWU3NjRlYzlkMjJkY2EzMWRi
MzlhZDc2MjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZS5oCkBAIC0zMDIs
NyArMzAyLDcgQEAgcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVMaXN0KGNv
bnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIHsg
cmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRNZW51TGlzdERlY29yYXRpb25z
KGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25T
dHlsZShTdHlsZVJlc29sdmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Q7CisgICAg
dmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJl
bmRlclN0eWxlJiwgRWxlbWVudCYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBwYWludE1lbnVM
aXN0QnV0dG9uRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyT2JqZWN0JiwgY29uc3QgUGFpbnRJbmZv
JiwgY29uc3QgRmxvYXRSZWN0JikgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdmlydHVhbCBib29s
IHBhaW50UHVzaEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBh
aW50SW5mbyYsIGNvbnN0IEludFJlY3QmKSB7IHJldHVybiB0cnVlOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCmluZGV4IDFiZTVlN2QzYTJiYjU3N2VkNTkwOWIw
OTIyZjgwMGFkZGQxNmZkYzYuLjI1MGVmNDljMTJkMzI1NTU2MzM1NGU5YmFkZjZjOGViMjEzOWQx
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5oCkBAIC03MSw3
ICs3MSw3IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0RmllbGREZWNv
cmF0aW9ucyhjb25zdCBSZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9h
dFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIGJvb2wgcGFpbnRUZXh0QXJlYURlY29yYXRp
b25zKGNvbnN0IFJlbmRlck9iamVjdCYsIGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVj
dCYpIG92ZXJyaWRlOwogCi0gICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5
bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2
ZXImLCBSZW5kZXJTdHlsZSYsIEVsZW1lbnQmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFs
IGJvb2wgcGFpbnRNZW51TGlzdEJ1dHRvbkRlY29yYXRpb25zKGNvbnN0IFJlbmRlck9iamVjdCYs
IGNvbnN0IFBhaW50SW5mbyYsIGNvbnN0IEZsb2F0UmVjdCYpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIGFkanVzdFNsaWRlclRyYWNrU3R5bGUoU3R5bGVSZXNvbHZlciosIFJlbmRlclN0
eWxlKiwgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDNmYzc5ZDMyNGU0MTNmM2E1NmIxNjliODRlYjE4ZTJi
NmY1ZjRkOTAuLjNhMzlmYjMzOWE4NzM5MmVlZjc1NWNhOGMzNzljZGM1NWZhZGIyZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTQ0LDYgKzQ0LDcg
QEAKICNpbXBvcnQgIkhUTUxOYW1lcy5oIgogI2ltcG9ydCAiSFRNTFNlbGVjdEVsZW1lbnQuaCIK
ICNpbXBvcnQgIkljb24uaCIKKyNpbXBvcnQgIkxvY2FsaXplZERhdGVDYWNoZS5oIgogI2ltcG9y
dCAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW1wb3J0ICJQYWdlLmgiCiAjaW1wb3J0ICJQbGF0Zm9y
bUxvY2FsZS5oIgpAQCAtNTM2LDY3ICs1MzcsOTEgQEAgdm9pZCBSZW5kZXJUaGVtZUlPUzo6YWRq
dXN0Um91bmRCb3JkZXJSYWRpdXMoUmVuZGVyU3R5bGUmIHN0eWxlLCBSZW5kZXJCb3gqIGJveCkK
ICAgICBzdHlsZS5zZXRCb3JkZXJSYWRpdXMoTGVuZ3RoU2l6ZShyYWRpdXNXaWR0aCwgcmFkaXVz
SGVpZ2h0KSk7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGx5Q29tbW9uQnV0dG9uUGFkZGluZ1RvU3R5
bGUoUmVuZGVyU3R5bGUqIHN0eWxlLCBFbGVtZW50KiBlbGVtZW50KQorc3RhdGljIHZvaWQgYXBw
bHlDb21tb25CdXR0b25QYWRkaW5nVG9TdHlsZShSZW5kZXJTdHlsZSYgc3R5bGUsIEVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZWxlbWVudC0+ZG9jdW1lbnQo
KTsKKyAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBlbGVtZW50LmRvY3VtZW50KCk7CiAgICAgUmVm
UHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBlbVNpemUgPSBDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRl
KDAuNSwgQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19FTVMpOwotICAgIGludCBwaXhlbHMgPSBlbVNp
emUtPmNvbXB1dGVMZW5ndGg8aW50PihDU1NUb0xlbmd0aENvbnZlcnNpb25EYXRhKHN0eWxlLCBk
b2N1bWVudC5yZW5kZXJTdHlsZSgpLCBkb2N1bWVudC5yZW5kZXJWaWV3KCksIGRvY3VtZW50LmZy
YW1lKCktPnBhZ2Vab29tRmFjdG9yKCkpKTsKLSAgICBzdHlsZS0+c2V0UGFkZGluZ0JveChMZW5n
dGhCb3goMCwgcGl4ZWxzLCAwLCBwaXhlbHMpKTsKKyAgICBpbnQgcGl4ZWxzID0gZW1TaXplLT5j
b21wdXRlTGVuZ3RoPGludD4oQ1NTVG9MZW5ndGhDb252ZXJzaW9uRGF0YSgmc3R5bGUsIGRvY3Vt
ZW50LnJlbmRlclN0eWxlKCksIGRvY3VtZW50LnJlbmRlclZpZXcoKSwgZG9jdW1lbnQuZnJhbWUo
KS0+cGFnZVpvb21GYWN0b3IoKSkpOworICAgIHN0eWxlLnNldFBhZGRpbmdCb3goTGVuZ3RoQm94
KDAsIHBpeGVscywgMCwgcGl4ZWxzKSk7CiB9CiAKLXN0YXRpYyB2b2lkIGFkanVzdFNlbGVjdExp
c3RCdXR0b25TdHlsZShSZW5kZXJTdHlsZSogc3R5bGUsIEVsZW1lbnQqIGVsZW1lbnQpCitzdGF0
aWMgdm9pZCBhZGp1c3RTZWxlY3RMaXN0QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBF
bGVtZW50JiBlbGVtZW50KQogewogICAgIC8vIEVuZm9yY2UgInBhZGRpbmc6IDAgMC41ZW0iLgog
ICAgIGFwcGx5Q29tbW9uQnV0dG9uUGFkZGluZ1RvU3R5bGUoc3R5bGUsIGVsZW1lbnQpOwogCiAg
ICAgLy8gRW5mb3JjZSAibGluZS1oZWlnaHQ6IG5vcm1hbCIuCi0gICAgc3R5bGUtPnNldExpbmVI
ZWlnaHQoTGVuZ3RoKC0xMDAuMCwgUGVyY2VudCkpOworICAgIHN0eWxlLnNldExpbmVIZWlnaHQo
TGVuZ3RoKC0xMDAuMCwgUGVyY2VudCkpOwogfQorICAgIAorY2xhc3MgUmVuZGVyVGhlbWVNZWFz
dXJlVGV4dENsaWVudCA6IHB1YmxpYyBNZWFzdXJlVGV4dENsaWVudCB7CitwdWJsaWM6CisgICAg
UmVuZGVyVGhlbWVNZWFzdXJlVGV4dENsaWVudChjb25zdCBGb250JiBmb250LCBSZW5kZXJPYmpl
Y3QmIHJlbmRlck9iamVjdCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQorICAgICAgICA6IG1f
Zm9udChmb250KQorICAgICAgICAsIG1fcmVuZGVyT2JqZWN0KHJlbmRlck9iamVjdCkKKyAgICAg
ICAgLCBtX3N0eWxlKHN0eWxlKQorICAgIHsKKyAgICB9CisgICAgdmlydHVhbCBmbG9hdCBtZWFz
dXJlVGV4dChjb25zdCBTdHJpbmcmIHN0cmluZykgY29uc3Qgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIFRleHRSdW4gcnVuID0gUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oJm1fcmVuZGVy
T2JqZWN0LCBtX2ZvbnQsIHN0cmluZywgbV9zdHlsZSwgVGV4dFJ1bjo6QWxsb3dUcmFpbGluZ0V4
cGFuc2lvbiB8IFRleHRSdW46OkZvcmJpZExlYWRpbmdFeHBhbnNpb24sIERlZmF1bHRUZXh0UnVu
RmxhZ3MpOworICAgICAgICByZXR1cm4gbV9mb250LndpZHRoKHJ1bik7CisgICAgfQorcHJpdmF0
ZToKKyAgICBjb25zdCBGb250JiBtX2ZvbnQ7CisgICAgUmVuZGVyT2JqZWN0JiBtX3JlbmRlck9i
amVjdDsKKyAgICBjb25zdCBSZW5kZXJTdHlsZSYgbV9zdHlsZTsKK307CiAKLXN0YXRpYyB2b2lk
IGFkanVzdElucHV0RWxlbWVudEJ1dHRvblN0eWxlKFJlbmRlclN0eWxlKiBzdHlsZSwgSFRNTElu
cHV0RWxlbWVudCogaW5wdXRFbGVtZW50KQorc3RhdGljIHZvaWQgYWRqdXN0SW5wdXRFbGVtZW50
QnV0dG9uU3R5bGUoUmVuZGVyU3R5bGUmIHN0eWxlLCBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVs
ZW1lbnQpCiB7CiAgICAgLy8gQWx3YXlzIEVuZm9yY2UgInBhZGRpbmc6IDAgMC41ZW0iLgogICAg
IGFwcGx5Q29tbW9uQnV0dG9uUGFkZGluZ1RvU3R5bGUoc3R5bGUsIGlucHV0RWxlbWVudCk7CiAK
ICAgICAvLyBEb24ndCBhZGp1c3QgdGhlIHN0eWxlIGlmIHRoZSB3aWR0aCBpcyBzcGVjaWZpZWQu
Ci0gICAgaWYgKHN0eWxlLT53aWR0aCgpLmlzRml4ZWQoKSAmJiBzdHlsZS0+d2lkdGgoKS52YWx1
ZSgpID4gMCkKKyAgICBpZiAoc3R5bGUud2lkdGgoKS5pc0ZpeGVkKCkgJiYgc3R5bGUud2lkdGgo
KS52YWx1ZSgpID4gMCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gRG9uJ3QgYWRqdXN0IGZv
ciB1bnN1cHBvcnRlZCBkYXRlIGlucHV0IHR5cGVzLgotICAgIERhdGVDb21wb25lbnRzOjpUeXBl
IGRhdGVUeXBlID0gaW5wdXRFbGVtZW50LT5kYXRlVHlwZSgpOworICAgIERhdGVDb21wb25lbnRz
OjpUeXBlIGRhdGVUeXBlID0gaW5wdXRFbGVtZW50LmRhdGVUeXBlKCk7CiAgICAgaWYgKGRhdGVU
eXBlID09IERhdGVDb21wb25lbnRzOjpJbnZhbGlkIHx8IGRhdGVUeXBlID09IERhdGVDb21wb25l
bnRzOjpXZWVrKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBFbmZvcmNlIHRoZSB3aWR0aCBh
bmQgc2V0IHRoZSBib3gtc2l6aW5nIHRvIGNvbnRlbnQtYm94IHRvIG5vdCBjb25mbGljdCB3aXRo
IHRoZSBwYWRkaW5nLgotICAgIEZvbnQgZm9udCA9IHN0eWxlLT5mb250KCk7CisgICAgRm9udCBm
b250ID0gc3R5bGUuZm9udCgpOworICAgIAorICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBp
bnB1dEVsZW1lbnQucmVuZGVyZXIoKTsKKyAgICBpZiAoZm9udC5pc1NWR0ZvbnQoKSAmJiAhcmVu
ZGVyZXIpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBGb250Q2FjaGVQdXJnZVByZXZlbnRl
ciBmb250Q2FjaGVQdXJnZVByZXZlbnRlcjsKLSAgICAvLyBGSVhNRTogQ2hvb3NlIGFuIGFwcHJv
cHJpYXRlIHdpZHRoIGZvciB0aGVzZSBlbGVtZW50cyB3aGVuCi0gICAgLy8gc3R5bGVkIHdpdGgg
U1ZHIGZvbnRzIChyYXRoZXIgdGhhbiBzaW1wbHkgMCkuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzUyNAotICAgIGZsb2F0IG1heGltdW1XaWR0aCA9
IGZvbnQuaXNTVkdGb250KCkgPyAwIDogaW5wdXRFbGVtZW50LT5sb2NhbGUoKS5tYXhpbXVtV2lk
dGhGb3JEYXRlVHlwZShkYXRlVHlwZSwgZm9udCk7CisgICAgZmxvYXQgbWF4aW11bVdpZHRoID0g
bG9jYWxpemVkRGF0ZUNhY2hlKCkubWF4aW11bVdpZHRoRm9yRGF0ZVR5cGUoZGF0ZVR5cGUsIGZv
bnQsIFJlbmRlclRoZW1lTWVhc3VyZVRleHRDbGllbnQoZm9udCwgKnJlbmRlcmVyLCBzdHlsZSkp
OworCisgICAgQVNTRVJUKG1heGltdW1XaWR0aCA+PSAwKTsKKwogICAgIGlmIChtYXhpbXVtV2lk
dGggPiAwKSB7ICAgIAogICAgICAgICBpbnQgd2lkdGggPSBzdGF0aWNfY2FzdDxpbnQ+KG1heGlt
dW1XaWR0aCArIE1lbnVMaXN0QnV0dG9uUGFkZGluZ1JpZ2h0KTsKLSAgICAgICAgc3R5bGUtPnNl
dFdpZHRoKExlbmd0aCh3aWR0aCwgRml4ZWQpKTsKLSAgICAgICAgc3R5bGUtPnNldEJveFNpemlu
ZyhDT05URU5UX0JPWCk7CisgICAgICAgIHN0eWxlLnNldFdpZHRoKExlbmd0aCh3aWR0aCwgRml4
ZWQpKTsKKyAgICAgICAgc3R5bGUuc2V0Qm94U2l6aW5nKENPTlRFTlRfQk9YKTsKICAgICB9CiB9
CiAKLXZvaWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVS
ZXNvbHZlciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCogZWxlbWVudCkgY29uc3QKK3Zv
aWQgUmVuZGVyVGhlbWVJT1M6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZl
ciYsIFJlbmRlclN0eWxlJiBzdHlsZSwgRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsKICAgICAv
LyBTZXQgdGhlIG1pbi1oZWlnaHQgdG8gYmUgYXQgbGVhc3QgTWVudUxpc3RNaW5IZWlnaHQuCi0g
ICAgaWYgKHN0eWxlLT5oZWlnaHQoKS5pc0F1dG8oKSkKLSAgICAgICAgc3R5bGUtPnNldE1pbkhl
aWdodChMZW5ndGgoc3RkOjptYXgoTWVudUxpc3RNaW5IZWlnaHQsIHN0YXRpY19jYXN0PGludD4o
TWVudUxpc3RCYXNlSGVpZ2h0IC8gTWVudUxpc3RCYXNlRm9udFNpemUgKiBzdHlsZS0+Zm9udERl
c2NyaXB0aW9uKCkuY29tcHV0ZWRTaXplKCkpKSwgRml4ZWQpKTsKKyAgICBpZiAoc3R5bGUuaGVp
Z2h0KCkuaXNBdXRvKCkpCisgICAgICAgIHN0eWxlLnNldE1pbkhlaWdodChMZW5ndGgoc3RkOjpt
YXgoTWVudUxpc3RNaW5IZWlnaHQsIHN0YXRpY19jYXN0PGludD4oTWVudUxpc3RCYXNlSGVpZ2h0
IC8gTWVudUxpc3RCYXNlRm9udFNpemUgKiBzdHlsZS5mb250RGVzY3JpcHRpb24oKS5jb21wdXRl
ZFNpemUoKSkpLCBGaXhlZCkpOwogICAgIGVsc2UKLSAgICAgICAgc3R5bGUtPnNldE1pbkhlaWdo
dChMZW5ndGgoTWVudUxpc3RNaW5IZWlnaHQsIEZpeGVkKSk7CisgICAgICAgIHN0eWxlLnNldE1p
bkhlaWdodChMZW5ndGgoTWVudUxpc3RNaW5IZWlnaHQsIEZpeGVkKSk7CiAKICAgICAvLyBFbmZv
cmNlIHNvbWUgZGVmYXVsdCBzdHlsZXMgaW4gdGhlIGNhc2UgdGhhdCB0aGlzIGlzIGEgbm9uLW11
bHRpcGxlIDxzZWxlY3Q+IGVsZW1lbnQsCiAgICAgLy8gb3IgYSBkYXRlIGlucHV0LiBXZSBkb24n
dCBmb3JjZSB0aGVzZSBpZiB0aGlzIGlzIGp1c3QgYW4gZWxlbWVudCB3aXRoCiAgICAgLy8gIi13
ZWJraXQtYXBwZWFyYW5jZTogbWVudWxpc3QtYnV0dG9uIi4KLSAgICBpZiAoZWxlbWVudC0+aGFz
VGFnTmFtZShIVE1MTmFtZXM6OnNlbGVjdFRhZykgJiYgIWVsZW1lbnQtPmhhc0F0dHJpYnV0ZShI
VE1MTmFtZXM6Om11bHRpcGxlQXR0cikpCisgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShIVE1M
TmFtZXM6OnNlbGVjdFRhZykgJiYgIWVsZW1lbnQuaGFzQXR0cmlidXRlKEhUTUxOYW1lczo6bXVs
dGlwbGVBdHRyKSkKICAgICAgICAgYWRqdXN0U2VsZWN0TGlzdEJ1dHRvblN0eWxlKHN0eWxlLCBl
bGVtZW50KTsKLSAgICBlbHNlIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5w
dXRUYWcpKSB7Ci0gICAgICAgIEhUTUxJbnB1dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihlbGVtZW50KTsKLSAgICAgICAgYWRqdXN0SW5wdXRF
bGVtZW50QnV0dG9uU3R5bGUoc3R5bGUsIGlucHV0RWxlbWVudCk7CisgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6aW5wdXRUYWcpKSB7CisgICAgICAgIEhUTUxJbnB1
dEVsZW1lbnQqIGlucHV0RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPigm
ZWxlbWVudCk7CisgICAgICAgIGFkanVzdElucHV0RWxlbWVudEJ1dHRvblN0eWxlKHN0eWxlLCAq
aW5wdXRFbGVtZW50KTsKICAgICB9CiB9CiAKQEAgLTEwNDYsNyArMTA3MSw3IEBAIGJvb2wgUmVu
ZGVyVGhlbWVJT1M6OnBhaW50RmlsZVVwbG9hZEljb25EZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJP
YmplY3QmLCBjb25zdCBSCiAKICAgICByZXR1cm4gZmFsc2U7CiB9Ci0gICAgCisKIENvbG9yIFJl
bmRlclRoZW1lSU9TOjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIENvbG9yOjp0cmFuc3BhcmVudDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKaW5kZXggMmRkY2U4ZmJkNWNkNzA4NmZmYTQ1ZjcyNjBk
ODZhMzU0Y2E5ZjI0Ny4uM2FhOTAyMmIzY2Q2YjNkMGFjZjAwOGMxMmI3MGNlN2FhNWNiZTEwMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLmgKQEAgLTEzNCw3ICsx
MzQsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdE1lbnVMaXN0U3R5bGUo
U3R5bGVSZXNvbHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwog
CiAgICAgdmlydHVhbCBib29sIHBhaW50TWVudUxpc3RCdXR0b25EZWNvcmF0aW9ucyhjb25zdCBS
ZW5kZXJPYmplY3QmLCBjb25zdCBQYWludEluZm8mLCBjb25zdCBGbG9hdFJlY3QmKSBvdmVycmlk
ZTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0TWVudUxpc3RCdXR0b25TdHlsZShTdHlsZVJlc29s
dmVyKiwgUmVuZGVyU3R5bGUqLCBFbGVtZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVSZXNvbHZlciYsIFJlbmRlclN0
eWxlJiwgRWxlbWVudCYpIGNvbnN0IG92ZXJyaWRlOwogCiAjaWYgRU5BQkxFKFBST0dSRVNTX0VM
RU1FTlQpCiAgICAgdmlydHVhbCB2b2lkIGFkanVzdFByb2dyZXNzQmFyU3R5bGUoU3R5bGVSZXNv
bHZlciosIFJlbmRlclN0eWxlKiwgRWxlbWVudCopIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDYxMWU5MDZiMjUxMDdlY2Ri
ZDQ1OGUyYjQ4NmExYjQ5MzkyOWM2NzIuLjJjMDk4MmQ5ZjI4YzQ5NTNkNDU1NzgwYTc5NDI5ZmJj
MTA0NDVkNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
QEAgLTE0MjAsMTcgKzE0MjAsMTcgQEAgUG9wdXBNZW51U3R5bGU6OlBvcHVwTWVudVNpemUgUmVu
ZGVyVGhlbWVNYWM6OnBvcHVwTWVudVNpemUoY29uc3QgUmVuZGVyU3R5bGUqIHMKICAgICB9CiB9
CiAKLXZvaWQgUmVuZGVyVGhlbWVNYWM6OmFkanVzdE1lbnVMaXN0QnV0dG9uU3R5bGUoU3R5bGVS
ZXNvbHZlciosIFJlbmRlclN0eWxlKiBzdHlsZSwgRWxlbWVudCopIGNvbnN0Cit2b2lkIFJlbmRl
clRoZW1lTWFjOjphZGp1c3RNZW51TGlzdEJ1dHRvblN0eWxlKFN0eWxlUmVzb2x2ZXImLCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIEVsZW1lbnQmKSBjb25zdAogewotICAgIGZsb2F0IGZvbnRTY2FsZSA9
IHN0eWxlLT5mb250U2l6ZSgpIC8gYmFzZUZvbnRTaXplOworICAgIGZsb2F0IGZvbnRTY2FsZSA9
IHN0eWxlLmZvbnRTaXplKCkgLyBiYXNlRm9udFNpemU7CiAKLSAgICBzdHlsZS0+cmVzZXRQYWRk
aW5nKCk7Ci0gICAgc3R5bGUtPnNldEJvcmRlclJhZGl1cyhJbnRTaXplKGludChiYXNlQm9yZGVy
UmFkaXVzICsgZm9udFNjYWxlIC0gMSksIGludChiYXNlQm9yZGVyUmFkaXVzICsgZm9udFNjYWxl
IC0gMSkpKTsgLy8gRklYTUU6IFJvdW5kIHVwPworICAgIHN0eWxlLnJlc2V0UGFkZGluZygpOwor
ICAgIHN0eWxlLnNldEJvcmRlclJhZGl1cyhJbnRTaXplKGludChiYXNlQm9yZGVyUmFkaXVzICsg
Zm9udFNjYWxlIC0gMSksIGludChiYXNlQm9yZGVyUmFkaXVzICsgZm9udFNjYWxlIC0gMSkpKTsg
Ly8gRklYTUU6IFJvdW5kIHVwPwogCiAgICAgY29uc3QgaW50IG1pbkhlaWdodCA9IDE1OwotICAg
IHN0eWxlLT5zZXRNaW5IZWlnaHQoTGVuZ3RoKG1pbkhlaWdodCwgRml4ZWQpKTsKKyAgICBzdHls
ZS5zZXRNaW5IZWlnaHQoTGVuZ3RoKG1pbkhlaWdodCwgRml4ZWQpKTsKIAotICAgIHN0eWxlLT5z
ZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKTsKKyAgICBzdHls
ZS5zZXRMaW5lSGVpZ2h0KFJlbmRlclN0eWxlOjppbml0aWFsTGluZUhlaWdodCgpKTsKIH0KIAog
dm9pZCBSZW5kZXJUaGVtZU1hYzo6c2V0UG9wdXBCdXR0b25DZWxsU3RhdGUoY29uc3QgUmVuZGVy
T2JqZWN0JiBvLCBjb25zdCBJbnRTaXplJiBidXR0b25TaXplKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ1YTJiMDA4MWM2
ODBlMTNlOWU1NjhmOGRiYjNlOTkxNmZiOGNjOWYuLjA4MmViNWM5ZGU0ZTVmOGMzMWZjYzMwMzAw
ZWNjZTkzNWYxNDNkMzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wNi0xNyAgTXlsZXMg
Qy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIElucHV0
IHR5cGU9dGltZSBlbGVtZW50cyBzdHlsZWQgd2l0aCBTVkcgZm9udHMgaGF2ZSAwIHdpZHRoCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzM1MjQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbHkgcmVu
ZGVyIGEgdmFyaWV0eSBvZiBpbnB1dCBlbGVtZW50cyB3aXRoIFNWRyBmb250cywgYW5kIG1ha2Ug
c3VyZSB0aGV5IGhhdmUgc2FuZSB3aWR0aHMuIE5vdGUgdGhhdCB0aGlzCisgICAgICAgIHRlc3Qg
aXMgbm90IHBsYXRmb3JtLXNwZWNpZmljLCBldmVuIHRob3VnaCB0aGUgYnVnIGlzLgorCisgICAg
ICAgICogZmFzdC9mb3Jtcy90aW1lLWlucHV0LXN2Zy1mb250LWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9mb3Jtcy90aW1lLWlucHV0LXN2Zy1mb250Lmh0bWw6IEFkZGVkLgor
CiAyMDE0LTA2LTE3ICBDYXJsb3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIEZpeCB0aGUgaGFuZGxpbmcgb2YgcmVzaXplIGV2ZW50cyBh
ZnRlciByMTY5NTA1LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy90aW1lLWlu
cHV0LXN2Zy1mb250LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1p
bnB1dC1zdmctZm9udC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTQ2OGNkNTYyMGNiMDAyYjFi
NjJjYTZiYjA0ZjRjY2RhM2I5N2UzOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvdGltZS1pbnB1dC1zdmctZm9udC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBA
CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGlucHV0IGVsZW1lbnRzIGdldCByZW5kZXJlZCB3
aXRoIGEgc2FuZSB3aWR0aC4gWW91IHNob3VsZCBzZWUgZml2ZSB0aW1lIGlucHV0IGVsZW1lbnRz
LCBmb2xsb3dlZCBieSBmaXZlICJQQVNTImVzLgorICAgIAorUGFzcyBQYXNzIFBhc3MgUGFzcyBQ
YXNzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtaW5wdXQtc3ZnLWZv
bnQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvdGltZS1pbnB1dC1zdmctZm9udC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjI1YWU1MzljNjFiMDkyMTVkMWI2OWY1YWQ1Y2ZkYTZmMTNhMDQ0YTcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3RpbWUtaW5wdXQtc3ZnLWZv
bnQuaHRtbApAQCAtMCwwICsxLDQwIEBACis8c3R5bGU+CitAZm9udC1mYWNlIHsKKyAgICBmb250
LWZhbWlseTogJ1NWR3JhZmZpdGknOworICAgIHNyYzogdXJsKCIuLi8uLi9zdmcvY3VzdG9tL3Jl
c291cmNlcy9ncmFmZml0aS5zdmciKSBmb3JtYXQoc3ZnKQorfQorPC9zdHlsZT4KKzxkaXY+CitU
aGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IGlucHV0IGVsZW1lbnRzIGdldCByZW5kZXJlZCB3aXRo
CithIHNhbmUgd2lkdGguIFlvdSBzaG91bGQgc2VlIGZpdmUgdGltZSBpbnB1dCBlbGVtZW50cywg
Zm9sbG93ZWQgYnkgZml2ZSAiUEFTUyJlcy4KKzwvZGl2PgorPGRpdiBzdHlsZT0iZm9udC1mYW1p
bHk6IFNWR3JhZmZpdGk7Ij4KKzxpbnB1dCBpZD0iaSIgdHlwZT0idGltZSI+Cis8aW5wdXQgaWQ9
ImQiIHR5cGU9ImRhdGUiPgorPGlucHV0IGlkPSJkdCIgdHlwZT0iZGF0ZXRpbWUiPgorPGlucHV0
IGlkPSJkdGwiIHR5cGU9ImRhdGV0aW1lLWxvY2FsIj4KKzxpbnB1dCBpZD0ibSIgdHlwZT0ibW9u
dGgiPgorPC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlv
biB0ZXN0KGlucHV0SWQpIHsKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImkiKS5v
ZmZzZXRXaWR0aCA+IDUwKQorICAgICAgICByZXR1cm4gIlBhc3MiCisgICAgZWxzZQorICAgICAg
ICByZXR1cm4gIkZhaWwiCit9CisKK3dpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpIHsKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnRleHRDb250ZW50ICs9IHRlc3Qo
ImkiKSArICIgIjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnRleHRD
b250ZW50ICs9IHRlc3QoImQiKSArICIgIjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLnRleHRDb250ZW50ICs9IHRlc3QoImR0IikgKyAiICI7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS50ZXh0Q29udGVudCArPSB0ZXN0KCJkdGwiKSArICIg
IjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLnRleHRDb250ZW50ICs9
IHRlc3QoIm0iKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworfSksIDApOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Cit9Cis8L3NjcmlwdD4K
</data>
<flag name="review"
          id="257753"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>