病案签收1.1(菜单、图例)
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project version="4">
|
||||
<component name="VcsDirectoryMappings">
|
||||
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||
</component>
|
||||
</project>
|
||||
@ -0,0 +1,34 @@
|
||||
package com.emr.controller;
|
||||
|
||||
import com.emr.entity.Paper;
|
||||
import com.emr.service.PaperService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Author:hjl
|
||||
* @Date:Creatid in 15:49 2019/4/6
|
||||
* @Description:
|
||||
*/
|
||||
|
||||
@Controller
|
||||
@RequestMapping("/echarts")
|
||||
public class echartsController {
|
||||
@Autowired
|
||||
private PaperService paperService;
|
||||
|
||||
@RequestMapping("/worksOneDay")
|
||||
public String list(Model model) {
|
||||
return "echartsDir/worksOneDay";
|
||||
}
|
||||
|
||||
@RequestMapping("/worksTimes")
|
||||
public String worksTimes(Model model) {
|
||||
return "echartsDir/worksTimes";
|
||||
}
|
||||
}
|
||||
@ -1,8 +1,72 @@
|
||||
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
|
||||
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
|
||||
<%
|
||||
String basePath = request.getContextPath();
|
||||
%>
|
||||
|
||||
<!-- 引入Jquery -->
|
||||
<%--<script type="text/javascript" src="${basePath}/static/js/jquery-1.12.4.min.js"></script>--%>
|
||||
<script type="text/javascript" src="${basePath}/js/jquery-3.3.1.js"></script>
|
||||
|
||||
<%--引入jQuery--%>
|
||||
<script type="text/javascript" src="static/js/jquery-3.2.1.js"></script>
|
||||
<script type="text/javascript" src="static/js/jquery-3.2.1.min.js"></script>
|
||||
|
||||
<%--<script type="text/javascript" src="static/js/page.js"></script>--%>
|
||||
|
||||
<%--<link rel="stylesheet" href="static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7-dist/css/bootstrap-theme.css">
|
||||
<script type="text/javascript" src="static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>--%>
|
||||
<%--<link rel="stylesheet" href="static/css/comm.css">--%>
|
||||
<%--<script type="text/javascript" src="static/js/menu.js"></script>
|
||||
<link rel="stylesheet" href="static/css/comm.css"/>--%>
|
||||
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/font-awesome/css/font-awesome.min.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/Ionicons/css/ionicons.min.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/dist/css/AdminLTE.min.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/dist/css/skins/_all-skins.min.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/morris.js/morris.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/jvectormap/jquery-jvectormap.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/bootstrap-datepicker/dist/css/bootstrap-datepicker.min.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/bower_components/bootstrap-daterangepicker/daterangepicker.css"/>
|
||||
<link rel="stylesheet" href="static/bootstrap-3.3.7/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"/>
|
||||
|
||||
|
||||
<!-- jQuery 3 -->
|
||||
<%--<script src="static/bootstrap-3.3.7/bower_components/jquery/dist/jquery.min.js"></script>--%>
|
||||
<!-- jQuery UI 1.11.4 -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/jquery-ui/jquery-ui.min.js"></script>
|
||||
<!-- Resolve conflict in jQuery UI tooltip with Bootstrap tooltip -->
|
||||
<script>
|
||||
$.widget.bridge('uibutton', $.ui.button);
|
||||
</script>
|
||||
<!-- Bootstrap 3.3.7 -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>
|
||||
<!-- Morris.js charts -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/raphael/raphael.min.js"></script>
|
||||
<%--<script src="static/bootstrap-3.3.7/bower_components/morris.js/morris.min.js"></script>--%>
|
||||
<!-- Sparkline -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/jquery-sparkline/dist/jquery.sparkline.min.js"></script>
|
||||
<!-- jvectormap -->
|
||||
<script src="static/bootstrap-3.3.7/plugins/jvectormap/jquery-jvectormap-1.2.2.min.js"></script>
|
||||
<script src="static/bootstrap-3.3.7/plugins/jvectormap/jquery-jvectormap-world-mill-en.js"></script>
|
||||
<!-- jQuery Knob Chart -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/jquery-knob/dist/jquery.knob.min.js"></script>
|
||||
<!-- daterangepicker -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/moment/min/moment.min.js"></script>
|
||||
<script src="static/bootstrap-3.3.7/bower_components/bootstrap-daterangepicker/daterangepicker.js"></script>
|
||||
<!-- datepicker -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/bootstrap-datepicker/dist/js/bootstrap-datepicker.min.js"></script>
|
||||
<!-- Bootstrap WYSIHTML5 -->
|
||||
<script src="static/bootstrap-3.3.7/plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.all.min.js"></script>
|
||||
<!-- Slimscroll -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/jquery-slimscroll/jquery.slimscroll.min.js"></script>
|
||||
<!-- FastClick -->
|
||||
<script src="static/bootstrap-3.3.7/bower_components/fastclick/lib/fastclick.js"></script>
|
||||
<!-- AdminLTE App -->
|
||||
<script src="static/bootstrap-3.3.7/dist/js/adminlte.min.js"></script>
|
||||
<!-- AdminLTE dashboard demo (This is only for demo purposes) -->
|
||||
<%--<script src="static/bootstrap-3.3.7/dist/js/pages/dashboard.js"></script>--%>
|
||||
<!-- AdminLTE for demo purposes -->
|
||||
<script src="static/bootstrap-3.3.7/dist/js/demo.js"></script>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,131 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="ECharts">
|
||||
<meta name="author" content="kener.linfeng@gmail.com">
|
||||
<title>ECharts · Example</title>
|
||||
|
||||
<link rel="shortcut icon" href="../asset/ico/favicon.png">
|
||||
|
||||
<link href="../asset/css/font-awesome.min.css" rel="stylesheet">
|
||||
<link href="../asset/css/bootstrap.css" rel="stylesheet">
|
||||
<link href="../asset/css/carousel.css" rel="stylesheet">
|
||||
<link href="../asset/css/echartsHome.css" rel="stylesheet">
|
||||
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
|
||||
<script src="./www/js/echarts.js"></script>
|
||||
<script src="../asset/js/codemirror.js"></script>
|
||||
<script src="../asset/js/javascript.js"></script>
|
||||
|
||||
<link href="../asset/css/codemirror.css" rel="stylesheet">
|
||||
<link href="../asset/css/monokai.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Fixed navbar -->
|
||||
<div class="navbar navbar-default navbar-fixed-top" role="navigation" id="head"></div>
|
||||
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="row-fluid example">
|
||||
<div id="sidebar-code" class="col-md-4">
|
||||
<div class="well sidebar-nav">
|
||||
<div class="nav-header"><a href="#" onclick="autoResize()" class="glyphicon glyphicon-resize-full" id ="icon-resize" ></a>option</div>
|
||||
<textarea id="code" name="code">
|
||||
option = {
|
||||
tooltip : {
|
||||
trigger: 'axis'
|
||||
},
|
||||
legend: {
|
||||
data:['邮件营销','联盟广告','视频广告','直接访问','搜索引擎']
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
mark : {show: true},
|
||||
dataView : {show: true, readOnly: false},
|
||||
magicType : {show: true, type: ['line', 'bar', 'stack', 'tiled']},
|
||||
restore : {show: true},
|
||||
saveAsImage : {show: true}
|
||||
}
|
||||
},
|
||||
calculable : true,
|
||||
xAxis : [
|
||||
{
|
||||
type : 'category',
|
||||
boundaryGap : false,
|
||||
data : ['周一','周二','周三','周四','周五','周六','周日']
|
||||
}
|
||||
],
|
||||
yAxis : [
|
||||
{
|
||||
type : 'value'
|
||||
}
|
||||
],
|
||||
series : [
|
||||
{
|
||||
name:'邮件营销',
|
||||
type:'line',
|
||||
stack: '总量',
|
||||
data:[120, 132, 101, 134, 90, 230, 210]
|
||||
},
|
||||
{
|
||||
name:'联盟广告',
|
||||
type:'line',
|
||||
stack: '总量',
|
||||
data:[220, 182, 191, 234, 290, 330, 310]
|
||||
},
|
||||
{
|
||||
name:'视频广告',
|
||||
type:'line',
|
||||
stack: '总量',
|
||||
data:[150, 232, 201, 154, 190, 330, 410]
|
||||
},
|
||||
{
|
||||
name:'直接访问',
|
||||
type:'line',
|
||||
stack: '总量',
|
||||
data:[320, 332, 301, 334, 390, 330, 320]
|
||||
},
|
||||
{
|
||||
name:'搜索引擎',
|
||||
type:'line',
|
||||
stack: '总量',
|
||||
data:[820, 932, 901, 934, 1290, 1330, 1320]
|
||||
}
|
||||
]
|
||||
};
|
||||
</textarea>
|
||||
</div><!--/.well -->
|
||||
</div><!--/span-->
|
||||
<div id="graphic" class="col-md-8">
|
||||
<div id="main" class="main"></div>
|
||||
<div>
|
||||
<button type="button" class="btn btn-sm btn-success" onclick="refresh(true)">刷 新</button>
|
||||
<span class="text-primary">切换主题</span>
|
||||
<select id="theme-select"></select>
|
||||
|
||||
<span id='wrong-message' style="color:red"></span>
|
||||
</div>
|
||||
</div><!--/span-->
|
||||
</div><!--/row-->
|
||||
|
||||
</div><!--/.fluid-container-->
|
||||
|
||||
<footer id="footer"></footer>
|
||||
<!-- Le javascript
|
||||
================================================== -->
|
||||
<!-- Placed at the end of the document so the pages load faster -->
|
||||
<script src="../asset/js/jquery.min.js"></script>
|
||||
<script type="text/javascript" src="../asset/js/echartsHome.js"></script>
|
||||
<script src="../asset/js/bootstrap.min.js"></script>
|
||||
<script src="../asset/js/echartsExample.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@ -0,0 +1,38 @@
|
||||
root = true
|
||||
|
||||
[*]
|
||||
end_of_line = lf
|
||||
charset = utf-8
|
||||
trim_trailing_whitespace = true
|
||||
insert_final_newline = true
|
||||
|
||||
[**.js]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[**.css]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[**.less]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[**.styl]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[**.html]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[**.tpl]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[**.json]
|
||||
indent_style = space
|
||||
indent_size = 4
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
@ -0,0 +1,165 @@
|
||||
#################
|
||||
## Eclipse
|
||||
#################
|
||||
|
||||
*.pydevproject
|
||||
.project
|
||||
.metadata
|
||||
bin/
|
||||
tmp/
|
||||
*.tmp
|
||||
*.bak
|
||||
*.swp
|
||||
*~.nib
|
||||
.svn
|
||||
local.properties
|
||||
.classpath
|
||||
.settings/
|
||||
.loadpath
|
||||
|
||||
# External tool builders
|
||||
.externalToolBuilders/
|
||||
|
||||
# Locally stored "Eclipse launch configurations"
|
||||
*.launch
|
||||
|
||||
# CDT-specific
|
||||
.cproject
|
||||
|
||||
# PDT-specific
|
||||
.buildpath
|
||||
|
||||
|
||||
#################
|
||||
## Visual Studio
|
||||
#################
|
||||
|
||||
## Ignore Visual Studio temporary files, build results, and
|
||||
## files generated by popular Visual Studio add-ons.
|
||||
|
||||
# User-specific files
|
||||
*.suo
|
||||
*.user
|
||||
*.sln.docstates
|
||||
|
||||
# Build results
|
||||
[Dd]ebug/
|
||||
[Rr]elease/
|
||||
*_i.c
|
||||
*_p.c
|
||||
*.ilk
|
||||
*.meta
|
||||
*.obj
|
||||
*.pch
|
||||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
*.tlh
|
||||
*.tmp
|
||||
*.vspscc
|
||||
.builds
|
||||
*.dotCover
|
||||
|
||||
## TODO: If you have NuGet Package Restore enabled, uncomment this
|
||||
#packages/
|
||||
|
||||
# Visual C++ cache files
|
||||
ipch/
|
||||
*.aps
|
||||
*.ncb
|
||||
*.opensdf
|
||||
*.sdf
|
||||
|
||||
# Visual Studio profiler
|
||||
*.psess
|
||||
*.vsp
|
||||
|
||||
# ReSharper is a .NET coding add-in
|
||||
_ReSharper*
|
||||
|
||||
# Installshield output folder
|
||||
[Ee]xpress
|
||||
|
||||
# DocProject is a documentation generator add-in
|
||||
DocProject/buildhelp/
|
||||
DocProject/Help/*.HxT
|
||||
DocProject/Help/*.HxC
|
||||
DocProject/Help/*.hhc
|
||||
DocProject/Help/*.hhk
|
||||
DocProject/Help/*.hhp
|
||||
DocProject/Help/Html2
|
||||
DocProject/Help/html
|
||||
|
||||
# Click-Once directory
|
||||
publish
|
||||
|
||||
# Others
|
||||
[Bb]in
|
||||
[Oo]bj
|
||||
sql
|
||||
TestResults
|
||||
*.Cache
|
||||
ClientBin
|
||||
stylecop.*
|
||||
~$*
|
||||
*.dbmdl
|
||||
Generated_Code #added for RIA/Silverlight projects
|
||||
|
||||
# Backup & report files from converting an old project file to a newer
|
||||
# Visual Studio version. Backup files are not needed, because we have git ;-)
|
||||
_UpgradeReport_Files/
|
||||
Backup*/
|
||||
UpgradeLog*.XML
|
||||
|
||||
|
||||
|
||||
############
|
||||
## Windows
|
||||
############
|
||||
|
||||
# Windows image file caches
|
||||
Thumbs.db
|
||||
|
||||
# Folder config file
|
||||
Desktop.ini
|
||||
|
||||
|
||||
#############
|
||||
## Python
|
||||
#############
|
||||
|
||||
*.py[co]
|
||||
|
||||
# Packages
|
||||
*.egg
|
||||
*.egg-info
|
||||
# dist
|
||||
eggs
|
||||
parts
|
||||
bin
|
||||
var
|
||||
sdist
|
||||
develop-eggs
|
||||
.installed.cfg
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
.coverage
|
||||
.tox
|
||||
|
||||
#Translations
|
||||
*.mo
|
||||
|
||||
#Mr Developer
|
||||
.mr.developer.cfg
|
||||
|
||||
# Mac crap
|
||||
.DS_Store
|
||||
|
||||
node_modules
|
||||
@ -0,0 +1,2 @@
|
||||
src/util/mapData/geoJson/*
|
||||
src/util/mapData/rawData/geoJson/*
|
||||
@ -0,0 +1,71 @@
|
||||
{
|
||||
"bitwise": false,
|
||||
"camelcase": true,
|
||||
"curly": true,
|
||||
"es3": true,
|
||||
"eqeqeq": false,
|
||||
"forin": false,
|
||||
"immed": true,
|
||||
"latedef": false,
|
||||
"newcap": true,
|
||||
"noarg": false,
|
||||
"noempty": true,
|
||||
"nonew": true,
|
||||
"plusplus": false,
|
||||
"quotmark": "single",
|
||||
"regexp": false,
|
||||
"undef": true,
|
||||
"unused": "vars",
|
||||
"strict": false,
|
||||
"trailing": false,
|
||||
"maxparams": 20,
|
||||
"maxdepth": 6,
|
||||
"maxlen": 120,
|
||||
|
||||
"asi": false,
|
||||
"boss": false,
|
||||
"debug": false,
|
||||
"eqnull": true,
|
||||
"esnext": false,
|
||||
"evil": true,
|
||||
"expr": true,
|
||||
"funcscope": false,
|
||||
"globalstrict": false,
|
||||
"iterator": false,
|
||||
"lastsemic": false,
|
||||
"laxbreak": true,
|
||||
"laxcomma": false,
|
||||
"loopfunc": false,
|
||||
"multistr": false,
|
||||
"onecase": false,
|
||||
"proto": false,
|
||||
"regexdash": false,
|
||||
"scripturl": false,
|
||||
"smarttabs": false,
|
||||
"shadow": true,
|
||||
"sub": true,
|
||||
"supernew": false,
|
||||
"validthis": true,
|
||||
|
||||
"browser": true,
|
||||
"couch": false,
|
||||
"devel": true,
|
||||
"dojo": false,
|
||||
"jquery": true,
|
||||
"mootools": false,
|
||||
"node": false,
|
||||
"nonstandard": false,
|
||||
"prototypejs": false,
|
||||
"rhino": false,
|
||||
"wsh": false,
|
||||
|
||||
"nomen": false,
|
||||
"onevar": false,
|
||||
"passfail": false,
|
||||
"white": false,
|
||||
|
||||
"predef": [
|
||||
"define",
|
||||
"require"
|
||||
]
|
||||
}
|
||||
@ -0,0 +1,7 @@
|
||||
/build
|
||||
/doc
|
||||
/index.html
|
||||
|
||||
npm-debug.log
|
||||
|
||||
|
||||
@ -0,0 +1,28 @@
|
||||
Copyright (c) 2013, Baidu Inc.
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use of this software in source and binary forms, with or
|
||||
without modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
Neither the name of Baidu Inc. nor the names of its contributors may be used
|
||||
to endorse or promote products derived from this software without specific
|
||||
prior written permission of Baidu Inc.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
@ -0,0 +1,28 @@
|
||||
{
|
||||
"name": "echarts",
|
||||
"version": "2.2.7",
|
||||
"homepage": "http://echarts.baidu.com",
|
||||
"repository": "git://github.com/ecomfe/echarts",
|
||||
"authors": [
|
||||
{ "name": "Kener", "email": "kener.linfeng@gmail.com" },
|
||||
{ "name": "Pissang", "email": "shenyi.914@gmail.com" },
|
||||
{ "name": "Erik", "email": "errorrik@gmail.com" },
|
||||
{ "name": "Yangji", "email": "511415343@qq.com" }
|
||||
],
|
||||
"description": "Enterprise Charts 【Baidu Hi : 1379172 | Email : echarts@baidu.com】",
|
||||
"main": ["build/dist/echarts.js"],
|
||||
"keywords": [
|
||||
"baidu",
|
||||
"echarts",
|
||||
"canvas",
|
||||
"data visualization"
|
||||
],
|
||||
"license": "BSD",
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"bower_components",
|
||||
"test",
|
||||
"doc"
|
||||
]
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
define("echarts/chart/heatmap",["require","./base","../layer/heatmap","../config","../util/ecData","zrender/tool/util","zrender/tool/color","zrender/shape/Image","../chart"],function(e){function t(e,t,n,a,o){i.call(this,e,t,n,a,o),this.refresh(a)}var i=e("./base"),n=e("../layer/heatmap"),a=e("../config"),o=(e("../util/ecData"),e("zrender/tool/util")),r=(e("zrender/tool/color"),e("zrender/shape/Image"));return a.heatmap={zlevel:0,z:2,clickable:!0},t.prototype={type:a.CHART_TYPE_HEATMAP,refresh:function(e){this.clear(),e&&(this.option=e,this.series=e.series),this._init()},_init:function(){var e=this.series;this.backupShapeList();for(var t=e.length,i=0;t>i;++i)if(e[i].type===a.CHART_TYPE_HEATMAP){e[i]=this.reformOption(e[i]);var o=new n(e[i]),s=o.getCanvas(e[i].data,this.zr.getWidth(),this.zr.getHeight()),l=new r({position:[0,0],scale:[1,1],hoverable:this.option.hoverable,style:{x:0,y:0,image:s,width:s.width,height:s.height}});this.shapeList.push(l)}this.addShapeList()}},o.inherits(t,i),e("../chart").define("heatmap",t),t}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var d=e[V],U=d[0],p=d[1],c=d[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,U-s,p-s)}for(var g=h.getImageData(0,0,l.width,l.height),y=g.data,m=y.length/4;m--;){var b=4*m+3,u=y[b]/256,f=Math.floor(u*(n-1));y[b-3]=r[4*f],y[b-2]=r[4*f+1],y[b-1]=r[4*f+2],y[b]*=this.option.opacity}return h.putImageData(g,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e}),define("echarts/layer/heatmap",["require"],function(){function e(e){if(this.option=e,e)for(var i in t)this.option[i]=void 0!==e[i]?e[i]:t[i];else this.option=t}var t={blurSize:30,gradientColors:["blue","cyan","lime","yellow","red"],minAlpha:.05,valueScale:1,opacity:1},i=20,n=256;return e.prototype={getCanvas:function(e,t,a){var o=this._getBrush(),r=this._getGradient(),s=i+this.option.blurSize,l=document.createElement("canvas");l.width=t,l.height=a;for(var h=l.getContext("2d"),m=e.length,V=0;m>V;++V){var d=e[V],U=d[0],p=d[1],c=d[2],u=Math.min(1,Math.max(c*this.option.valueScale||this.option.minAlpha,this.option.minAlpha));h.globalAlpha=u,h.drawImage(o,U-s,p-s)}for(var g=h.getImageData(0,0,l.width,l.height),y=g.data,m=y.length/4;m--;){var b=4*m+3,u=y[b]/256,f=Math.floor(u*(n-1));y[b-3]=r[4*f],y[b-2]=r[4*f+1],y[b-1]=r[4*f+2],y[b]*=this.option.opacity}return h.putImageData(g,0,0),l},_getBrush:function(){if(!this._brushCanvas){this._brushCanvas=document.createElement("canvas");var e=i+this.option.blurSize,t=2*e;this._brushCanvas.width=t,this._brushCanvas.height=t;var n=this._brushCanvas.getContext("2d");n.shadowOffsetX=t,n.shadowBlur=this.option.blurSize,n.shadowColor="black",n.beginPath(),n.arc(-e,e,i,0,2*Math.PI,!0),n.closePath(),n.fill()}return this._brushCanvas},_getGradient:function(){if(!this._gradientPixels){var e=n,t=document.createElement("canvas");t.width=1,t.height=e;for(var i=t.getContext("2d"),a=i.createLinearGradient(0,0,0,e),o=this.option.gradientColors.length,r=0;o>r;++r)"string"==typeof this.option.gradientColors[r]?a.addColorStop((r+1)/o,this.option.gradientColors[r]):a.addColorStop(this.option.gradientColors[r].offset,this.option.gradientColors[r].color);i.fillStyle=a,i.fillRect(0,0,1,e),this._gradientPixels=i.getImageData(0,0,1,e).data}return this._gradientPixels}},e});
|
||||
@ -0,0 +1,86 @@
|
||||
exports.modules = {
|
||||
main: {
|
||||
name: 'echarts/echarts',
|
||||
includeShallow: [
|
||||
'echarts/component/dataRange'
|
||||
]
|
||||
},
|
||||
parts: [
|
||||
{name: 'echarts/chart/line', weight: 100},
|
||||
{name: 'echarts/chart/bar', weight: 100},
|
||||
{name: 'echarts/chart/scatter', weight: 90},
|
||||
{name: 'echarts/chart/k', weight: 30},
|
||||
{name: 'echarts/chart/pie', weight: 90},
|
||||
{name: 'echarts/chart/radar', weight: 30},
|
||||
{name: 'echarts/chart/chord', weight: 30},
|
||||
{name: 'echarts/chart/force', weight: 30},
|
||||
{
|
||||
name: 'echarts/chart/map',
|
||||
weight: 90,
|
||||
includeShallow: [
|
||||
'echarts/util/mapData/geoJson/an_hui_geo',
|
||||
'echarts/util/mapData/geoJson/ao_men_geo',
|
||||
'echarts/util/mapData/geoJson/bei_jing_geo',
|
||||
'echarts/util/mapData/geoJson/china_geo',
|
||||
'echarts/util/mapData/geoJson/chong_qing_geo',
|
||||
'echarts/util/mapData/geoJson/fu_jian_geo',
|
||||
'echarts/util/mapData/geoJson/gan_su_geo',
|
||||
'echarts/util/mapData/geoJson/guang_dong_geo',
|
||||
'echarts/util/mapData/geoJson/guang_xi_geo',
|
||||
'echarts/util/mapData/geoJson/gui_zhou_geo',
|
||||
'echarts/util/mapData/geoJson/hai_nan_geo',
|
||||
'echarts/util/mapData/geoJson/hei_long_jiang_geo',
|
||||
'echarts/util/mapData/geoJson/he_bei_geo',
|
||||
'echarts/util/mapData/geoJson/he_nan_geo',
|
||||
'echarts/util/mapData/geoJson/hu_bei_geo',
|
||||
'echarts/util/mapData/geoJson/hu_nan_geo',
|
||||
'echarts/util/mapData/geoJson/jiang_su_geo',
|
||||
'echarts/util/mapData/geoJson/jiang_xi_geo',
|
||||
'echarts/util/mapData/geoJson/ji_lin_geo',
|
||||
'echarts/util/mapData/geoJson/liao_ning_geo',
|
||||
'echarts/util/mapData/geoJson/nei_meng_gu_geo',
|
||||
'echarts/util/mapData/geoJson/ning_xia_geo',
|
||||
'echarts/util/mapData/geoJson/qing_hai_geo',
|
||||
'echarts/util/mapData/geoJson/shang_hai_geo',
|
||||
'echarts/util/mapData/geoJson/shan_dong_geo',
|
||||
'echarts/util/mapData/geoJson/shan_xi_1_geo',
|
||||
'echarts/util/mapData/geoJson/shan_xi_2_geo',
|
||||
'echarts/util/mapData/geoJson/si_chuan_geo',
|
||||
'echarts/util/mapData/geoJson/tai_wan_geo',
|
||||
'echarts/util/mapData/geoJson/tian_jin_geo',
|
||||
'echarts/util/mapData/geoJson/world_geo',
|
||||
'echarts/util/mapData/geoJson/xiang_gang_geo',
|
||||
'echarts/util/mapData/geoJson/xin_jiang_geo',
|
||||
'echarts/util/mapData/geoJson/xi_zang_geo',
|
||||
'echarts/util/mapData/geoJson/yun_nan_geo',
|
||||
'echarts/util/mapData/geoJson/zhe_jiang_geo'
|
||||
]
|
||||
},
|
||||
{name: 'echarts/chart/gauge', weight: 30},
|
||||
{name: 'echarts/chart/funnel', weight: 30},
|
||||
{name: 'echarts/chart/eventRiver', weight: 10},
|
||||
{name: 'echarts/chart/venn', weight: 10},
|
||||
{name: 'echarts/chart/treemap', weight: 10},
|
||||
{name: 'echarts/chart/tree', weight: 10},
|
||||
{name: 'echarts/chart/wordCloud', weight: 10},
|
||||
{name: 'echarts/chart/heatmap', weight: 10, includeShallow: [
|
||||
'echarts/layer/heatmap'
|
||||
]}
|
||||
]
|
||||
};
|
||||
|
||||
exports.amd = {
|
||||
baseUrl: process.cwd(),
|
||||
packages: [
|
||||
{
|
||||
name: 'echarts',
|
||||
location: '../src',
|
||||
main: 'echarts'
|
||||
},
|
||||
{
|
||||
name: 'zrender',
|
||||
location: '../../zrender/src',
|
||||
main: 'zrender'
|
||||
}
|
||||
]
|
||||
};
|
||||
@ -0,0 +1,648 @@
|
||||
define('echarts/chart/bar', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Rectangle',
|
||||
'../component/axis',
|
||||
'../component/grid',
|
||||
'../component/dataZoom',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var RectangleShape = require('zrender/shape/Rectangle');
|
||||
require('../component/axis');
|
||||
require('../component/grid');
|
||||
require('../component/dataZoom');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.bar = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
xAxisIndex: 0,
|
||||
yAxisIndex: 0,
|
||||
barMinHeight: 0,
|
||||
barGap: '30%',
|
||||
barCategoryGap: '20%',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
barBorderColor: '#fff',
|
||||
barBorderRadius: 0,
|
||||
barBorderWidth: 0,
|
||||
label: { show: false }
|
||||
},
|
||||
emphasis: {
|
||||
barBorderColor: '#fff',
|
||||
barBorderRadius: 0,
|
||||
barBorderWidth: 0,
|
||||
label: { show: false }
|
||||
}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
function Bar(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Bar.prototype = {
|
||||
type: ecConfig.CHART_TYPE_BAR,
|
||||
_buildShape: function () {
|
||||
this._buildPosition();
|
||||
},
|
||||
_buildNormal: function (seriesArray, maxDataLength, locationMap, xMarkMap, orient) {
|
||||
var series = this.series;
|
||||
var seriesIndex = locationMap[0][0];
|
||||
var serie = series[seriesIndex];
|
||||
var isHorizontal = orient == 'horizontal';
|
||||
var xAxis = this.component.xAxis;
|
||||
var yAxis = this.component.yAxis;
|
||||
var categoryAxis = isHorizontal ? xAxis.getAxis(serie.xAxisIndex) : yAxis.getAxis(serie.yAxisIndex);
|
||||
var valueAxis;
|
||||
var size = this._mapSize(categoryAxis, locationMap);
|
||||
var gap = size.gap;
|
||||
var barGap = size.barGap;
|
||||
var barWidthMap = size.barWidthMap;
|
||||
var barMaxWidthMap = size.barMaxWidthMap;
|
||||
var barWidth = size.barWidth;
|
||||
var barMinHeightMap = size.barMinHeightMap;
|
||||
var barHeight;
|
||||
var curBarWidth;
|
||||
var interval = size.interval;
|
||||
var x;
|
||||
var y;
|
||||
var lastP;
|
||||
var baseP;
|
||||
var lastN;
|
||||
var baseN;
|
||||
var barShape;
|
||||
var data;
|
||||
var value;
|
||||
var islandR = this.deepQuery([
|
||||
this.ecTheme,
|
||||
ecConfig
|
||||
], 'island.r');
|
||||
for (var i = 0, l = maxDataLength; i < l; i++) {
|
||||
if (categoryAxis.getNameByIndex(i) == null) {
|
||||
break;
|
||||
}
|
||||
isHorizontal ? x = categoryAxis.getCoordByIndex(i) - gap / 2 : y = categoryAxis.getCoordByIndex(i) + gap / 2;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
var yAxisIndex = series[locationMap[j][0]].yAxisIndex || 0;
|
||||
var xAxisIndex = series[locationMap[j][0]].xAxisIndex || 0;
|
||||
valueAxis = isHorizontal ? yAxis.getAxis(yAxisIndex) : xAxis.getAxis(xAxisIndex);
|
||||
baseP = lastP = baseN = lastN = valueAxis.getCoord(0);
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
seriesIndex = locationMap[j][m];
|
||||
serie = series[seriesIndex];
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || {
|
||||
min: Number.POSITIVE_INFINITY,
|
||||
max: Number.NEGATIVE_INFINITY,
|
||||
sum: 0,
|
||||
counter: 0,
|
||||
average: 0
|
||||
};
|
||||
curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth);
|
||||
if (value === '-') {
|
||||
continue;
|
||||
}
|
||||
if (value > 0) {
|
||||
barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? baseP - valueAxis.getCoord(value) : valueAxis.getCoord(value) - baseP;
|
||||
if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) {
|
||||
barHeight = barMinHeightMap[seriesIndex];
|
||||
}
|
||||
if (isHorizontal) {
|
||||
lastP -= barHeight;
|
||||
y = lastP;
|
||||
} else {
|
||||
x = lastP;
|
||||
lastP += barHeight;
|
||||
}
|
||||
} else if (value < 0) {
|
||||
barHeight = m > 0 ? valueAxis.getCoordSize(value) : isHorizontal ? valueAxis.getCoord(value) - baseN : baseN - valueAxis.getCoord(value);
|
||||
if (n === 1 && barMinHeightMap[seriesIndex] > barHeight) {
|
||||
barHeight = barMinHeightMap[seriesIndex];
|
||||
}
|
||||
if (isHorizontal) {
|
||||
y = lastN;
|
||||
lastN += barHeight;
|
||||
} else {
|
||||
lastN -= barHeight;
|
||||
x = lastN;
|
||||
}
|
||||
} else {
|
||||
barHeight = 0;
|
||||
if (isHorizontal) {
|
||||
lastP -= barHeight;
|
||||
y = lastP;
|
||||
} else {
|
||||
x = lastP;
|
||||
lastP += barHeight;
|
||||
}
|
||||
}
|
||||
xMarkMap[seriesIndex][i] = isHorizontal ? x + curBarWidth / 2 : y - curBarWidth / 2;
|
||||
if (xMarkMap[seriesIndex].min > value) {
|
||||
xMarkMap[seriesIndex].min = value;
|
||||
if (isHorizontal) {
|
||||
xMarkMap[seriesIndex].minY = y;
|
||||
xMarkMap[seriesIndex].minX = xMarkMap[seriesIndex][i];
|
||||
} else {
|
||||
xMarkMap[seriesIndex].minX = x + barHeight;
|
||||
xMarkMap[seriesIndex].minY = xMarkMap[seriesIndex][i];
|
||||
}
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max < value) {
|
||||
xMarkMap[seriesIndex].max = value;
|
||||
if (isHorizontal) {
|
||||
xMarkMap[seriesIndex].maxY = y;
|
||||
xMarkMap[seriesIndex].maxX = xMarkMap[seriesIndex][i];
|
||||
} else {
|
||||
xMarkMap[seriesIndex].maxX = x + barHeight;
|
||||
xMarkMap[seriesIndex].maxY = xMarkMap[seriesIndex][i];
|
||||
}
|
||||
}
|
||||
xMarkMap[seriesIndex].sum += value;
|
||||
xMarkMap[seriesIndex].counter++;
|
||||
if (i % interval === 0) {
|
||||
barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : barHeight, isHorizontal ? barHeight : curBarWidth, isHorizontal ? 'vertical' : 'horizontal');
|
||||
this.shapeList.push(new RectangleShape(barShape));
|
||||
}
|
||||
}
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
seriesIndex = locationMap[j][m];
|
||||
serie = series[seriesIndex];
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
curBarWidth = Math.min(barMaxWidthMap[seriesIndex] || Number.MAX_VALUE, barWidthMap[seriesIndex] || barWidth);
|
||||
if (value != '-') {
|
||||
continue;
|
||||
}
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
if (isHorizontal) {
|
||||
lastP -= islandR;
|
||||
y = lastP;
|
||||
} else {
|
||||
x = lastP;
|
||||
lastP += islandR;
|
||||
}
|
||||
barShape = this._getBarItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y - (isHorizontal ? 0 : curBarWidth), isHorizontal ? curBarWidth : islandR, isHorizontal ? islandR : curBarWidth, isHorizontal ? 'vertical' : 'horizontal');
|
||||
barShape.hoverable = false;
|
||||
barShape.draggable = false;
|
||||
barShape.style.lineWidth = 1;
|
||||
barShape.style.brushType = 'stroke';
|
||||
barShape.style.strokeColor = serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor;
|
||||
this.shapeList.push(new RectangleShape(barShape));
|
||||
}
|
||||
}
|
||||
isHorizontal ? x += curBarWidth + barGap : y -= curBarWidth + barGap;
|
||||
}
|
||||
}
|
||||
this._calculMarkMapXY(xMarkMap, locationMap, isHorizontal ? 'y' : 'x');
|
||||
},
|
||||
_buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) {
|
||||
return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'horizontal');
|
||||
},
|
||||
_buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) {
|
||||
return this._buildNormal(seriesArray, maxDataLength, locationMap, xMarkMap, 'vertical');
|
||||
},
|
||||
_buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) {
|
||||
var series = this.series;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
var seriesIndex = locationMap[j][m];
|
||||
var serie = series[seriesIndex];
|
||||
var xAxisIndex = serie.xAxisIndex || 0;
|
||||
var xAxis = this.component.xAxis.getAxis(xAxisIndex);
|
||||
var baseX = xAxis.getCoord(0);
|
||||
var yAxisIndex = serie.yAxisIndex || 0;
|
||||
var yAxis = this.component.yAxis.getAxis(yAxisIndex);
|
||||
var baseY = yAxis.getCoord(0);
|
||||
xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || {
|
||||
min0: Number.POSITIVE_INFINITY,
|
||||
min1: Number.POSITIVE_INFINITY,
|
||||
max0: Number.NEGATIVE_INFINITY,
|
||||
max1: Number.NEGATIVE_INFINITY,
|
||||
sum0: 0,
|
||||
sum1: 0,
|
||||
counter0: 0,
|
||||
counter1: 0,
|
||||
average0: 0,
|
||||
average1: 0
|
||||
};
|
||||
for (var i = 0, l = serie.data.length; i < l; i++) {
|
||||
var data = serie.data[i];
|
||||
var value = this.getDataFromOption(data, '-');
|
||||
if (!(value instanceof Array)) {
|
||||
continue;
|
||||
}
|
||||
var x = xAxis.getCoord(value[0]);
|
||||
var y = yAxis.getCoord(value[1]);
|
||||
var queryTarget = [
|
||||
data,
|
||||
serie
|
||||
];
|
||||
var barWidth = this.deepQuery(queryTarget, 'barWidth') || 10;
|
||||
var barHeight = this.deepQuery(queryTarget, 'barHeight');
|
||||
var orient;
|
||||
var barShape;
|
||||
if (barHeight != null) {
|
||||
orient = 'horizontal';
|
||||
if (value[0] > 0) {
|
||||
barWidth = x - baseX;
|
||||
x -= barWidth;
|
||||
} else if (value[0] < 0) {
|
||||
barWidth = baseX - x;
|
||||
} else {
|
||||
barWidth = 0;
|
||||
}
|
||||
barShape = this._getBarItem(seriesIndex, i, value[0], x, y - barHeight / 2, barWidth, barHeight, orient);
|
||||
} else {
|
||||
orient = 'vertical';
|
||||
if (value[1] > 0) {
|
||||
barHeight = baseY - y;
|
||||
} else if (value[1] < 0) {
|
||||
barHeight = y - baseY;
|
||||
y -= barHeight;
|
||||
} else {
|
||||
barHeight = 0;
|
||||
}
|
||||
barShape = this._getBarItem(seriesIndex, i, value[0], x - barWidth / 2, y, barWidth, barHeight, orient);
|
||||
}
|
||||
this.shapeList.push(new RectangleShape(barShape));
|
||||
x = xAxis.getCoord(value[0]);
|
||||
y = yAxis.getCoord(value[1]);
|
||||
if (xMarkMap[seriesIndex].min0 > value[0]) {
|
||||
xMarkMap[seriesIndex].min0 = value[0];
|
||||
xMarkMap[seriesIndex].minY0 = y;
|
||||
xMarkMap[seriesIndex].minX0 = x;
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max0 < value[0]) {
|
||||
xMarkMap[seriesIndex].max0 = value[0];
|
||||
xMarkMap[seriesIndex].maxY0 = y;
|
||||
xMarkMap[seriesIndex].maxX0 = x;
|
||||
}
|
||||
xMarkMap[seriesIndex].sum0 += value[0];
|
||||
xMarkMap[seriesIndex].counter0++;
|
||||
if (xMarkMap[seriesIndex].min1 > value[1]) {
|
||||
xMarkMap[seriesIndex].min1 = value[1];
|
||||
xMarkMap[seriesIndex].minY1 = y;
|
||||
xMarkMap[seriesIndex].minX1 = x;
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max1 < value[1]) {
|
||||
xMarkMap[seriesIndex].max1 = value[1];
|
||||
xMarkMap[seriesIndex].maxY1 = y;
|
||||
xMarkMap[seriesIndex].maxX1 = x;
|
||||
}
|
||||
xMarkMap[seriesIndex].sum1 += value[1];
|
||||
xMarkMap[seriesIndex].counter1++;
|
||||
}
|
||||
}
|
||||
}
|
||||
this._calculMarkMapXY(xMarkMap, locationMap, 'xy');
|
||||
},
|
||||
_mapSize: function (categoryAxis, locationMap, ignoreUserDefined) {
|
||||
var res = this._findSpecialBarSzie(locationMap, ignoreUserDefined);
|
||||
var barWidthMap = res.barWidthMap;
|
||||
var barMaxWidthMap = res.barMaxWidthMap;
|
||||
var barMinHeightMap = res.barMinHeightMap;
|
||||
var sBarWidthCounter = res.sBarWidthCounter;
|
||||
var sBarWidthTotal = res.sBarWidthTotal;
|
||||
var barGap = res.barGap;
|
||||
var barCategoryGap = res.barCategoryGap;
|
||||
var gap;
|
||||
var barWidth;
|
||||
var interval = 1;
|
||||
if (locationMap.length != sBarWidthCounter) {
|
||||
if (!ignoreUserDefined) {
|
||||
gap = typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? (categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) - 0 : categoryAxis.getGap() - barCategoryGap;
|
||||
if (typeof barGap === 'string' && barGap.match(/%$/)) {
|
||||
barGap = parseFloat(barGap) / 100;
|
||||
barWidth = +((gap - sBarWidthTotal) / ((locationMap.length - 1) * barGap + locationMap.length - sBarWidthCounter)).toFixed(2);
|
||||
barGap = barWidth * barGap;
|
||||
} else {
|
||||
barGap = parseFloat(barGap);
|
||||
barWidth = +((gap - sBarWidthTotal - barGap * (locationMap.length - 1)) / (locationMap.length - sBarWidthCounter)).toFixed(2);
|
||||
}
|
||||
if (barWidth <= 0) {
|
||||
return this._mapSize(categoryAxis, locationMap, true);
|
||||
}
|
||||
} else {
|
||||
gap = categoryAxis.getGap();
|
||||
barGap = 0;
|
||||
barWidth = +(gap / locationMap.length).toFixed(2);
|
||||
if (barWidth <= 0) {
|
||||
interval = Math.floor(locationMap.length / gap);
|
||||
barWidth = 1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
gap = sBarWidthCounter > 1 ? typeof barCategoryGap === 'string' && barCategoryGap.match(/%$/) ? +(categoryAxis.getGap() * (100 - parseFloat(barCategoryGap)) / 100).toFixed(2) : categoryAxis.getGap() - barCategoryGap : sBarWidthTotal;
|
||||
barWidth = 0;
|
||||
barGap = sBarWidthCounter > 1 ? +((gap - sBarWidthTotal) / (sBarWidthCounter - 1)).toFixed(2) : 0;
|
||||
if (barGap < 0) {
|
||||
return this._mapSize(categoryAxis, locationMap, true);
|
||||
}
|
||||
}
|
||||
return this._recheckBarMaxWidth(locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval);
|
||||
},
|
||||
_findSpecialBarSzie: function (locationMap, ignoreUserDefined) {
|
||||
var series = this.series;
|
||||
var barWidthMap = {};
|
||||
var barMaxWidthMap = {};
|
||||
var barMinHeightMap = {};
|
||||
var sBarWidth;
|
||||
var sBarMaxWidth;
|
||||
var sBarWidthCounter = 0;
|
||||
var sBarWidthTotal = 0;
|
||||
var barGap;
|
||||
var barCategoryGap;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
var hasFound = {
|
||||
barWidth: false,
|
||||
barMaxWidth: false
|
||||
};
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
var seriesIndex = locationMap[j][m];
|
||||
var queryTarget = series[seriesIndex];
|
||||
if (!ignoreUserDefined) {
|
||||
if (!hasFound.barWidth) {
|
||||
sBarWidth = this.query(queryTarget, 'barWidth');
|
||||
if (sBarWidth != null) {
|
||||
barWidthMap[seriesIndex] = sBarWidth;
|
||||
sBarWidthTotal += sBarWidth;
|
||||
sBarWidthCounter++;
|
||||
hasFound.barWidth = true;
|
||||
for (var ii = 0, ll = m; ii < ll; ii++) {
|
||||
var pSeriesIndex = locationMap[j][ii];
|
||||
barWidthMap[pSeriesIndex] = sBarWidth;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
barWidthMap[seriesIndex] = sBarWidth;
|
||||
}
|
||||
if (!hasFound.barMaxWidth) {
|
||||
sBarMaxWidth = this.query(queryTarget, 'barMaxWidth');
|
||||
if (sBarMaxWidth != null) {
|
||||
barMaxWidthMap[seriesIndex] = sBarMaxWidth;
|
||||
hasFound.barMaxWidth = true;
|
||||
for (var ii = 0, ll = m; ii < ll; ii++) {
|
||||
var pSeriesIndex = locationMap[j][ii];
|
||||
barMaxWidthMap[pSeriesIndex] = sBarMaxWidth;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
barMaxWidthMap[seriesIndex] = sBarMaxWidth;
|
||||
}
|
||||
}
|
||||
barMinHeightMap[seriesIndex] = this.query(queryTarget, 'barMinHeight');
|
||||
barGap = barGap != null ? barGap : this.query(queryTarget, 'barGap');
|
||||
barCategoryGap = barCategoryGap != null ? barCategoryGap : this.query(queryTarget, 'barCategoryGap');
|
||||
}
|
||||
}
|
||||
return {
|
||||
barWidthMap: barWidthMap,
|
||||
barMaxWidthMap: barMaxWidthMap,
|
||||
barMinHeightMap: barMinHeightMap,
|
||||
sBarWidth: sBarWidth,
|
||||
sBarMaxWidth: sBarMaxWidth,
|
||||
sBarWidthCounter: sBarWidthCounter,
|
||||
sBarWidthTotal: sBarWidthTotal,
|
||||
barGap: barGap,
|
||||
barCategoryGap: barCategoryGap
|
||||
};
|
||||
},
|
||||
_recheckBarMaxWidth: function (locationMap, barWidthMap, barMaxWidthMap, barMinHeightMap, gap, barWidth, barGap, interval) {
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
var seriesIndex = locationMap[j][0];
|
||||
if (barMaxWidthMap[seriesIndex] && barMaxWidthMap[seriesIndex] < barWidth) {
|
||||
gap -= barWidth - barMaxWidthMap[seriesIndex];
|
||||
}
|
||||
}
|
||||
return {
|
||||
barWidthMap: barWidthMap,
|
||||
barMaxWidthMap: barMaxWidthMap,
|
||||
barMinHeightMap: barMinHeightMap,
|
||||
gap: gap,
|
||||
barWidth: barWidth,
|
||||
barGap: barGap,
|
||||
interval: interval
|
||||
};
|
||||
},
|
||||
_getBarItem: function (seriesIndex, dataIndex, name, x, y, width, height, orient) {
|
||||
var series = this.series;
|
||||
var barShape;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var defaultColor = this._sIndex2ColorMap[seriesIndex];
|
||||
var queryTarget = [
|
||||
data,
|
||||
serie
|
||||
];
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal');
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis');
|
||||
var normalBorderWidth = normal.barBorderWidth;
|
||||
barShape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
clickable: this.deepQuery(queryTarget, 'clickable'),
|
||||
style: {
|
||||
x: x,
|
||||
y: y,
|
||||
width: width,
|
||||
height: height,
|
||||
brushType: 'both',
|
||||
color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color') || defaultColor, seriesIndex, dataIndex, data),
|
||||
radius: normal.barBorderRadius,
|
||||
lineWidth: normalBorderWidth,
|
||||
strokeColor: normal.barBorderColor
|
||||
},
|
||||
highlightStyle: {
|
||||
color: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data),
|
||||
radius: emphasis.barBorderRadius,
|
||||
lineWidth: emphasis.barBorderWidth,
|
||||
strokeColor: emphasis.barBorderColor
|
||||
},
|
||||
_orient: orient
|
||||
};
|
||||
var barShapeStyle = barShape.style;
|
||||
barShape.highlightStyle.color = barShape.highlightStyle.color || (typeof barShapeStyle.color === 'string' ? zrColor.lift(barShapeStyle.color, -0.3) : barShapeStyle.color);
|
||||
barShapeStyle.x = Math.floor(barShapeStyle.x);
|
||||
barShapeStyle.y = Math.floor(barShapeStyle.y);
|
||||
barShapeStyle.height = Math.ceil(barShapeStyle.height);
|
||||
barShapeStyle.width = Math.ceil(barShapeStyle.width);
|
||||
if (normalBorderWidth > 0 && barShapeStyle.height > normalBorderWidth && barShapeStyle.width > normalBorderWidth) {
|
||||
barShapeStyle.y += normalBorderWidth / 2;
|
||||
barShapeStyle.height -= normalBorderWidth;
|
||||
barShapeStyle.x += normalBorderWidth / 2;
|
||||
barShapeStyle.width -= normalBorderWidth;
|
||||
} else {
|
||||
barShapeStyle.brushType = 'fill';
|
||||
}
|
||||
barShape.highlightStyle.textColor = barShape.highlightStyle.color;
|
||||
barShape = this.addLabel(barShape, serie, data, name, orient);
|
||||
var barShapeStyleList = [
|
||||
barShapeStyle,
|
||||
barShape.highlightStyle
|
||||
];
|
||||
for (var i = 0, l = barShapeStyleList.length; i < l; i++) {
|
||||
var textPosition = barShapeStyleList[i].textPosition;
|
||||
if (textPosition === 'insideLeft' || textPosition === 'insideRight' || textPosition === 'insideTop' || textPosition === 'insideBottom') {
|
||||
var gap = 5;
|
||||
switch (textPosition) {
|
||||
case 'insideLeft':
|
||||
barShapeStyleList[i].textX = barShapeStyle.x + gap;
|
||||
barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2;
|
||||
barShapeStyleList[i].textAlign = 'left';
|
||||
barShapeStyleList[i].textBaseline = 'middle';
|
||||
break;
|
||||
case 'insideRight':
|
||||
barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width - gap;
|
||||
barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height / 2;
|
||||
barShapeStyleList[i].textAlign = 'right';
|
||||
barShapeStyleList[i].textBaseline = 'middle';
|
||||
break;
|
||||
case 'insideTop':
|
||||
barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2;
|
||||
barShapeStyleList[i].textY = barShapeStyle.y + gap / 2;
|
||||
barShapeStyleList[i].textAlign = 'center';
|
||||
barShapeStyleList[i].textBaseline = 'top';
|
||||
break;
|
||||
case 'insideBottom':
|
||||
barShapeStyleList[i].textX = barShapeStyle.x + barShapeStyle.width / 2;
|
||||
barShapeStyleList[i].textY = barShapeStyle.y + barShapeStyle.height - gap / 2;
|
||||
barShapeStyleList[i].textAlign = 'center';
|
||||
barShapeStyleList[i].textBaseline = 'bottom';
|
||||
break;
|
||||
}
|
||||
barShapeStyleList[i].textPosition = 'specific';
|
||||
barShapeStyleList[i].textColor = barShapeStyleList[i].textColor || '#fff';
|
||||
}
|
||||
}
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
this.setCalculable(barShape);
|
||||
barShape.draggable = true;
|
||||
}
|
||||
ecData.pack(barShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, name);
|
||||
return barShape;
|
||||
},
|
||||
getMarkCoord: function (seriesIndex, mpData) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var xMarkMap = this.xMarkMap[seriesIndex];
|
||||
var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex);
|
||||
var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex);
|
||||
var dataIndex;
|
||||
var pos;
|
||||
if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) {
|
||||
var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : '';
|
||||
pos = [
|
||||
xMarkMap[mpData.type + 'X' + valueIndex],
|
||||
xMarkMap[mpData.type + 'Y' + valueIndex],
|
||||
xMarkMap[mpData.type + 'Line' + valueIndex],
|
||||
xMarkMap[mpData.type + valueIndex]
|
||||
];
|
||||
} else if (xMarkMap.isHorizontal) {
|
||||
dataIndex = typeof mpData.xAxis === 'string' && xAxis.getIndexByName ? xAxis.getIndexByName(mpData.xAxis) : mpData.xAxis || 0;
|
||||
var x = xMarkMap[dataIndex];
|
||||
x = x != null ? x : typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0);
|
||||
pos = [
|
||||
x,
|
||||
yAxis.getCoord(mpData.yAxis || 0)
|
||||
];
|
||||
} else {
|
||||
dataIndex = typeof mpData.yAxis === 'string' && yAxis.getIndexByName ? yAxis.getIndexByName(mpData.yAxis) : mpData.yAxis || 0;
|
||||
var y = xMarkMap[dataIndex];
|
||||
y = y != null ? y : typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0);
|
||||
pos = [
|
||||
xAxis.getCoord(mpData.xAxis || 0),
|
||||
y
|
||||
];
|
||||
}
|
||||
return pos;
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
},
|
||||
addDataAnimation: function (params, done) {
|
||||
var series = this.series;
|
||||
var aniMap = {};
|
||||
for (var i = 0, l = params.length; i < l; i++) {
|
||||
aniMap[params[i][0]] = params[i];
|
||||
}
|
||||
var x;
|
||||
var dx;
|
||||
var y;
|
||||
var dy;
|
||||
var serie;
|
||||
var seriesIndex;
|
||||
var dataIndex;
|
||||
var aniCount = 0;
|
||||
function animationDone() {
|
||||
aniCount--;
|
||||
if (aniCount === 0) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
for (var i = this.shapeList.length - 1; i >= 0; i--) {
|
||||
seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex');
|
||||
if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) {
|
||||
if (this.shapeList[i].type === 'rectangle') {
|
||||
dataIndex = ecData.get(this.shapeList[i], 'dataIndex');
|
||||
serie = series[seriesIndex];
|
||||
if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) {
|
||||
this.zr.delShape(this.shapeList[i].id);
|
||||
continue;
|
||||
} else if (!aniMap[seriesIndex][2] && dataIndex === 0) {
|
||||
this.zr.delShape(this.shapeList[i].id);
|
||||
continue;
|
||||
}
|
||||
if (this.shapeList[i]._orient === 'horizontal') {
|
||||
dy = this.component.yAxis.getAxis(serie.yAxisIndex || 0).getGap();
|
||||
y = aniMap[seriesIndex][2] ? -dy : dy;
|
||||
x = 0;
|
||||
} else {
|
||||
dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap();
|
||||
x = aniMap[seriesIndex][2] ? dx : -dx;
|
||||
y = 0;
|
||||
}
|
||||
this.shapeList[i].position = [
|
||||
0,
|
||||
0
|
||||
];
|
||||
aniCount++;
|
||||
this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), {
|
||||
position: [
|
||||
x,
|
||||
y
|
||||
]
|
||||
}).done(animationDone).start();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!aniCount) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Bar, ChartBase);
|
||||
require('../chart').define('bar', Bar);
|
||||
return Bar;
|
||||
});
|
||||
@ -0,0 +1,399 @@
|
||||
define('echarts/chart/eventRiver', [
|
||||
'require',
|
||||
'./base',
|
||||
'../layout/eventRiver',
|
||||
'zrender/shape/Polygon',
|
||||
'../component/axis',
|
||||
'../component/grid',
|
||||
'../component/dataZoom',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'../util/date',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var eventRiverLayout = require('../layout/eventRiver');
|
||||
var PolygonShape = require('zrender/shape/Polygon');
|
||||
require('../component/axis');
|
||||
require('../component/grid');
|
||||
require('../component/dataZoom');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.eventRiver = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 1,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside',
|
||||
formatter: '{b}'
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 1,
|
||||
label: { show: true }
|
||||
}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var ecDate = require('../util/date');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
function EventRiver(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
var self = this;
|
||||
self._ondragend = function () {
|
||||
self.isDragend = true;
|
||||
};
|
||||
this.refresh(option);
|
||||
}
|
||||
EventRiver.prototype = {
|
||||
type: ecConfig.CHART_TYPE_EVENTRIVER,
|
||||
_buildShape: function () {
|
||||
var series = this.series;
|
||||
this.selectedMap = {};
|
||||
this._dataPreprocessing();
|
||||
var legend = this.component.legend;
|
||||
var eventRiverSeries = [];
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
if (series[i].type === this.type) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink;
|
||||
var serieName = series[i].name || '';
|
||||
this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true;
|
||||
if (!this.selectedMap[serieName]) {
|
||||
continue;
|
||||
}
|
||||
this.buildMark(i);
|
||||
eventRiverSeries.push(this.series[i]);
|
||||
}
|
||||
}
|
||||
eventRiverLayout(eventRiverSeries, this._intervalX, this.component.grid.getArea());
|
||||
this._drawEventRiver();
|
||||
this.addShapeList();
|
||||
},
|
||||
_dataPreprocessing: function () {
|
||||
var series = this.series;
|
||||
var xAxis;
|
||||
var evolutionList;
|
||||
for (var i = 0, iLen = series.length; i < iLen; i++) {
|
||||
if (series[i].type === this.type) {
|
||||
xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex || 0);
|
||||
for (var j = 0, jLen = series[i].data.length; j < jLen; j++) {
|
||||
evolutionList = series[i].data[j].evolution;
|
||||
for (var k = 0, kLen = evolutionList.length; k < kLen; k++) {
|
||||
evolutionList[k].timeScale = xAxis.getCoord(ecDate.getNewDate(evolutionList[k].time) - 0);
|
||||
evolutionList[k].valueScale = Math.pow(evolutionList[k].value, 0.8);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this._intervalX = Math.round(this.component.grid.getWidth() / 40);
|
||||
},
|
||||
_drawEventRiver: function () {
|
||||
var series = this.series;
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
var serieName = series[i].name || '';
|
||||
if (series[i].type === this.type && this.selectedMap[serieName]) {
|
||||
for (var j = 0; j < series[i].data.length; j++) {
|
||||
this._drawEventBubble(series[i].data[j], i, j);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_drawEventBubble: function (oneEvent, seriesIndex, dataIndex) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var serieName = serie.name || '';
|
||||
var data = serie.data[dataIndex];
|
||||
var queryTarget = [
|
||||
data,
|
||||
serie
|
||||
];
|
||||
var legend = this.component.legend;
|
||||
var defaultColor = legend ? legend.getColor(serieName) : this.zr.getColor(seriesIndex);
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {};
|
||||
var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor;
|
||||
var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor);
|
||||
var pts = this._calculateControlPoints(oneEvent);
|
||||
var eventBubbleShape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
clickable: this.deepQuery(queryTarget, 'clickable'),
|
||||
style: {
|
||||
pointList: pts,
|
||||
smooth: 'spline',
|
||||
brushType: 'both',
|
||||
lineJoin: 'round',
|
||||
color: normalColor,
|
||||
lineWidth: normal.borderWidth,
|
||||
strokeColor: normal.borderColor
|
||||
},
|
||||
highlightStyle: {
|
||||
color: emphasisColor,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor
|
||||
},
|
||||
draggable: 'vertical',
|
||||
ondragend: this._ondragend
|
||||
};
|
||||
eventBubbleShape = new PolygonShape(eventBubbleShape);
|
||||
this.addLabel(eventBubbleShape, serie, data, oneEvent.name);
|
||||
ecData.pack(eventBubbleShape, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name);
|
||||
this.shapeList.push(eventBubbleShape);
|
||||
},
|
||||
_calculateControlPoints: function (oneEvent) {
|
||||
var intervalX = this._intervalX;
|
||||
var posY = oneEvent.y;
|
||||
var evolution = oneEvent.evolution;
|
||||
var n = evolution.length;
|
||||
if (n < 1) {
|
||||
return;
|
||||
}
|
||||
var time = [];
|
||||
var value = [];
|
||||
for (var i = 0; i < n; i++) {
|
||||
time.push(evolution[i].timeScale);
|
||||
value.push(evolution[i].valueScale);
|
||||
}
|
||||
var pts = [];
|
||||
pts.push([
|
||||
time[0],
|
||||
posY
|
||||
]);
|
||||
var i = 0;
|
||||
for (i = 0; i < n - 1; i++) {
|
||||
pts.push([
|
||||
(time[i] + time[i + 1]) / 2,
|
||||
value[i] / -2 + posY
|
||||
]);
|
||||
}
|
||||
pts.push([
|
||||
(time[i] + (time[i] + intervalX)) / 2,
|
||||
value[i] / -2 + posY
|
||||
]);
|
||||
pts.push([
|
||||
time[i] + intervalX,
|
||||
posY
|
||||
]);
|
||||
pts.push([
|
||||
(time[i] + (time[i] + intervalX)) / 2,
|
||||
value[i] / 2 + posY
|
||||
]);
|
||||
for (i = n - 1; i > 0; i--) {
|
||||
pts.push([
|
||||
(time[i] + time[i - 1]) / 2,
|
||||
value[i - 1] / 2 + posY
|
||||
]);
|
||||
}
|
||||
return pts;
|
||||
},
|
||||
ondragend: function (param, status) {
|
||||
if (!this.isDragend || !param.target) {
|
||||
return;
|
||||
}
|
||||
status.dragOut = true;
|
||||
status.dragIn = true;
|
||||
status.needRefresh = false;
|
||||
this.isDragend = false;
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(EventRiver, ChartBase);
|
||||
require('../chart').define('eventRiver', EventRiver);
|
||||
return EventRiver;
|
||||
});define('echarts/layout/eventRiver', ['require'], function (require) {
|
||||
function eventRiverLayout(series, intervalX, area) {
|
||||
var space = 4;
|
||||
var scale = intervalX;
|
||||
function importanceSort(a, b) {
|
||||
var x = a.importance;
|
||||
var y = b.importance;
|
||||
return x > y ? -1 : x < y ? 1 : 0;
|
||||
}
|
||||
function indexOf(array, value) {
|
||||
if (array.indexOf) {
|
||||
return array.indexOf(value);
|
||||
}
|
||||
for (var i = 0, len = array.length; i < len; i++) {
|
||||
if (array[i] === value) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
for (var j = 0; j < series[i].data.length; j++) {
|
||||
if (series[i].data[j].weight == null) {
|
||||
series[i].data[j].weight = 1;
|
||||
}
|
||||
var importance = 0;
|
||||
for (var k = 0; k < series[i].data[j].evolution.length; k++) {
|
||||
importance += series[i].data[j].evolution[k].valueScale;
|
||||
}
|
||||
series[i].data[j].importance = importance * series[i].data[j].weight;
|
||||
}
|
||||
series[i].data.sort(importanceSort);
|
||||
}
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
if (series[i].weight == null) {
|
||||
series[i].weight = 1;
|
||||
}
|
||||
var importance = 0;
|
||||
for (var j = 0; j < series[i].data.length; j++) {
|
||||
importance += series[i].data[j].weight;
|
||||
}
|
||||
series[i].importance = importance * series[i].weight;
|
||||
}
|
||||
series.sort(importanceSort);
|
||||
var minTime = Number.MAX_VALUE;
|
||||
var maxTime = 0;
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
for (var j = 0; j < series[i].data.length; j++) {
|
||||
for (var k = 0; k < series[i].data[j].evolution.length; k++) {
|
||||
var time = series[i].data[j].evolution[k].timeScale;
|
||||
minTime = Math.min(minTime, time);
|
||||
maxTime = Math.max(maxTime, time);
|
||||
}
|
||||
}
|
||||
}
|
||||
minTime = ~~minTime;
|
||||
maxTime = ~~maxTime;
|
||||
var flagForOffset = function () {
|
||||
var length = maxTime - minTime + 1 + ~~intervalX;
|
||||
if (length <= 0) {
|
||||
return [0];
|
||||
}
|
||||
var result = [];
|
||||
while (length--) {
|
||||
result.push(0);
|
||||
}
|
||||
return result;
|
||||
}();
|
||||
var flagForPos = flagForOffset.slice(0);
|
||||
var bubbleData = [];
|
||||
var totalMaxy = 0;
|
||||
var totalOffset = 0;
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
for (var j = 0; j < series[i].data.length; j++) {
|
||||
var e = series[i].data[j];
|
||||
e.time = [];
|
||||
e.value = [];
|
||||
var tmp;
|
||||
var maxy = 0;
|
||||
for (var k = 0; k < series[i].data[j].evolution.length; k++) {
|
||||
tmp = series[i].data[j].evolution[k];
|
||||
e.time.push(tmp.timeScale);
|
||||
e.value.push(tmp.valueScale);
|
||||
maxy = Math.max(maxy, tmp.valueScale);
|
||||
}
|
||||
bubbleBound(e, intervalX, minTime);
|
||||
e.y = findLocation(flagForPos, e, function (e, index) {
|
||||
return e.ypx[index];
|
||||
});
|
||||
e._offset = findLocation(flagForOffset, e, function () {
|
||||
return space;
|
||||
});
|
||||
totalMaxy = Math.max(totalMaxy, e.y + maxy);
|
||||
totalOffset = Math.max(totalOffset, e._offset);
|
||||
bubbleData.push(e);
|
||||
}
|
||||
}
|
||||
scaleY(bubbleData, area, totalMaxy, totalOffset);
|
||||
}
|
||||
function scaleY(bubbleData, area, maxY, offset) {
|
||||
var height = area.height;
|
||||
var offsetScale = offset / height > 0.5 ? 0.5 : 1;
|
||||
var yBase = area.y;
|
||||
var yScale = (area.height - offset) / maxY;
|
||||
for (var i = 0, length = bubbleData.length; i < length; i++) {
|
||||
var e = bubbleData[i];
|
||||
e.y = yBase + yScale * e.y + e._offset * offsetScale;
|
||||
delete e.time;
|
||||
delete e.value;
|
||||
delete e.xpx;
|
||||
delete e.ypx;
|
||||
delete e._offset;
|
||||
var evolutionList = e.evolution;
|
||||
for (var k = 0, klen = evolutionList.length; k < klen; k++) {
|
||||
evolutionList[k].valueScale *= yScale;
|
||||
}
|
||||
}
|
||||
}
|
||||
function line(x0, y0, x1, y1) {
|
||||
if (x0 === x1) {
|
||||
throw new Error('x0 is equal with x1!!!');
|
||||
}
|
||||
if (y0 === y1) {
|
||||
return function () {
|
||||
return y0;
|
||||
};
|
||||
}
|
||||
var k = (y0 - y1) / (x0 - x1);
|
||||
var b = (y1 * x0 - y0 * x1) / (x0 - x1);
|
||||
return function (x) {
|
||||
return k * x + b;
|
||||
};
|
||||
}
|
||||
function bubbleBound(e, intervalX, minX) {
|
||||
var space = ~~intervalX;
|
||||
var length = e.time.length;
|
||||
e.xpx = [];
|
||||
e.ypx = [];
|
||||
var i = 0;
|
||||
var x0 = 0;
|
||||
var x1 = 0;
|
||||
var y0 = 0;
|
||||
var y1 = 0;
|
||||
var newline;
|
||||
for (; i < length; i++) {
|
||||
x0 = ~~e.time[i];
|
||||
y0 = e.value[i] / 2;
|
||||
if (i === length - 1) {
|
||||
x1 = x0 + space;
|
||||
y1 = 0;
|
||||
} else {
|
||||
x1 = ~~e.time[i + 1];
|
||||
y1 = e.value[i + 1] / 2;
|
||||
}
|
||||
newline = line(x0, y0, x1, y1);
|
||||
for (var x = x0; x < x1; x++) {
|
||||
e.xpx.push(x - minX);
|
||||
e.ypx.push(newline(x));
|
||||
}
|
||||
}
|
||||
e.xpx.push(x1 - minX);
|
||||
e.ypx.push(y1);
|
||||
}
|
||||
function findLocation(flags, e, yvalue) {
|
||||
var pos = 0;
|
||||
var length = e.xpx.length;
|
||||
var i = 0;
|
||||
var y;
|
||||
for (; i < length; i++) {
|
||||
y = yvalue(e, i);
|
||||
pos = Math.max(pos, y + flags[e.xpx[i]]);
|
||||
}
|
||||
for (i = 0; i < length; i++) {
|
||||
y = yvalue(e, i);
|
||||
flags[e.xpx[i]] = pos + y;
|
||||
}
|
||||
return pos;
|
||||
}
|
||||
return eventRiverLayout;
|
||||
});
|
||||
@ -0,0 +1,553 @@
|
||||
define('echarts/chart/funnel', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Text',
|
||||
'zrender/shape/Line',
|
||||
'zrender/shape/Polygon',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'../util/number',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'zrender/tool/area',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var TextShape = require('zrender/shape/Text');
|
||||
var LineShape = require('zrender/shape/Line');
|
||||
var PolygonShape = require('zrender/shape/Polygon');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.funnel = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
x: 80,
|
||||
y: 60,
|
||||
x2: 80,
|
||||
y2: 60,
|
||||
min: 0,
|
||||
max: 100,
|
||||
minSize: '0%',
|
||||
maxSize: '100%',
|
||||
sort: 'descending',
|
||||
gap: 0,
|
||||
funnelAlign: 'center',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderColor: '#fff',
|
||||
borderWidth: 1,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'outer'
|
||||
},
|
||||
labelLine: {
|
||||
show: true,
|
||||
length: 10,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 1,
|
||||
label: { show: true },
|
||||
labelLine: { show: true }
|
||||
}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var number = require('../util/number');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
var zrArea = require('zrender/tool/area');
|
||||
function Funnel(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Funnel.prototype = {
|
||||
type: ecConfig.CHART_TYPE_FUNNEL,
|
||||
_buildShape: function () {
|
||||
var series = this.series;
|
||||
var legend = this.component.legend;
|
||||
this._paramsMap = {};
|
||||
this._selected = {};
|
||||
this.selectedMap = {};
|
||||
var serieName;
|
||||
for (var i = 0, l = series.length; i < l; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_FUNNEL) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink;
|
||||
serieName = series[i].name || '';
|
||||
this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true;
|
||||
if (!this.selectedMap[serieName]) {
|
||||
continue;
|
||||
}
|
||||
this._buildSingleFunnel(i);
|
||||
this.buildMark(i);
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildSingleFunnel: function (seriesIndex) {
|
||||
var legend = this.component.legend;
|
||||
var serie = this.series[seriesIndex];
|
||||
var data = this._mapData(seriesIndex);
|
||||
var location = this._getLocation(seriesIndex);
|
||||
this._paramsMap[seriesIndex] = {
|
||||
location: location,
|
||||
data: data
|
||||
};
|
||||
var itemName;
|
||||
var total = 0;
|
||||
var selectedData = [];
|
||||
for (var i = 0, l = data.length; i < l; i++) {
|
||||
itemName = data[i].name;
|
||||
this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true;
|
||||
if (this.selectedMap[itemName] && !isNaN(data[i].value)) {
|
||||
selectedData.push(data[i]);
|
||||
total++;
|
||||
}
|
||||
}
|
||||
if (total === 0) {
|
||||
return;
|
||||
}
|
||||
var funnelCase = this._buildFunnelCase(seriesIndex);
|
||||
var align = serie.funnelAlign;
|
||||
var gap = serie.gap;
|
||||
var height = total > 1 ? (location.height - (total - 1) * gap) / total : location.height;
|
||||
var width;
|
||||
var lastY = location.y;
|
||||
var lastWidth = serie.sort === 'descending' ? this._getItemWidth(seriesIndex, selectedData[0].value) : number.parsePercent(serie.minSize, location.width);
|
||||
var next = serie.sort === 'descending' ? 1 : 0;
|
||||
var centerX = location.centerX;
|
||||
var pointList = [];
|
||||
var x;
|
||||
var polygon;
|
||||
var lastPolygon;
|
||||
for (var i = 0, l = selectedData.length; i < l; i++) {
|
||||
itemName = selectedData[i].name;
|
||||
if (this.selectedMap[itemName] && !isNaN(selectedData[i].value)) {
|
||||
width = i <= l - 2 ? this._getItemWidth(seriesIndex, selectedData[i + next].value) : serie.sort === 'descending' ? number.parsePercent(serie.minSize, location.width) : number.parsePercent(serie.maxSize, location.width);
|
||||
switch (align) {
|
||||
case 'left':
|
||||
x = location.x;
|
||||
break;
|
||||
case 'right':
|
||||
x = location.x + location.width - lastWidth;
|
||||
break;
|
||||
default:
|
||||
x = centerX - lastWidth / 2;
|
||||
}
|
||||
polygon = this._buildItem(seriesIndex, selectedData[i]._index, legend ? legend.getColor(itemName) : this.zr.getColor(selectedData[i]._index), x, lastY, lastWidth, width, height, align);
|
||||
lastY += height + gap;
|
||||
lastPolygon = polygon.style.pointList;
|
||||
pointList.unshift([
|
||||
lastPolygon[0][0] - 10,
|
||||
lastPolygon[0][1]
|
||||
]);
|
||||
pointList.push([
|
||||
lastPolygon[1][0] + 10,
|
||||
lastPolygon[1][1]
|
||||
]);
|
||||
if (i === 0) {
|
||||
if (lastWidth === 0) {
|
||||
lastPolygon = pointList.pop();
|
||||
align == 'center' && (pointList[0][0] += 10);
|
||||
align == 'right' && (pointList[0][0] = lastPolygon[0]);
|
||||
pointList[0][1] -= align == 'center' ? 10 : 15;
|
||||
if (l == 1) {
|
||||
lastPolygon = polygon.style.pointList;
|
||||
}
|
||||
} else {
|
||||
pointList[pointList.length - 1][1] -= 5;
|
||||
pointList[0][1] -= 5;
|
||||
}
|
||||
}
|
||||
lastWidth = width;
|
||||
}
|
||||
}
|
||||
if (funnelCase) {
|
||||
pointList.unshift([
|
||||
lastPolygon[3][0] - 10,
|
||||
lastPolygon[3][1]
|
||||
]);
|
||||
pointList.push([
|
||||
lastPolygon[2][0] + 10,
|
||||
lastPolygon[2][1]
|
||||
]);
|
||||
if (lastWidth === 0) {
|
||||
lastPolygon = pointList.pop();
|
||||
align == 'center' && (pointList[0][0] += 10);
|
||||
align == 'right' && (pointList[0][0] = lastPolygon[0]);
|
||||
pointList[0][1] += align == 'center' ? 10 : 15;
|
||||
} else {
|
||||
pointList[pointList.length - 1][1] += 5;
|
||||
pointList[0][1] += 5;
|
||||
}
|
||||
funnelCase.style.pointList = pointList;
|
||||
}
|
||||
},
|
||||
_buildFunnelCase: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (this.deepQuery([
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
var location = this._paramsMap[seriesIndex].location;
|
||||
var gap = 10;
|
||||
var funnelCase = {
|
||||
hoverable: false,
|
||||
style: {
|
||||
pointListd: [
|
||||
[
|
||||
location.x - gap,
|
||||
location.y - gap
|
||||
],
|
||||
[
|
||||
location.x + location.width + gap,
|
||||
location.y - gap
|
||||
],
|
||||
[
|
||||
location.x + location.width + gap,
|
||||
location.y + location.height + gap
|
||||
],
|
||||
[
|
||||
location.x - gap,
|
||||
location.y + location.height + gap
|
||||
]
|
||||
],
|
||||
brushType: 'stroke',
|
||||
lineWidth: 1,
|
||||
strokeColor: serie.calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor
|
||||
}
|
||||
};
|
||||
ecData.pack(funnelCase, serie, seriesIndex, undefined, -1);
|
||||
this.setCalculable(funnelCase);
|
||||
funnelCase = new PolygonShape(funnelCase);
|
||||
this.shapeList.push(funnelCase);
|
||||
return funnelCase;
|
||||
}
|
||||
},
|
||||
_getLocation: function (seriesIndex) {
|
||||
var gridOption = this.series[seriesIndex];
|
||||
var zrWidth = this.zr.getWidth();
|
||||
var zrHeight = this.zr.getHeight();
|
||||
var x = this.parsePercent(gridOption.x, zrWidth);
|
||||
var y = this.parsePercent(gridOption.y, zrHeight);
|
||||
var width = gridOption.width == null ? zrWidth - x - this.parsePercent(gridOption.x2, zrWidth) : this.parsePercent(gridOption.width, zrWidth);
|
||||
return {
|
||||
x: x,
|
||||
y: y,
|
||||
width: width,
|
||||
height: gridOption.height == null ? zrHeight - y - this.parsePercent(gridOption.y2, zrHeight) : this.parsePercent(gridOption.height, zrHeight),
|
||||
centerX: x + width / 2
|
||||
};
|
||||
},
|
||||
_mapData: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var funnelData = zrUtil.clone(serie.data);
|
||||
for (var i = 0, l = funnelData.length; i < l; i++) {
|
||||
funnelData[i]._index = i;
|
||||
}
|
||||
function numDescending(a, b) {
|
||||
if (a.value === '-') {
|
||||
return 1;
|
||||
} else if (b.value === '-') {
|
||||
return -1;
|
||||
}
|
||||
return b.value - a.value;
|
||||
}
|
||||
function numAscending(a, b) {
|
||||
return -numDescending(a, b);
|
||||
}
|
||||
if (serie.sort != 'none') {
|
||||
funnelData.sort(serie.sort === 'descending' ? numDescending : numAscending);
|
||||
}
|
||||
return funnelData;
|
||||
},
|
||||
_buildItem: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var polygon = this.getPolygon(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align);
|
||||
ecData.pack(polygon, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name);
|
||||
this.shapeList.push(polygon);
|
||||
var label = this.getLabel(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align);
|
||||
ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name);
|
||||
this.shapeList.push(label);
|
||||
if (!this._needLabel(serie, data, false)) {
|
||||
label.invisible = true;
|
||||
}
|
||||
var labelLine = this.getLabelLine(seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align);
|
||||
this.shapeList.push(labelLine);
|
||||
if (!this._needLabelLine(serie, data, false)) {
|
||||
labelLine.invisible = true;
|
||||
}
|
||||
var polygonHoverConnect = [];
|
||||
var labelHoverConnect = [];
|
||||
if (this._needLabelLine(serie, data, true)) {
|
||||
polygonHoverConnect.push(labelLine.id);
|
||||
labelHoverConnect.push(labelLine.id);
|
||||
}
|
||||
if (this._needLabel(serie, data, true)) {
|
||||
polygonHoverConnect.push(label.id);
|
||||
labelHoverConnect.push(polygon.id);
|
||||
}
|
||||
polygon.hoverConnect = polygonHoverConnect;
|
||||
label.hoverConnect = labelHoverConnect;
|
||||
return polygon;
|
||||
},
|
||||
_getItemWidth: function (seriesIndex, value) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var location = this._paramsMap[seriesIndex].location;
|
||||
var min = serie.min;
|
||||
var max = serie.max;
|
||||
var minSize = number.parsePercent(serie.minSize, location.width);
|
||||
var maxSize = number.parsePercent(serie.maxSize, location.width);
|
||||
return (value - min) * (maxSize - minSize) / (max - min) + minSize;
|
||||
},
|
||||
getPolygon: function (seriesIndex, dataIndex, defaultColor, xLT, y, topWidth, bottomWidth, height, align) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var queryTarget = [
|
||||
data,
|
||||
serie
|
||||
];
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {};
|
||||
var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor;
|
||||
var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor);
|
||||
var xLB;
|
||||
switch (align) {
|
||||
case 'left':
|
||||
xLB = xLT;
|
||||
break;
|
||||
case 'right':
|
||||
xLB = xLT + (topWidth - bottomWidth);
|
||||
break;
|
||||
default:
|
||||
xLB = xLT + (topWidth - bottomWidth) / 2;
|
||||
break;
|
||||
}
|
||||
var polygon = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
clickable: this.deepQuery(queryTarget, 'clickable'),
|
||||
style: {
|
||||
pointList: [
|
||||
[
|
||||
xLT,
|
||||
y
|
||||
],
|
||||
[
|
||||
xLT + topWidth,
|
||||
y
|
||||
],
|
||||
[
|
||||
xLB + bottomWidth,
|
||||
y + height
|
||||
],
|
||||
[
|
||||
xLB,
|
||||
y + height
|
||||
]
|
||||
],
|
||||
brushType: 'both',
|
||||
color: normalColor,
|
||||
lineWidth: normal.borderWidth,
|
||||
strokeColor: normal.borderColor
|
||||
},
|
||||
highlightStyle: {
|
||||
color: emphasisColor,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor
|
||||
}
|
||||
};
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
this.setCalculable(polygon);
|
||||
polygon.draggable = true;
|
||||
}
|
||||
return new PolygonShape(polygon);
|
||||
},
|
||||
getLabel: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var location = this._paramsMap[seriesIndex].location;
|
||||
var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle);
|
||||
var status = 'normal';
|
||||
var labelControl = itemStyle[status].label;
|
||||
var textStyle = labelControl.textStyle || {};
|
||||
var lineLength = itemStyle[status].labelLine.length;
|
||||
var text = this.getLabelText(seriesIndex, dataIndex, status);
|
||||
var textFont = this.getFont(textStyle);
|
||||
var textAlign;
|
||||
var textColor = defaultColor;
|
||||
labelControl.position = labelControl.position || itemStyle.normal.label.position;
|
||||
if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') {
|
||||
textAlign = align;
|
||||
textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor);
|
||||
} else if (labelControl.position === 'left') {
|
||||
textAlign = 'right';
|
||||
} else {
|
||||
textAlign = 'left';
|
||||
}
|
||||
var textShape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
style: {
|
||||
x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align),
|
||||
y: y + height / 2,
|
||||
color: textStyle.color || textColor,
|
||||
text: text,
|
||||
textAlign: textStyle.align || textAlign,
|
||||
textBaseline: textStyle.baseline || 'middle',
|
||||
textFont: textFont
|
||||
}
|
||||
};
|
||||
status = 'emphasis';
|
||||
labelControl = itemStyle[status].label || labelControl;
|
||||
textStyle = labelControl.textStyle || textStyle;
|
||||
lineLength = itemStyle[status].labelLine.length || lineLength;
|
||||
labelControl.position = labelControl.position || itemStyle.normal.label.position;
|
||||
text = this.getLabelText(seriesIndex, dataIndex, status);
|
||||
textFont = this.getFont(textStyle);
|
||||
textColor = defaultColor;
|
||||
if (labelControl.position === 'inner' || labelControl.position === 'inside' || labelControl.position === 'center') {
|
||||
textAlign = align;
|
||||
textColor = Math.max(topWidth, bottomWidth) / 2 > zrArea.getTextWidth(text, textFont) ? '#fff' : zrColor.reverse(defaultColor);
|
||||
} else if (labelControl.position === 'left') {
|
||||
textAlign = 'right';
|
||||
} else {
|
||||
textAlign = 'left';
|
||||
}
|
||||
textShape.highlightStyle = {
|
||||
x: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align),
|
||||
color: textStyle.color || textColor,
|
||||
text: text,
|
||||
textAlign: textStyle.align || textAlign,
|
||||
textFont: textFont,
|
||||
brushType: 'fill'
|
||||
};
|
||||
return new TextShape(textShape);
|
||||
},
|
||||
getLabelText: function (seriesIndex, dataIndex, status) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var formatter = this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'itemStyle.' + status + '.label.formatter');
|
||||
if (formatter) {
|
||||
if (typeof formatter === 'function') {
|
||||
return formatter.call(this.myChart, {
|
||||
seriesIndex: seriesIndex,
|
||||
seriesName: serie.name || '',
|
||||
series: serie,
|
||||
dataIndex: dataIndex,
|
||||
data: data,
|
||||
name: data.name,
|
||||
value: data.value
|
||||
});
|
||||
} else if (typeof formatter === 'string') {
|
||||
formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value);
|
||||
return formatter;
|
||||
}
|
||||
} else {
|
||||
return data.name;
|
||||
}
|
||||
},
|
||||
getLabelLine: function (seriesIndex, dataIndex, defaultColor, x, y, topWidth, bottomWidth, height, align) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var location = this._paramsMap[seriesIndex].location;
|
||||
var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle);
|
||||
var status = 'normal';
|
||||
var labelLineControl = itemStyle[status].labelLine;
|
||||
var lineLength = itemStyle[status].labelLine.length;
|
||||
var lineStyle = labelLineControl.lineStyle || {};
|
||||
var labelControl = itemStyle[status].label;
|
||||
labelControl.position = labelControl.position || itemStyle.normal.label.position;
|
||||
var lineShape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
hoverable: false,
|
||||
style: {
|
||||
xStart: this._getLabelLineStartPoint(x, location, topWidth, bottomWidth, align),
|
||||
yStart: y + height / 2,
|
||||
xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align),
|
||||
yEnd: y + height / 2,
|
||||
strokeColor: lineStyle.color || defaultColor,
|
||||
lineType: lineStyle.type,
|
||||
lineWidth: lineStyle.width
|
||||
}
|
||||
};
|
||||
status = 'emphasis';
|
||||
labelLineControl = itemStyle[status].labelLine || labelLineControl;
|
||||
lineLength = itemStyle[status].labelLine.length || lineLength;
|
||||
lineStyle = labelLineControl.lineStyle || lineStyle;
|
||||
labelControl = itemStyle[status].label || labelControl;
|
||||
labelControl.position = labelControl.position;
|
||||
lineShape.highlightStyle = {
|
||||
xEnd: this._getLabelPoint(labelControl.position, x, location, topWidth, bottomWidth, lineLength, align),
|
||||
strokeColor: lineStyle.color || defaultColor,
|
||||
lineType: lineStyle.type,
|
||||
lineWidth: lineStyle.width
|
||||
};
|
||||
return new LineShape(lineShape);
|
||||
},
|
||||
_getLabelPoint: function (position, x, location, topWidth, bottomWidth, lineLength, align) {
|
||||
position = position === 'inner' || position === 'inside' ? 'center' : position;
|
||||
switch (position) {
|
||||
case 'center':
|
||||
return align == 'center' ? x + topWidth / 2 : align == 'left' ? x + 10 : x + topWidth - 10;
|
||||
case 'left':
|
||||
if (lineLength === 'auto') {
|
||||
return location.x - 10;
|
||||
} else {
|
||||
return align == 'center' ? location.centerX - Math.max(topWidth, bottomWidth) / 2 - lineLength : align == 'right' ? x - (topWidth < bottomWidth ? bottomWidth - topWidth : 0) - lineLength : location.x - lineLength;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (lineLength === 'auto') {
|
||||
return location.x + location.width + 10;
|
||||
} else {
|
||||
return align == 'center' ? location.centerX + Math.max(topWidth, bottomWidth) / 2 + lineLength : align == 'right' ? location.x + location.width + lineLength : x + Math.max(topWidth, bottomWidth) + lineLength;
|
||||
}
|
||||
}
|
||||
},
|
||||
_getLabelLineStartPoint: function (x, location, topWidth, bottomWidth, align) {
|
||||
return align == 'center' ? location.centerX : topWidth < bottomWidth ? x + Math.min(topWidth, bottomWidth) / 2 : x + Math.max(topWidth, bottomWidth) / 2;
|
||||
},
|
||||
_needLabel: function (serie, data, isEmphasis) {
|
||||
return this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show');
|
||||
},
|
||||
_needLabelLine: function (serie, data, isEmphasis) {
|
||||
return this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show');
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Funnel, ChartBase);
|
||||
require('../chart').define('funnel', Funnel);
|
||||
return Funnel;
|
||||
});
|
||||
@ -0,0 +1,577 @@
|
||||
define('echarts/chart/gauge', [
|
||||
'require',
|
||||
'./base',
|
||||
'../util/shape/GaugePointer',
|
||||
'zrender/shape/Text',
|
||||
'zrender/shape/Line',
|
||||
'zrender/shape/Rectangle',
|
||||
'zrender/shape/Circle',
|
||||
'zrender/shape/Sector',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'../util/accMath',
|
||||
'zrender/tool/util',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var GaugePointerShape = require('../util/shape/GaugePointer');
|
||||
var TextShape = require('zrender/shape/Text');
|
||||
var LineShape = require('zrender/shape/Line');
|
||||
var RectangleShape = require('zrender/shape/Rectangle');
|
||||
var CircleShape = require('zrender/shape/Circle');
|
||||
var SectorShape = require('zrender/shape/Sector');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.gauge = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
center: [
|
||||
'50%',
|
||||
'50%'
|
||||
],
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
radius: '75%',
|
||||
startAngle: 225,
|
||||
endAngle: -45,
|
||||
min: 0,
|
||||
max: 100,
|
||||
splitNumber: 10,
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: [
|
||||
[
|
||||
0.2,
|
||||
'#228b22'
|
||||
],
|
||||
[
|
||||
0.8,
|
||||
'#48b'
|
||||
],
|
||||
[
|
||||
1,
|
||||
'#ff4500'
|
||||
]
|
||||
],
|
||||
width: 30
|
||||
}
|
||||
},
|
||||
axisTick: {
|
||||
show: true,
|
||||
splitNumber: 5,
|
||||
length: 8,
|
||||
lineStyle: {
|
||||
color: '#eee',
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
textStyle: { color: 'auto' }
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
length: 30,
|
||||
lineStyle: {
|
||||
color: '#eee',
|
||||
width: 2,
|
||||
type: 'solid'
|
||||
}
|
||||
},
|
||||
pointer: {
|
||||
show: true,
|
||||
length: '80%',
|
||||
width: 8,
|
||||
color: 'auto'
|
||||
},
|
||||
title: {
|
||||
show: true,
|
||||
offsetCenter: [
|
||||
0,
|
||||
'-40%'
|
||||
],
|
||||
textStyle: {
|
||||
color: '#333',
|
||||
fontSize: 15
|
||||
}
|
||||
},
|
||||
detail: {
|
||||
show: true,
|
||||
backgroundColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 0,
|
||||
borderColor: '#ccc',
|
||||
width: 100,
|
||||
height: 40,
|
||||
offsetCenter: [
|
||||
0,
|
||||
'40%'
|
||||
],
|
||||
textStyle: {
|
||||
color: 'auto',
|
||||
fontSize: 30
|
||||
}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var accMath = require('../util/accMath');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function Gauge(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Gauge.prototype = {
|
||||
type: ecConfig.CHART_TYPE_GAUGE,
|
||||
_buildShape: function () {
|
||||
var series = this.series;
|
||||
this._paramsMap = {};
|
||||
this.selectedMap = {};
|
||||
for (var i = 0, l = series.length; i < l; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_GAUGE) {
|
||||
this.selectedMap[series[i].name] = true;
|
||||
series[i] = this.reformOption(series[i]);
|
||||
this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink;
|
||||
this._buildSingleGauge(i);
|
||||
this.buildMark(i);
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildSingleGauge: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
this._paramsMap[seriesIndex] = {
|
||||
center: this.parseCenter(this.zr, serie.center),
|
||||
radius: this.parseRadius(this.zr, serie.radius),
|
||||
startAngle: serie.startAngle.toFixed(2) - 0,
|
||||
endAngle: serie.endAngle.toFixed(2) - 0
|
||||
};
|
||||
this._paramsMap[seriesIndex].totalAngle = this._paramsMap[seriesIndex].startAngle - this._paramsMap[seriesIndex].endAngle;
|
||||
this._colorMap(seriesIndex);
|
||||
this._buildAxisLine(seriesIndex);
|
||||
this._buildSplitLine(seriesIndex);
|
||||
this._buildAxisTick(seriesIndex);
|
||||
this._buildAxisLabel(seriesIndex);
|
||||
this._buildPointer(seriesIndex);
|
||||
this._buildTitle(seriesIndex);
|
||||
this._buildDetail(seriesIndex);
|
||||
},
|
||||
_buildAxisLine: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.axisLine.show) {
|
||||
return;
|
||||
}
|
||||
var min = serie.min;
|
||||
var total = serie.max - min;
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var center = params.center;
|
||||
var startAngle = params.startAngle;
|
||||
var totalAngle = params.totalAngle;
|
||||
var colorArray = params.colorArray;
|
||||
var lineStyle = serie.axisLine.lineStyle;
|
||||
var lineWidth = this.parsePercent(lineStyle.width, params.radius[1]);
|
||||
var r = params.radius[1];
|
||||
var r0 = r - lineWidth;
|
||||
var sectorShape;
|
||||
var lastAngle = startAngle;
|
||||
var newAngle;
|
||||
for (var i = 0, l = colorArray.length; i < l; i++) {
|
||||
newAngle = startAngle - totalAngle * (colorArray[i][0] - min) / total;
|
||||
sectorShape = this._getSector(center, r0, r, newAngle, lastAngle, colorArray[i][1], lineStyle, serie.zlevel, serie.z);
|
||||
lastAngle = newAngle;
|
||||
sectorShape._animationAdd = 'r';
|
||||
ecData.set(sectorShape, 'seriesIndex', seriesIndex);
|
||||
ecData.set(sectorShape, 'dataIndex', i);
|
||||
this.shapeList.push(sectorShape);
|
||||
}
|
||||
},
|
||||
_buildSplitLine: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.splitLine.show) {
|
||||
return;
|
||||
}
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var splitNumber = serie.splitNumber;
|
||||
var min = serie.min;
|
||||
var total = serie.max - min;
|
||||
var splitLine = serie.splitLine;
|
||||
var length = this.parsePercent(splitLine.length, params.radius[1]);
|
||||
var lineStyle = splitLine.lineStyle;
|
||||
var color = lineStyle.color;
|
||||
var center = params.center;
|
||||
var startAngle = params.startAngle * Math.PI / 180;
|
||||
var totalAngle = params.totalAngle * Math.PI / 180;
|
||||
var r = params.radius[1];
|
||||
var r0 = r - length;
|
||||
var angle;
|
||||
var sinAngle;
|
||||
var cosAngle;
|
||||
for (var i = 0; i <= splitNumber; i++) {
|
||||
angle = startAngle - totalAngle / splitNumber * i;
|
||||
sinAngle = Math.sin(angle);
|
||||
cosAngle = Math.cos(angle);
|
||||
this.shapeList.push(new LineShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
hoverable: false,
|
||||
style: {
|
||||
xStart: center[0] + cosAngle * r,
|
||||
yStart: center[1] - sinAngle * r,
|
||||
xEnd: center[0] + cosAngle * r0,
|
||||
yEnd: center[1] - sinAngle * r0,
|
||||
strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / splitNumber * i) : color,
|
||||
lineType: lineStyle.type,
|
||||
lineWidth: lineStyle.width,
|
||||
shadowColor: lineStyle.shadowColor,
|
||||
shadowBlur: lineStyle.shadowBlur,
|
||||
shadowOffsetX: lineStyle.shadowOffsetX,
|
||||
shadowOffsetY: lineStyle.shadowOffsetY
|
||||
}
|
||||
}));
|
||||
}
|
||||
},
|
||||
_buildAxisTick: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.axisTick.show) {
|
||||
return;
|
||||
}
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var splitNumber = serie.splitNumber;
|
||||
var min = serie.min;
|
||||
var total = serie.max - min;
|
||||
var axisTick = serie.axisTick;
|
||||
var tickSplit = axisTick.splitNumber;
|
||||
var length = this.parsePercent(axisTick.length, params.radius[1]);
|
||||
var lineStyle = axisTick.lineStyle;
|
||||
var color = lineStyle.color;
|
||||
var center = params.center;
|
||||
var startAngle = params.startAngle * Math.PI / 180;
|
||||
var totalAngle = params.totalAngle * Math.PI / 180;
|
||||
var r = params.radius[1];
|
||||
var r0 = r - length;
|
||||
var angle;
|
||||
var sinAngle;
|
||||
var cosAngle;
|
||||
for (var i = 0, l = splitNumber * tickSplit; i <= l; i++) {
|
||||
if (i % tickSplit === 0) {
|
||||
continue;
|
||||
}
|
||||
angle = startAngle - totalAngle / l * i;
|
||||
sinAngle = Math.sin(angle);
|
||||
cosAngle = Math.cos(angle);
|
||||
this.shapeList.push(new LineShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
hoverable: false,
|
||||
style: {
|
||||
xStart: center[0] + cosAngle * r,
|
||||
yStart: center[1] - sinAngle * r,
|
||||
xEnd: center[0] + cosAngle * r0,
|
||||
yEnd: center[1] - sinAngle * r0,
|
||||
strokeColor: color === 'auto' ? this._getColor(seriesIndex, min + total / l * i) : color,
|
||||
lineType: lineStyle.type,
|
||||
lineWidth: lineStyle.width,
|
||||
shadowColor: lineStyle.shadowColor,
|
||||
shadowBlur: lineStyle.shadowBlur,
|
||||
shadowOffsetX: lineStyle.shadowOffsetX,
|
||||
shadowOffsetY: lineStyle.shadowOffsetY
|
||||
}
|
||||
}));
|
||||
}
|
||||
},
|
||||
_buildAxisLabel: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.axisLabel.show) {
|
||||
return;
|
||||
}
|
||||
var splitNumber = serie.splitNumber;
|
||||
var min = serie.min;
|
||||
var total = serie.max - min;
|
||||
var textStyle = serie.axisLabel.textStyle;
|
||||
var textFont = this.getFont(textStyle);
|
||||
var color = textStyle.color;
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var center = params.center;
|
||||
var startAngle = params.startAngle;
|
||||
var totalAngle = params.totalAngle;
|
||||
var r0 = params.radius[1] - this.parsePercent(serie.splitLine.length, params.radius[1]) - 5;
|
||||
var angle;
|
||||
var sinAngle;
|
||||
var cosAngle;
|
||||
var value;
|
||||
for (var i = 0; i <= splitNumber; i++) {
|
||||
value = accMath.accAdd(min, accMath.accMul(accMath.accDiv(total, splitNumber), i));
|
||||
angle = startAngle - totalAngle / splitNumber * i;
|
||||
sinAngle = Math.sin(angle * Math.PI / 180);
|
||||
cosAngle = Math.cos(angle * Math.PI / 180);
|
||||
angle = (angle + 360) % 360;
|
||||
this.shapeList.push(new TextShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: center[0] + cosAngle * r0,
|
||||
y: center[1] - sinAngle * r0,
|
||||
color: color === 'auto' ? this._getColor(seriesIndex, value) : color,
|
||||
text: this._getLabelText(serie.axisLabel.formatter, value),
|
||||
textAlign: angle >= 110 && angle <= 250 ? 'left' : angle <= 70 || angle >= 290 ? 'right' : 'center',
|
||||
textBaseline: angle >= 10 && angle <= 170 ? 'top' : angle >= 190 && angle <= 350 ? 'bottom' : 'middle',
|
||||
textFont: textFont,
|
||||
shadowColor: textStyle.shadowColor,
|
||||
shadowBlur: textStyle.shadowBlur,
|
||||
shadowOffsetX: textStyle.shadowOffsetX,
|
||||
shadowOffsetY: textStyle.shadowOffsetY
|
||||
}
|
||||
}));
|
||||
}
|
||||
},
|
||||
_buildPointer: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.pointer.show) {
|
||||
return;
|
||||
}
|
||||
var total = serie.max - serie.min;
|
||||
var pointer = serie.pointer;
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var length = this.parsePercent(pointer.length, params.radius[1]);
|
||||
var width = this.parsePercent(pointer.width, params.radius[1]);
|
||||
var center = params.center;
|
||||
var value = this._getValue(seriesIndex);
|
||||
value = value < serie.max ? value : serie.max;
|
||||
var angle = (params.startAngle - params.totalAngle / total * (value - serie.min)) * Math.PI / 180;
|
||||
var color = pointer.color === 'auto' ? this._getColor(seriesIndex, value) : pointer.color;
|
||||
var pointShape = new GaugePointerShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
clickable: this.query(serie, 'clickable'),
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r: length,
|
||||
startAngle: params.startAngle * Math.PI / 180,
|
||||
angle: angle,
|
||||
color: color,
|
||||
width: width,
|
||||
shadowColor: pointer.shadowColor,
|
||||
shadowBlur: pointer.shadowBlur,
|
||||
shadowOffsetX: pointer.shadowOffsetX,
|
||||
shadowOffsetY: pointer.shadowOffsetY
|
||||
},
|
||||
highlightStyle: {
|
||||
brushType: 'fill',
|
||||
width: width > 2 ? 2 : width / 2,
|
||||
color: '#fff'
|
||||
}
|
||||
});
|
||||
ecData.pack(pointShape, this.series[seriesIndex], seriesIndex, this.series[seriesIndex].data[0], 0, this.series[seriesIndex].data[0].name, value);
|
||||
this.shapeList.push(pointShape);
|
||||
this.shapeList.push(new CircleShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 2,
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r: pointer.width / 2.5,
|
||||
color: '#fff'
|
||||
}
|
||||
}));
|
||||
},
|
||||
_buildTitle: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.title.show) {
|
||||
return;
|
||||
}
|
||||
var data = serie.data[0];
|
||||
var name = data.name != null ? data.name : '';
|
||||
if (name !== '') {
|
||||
var title = serie.title;
|
||||
var offsetCenter = title.offsetCenter;
|
||||
var textStyle = title.textStyle;
|
||||
var textColor = textStyle.color;
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var x = params.center[0] + this.parsePercent(offsetCenter[0], params.radius[1]);
|
||||
var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]);
|
||||
this.shapeList.push(new TextShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + (Math.abs(x - params.center[0]) + Math.abs(y - params.center[1]) < textStyle.fontSize * 2 ? 2 : 1),
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: x,
|
||||
y: y,
|
||||
color: textColor === 'auto' ? this._getColor(seriesIndex) : textColor,
|
||||
text: name,
|
||||
textAlign: 'center',
|
||||
textFont: this.getFont(textStyle),
|
||||
shadowColor: textStyle.shadowColor,
|
||||
shadowBlur: textStyle.shadowBlur,
|
||||
shadowOffsetX: textStyle.shadowOffsetX,
|
||||
shadowOffsetY: textStyle.shadowOffsetY
|
||||
}
|
||||
}));
|
||||
}
|
||||
},
|
||||
_buildDetail: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
if (!serie.detail.show) {
|
||||
return;
|
||||
}
|
||||
var detail = serie.detail;
|
||||
var offsetCenter = detail.offsetCenter;
|
||||
var color = detail.backgroundColor;
|
||||
var textStyle = detail.textStyle;
|
||||
var textColor = textStyle.color;
|
||||
var params = this._paramsMap[seriesIndex];
|
||||
var value = this._getValue(seriesIndex);
|
||||
var x = params.center[0] - detail.width / 2 + this.parsePercent(offsetCenter[0], params.radius[1]);
|
||||
var y = params.center[1] + this.parsePercent(offsetCenter[1], params.radius[1]);
|
||||
this.shapeList.push(new RectangleShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + (Math.abs(x + detail.width / 2 - params.center[0]) + Math.abs(y + detail.height / 2 - params.center[1]) < textStyle.fontSize ? 2 : 1),
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: x,
|
||||
y: y,
|
||||
width: detail.width,
|
||||
height: detail.height,
|
||||
brushType: 'both',
|
||||
color: color === 'auto' ? this._getColor(seriesIndex, value) : color,
|
||||
lineWidth: detail.borderWidth,
|
||||
strokeColor: detail.borderColor,
|
||||
shadowColor: detail.shadowColor,
|
||||
shadowBlur: detail.shadowBlur,
|
||||
shadowOffsetX: detail.shadowOffsetX,
|
||||
shadowOffsetY: detail.shadowOffsetY,
|
||||
text: this._getLabelText(detail.formatter, value),
|
||||
textFont: this.getFont(textStyle),
|
||||
textPosition: 'inside',
|
||||
textColor: textColor === 'auto' ? this._getColor(seriesIndex, value) : textColor
|
||||
}
|
||||
}));
|
||||
},
|
||||
_getValue: function (seriesIndex) {
|
||||
return this.getDataFromOption(this.series[seriesIndex].data[0]);
|
||||
},
|
||||
_colorMap: function (seriesIndex) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var min = serie.min;
|
||||
var total = serie.max - min;
|
||||
var color = serie.axisLine.lineStyle.color;
|
||||
if (!(color instanceof Array)) {
|
||||
color = [[
|
||||
1,
|
||||
color
|
||||
]];
|
||||
}
|
||||
var colorArray = [];
|
||||
for (var i = 0, l = color.length; i < l; i++) {
|
||||
colorArray.push([
|
||||
color[i][0] * total + min,
|
||||
color[i][1]
|
||||
]);
|
||||
}
|
||||
this._paramsMap[seriesIndex].colorArray = colorArray;
|
||||
},
|
||||
_getColor: function (seriesIndex, value) {
|
||||
if (value == null) {
|
||||
value = this._getValue(seriesIndex);
|
||||
}
|
||||
var colorArray = this._paramsMap[seriesIndex].colorArray;
|
||||
for (var i = 0, l = colorArray.length; i < l; i++) {
|
||||
if (colorArray[i][0] >= value) {
|
||||
return colorArray[i][1];
|
||||
}
|
||||
}
|
||||
return colorArray[colorArray.length - 1][1];
|
||||
},
|
||||
_getSector: function (center, r0, r, startAngle, endAngle, color, lineStyle, zlevel, z) {
|
||||
return new SectorShape({
|
||||
zlevel: zlevel,
|
||||
z: z,
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r0: r0,
|
||||
r: r,
|
||||
startAngle: startAngle,
|
||||
endAngle: endAngle,
|
||||
brushType: 'fill',
|
||||
color: color,
|
||||
shadowColor: lineStyle.shadowColor,
|
||||
shadowBlur: lineStyle.shadowBlur,
|
||||
shadowOffsetX: lineStyle.shadowOffsetX,
|
||||
shadowOffsetY: lineStyle.shadowOffsetY
|
||||
}
|
||||
});
|
||||
},
|
||||
_getLabelText: function (formatter, value) {
|
||||
if (formatter) {
|
||||
if (typeof formatter === 'function') {
|
||||
return formatter.call(this.myChart, value);
|
||||
} else if (typeof formatter === 'string') {
|
||||
return formatter.replace('{value}', value);
|
||||
}
|
||||
}
|
||||
return value;
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Gauge, ChartBase);
|
||||
require('../chart').define('gauge', Gauge);
|
||||
return Gauge;
|
||||
});define('echarts/util/shape/GaugePointer', [
|
||||
'require',
|
||||
'zrender/shape/Base',
|
||||
'zrender/tool/util',
|
||||
'./normalIsCover'
|
||||
], function (require) {
|
||||
var Base = require('zrender/shape/Base');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function GaugePointer(options) {
|
||||
Base.call(this, options);
|
||||
}
|
||||
GaugePointer.prototype = {
|
||||
type: 'gauge-pointer',
|
||||
buildPath: function (ctx, style) {
|
||||
var r = style.r;
|
||||
var width = style.width;
|
||||
var angle = style.angle;
|
||||
var x = style.x - Math.cos(angle) * width * (width >= r / 3 ? 1 : 2);
|
||||
var y = style.y + Math.sin(angle) * width * (width >= r / 3 ? 1 : 2);
|
||||
angle = style.angle - Math.PI / 2;
|
||||
ctx.moveTo(x, y);
|
||||
ctx.lineTo(style.x + Math.cos(angle) * width, style.y - Math.sin(angle) * width);
|
||||
ctx.lineTo(style.x + Math.cos(style.angle) * r, style.y - Math.sin(style.angle) * r);
|
||||
ctx.lineTo(style.x - Math.cos(angle) * width, style.y + Math.sin(angle) * width);
|
||||
ctx.lineTo(x, y);
|
||||
return;
|
||||
},
|
||||
getRect: function (style) {
|
||||
if (style.__rect) {
|
||||
return style.__rect;
|
||||
}
|
||||
var width = style.width * 2;
|
||||
var xStart = style.x;
|
||||
var yStart = style.y;
|
||||
var xEnd = xStart + Math.cos(style.angle) * style.r;
|
||||
var yEnd = yStart - Math.sin(style.angle) * style.r;
|
||||
style.__rect = {
|
||||
x: Math.min(xStart, xEnd) - width,
|
||||
y: Math.min(yStart, yEnd) - width,
|
||||
width: Math.abs(xStart - xEnd) + width,
|
||||
height: Math.abs(yStart - yEnd) + width
|
||||
};
|
||||
return style.__rect;
|
||||
},
|
||||
isCover: require('./normalIsCover')
|
||||
};
|
||||
zrUtil.inherits(GaugePointer, Base);
|
||||
return GaugePointer;
|
||||
});
|
||||
@ -0,0 +1,286 @@
|
||||
define('echarts/chart/heatmap', [
|
||||
'require',
|
||||
'./base',
|
||||
'../layer/heatmap',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'zrender/shape/Image',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var HeatmapLayer = require('../layer/heatmap');
|
||||
var ecConfig = require('../config');
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
var zrImage = require('zrender/shape/Image');
|
||||
ecConfig.heatmap = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true
|
||||
};
|
||||
function Heatmap(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Heatmap.prototype = {
|
||||
type: ecConfig.CHART_TYPE_HEATMAP,
|
||||
refresh: function (newOption) {
|
||||
this.clear();
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this._init();
|
||||
},
|
||||
_init: function () {
|
||||
var series = this.series;
|
||||
this.backupShapeList();
|
||||
var len = series.length;
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_HEATMAP) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
var layer = new HeatmapLayer(series[i]);
|
||||
var canvas = layer.getCanvas(series[i].data, this.zr.getWidth(), this.zr.getHeight());
|
||||
var image = new zrImage({
|
||||
position: [
|
||||
0,
|
||||
0
|
||||
],
|
||||
scale: [
|
||||
1,
|
||||
1
|
||||
],
|
||||
hoverable: this.option.hoverable,
|
||||
style: {
|
||||
x: 0,
|
||||
y: 0,
|
||||
image: canvas,
|
||||
width: canvas.width,
|
||||
height: canvas.height
|
||||
}
|
||||
});
|
||||
this.shapeList.push(image);
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Heatmap, ChartBase);
|
||||
require('../chart').define('heatmap', Heatmap);
|
||||
return Heatmap;
|
||||
});define('echarts/layer/heatmap', ['require'], function (require) {
|
||||
var defaultOptions = {
|
||||
blurSize: 30,
|
||||
gradientColors: [
|
||||
'blue',
|
||||
'cyan',
|
||||
'lime',
|
||||
'yellow',
|
||||
'red'
|
||||
],
|
||||
minAlpha: 0.05,
|
||||
valueScale: 1,
|
||||
opacity: 1
|
||||
};
|
||||
var BRUSH_SIZE = 20;
|
||||
var GRADIENT_LEVELS = 256;
|
||||
function Heatmap(opt) {
|
||||
this.option = opt;
|
||||
if (opt) {
|
||||
for (var i in defaultOptions) {
|
||||
if (opt[i] !== undefined) {
|
||||
this.option[i] = opt[i];
|
||||
} else {
|
||||
this.option[i] = defaultOptions[i];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.option = defaultOptions;
|
||||
}
|
||||
}
|
||||
Heatmap.prototype = {
|
||||
getCanvas: function (data, width, height) {
|
||||
var brush = this._getBrush();
|
||||
var gradient = this._getGradient();
|
||||
var r = BRUSH_SIZE + this.option.blurSize;
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width = width;
|
||||
canvas.height = height;
|
||||
var ctx = canvas.getContext('2d');
|
||||
var len = data.length;
|
||||
for (var i = 0; i < len; ++i) {
|
||||
var p = data[i];
|
||||
var x = p[0];
|
||||
var y = p[1];
|
||||
var value = p[2];
|
||||
var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha));
|
||||
ctx.globalAlpha = alpha;
|
||||
ctx.drawImage(brush, x - r, y - r);
|
||||
}
|
||||
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
var pixels = imageData.data;
|
||||
var len = pixels.length / 4;
|
||||
while (len--) {
|
||||
var id = len * 4 + 3;
|
||||
var alpha = pixels[id] / 256;
|
||||
var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1));
|
||||
pixels[id - 3] = gradient[colorOffset * 4];
|
||||
pixels[id - 2] = gradient[colorOffset * 4 + 1];
|
||||
pixels[id - 1] = gradient[colorOffset * 4 + 2];
|
||||
pixels[id] *= this.option.opacity;
|
||||
}
|
||||
ctx.putImageData(imageData, 0, 0);
|
||||
return canvas;
|
||||
},
|
||||
_getBrush: function () {
|
||||
if (!this._brushCanvas) {
|
||||
this._brushCanvas = document.createElement('canvas');
|
||||
var r = BRUSH_SIZE + this.option.blurSize;
|
||||
var d = r * 2;
|
||||
this._brushCanvas.width = d;
|
||||
this._brushCanvas.height = d;
|
||||
var ctx = this._brushCanvas.getContext('2d');
|
||||
ctx.shadowOffsetX = d;
|
||||
ctx.shadowBlur = this.option.blurSize;
|
||||
ctx.shadowColor = 'black';
|
||||
ctx.beginPath();
|
||||
ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true);
|
||||
ctx.closePath();
|
||||
ctx.fill();
|
||||
}
|
||||
return this._brushCanvas;
|
||||
},
|
||||
_getGradient: function () {
|
||||
if (!this._gradientPixels) {
|
||||
var levels = GRADIENT_LEVELS;
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width = 1;
|
||||
canvas.height = levels;
|
||||
var ctx = canvas.getContext('2d');
|
||||
var gradient = ctx.createLinearGradient(0, 0, 0, levels);
|
||||
var len = this.option.gradientColors.length;
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (typeof this.option.gradientColors[i] === 'string') {
|
||||
gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]);
|
||||
} else {
|
||||
gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color);
|
||||
}
|
||||
}
|
||||
ctx.fillStyle = gradient;
|
||||
ctx.fillRect(0, 0, 1, levels);
|
||||
this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data;
|
||||
}
|
||||
return this._gradientPixels;
|
||||
}
|
||||
};
|
||||
return Heatmap;
|
||||
});define('echarts/layer/heatmap', ['require'], function (require) {
|
||||
var defaultOptions = {
|
||||
blurSize: 30,
|
||||
gradientColors: [
|
||||
'blue',
|
||||
'cyan',
|
||||
'lime',
|
||||
'yellow',
|
||||
'red'
|
||||
],
|
||||
minAlpha: 0.05,
|
||||
valueScale: 1,
|
||||
opacity: 1
|
||||
};
|
||||
var BRUSH_SIZE = 20;
|
||||
var GRADIENT_LEVELS = 256;
|
||||
function Heatmap(opt) {
|
||||
this.option = opt;
|
||||
if (opt) {
|
||||
for (var i in defaultOptions) {
|
||||
if (opt[i] !== undefined) {
|
||||
this.option[i] = opt[i];
|
||||
} else {
|
||||
this.option[i] = defaultOptions[i];
|
||||
}
|
||||
}
|
||||
} else {
|
||||
this.option = defaultOptions;
|
||||
}
|
||||
}
|
||||
Heatmap.prototype = {
|
||||
getCanvas: function (data, width, height) {
|
||||
var brush = this._getBrush();
|
||||
var gradient = this._getGradient();
|
||||
var r = BRUSH_SIZE + this.option.blurSize;
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width = width;
|
||||
canvas.height = height;
|
||||
var ctx = canvas.getContext('2d');
|
||||
var len = data.length;
|
||||
for (var i = 0; i < len; ++i) {
|
||||
var p = data[i];
|
||||
var x = p[0];
|
||||
var y = p[1];
|
||||
var value = p[2];
|
||||
var alpha = Math.min(1, Math.max(value * this.option.valueScale || this.option.minAlpha, this.option.minAlpha));
|
||||
ctx.globalAlpha = alpha;
|
||||
ctx.drawImage(brush, x - r, y - r);
|
||||
}
|
||||
var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);
|
||||
var pixels = imageData.data;
|
||||
var len = pixels.length / 4;
|
||||
while (len--) {
|
||||
var id = len * 4 + 3;
|
||||
var alpha = pixels[id] / 256;
|
||||
var colorOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1));
|
||||
pixels[id - 3] = gradient[colorOffset * 4];
|
||||
pixels[id - 2] = gradient[colorOffset * 4 + 1];
|
||||
pixels[id - 1] = gradient[colorOffset * 4 + 2];
|
||||
pixels[id] *= this.option.opacity;
|
||||
}
|
||||
ctx.putImageData(imageData, 0, 0);
|
||||
return canvas;
|
||||
},
|
||||
_getBrush: function () {
|
||||
if (!this._brushCanvas) {
|
||||
this._brushCanvas = document.createElement('canvas');
|
||||
var r = BRUSH_SIZE + this.option.blurSize;
|
||||
var d = r * 2;
|
||||
this._brushCanvas.width = d;
|
||||
this._brushCanvas.height = d;
|
||||
var ctx = this._brushCanvas.getContext('2d');
|
||||
ctx.shadowOffsetX = d;
|
||||
ctx.shadowBlur = this.option.blurSize;
|
||||
ctx.shadowColor = 'black';
|
||||
ctx.beginPath();
|
||||
ctx.arc(-r, r, BRUSH_SIZE, 0, Math.PI * 2, true);
|
||||
ctx.closePath();
|
||||
ctx.fill();
|
||||
}
|
||||
return this._brushCanvas;
|
||||
},
|
||||
_getGradient: function () {
|
||||
if (!this._gradientPixels) {
|
||||
var levels = GRADIENT_LEVELS;
|
||||
var canvas = document.createElement('canvas');
|
||||
canvas.width = 1;
|
||||
canvas.height = levels;
|
||||
var ctx = canvas.getContext('2d');
|
||||
var gradient = ctx.createLinearGradient(0, 0, 0, levels);
|
||||
var len = this.option.gradientColors.length;
|
||||
for (var i = 0; i < len; ++i) {
|
||||
if (typeof this.option.gradientColors[i] === 'string') {
|
||||
gradient.addColorStop((i + 1) / len, this.option.gradientColors[i]);
|
||||
} else {
|
||||
gradient.addColorStop(this.option.gradientColors[i].offset, this.option.gradientColors[i].color);
|
||||
}
|
||||
}
|
||||
ctx.fillStyle = gradient;
|
||||
ctx.fillRect(0, 0, 1, levels);
|
||||
this._gradientPixels = ctx.getImageData(0, 0, 1, levels).data;
|
||||
}
|
||||
return this._gradientPixels;
|
||||
}
|
||||
};
|
||||
return Heatmap;
|
||||
});
|
||||
@ -0,0 +1,325 @@
|
||||
define('echarts/chart/k', [
|
||||
'require',
|
||||
'./base',
|
||||
'../util/shape/Candle',
|
||||
'../component/axis',
|
||||
'../component/grid',
|
||||
'../component/dataZoom',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var CandleShape = require('../util/shape/Candle');
|
||||
require('../component/axis');
|
||||
require('../component/grid');
|
||||
require('../component/dataZoom');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.k = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
hoverable: true,
|
||||
legendHoverLink: false,
|
||||
xAxisIndex: 0,
|
||||
yAxisIndex: 0,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#fff',
|
||||
color0: '#00aa11',
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
color: '#ff3200',
|
||||
color0: '#00aa11'
|
||||
},
|
||||
label: { show: false }
|
||||
},
|
||||
emphasis: { label: { show: false } }
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function K(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
K.prototype = {
|
||||
type: ecConfig.CHART_TYPE_K,
|
||||
_buildShape: function () {
|
||||
var series = this.series;
|
||||
this.selectedMap = {};
|
||||
var _position2sIndexMap = {
|
||||
top: [],
|
||||
bottom: []
|
||||
};
|
||||
var xAxis;
|
||||
for (var i = 0, l = series.length; i < l; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_K) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink;
|
||||
xAxis = this.component.xAxis.getAxis(series[i].xAxisIndex);
|
||||
if (xAxis.type === ecConfig.COMPONENT_TYPE_AXIS_CATEGORY) {
|
||||
_position2sIndexMap[xAxis.getPosition()].push(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var position in _position2sIndexMap) {
|
||||
if (_position2sIndexMap[position].length > 0) {
|
||||
this._buildSinglePosition(position, _position2sIndexMap[position]);
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildSinglePosition: function (position, seriesArray) {
|
||||
var mapData = this._mapData(seriesArray);
|
||||
var locationMap = mapData.locationMap;
|
||||
var maxDataLength = mapData.maxDataLength;
|
||||
if (maxDataLength === 0 || locationMap.length === 0) {
|
||||
return;
|
||||
}
|
||||
this._buildHorizontal(seriesArray, maxDataLength, locationMap);
|
||||
for (var i = 0, l = seriesArray.length; i < l; i++) {
|
||||
this.buildMark(seriesArray[i]);
|
||||
}
|
||||
},
|
||||
_mapData: function (seriesArray) {
|
||||
var series = this.series;
|
||||
var serie;
|
||||
var serieName;
|
||||
var legend = this.component.legend;
|
||||
var locationMap = [];
|
||||
var maxDataLength = 0;
|
||||
for (var i = 0, l = seriesArray.length; i < l; i++) {
|
||||
serie = series[seriesArray[i]];
|
||||
serieName = serie.name;
|
||||
this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true;
|
||||
if (this.selectedMap[serieName]) {
|
||||
locationMap.push(seriesArray[i]);
|
||||
}
|
||||
maxDataLength = Math.max(maxDataLength, serie.data.length);
|
||||
}
|
||||
return {
|
||||
locationMap: locationMap,
|
||||
maxDataLength: maxDataLength
|
||||
};
|
||||
},
|
||||
_buildHorizontal: function (seriesArray, maxDataLength, locationMap) {
|
||||
var series = this.series;
|
||||
var seriesIndex;
|
||||
var serie;
|
||||
var xAxisIndex;
|
||||
var categoryAxis;
|
||||
var yAxisIndex;
|
||||
var valueAxis;
|
||||
var pointList = {};
|
||||
var candleWidth;
|
||||
var data;
|
||||
var value;
|
||||
var barMaxWidth;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
seriesIndex = locationMap[j];
|
||||
serie = series[seriesIndex];
|
||||
xAxisIndex = serie.xAxisIndex || 0;
|
||||
categoryAxis = this.component.xAxis.getAxis(xAxisIndex);
|
||||
candleWidth = serie.barWidth || Math.floor(categoryAxis.getGap() / 2);
|
||||
barMaxWidth = serie.barMaxWidth;
|
||||
if (barMaxWidth && barMaxWidth < candleWidth) {
|
||||
candleWidth = barMaxWidth;
|
||||
}
|
||||
yAxisIndex = serie.yAxisIndex || 0;
|
||||
valueAxis = this.component.yAxis.getAxis(yAxisIndex);
|
||||
pointList[seriesIndex] = [];
|
||||
for (var i = 0, l = maxDataLength; i < l; i++) {
|
||||
if (categoryAxis.getNameByIndex(i) == null) {
|
||||
break;
|
||||
}
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
if (value === '-' || value.length != 4) {
|
||||
continue;
|
||||
}
|
||||
pointList[seriesIndex].push([
|
||||
categoryAxis.getCoordByIndex(i),
|
||||
candleWidth,
|
||||
valueAxis.getCoord(value[0]),
|
||||
valueAxis.getCoord(value[1]),
|
||||
valueAxis.getCoord(value[2]),
|
||||
valueAxis.getCoord(value[3]),
|
||||
i,
|
||||
categoryAxis.getNameByIndex(i)
|
||||
]);
|
||||
}
|
||||
}
|
||||
this._buildKLine(seriesArray, pointList);
|
||||
},
|
||||
_buildKLine: function (seriesArray, pointList) {
|
||||
var series = this.series;
|
||||
var nLineWidth;
|
||||
var nLineColor;
|
||||
var nLineColor0;
|
||||
var nColor;
|
||||
var nColor0;
|
||||
var eLineWidth;
|
||||
var eLineColor;
|
||||
var eLineColor0;
|
||||
var eColor;
|
||||
var eColor0;
|
||||
var serie;
|
||||
var queryTarget;
|
||||
var data;
|
||||
var seriesPL;
|
||||
var singlePoint;
|
||||
var candleType;
|
||||
var seriesIndex;
|
||||
for (var sIdx = 0, len = seriesArray.length; sIdx < len; sIdx++) {
|
||||
seriesIndex = seriesArray[sIdx];
|
||||
serie = series[seriesIndex];
|
||||
seriesPL = pointList[seriesIndex];
|
||||
if (this._isLarge(seriesPL)) {
|
||||
seriesPL = this._getLargePointList(seriesPL);
|
||||
}
|
||||
if (serie.type === ecConfig.CHART_TYPE_K && seriesPL != null) {
|
||||
queryTarget = serie;
|
||||
nLineWidth = this.query(queryTarget, 'itemStyle.normal.lineStyle.width');
|
||||
nLineColor = this.query(queryTarget, 'itemStyle.normal.lineStyle.color');
|
||||
nLineColor0 = this.query(queryTarget, 'itemStyle.normal.lineStyle.color0');
|
||||
nColor = this.query(queryTarget, 'itemStyle.normal.color');
|
||||
nColor0 = this.query(queryTarget, 'itemStyle.normal.color0');
|
||||
eLineWidth = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width');
|
||||
eLineColor = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color');
|
||||
eLineColor0 = this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0');
|
||||
eColor = this.query(queryTarget, 'itemStyle.emphasis.color');
|
||||
eColor0 = this.query(queryTarget, 'itemStyle.emphasis.color0');
|
||||
for (var i = 0, l = seriesPL.length; i < l; i++) {
|
||||
singlePoint = seriesPL[i];
|
||||
data = serie.data[singlePoint[6]];
|
||||
queryTarget = data;
|
||||
candleType = singlePoint[3] < singlePoint[2];
|
||||
this.shapeList.push(this._getCandle(seriesIndex, singlePoint[6], singlePoint[7], singlePoint[0], singlePoint[1], singlePoint[2], singlePoint[3], singlePoint[4], singlePoint[5], candleType ? this.query(queryTarget, 'itemStyle.normal.color') || nColor : this.query(queryTarget, 'itemStyle.normal.color0') || nColor0, this.query(queryTarget, 'itemStyle.normal.lineStyle.width') || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.normal.lineStyle.color') || nLineColor : this.query(queryTarget, 'itemStyle.normal.lineStyle.color0') || nLineColor0, candleType ? this.query(queryTarget, 'itemStyle.emphasis.color') || eColor || nColor : this.query(queryTarget, 'itemStyle.emphasis.color0') || eColor0 || nColor0, this.query(queryTarget, 'itemStyle.emphasis.lineStyle.width') || eLineWidth || nLineWidth, candleType ? this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color') || eLineColor || nLineColor : this.query(queryTarget, 'itemStyle.emphasis.lineStyle.color0') || eLineColor0 || nLineColor0));
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_isLarge: function (singlePL) {
|
||||
return singlePL[0][1] < 0.5;
|
||||
},
|
||||
_getLargePointList: function (singlePL) {
|
||||
var total = this.component.grid.getWidth();
|
||||
var len = singlePL.length;
|
||||
var newList = [];
|
||||
for (var i = 0; i < total; i++) {
|
||||
newList[i] = singlePL[Math.floor(len / total * i)];
|
||||
}
|
||||
return newList;
|
||||
},
|
||||
_getCandle: function (seriesIndex, dataIndex, name, x, width, y0, y1, y2, y3, nColor, nLinewidth, nLineColor, eColor, eLinewidth, eLineColor) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var queryTarget = [
|
||||
data,
|
||||
serie
|
||||
];
|
||||
var itemShape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
clickable: this.deepQuery(queryTarget, 'clickable'),
|
||||
hoverable: this.deepQuery(queryTarget, 'hoverable'),
|
||||
style: {
|
||||
x: x,
|
||||
y: [
|
||||
y0,
|
||||
y1,
|
||||
y2,
|
||||
y3
|
||||
],
|
||||
width: width,
|
||||
color: nColor,
|
||||
strokeColor: nLineColor,
|
||||
lineWidth: nLinewidth,
|
||||
brushType: 'both'
|
||||
},
|
||||
highlightStyle: {
|
||||
color: eColor,
|
||||
strokeColor: eLineColor,
|
||||
lineWidth: eLinewidth
|
||||
},
|
||||
_seriesIndex: seriesIndex
|
||||
};
|
||||
itemShape = this.addLabel(itemShape, serie, data, name);
|
||||
ecData.pack(itemShape, serie, seriesIndex, data, dataIndex, name);
|
||||
itemShape = new CandleShape(itemShape);
|
||||
return itemShape;
|
||||
},
|
||||
getMarkCoord: function (seriesIndex, mpData) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex);
|
||||
var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex);
|
||||
return [
|
||||
typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0),
|
||||
typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0)
|
||||
];
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
},
|
||||
addDataAnimation: function (params, done) {
|
||||
var series = this.series;
|
||||
var aniMap = {};
|
||||
for (var i = 0, l = params.length; i < l; i++) {
|
||||
aniMap[params[i][0]] = params[i];
|
||||
}
|
||||
var x;
|
||||
var dx;
|
||||
var y;
|
||||
var serie;
|
||||
var seriesIndex;
|
||||
var dataIndex;
|
||||
var aniCount = 0;
|
||||
function animationDone() {
|
||||
aniCount--;
|
||||
if (aniCount === 0) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
for (var i = 0, l = this.shapeList.length; i < l; i++) {
|
||||
seriesIndex = this.shapeList[i]._seriesIndex;
|
||||
if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) {
|
||||
if (this.shapeList[i].type === 'candle') {
|
||||
dataIndex = ecData.get(this.shapeList[i], 'dataIndex');
|
||||
serie = series[seriesIndex];
|
||||
if (aniMap[seriesIndex][2] && dataIndex === serie.data.length - 1) {
|
||||
this.zr.delShape(this.shapeList[i].id);
|
||||
continue;
|
||||
} else if (!aniMap[seriesIndex][2] && dataIndex === 0) {
|
||||
this.zr.delShape(this.shapeList[i].id);
|
||||
continue;
|
||||
}
|
||||
dx = this.component.xAxis.getAxis(serie.xAxisIndex || 0).getGap();
|
||||
x = aniMap[seriesIndex][2] ? dx : -dx;
|
||||
y = 0;
|
||||
aniCount++;
|
||||
this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), {
|
||||
position: [
|
||||
x,
|
||||
y
|
||||
]
|
||||
}).done(animationDone).start();
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!aniCount) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(K, ChartBase);
|
||||
require('../chart').define('k', K);
|
||||
return K;
|
||||
});
|
||||
@ -0,0 +1,817 @@
|
||||
define('echarts/chart/line', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Polyline',
|
||||
'../util/shape/Icon',
|
||||
'../util/shape/HalfSmoothPolygon',
|
||||
'../component/axis',
|
||||
'../component/grid',
|
||||
'../component/dataZoom',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var PolylineShape = require('zrender/shape/Polyline');
|
||||
var IconShape = require('../util/shape/Icon');
|
||||
var HalfSmoothPolygonShape = require('../util/shape/HalfSmoothPolygon');
|
||||
require('../component/axis');
|
||||
require('../component/grid');
|
||||
require('../component/dataZoom');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.line = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
xAxisIndex: 0,
|
||||
yAxisIndex: 0,
|
||||
dataFilter: 'nearest',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: { show: false },
|
||||
lineStyle: {
|
||||
width: 2,
|
||||
type: 'solid',
|
||||
shadowColor: 'rgba(0,0,0,0)',
|
||||
shadowBlur: 0,
|
||||
shadowOffsetX: 0,
|
||||
shadowOffsetY: 0
|
||||
}
|
||||
},
|
||||
emphasis: { label: { show: false } }
|
||||
},
|
||||
symbolSize: 2,
|
||||
showAllSymbol: false
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
function Line(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Line.prototype = {
|
||||
type: ecConfig.CHART_TYPE_LINE,
|
||||
_buildShape: function () {
|
||||
this.finalPLMap = {};
|
||||
this._buildPosition();
|
||||
},
|
||||
_buildHorizontal: function (seriesArray, maxDataLength, locationMap, xMarkMap) {
|
||||
var series = this.series;
|
||||
var seriesIndex = locationMap[0][0];
|
||||
var serie = series[seriesIndex];
|
||||
var categoryAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0);
|
||||
var valueAxis;
|
||||
var x;
|
||||
var y;
|
||||
var lastYP;
|
||||
var baseYP;
|
||||
var lastYN;
|
||||
var baseYN;
|
||||
var curPLMap = {};
|
||||
var data;
|
||||
var value;
|
||||
for (var i = 0, l = maxDataLength; i < l; i++) {
|
||||
if (categoryAxis.getNameByIndex(i) == null) {
|
||||
break;
|
||||
}
|
||||
x = categoryAxis.getCoordByIndex(i);
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
valueAxis = this.component.yAxis.getAxis(series[locationMap[j][0]].yAxisIndex || 0);
|
||||
baseYP = lastYP = baseYN = lastYN = valueAxis.getCoord(0);
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
seriesIndex = locationMap[j][m];
|
||||
serie = series[seriesIndex];
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
curPLMap[seriesIndex] = curPLMap[seriesIndex] || [];
|
||||
xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || {
|
||||
min: Number.POSITIVE_INFINITY,
|
||||
max: Number.NEGATIVE_INFINITY,
|
||||
sum: 0,
|
||||
counter: 0,
|
||||
average: 0
|
||||
};
|
||||
if (value === '-') {
|
||||
if (curPLMap[seriesIndex].length > 0) {
|
||||
this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || [];
|
||||
this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]);
|
||||
curPLMap[seriesIndex] = [];
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (value >= 0) {
|
||||
lastYP -= m > 0 ? valueAxis.getCoordSize(value) : baseYP - valueAxis.getCoord(value);
|
||||
y = lastYP;
|
||||
} else if (value < 0) {
|
||||
lastYN += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseYN;
|
||||
y = lastYN;
|
||||
}
|
||||
curPLMap[seriesIndex].push([
|
||||
x,
|
||||
y,
|
||||
i,
|
||||
categoryAxis.getNameByIndex(i),
|
||||
x,
|
||||
baseYP
|
||||
]);
|
||||
if (xMarkMap[seriesIndex].min > value) {
|
||||
xMarkMap[seriesIndex].min = value;
|
||||
xMarkMap[seriesIndex].minY = y;
|
||||
xMarkMap[seriesIndex].minX = x;
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max < value) {
|
||||
xMarkMap[seriesIndex].max = value;
|
||||
xMarkMap[seriesIndex].maxY = y;
|
||||
xMarkMap[seriesIndex].maxX = x;
|
||||
}
|
||||
xMarkMap[seriesIndex].sum += value;
|
||||
xMarkMap[seriesIndex].counter++;
|
||||
}
|
||||
}
|
||||
lastYP = this.component.grid.getY();
|
||||
var symbolSize;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
seriesIndex = locationMap[j][m];
|
||||
serie = series[seriesIndex];
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
if (value != '-') {
|
||||
continue;
|
||||
}
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
symbolSize = this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'symbolSize');
|
||||
lastYP += symbolSize * 2 + 5;
|
||||
y = lastYP;
|
||||
this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'horizontal'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var sId in curPLMap) {
|
||||
if (curPLMap[sId].length > 0) {
|
||||
this.finalPLMap[sId] = this.finalPLMap[sId] || [];
|
||||
this.finalPLMap[sId].push(curPLMap[sId]);
|
||||
curPLMap[sId] = [];
|
||||
}
|
||||
}
|
||||
this._calculMarkMapXY(xMarkMap, locationMap, 'y');
|
||||
this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'horizontal');
|
||||
},
|
||||
_buildVertical: function (seriesArray, maxDataLength, locationMap, xMarkMap) {
|
||||
var series = this.series;
|
||||
var seriesIndex = locationMap[0][0];
|
||||
var serie = series[seriesIndex];
|
||||
var categoryAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0);
|
||||
var valueAxis;
|
||||
var x;
|
||||
var y;
|
||||
var lastXP;
|
||||
var baseXP;
|
||||
var lastXN;
|
||||
var baseXN;
|
||||
var curPLMap = {};
|
||||
var data;
|
||||
var value;
|
||||
for (var i = 0, l = maxDataLength; i < l; i++) {
|
||||
if (categoryAxis.getNameByIndex(i) == null) {
|
||||
break;
|
||||
}
|
||||
y = categoryAxis.getCoordByIndex(i);
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
valueAxis = this.component.xAxis.getAxis(series[locationMap[j][0]].xAxisIndex || 0);
|
||||
baseXP = lastXP = baseXN = lastXN = valueAxis.getCoord(0);
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
seriesIndex = locationMap[j][m];
|
||||
serie = series[seriesIndex];
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
curPLMap[seriesIndex] = curPLMap[seriesIndex] || [];
|
||||
xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || {
|
||||
min: Number.POSITIVE_INFINITY,
|
||||
max: Number.NEGATIVE_INFINITY,
|
||||
sum: 0,
|
||||
counter: 0,
|
||||
average: 0
|
||||
};
|
||||
if (value === '-') {
|
||||
if (curPLMap[seriesIndex].length > 0) {
|
||||
this.finalPLMap[seriesIndex] = this.finalPLMap[seriesIndex] || [];
|
||||
this.finalPLMap[seriesIndex].push(curPLMap[seriesIndex]);
|
||||
curPLMap[seriesIndex] = [];
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (value >= 0) {
|
||||
lastXP += m > 0 ? valueAxis.getCoordSize(value) : valueAxis.getCoord(value) - baseXP;
|
||||
x = lastXP;
|
||||
} else if (value < 0) {
|
||||
lastXN -= m > 0 ? valueAxis.getCoordSize(value) : baseXN - valueAxis.getCoord(value);
|
||||
x = lastXN;
|
||||
}
|
||||
curPLMap[seriesIndex].push([
|
||||
x,
|
||||
y,
|
||||
i,
|
||||
categoryAxis.getNameByIndex(i),
|
||||
baseXP,
|
||||
y
|
||||
]);
|
||||
if (xMarkMap[seriesIndex].min > value) {
|
||||
xMarkMap[seriesIndex].min = value;
|
||||
xMarkMap[seriesIndex].minX = x;
|
||||
xMarkMap[seriesIndex].minY = y;
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max < value) {
|
||||
xMarkMap[seriesIndex].max = value;
|
||||
xMarkMap[seriesIndex].maxX = x;
|
||||
xMarkMap[seriesIndex].maxY = y;
|
||||
}
|
||||
xMarkMap[seriesIndex].sum += value;
|
||||
xMarkMap[seriesIndex].counter++;
|
||||
}
|
||||
}
|
||||
lastXP = this.component.grid.getXend();
|
||||
var symbolSize;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
seriesIndex = locationMap[j][m];
|
||||
serie = series[seriesIndex];
|
||||
data = serie.data[i];
|
||||
value = this.getDataFromOption(data, '-');
|
||||
if (value != '-') {
|
||||
continue;
|
||||
}
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
symbolSize = this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'symbolSize');
|
||||
lastXP -= symbolSize * 2 + 5;
|
||||
x = lastXP;
|
||||
this.shapeList.push(this._getCalculableItem(seriesIndex, i, categoryAxis.getNameByIndex(i), x, y, 'vertical'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var sId in curPLMap) {
|
||||
if (curPLMap[sId].length > 0) {
|
||||
this.finalPLMap[sId] = this.finalPLMap[sId] || [];
|
||||
this.finalPLMap[sId].push(curPLMap[sId]);
|
||||
curPLMap[sId] = [];
|
||||
}
|
||||
}
|
||||
this._calculMarkMapXY(xMarkMap, locationMap, 'x');
|
||||
this._buildBorkenLine(seriesArray, this.finalPLMap, categoryAxis, 'vertical');
|
||||
},
|
||||
_buildOther: function (seriesArray, maxDataLength, locationMap, xMarkMap) {
|
||||
var series = this.series;
|
||||
var curPLMap = {};
|
||||
var xAxis;
|
||||
for (var j = 0, k = locationMap.length; j < k; j++) {
|
||||
for (var m = 0, n = locationMap[j].length; m < n; m++) {
|
||||
var seriesIndex = locationMap[j][m];
|
||||
var serie = series[seriesIndex];
|
||||
xAxis = this.component.xAxis.getAxis(serie.xAxisIndex || 0);
|
||||
var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex || 0);
|
||||
var baseY = yAxis.getCoord(0);
|
||||
curPLMap[seriesIndex] = curPLMap[seriesIndex] || [];
|
||||
xMarkMap[seriesIndex] = xMarkMap[seriesIndex] || {
|
||||
min0: Number.POSITIVE_INFINITY,
|
||||
min1: Number.POSITIVE_INFINITY,
|
||||
max0: Number.NEGATIVE_INFINITY,
|
||||
max1: Number.NEGATIVE_INFINITY,
|
||||
sum0: 0,
|
||||
sum1: 0,
|
||||
counter0: 0,
|
||||
counter1: 0,
|
||||
average0: 0,
|
||||
average1: 0
|
||||
};
|
||||
for (var i = 0, l = serie.data.length; i < l; i++) {
|
||||
var data = serie.data[i];
|
||||
var value = this.getDataFromOption(data, '-');
|
||||
if (!(value instanceof Array)) {
|
||||
continue;
|
||||
}
|
||||
var x = xAxis.getCoord(value[0]);
|
||||
var y = yAxis.getCoord(value[1]);
|
||||
curPLMap[seriesIndex].push([
|
||||
x,
|
||||
y,
|
||||
i,
|
||||
value[0],
|
||||
x,
|
||||
baseY
|
||||
]);
|
||||
if (xMarkMap[seriesIndex].min0 > value[0]) {
|
||||
xMarkMap[seriesIndex].min0 = value[0];
|
||||
xMarkMap[seriesIndex].minY0 = y;
|
||||
xMarkMap[seriesIndex].minX0 = x;
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max0 < value[0]) {
|
||||
xMarkMap[seriesIndex].max0 = value[0];
|
||||
xMarkMap[seriesIndex].maxY0 = y;
|
||||
xMarkMap[seriesIndex].maxX0 = x;
|
||||
}
|
||||
xMarkMap[seriesIndex].sum0 += value[0];
|
||||
xMarkMap[seriesIndex].counter0++;
|
||||
if (xMarkMap[seriesIndex].min1 > value[1]) {
|
||||
xMarkMap[seriesIndex].min1 = value[1];
|
||||
xMarkMap[seriesIndex].minY1 = y;
|
||||
xMarkMap[seriesIndex].minX1 = x;
|
||||
}
|
||||
if (xMarkMap[seriesIndex].max1 < value[1]) {
|
||||
xMarkMap[seriesIndex].max1 = value[1];
|
||||
xMarkMap[seriesIndex].maxY1 = y;
|
||||
xMarkMap[seriesIndex].maxX1 = x;
|
||||
}
|
||||
xMarkMap[seriesIndex].sum1 += value[1];
|
||||
xMarkMap[seriesIndex].counter1++;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var sId in curPLMap) {
|
||||
if (curPLMap[sId].length > 0) {
|
||||
this.finalPLMap[sId] = this.finalPLMap[sId] || [];
|
||||
this.finalPLMap[sId].push(curPLMap[sId]);
|
||||
curPLMap[sId] = [];
|
||||
}
|
||||
}
|
||||
this._calculMarkMapXY(xMarkMap, locationMap, 'xy');
|
||||
this._buildBorkenLine(seriesArray, this.finalPLMap, xAxis, 'other');
|
||||
},
|
||||
_buildBorkenLine: function (seriesArray, pointList, categoryAxis, curOrient) {
|
||||
var orient = curOrient == 'other' ? 'horizontal' : curOrient;
|
||||
var series = this.series;
|
||||
var data;
|
||||
for (var sIdx = seriesArray.length - 1; sIdx >= 0; sIdx--) {
|
||||
var seriesIndex = seriesArray[sIdx];
|
||||
var serie = series[seriesIndex];
|
||||
var seriesPL = pointList[seriesIndex];
|
||||
if (serie.type === this.type && seriesPL != null) {
|
||||
var bbox = this._getBbox(seriesIndex, orient);
|
||||
var defaultColor = this._sIndex2ColorMap[seriesIndex];
|
||||
var lineWidth = this.query(serie, 'itemStyle.normal.lineStyle.width');
|
||||
var lineType = this.query(serie, 'itemStyle.normal.lineStyle.type');
|
||||
var lineColor = this.query(serie, 'itemStyle.normal.lineStyle.color');
|
||||
var normalColor = this.getItemStyleColor(this.query(serie, 'itemStyle.normal.color'), seriesIndex, -1);
|
||||
var isFill = this.query(serie, 'itemStyle.normal.areaStyle') != null;
|
||||
var fillNormalColor = this.query(serie, 'itemStyle.normal.areaStyle.color');
|
||||
for (var i = 0, l = seriesPL.length; i < l; i++) {
|
||||
var singlePL = seriesPL[i];
|
||||
var isLarge = curOrient != 'other' && this._isLarge(orient, singlePL);
|
||||
if (!isLarge) {
|
||||
for (var j = 0, k = singlePL.length; j < k; j++) {
|
||||
data = serie.data[singlePL[j][2]];
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable') || this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'showAllSymbol') || categoryAxis.type === 'categoryAxis' && categoryAxis.isMainAxis(singlePL[j][2]) && this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'symbol') != 'none') {
|
||||
this.shapeList.push(this._getSymbol(seriesIndex, singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], orient));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
singlePL = this._getLargePointList(orient, singlePL, serie.dataFilter);
|
||||
}
|
||||
var polylineShape = new PolylineShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
style: {
|
||||
miterLimit: lineWidth,
|
||||
pointList: singlePL,
|
||||
strokeColor: lineColor || normalColor || defaultColor,
|
||||
lineWidth: lineWidth,
|
||||
lineType: lineType,
|
||||
smooth: this._getSmooth(serie.smooth),
|
||||
smoothConstraint: bbox,
|
||||
shadowColor: this.query(serie, 'itemStyle.normal.lineStyle.shadowColor'),
|
||||
shadowBlur: this.query(serie, 'itemStyle.normal.lineStyle.shadowBlur'),
|
||||
shadowOffsetX: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetX'),
|
||||
shadowOffsetY: this.query(serie, 'itemStyle.normal.lineStyle.shadowOffsetY')
|
||||
},
|
||||
hoverable: false,
|
||||
_main: true,
|
||||
_seriesIndex: seriesIndex,
|
||||
_orient: orient
|
||||
});
|
||||
ecData.pack(polylineShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name);
|
||||
this.shapeList.push(polylineShape);
|
||||
if (isFill) {
|
||||
var halfSmoothPolygonShape = new HalfSmoothPolygonShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
style: {
|
||||
miterLimit: lineWidth,
|
||||
pointList: zrUtil.clone(singlePL).concat([
|
||||
[
|
||||
singlePL[singlePL.length - 1][4],
|
||||
singlePL[singlePL.length - 1][5]
|
||||
],
|
||||
[
|
||||
singlePL[0][4],
|
||||
singlePL[0][5]
|
||||
]
|
||||
]),
|
||||
brushType: 'fill',
|
||||
smooth: this._getSmooth(serie.smooth),
|
||||
smoothConstraint: bbox,
|
||||
color: fillNormalColor ? fillNormalColor : zrColor.alpha(defaultColor, 0.5)
|
||||
},
|
||||
highlightStyle: { brushType: 'fill' },
|
||||
hoverable: false,
|
||||
_main: true,
|
||||
_seriesIndex: seriesIndex,
|
||||
_orient: orient
|
||||
});
|
||||
ecData.pack(halfSmoothPolygonShape, series[seriesIndex], seriesIndex, 0, i, series[seriesIndex].name);
|
||||
this.shapeList.push(halfSmoothPolygonShape);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_getBbox: function (seriesIndex, orient) {
|
||||
var bbox = this.component.grid.getBbox();
|
||||
var xMarkMap = this.xMarkMap[seriesIndex];
|
||||
if (xMarkMap.minX0 != null) {
|
||||
return [
|
||||
[
|
||||
Math.min(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1),
|
||||
Math.min(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1)
|
||||
],
|
||||
[
|
||||
Math.max(xMarkMap.minX0, xMarkMap.maxX0, xMarkMap.minX1, xMarkMap.maxX1),
|
||||
Math.max(xMarkMap.minY0, xMarkMap.maxY0, xMarkMap.minY1, xMarkMap.maxY1)
|
||||
]
|
||||
];
|
||||
} else if (orient === 'horizontal') {
|
||||
bbox[0][1] = Math.min(xMarkMap.minY, xMarkMap.maxY);
|
||||
bbox[1][1] = Math.max(xMarkMap.minY, xMarkMap.maxY);
|
||||
} else {
|
||||
bbox[0][0] = Math.min(xMarkMap.minX, xMarkMap.maxX);
|
||||
bbox[1][0] = Math.max(xMarkMap.minX, xMarkMap.maxX);
|
||||
}
|
||||
return bbox;
|
||||
},
|
||||
_isLarge: function (orient, singlePL) {
|
||||
if (singlePL.length < 2) {
|
||||
return false;
|
||||
} else {
|
||||
return orient === 'horizontal' ? Math.abs(singlePL[0][0] - singlePL[1][0]) < 0.5 : Math.abs(singlePL[0][1] - singlePL[1][1]) < 0.5;
|
||||
}
|
||||
},
|
||||
_getLargePointList: function (orient, singlePL, filter) {
|
||||
var total;
|
||||
if (orient === 'horizontal') {
|
||||
total = this.component.grid.getWidth();
|
||||
} else {
|
||||
total = this.component.grid.getHeight();
|
||||
}
|
||||
var len = singlePL.length;
|
||||
var newList = [];
|
||||
if (typeof filter != 'function') {
|
||||
switch (filter) {
|
||||
case 'min':
|
||||
filter = function (arr) {
|
||||
return Math.max.apply(null, arr);
|
||||
};
|
||||
break;
|
||||
case 'max':
|
||||
filter = function (arr) {
|
||||
return Math.min.apply(null, arr);
|
||||
};
|
||||
break;
|
||||
case 'average':
|
||||
filter = function (arr) {
|
||||
var total = 0;
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
total += arr[i];
|
||||
}
|
||||
return total / arr.length;
|
||||
};
|
||||
break;
|
||||
default:
|
||||
filter = function (arr) {
|
||||
return arr[0];
|
||||
};
|
||||
}
|
||||
}
|
||||
var windowData = [];
|
||||
for (var i = 0; i < total; i++) {
|
||||
var idx0 = Math.floor(len / total * i);
|
||||
var idx1 = Math.min(Math.floor(len / total * (i + 1)), len);
|
||||
if (idx1 <= idx0) {
|
||||
continue;
|
||||
}
|
||||
for (var j = idx0; j < idx1; j++) {
|
||||
windowData[j - idx0] = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0];
|
||||
}
|
||||
windowData.length = idx1 - idx0;
|
||||
var filteredVal = filter(windowData);
|
||||
var nearestIdx = -1;
|
||||
var minDist = Infinity;
|
||||
for (var j = idx0; j < idx1; j++) {
|
||||
var val = orient === 'horizontal' ? singlePL[j][1] : singlePL[j][0];
|
||||
var dist = Math.abs(val - filteredVal);
|
||||
if (dist < minDist) {
|
||||
nearestIdx = j;
|
||||
minDist = dist;
|
||||
}
|
||||
}
|
||||
var newItem = singlePL[nearestIdx].slice();
|
||||
if (orient === 'horizontal') {
|
||||
newItem[1] = filteredVal;
|
||||
} else {
|
||||
newItem[0] = filteredVal;
|
||||
}
|
||||
newList.push(newItem);
|
||||
}
|
||||
return newList;
|
||||
},
|
||||
_getSmooth: function (isSmooth) {
|
||||
if (isSmooth) {
|
||||
return 0.3;
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
},
|
||||
_getCalculableItem: function (seriesIndex, dataIndex, name, x, y, orient) {
|
||||
var series = this.series;
|
||||
var color = series[seriesIndex].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor;
|
||||
var itemShape = this._getSymbol(seriesIndex, dataIndex, name, x, y, orient);
|
||||
itemShape.style.color = color;
|
||||
itemShape.style.strokeColor = color;
|
||||
itemShape.rotation = [
|
||||
0,
|
||||
0
|
||||
];
|
||||
itemShape.hoverable = false;
|
||||
itemShape.draggable = false;
|
||||
itemShape.style.text = undefined;
|
||||
return itemShape;
|
||||
},
|
||||
_getSymbol: function (seriesIndex, dataIndex, name, x, y, orient) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var itemShape = this.getSymbolShape(serie, seriesIndex, data, dataIndex, name, x, y, this._sIndex2ShapeMap[seriesIndex], this._sIndex2ColorMap[seriesIndex], '#fff', orient === 'vertical' ? 'horizontal' : 'vertical');
|
||||
itemShape.zlevel = serie.zlevel;
|
||||
itemShape.z = serie.z + 1;
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
this.setCalculable(itemShape);
|
||||
itemShape.draggable = true;
|
||||
}
|
||||
return itemShape;
|
||||
},
|
||||
getMarkCoord: function (seriesIndex, mpData) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var xMarkMap = this.xMarkMap[seriesIndex];
|
||||
var xAxis = this.component.xAxis.getAxis(serie.xAxisIndex);
|
||||
var yAxis = this.component.yAxis.getAxis(serie.yAxisIndex);
|
||||
if (mpData.type && (mpData.type === 'max' || mpData.type === 'min' || mpData.type === 'average')) {
|
||||
var valueIndex = mpData.valueIndex != null ? mpData.valueIndex : xMarkMap.maxX0 != null ? '1' : '';
|
||||
return [
|
||||
xMarkMap[mpData.type + 'X' + valueIndex],
|
||||
xMarkMap[mpData.type + 'Y' + valueIndex],
|
||||
xMarkMap[mpData.type + 'Line' + valueIndex],
|
||||
xMarkMap[mpData.type + valueIndex]
|
||||
];
|
||||
}
|
||||
return [
|
||||
typeof mpData.xAxis != 'string' && xAxis.getCoordByIndex ? xAxis.getCoordByIndex(mpData.xAxis || 0) : xAxis.getCoord(mpData.xAxis || 0),
|
||||
typeof mpData.yAxis != 'string' && yAxis.getCoordByIndex ? yAxis.getCoordByIndex(mpData.yAxis || 0) : yAxis.getCoord(mpData.yAxis || 0)
|
||||
];
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
},
|
||||
ontooltipHover: function (param, tipShape) {
|
||||
var seriesIndex = param.seriesIndex;
|
||||
var dataIndex = param.dataIndex;
|
||||
var seriesPL;
|
||||
var singlePL;
|
||||
var len = seriesIndex.length;
|
||||
while (len--) {
|
||||
seriesPL = this.finalPLMap[seriesIndex[len]];
|
||||
if (seriesPL) {
|
||||
for (var i = 0, l = seriesPL.length; i < l; i++) {
|
||||
singlePL = seriesPL[i];
|
||||
for (var j = 0, k = singlePL.length; j < k; j++) {
|
||||
if (dataIndex === singlePL[j][2]) {
|
||||
tipShape.push(this._getSymbol(seriesIndex[len], singlePL[j][2], singlePL[j][3], singlePL[j][0], singlePL[j][1], 'horizontal'));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
addDataAnimation: function (params, done) {
|
||||
var series = this.series;
|
||||
var aniMap = {};
|
||||
for (var i = 0, l = params.length; i < l; i++) {
|
||||
aniMap[params[i][0]] = params[i];
|
||||
}
|
||||
var x;
|
||||
var dx;
|
||||
var y;
|
||||
var dy;
|
||||
var seriesIndex;
|
||||
var pointList;
|
||||
var isHorizontal;
|
||||
var aniCount = 0;
|
||||
function animationDone() {
|
||||
aniCount--;
|
||||
if (aniCount === 0) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
function animationDuring(target) {
|
||||
target.style.controlPointList = null;
|
||||
}
|
||||
for (var i = this.shapeList.length - 1; i >= 0; i--) {
|
||||
seriesIndex = this.shapeList[i]._seriesIndex;
|
||||
if (aniMap[seriesIndex] && !aniMap[seriesIndex][3]) {
|
||||
if (this.shapeList[i]._main && this.shapeList[i].style.pointList.length > 1) {
|
||||
pointList = this.shapeList[i].style.pointList;
|
||||
dx = Math.abs(pointList[0][0] - pointList[1][0]);
|
||||
dy = Math.abs(pointList[0][1] - pointList[1][1]);
|
||||
isHorizontal = this.shapeList[i]._orient === 'horizontal';
|
||||
if (aniMap[seriesIndex][2]) {
|
||||
if (this.shapeList[i].type === 'half-smooth-polygon') {
|
||||
var len = pointList.length;
|
||||
this.shapeList[i].style.pointList[len - 3] = pointList[len - 2];
|
||||
this.shapeList[i].style.pointList[len - 3][isHorizontal ? 0 : 1] = pointList[len - 4][isHorizontal ? 0 : 1];
|
||||
this.shapeList[i].style.pointList[len - 2] = pointList[len - 1];
|
||||
}
|
||||
this.shapeList[i].style.pointList.pop();
|
||||
isHorizontal ? (x = dx, y = 0) : (x = 0, y = -dy);
|
||||
} else {
|
||||
this.shapeList[i].style.pointList.shift();
|
||||
if (this.shapeList[i].type === 'half-smooth-polygon') {
|
||||
var targetPoint = this.shapeList[i].style.pointList.pop();
|
||||
isHorizontal ? targetPoint[0] = pointList[0][0] : targetPoint[1] = pointList[0][1];
|
||||
this.shapeList[i].style.pointList.push(targetPoint);
|
||||
}
|
||||
isHorizontal ? (x = -dx, y = 0) : (x = 0, y = dy);
|
||||
}
|
||||
this.shapeList[i].style.controlPointList = null;
|
||||
this.zr.modShape(this.shapeList[i]);
|
||||
} else {
|
||||
if (aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === series[seriesIndex].data.length - 1) {
|
||||
this.zr.delShape(this.shapeList[i].id);
|
||||
continue;
|
||||
} else if (!aniMap[seriesIndex][2] && this.shapeList[i]._dataIndex === 0) {
|
||||
this.zr.delShape(this.shapeList[i].id);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
this.shapeList[i].position = [
|
||||
0,
|
||||
0
|
||||
];
|
||||
aniCount++;
|
||||
this.zr.animate(this.shapeList[i].id, '').when(this.query(this.option, 'animationDurationUpdate'), {
|
||||
position: [
|
||||
x,
|
||||
y
|
||||
]
|
||||
}).during(animationDuring).done(animationDone).start();
|
||||
}
|
||||
}
|
||||
if (!aniCount) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
};
|
||||
function legendLineIcon(ctx, style, refreshNextFrame) {
|
||||
var x = style.x;
|
||||
var y = style.y;
|
||||
var width = style.width;
|
||||
var height = style.height;
|
||||
var dy = height / 2;
|
||||
if (style.symbol.match('empty')) {
|
||||
ctx.fillStyle = '#fff';
|
||||
}
|
||||
style.brushType = 'both';
|
||||
var symbol = style.symbol.replace('empty', '').toLowerCase();
|
||||
if (symbol.match('star')) {
|
||||
dy = symbol.replace('star', '') - 0 || 5;
|
||||
y -= 1;
|
||||
symbol = 'star';
|
||||
} else if (symbol === 'rectangle' || symbol === 'arrow') {
|
||||
x += (width - height) / 2;
|
||||
width = height;
|
||||
}
|
||||
var imageLocation = '';
|
||||
if (symbol.match('image')) {
|
||||
imageLocation = symbol.replace(new RegExp('^image:\\/\\/'), '');
|
||||
symbol = 'image';
|
||||
x += Math.round((width - height) / 2) - 1;
|
||||
width = height = height + 2;
|
||||
}
|
||||
symbol = IconShape.prototype.iconLibrary[symbol];
|
||||
if (symbol) {
|
||||
var x2 = style.x;
|
||||
var y2 = style.y;
|
||||
ctx.moveTo(x2, y2 + dy);
|
||||
ctx.lineTo(x2 + 5, y2 + dy);
|
||||
ctx.moveTo(x2 + style.width - 5, y2 + dy);
|
||||
ctx.lineTo(x2 + style.width, y2 + dy);
|
||||
var self = this;
|
||||
symbol(ctx, {
|
||||
x: x + 4,
|
||||
y: y + 4,
|
||||
width: width - 8,
|
||||
height: height - 8,
|
||||
n: dy,
|
||||
image: imageLocation
|
||||
}, function () {
|
||||
self.modSelf();
|
||||
refreshNextFrame();
|
||||
});
|
||||
} else {
|
||||
ctx.moveTo(x, y + dy);
|
||||
ctx.lineTo(x + width, y + dy);
|
||||
}
|
||||
}
|
||||
IconShape.prototype.iconLibrary['legendLineIcon'] = legendLineIcon;
|
||||
zrUtil.inherits(Line, ChartBase);
|
||||
require('../chart').define('line', Line);
|
||||
return Line;
|
||||
});define('echarts/util/shape/HalfSmoothPolygon', [
|
||||
'require',
|
||||
'zrender/shape/Base',
|
||||
'zrender/shape/util/smoothBezier',
|
||||
'zrender/tool/util',
|
||||
'zrender/shape/Polygon'
|
||||
], function (require) {
|
||||
var Base = require('zrender/shape/Base');
|
||||
var smoothBezier = require('zrender/shape/util/smoothBezier');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function HalfSmoothPolygon(options) {
|
||||
Base.call(this, options);
|
||||
}
|
||||
HalfSmoothPolygon.prototype = {
|
||||
type: 'half-smooth-polygon',
|
||||
buildPath: function (ctx, style) {
|
||||
var pointList = style.pointList;
|
||||
if (pointList.length < 2) {
|
||||
return;
|
||||
}
|
||||
if (style.smooth) {
|
||||
var controlPoints = smoothBezier(pointList.slice(0, -2), style.smooth, false, style.smoothConstraint);
|
||||
ctx.moveTo(pointList[0][0], pointList[0][1]);
|
||||
var cp1;
|
||||
var cp2;
|
||||
var p;
|
||||
var l = pointList.length;
|
||||
for (var i = 0; i < l - 3; i++) {
|
||||
cp1 = controlPoints[i * 2];
|
||||
cp2 = controlPoints[i * 2 + 1];
|
||||
p = pointList[i + 1];
|
||||
ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);
|
||||
}
|
||||
ctx.lineTo(pointList[l - 2][0], pointList[l - 2][1]);
|
||||
ctx.lineTo(pointList[l - 1][0], pointList[l - 1][1]);
|
||||
ctx.lineTo(pointList[0][0], pointList[0][1]);
|
||||
} else {
|
||||
require('zrender/shape/Polygon').prototype.buildPath(ctx, style);
|
||||
}
|
||||
return;
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(HalfSmoothPolygon, Base);
|
||||
return HalfSmoothPolygon;
|
||||
});
|
||||
@ -0,0 +1,746 @@
|
||||
define('echarts/chart/pie', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Text',
|
||||
'zrender/shape/Ring',
|
||||
'zrender/shape/Circle',
|
||||
'zrender/shape/Sector',
|
||||
'zrender/shape/Polyline',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/math',
|
||||
'zrender/tool/color',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var TextShape = require('zrender/shape/Text');
|
||||
var RingShape = require('zrender/shape/Ring');
|
||||
var CircleShape = require('zrender/shape/Circle');
|
||||
var SectorShape = require('zrender/shape/Sector');
|
||||
var PolylineShape = require('zrender/shape/Polyline');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.pie = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
center: [
|
||||
'50%',
|
||||
'50%'
|
||||
],
|
||||
radius: [
|
||||
0,
|
||||
'75%'
|
||||
],
|
||||
clockWise: true,
|
||||
startAngle: 90,
|
||||
minAngle: 0,
|
||||
selectedOffset: 10,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 1,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'outer'
|
||||
},
|
||||
labelLine: {
|
||||
show: true,
|
||||
length: 20,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
borderColor: 'rgba(0,0,0,0)',
|
||||
borderWidth: 1,
|
||||
label: { show: false },
|
||||
labelLine: {
|
||||
show: false,
|
||||
length: 20,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrMath = require('zrender/tool/math');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
function Pie(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
var self = this;
|
||||
self.shapeHandler.onmouseover = function (param) {
|
||||
var shape = param.target;
|
||||
var seriesIndex = ecData.get(shape, 'seriesIndex');
|
||||
var dataIndex = ecData.get(shape, 'dataIndex');
|
||||
var percent = ecData.get(shape, 'special');
|
||||
var center = [
|
||||
shape.style.x,
|
||||
shape.style.y
|
||||
];
|
||||
var startAngle = shape.style.startAngle;
|
||||
var endAngle = shape.style.endAngle;
|
||||
var midAngle = ((endAngle + startAngle) / 2 + 360) % 360;
|
||||
var defaultColor = shape.highlightStyle.color;
|
||||
var label = self.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, true);
|
||||
if (label) {
|
||||
self.zr.addHoverShape(label);
|
||||
}
|
||||
var labelLine = self.getLabelLine(seriesIndex, dataIndex, center, shape.style.r0, shape.style.r, midAngle, defaultColor, true);
|
||||
if (labelLine) {
|
||||
self.zr.addHoverShape(labelLine);
|
||||
}
|
||||
};
|
||||
this.refresh(option);
|
||||
}
|
||||
Pie.prototype = {
|
||||
type: ecConfig.CHART_TYPE_PIE,
|
||||
_buildShape: function () {
|
||||
var series = this.series;
|
||||
var legend = this.component.legend;
|
||||
this.selectedMap = {};
|
||||
this._selected = {};
|
||||
var center;
|
||||
var radius;
|
||||
var pieCase;
|
||||
this._selectedMode = false;
|
||||
var serieName;
|
||||
for (var i = 0, l = series.length; i < l; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_PIE) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink;
|
||||
serieName = series[i].name || '';
|
||||
this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true;
|
||||
if (!this.selectedMap[serieName]) {
|
||||
continue;
|
||||
}
|
||||
center = this.parseCenter(this.zr, series[i].center);
|
||||
radius = this.parseRadius(this.zr, series[i].radius);
|
||||
this._selectedMode = this._selectedMode || series[i].selectedMode;
|
||||
this._selected[i] = [];
|
||||
if (this.deepQuery([
|
||||
series[i],
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
pieCase = {
|
||||
zlevel: series[i].zlevel,
|
||||
z: series[i].z,
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r0: radius[0] <= 10 ? 0 : radius[0] - 10,
|
||||
r: radius[1] + 10,
|
||||
brushType: 'stroke',
|
||||
lineWidth: 1,
|
||||
strokeColor: series[i].calculableHolderColor || this.ecTheme.calculableHolderColor || ecConfig.calculableHolderColor
|
||||
}
|
||||
};
|
||||
ecData.pack(pieCase, series[i], i, undefined, -1);
|
||||
this.setCalculable(pieCase);
|
||||
pieCase = radius[0] <= 10 ? new CircleShape(pieCase) : new RingShape(pieCase);
|
||||
this.shapeList.push(pieCase);
|
||||
}
|
||||
this._buildSinglePie(i);
|
||||
this.buildMark(i);
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildSinglePie: function (seriesIndex) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data;
|
||||
var legend = this.component.legend;
|
||||
var itemName;
|
||||
var totalSelected = 0;
|
||||
var totalSelectedValue0 = 0;
|
||||
var totalValue = 0;
|
||||
var maxValue = Number.NEGATIVE_INFINITY;
|
||||
var singleShapeList = [];
|
||||
for (var i = 0, l = data.length; i < l; i++) {
|
||||
itemName = data[i].name;
|
||||
this.selectedMap[itemName] = legend ? legend.isSelected(itemName) : true;
|
||||
if (this.selectedMap[itemName] && !isNaN(data[i].value)) {
|
||||
if (+data[i].value !== 0) {
|
||||
totalSelected++;
|
||||
} else {
|
||||
totalSelectedValue0++;
|
||||
}
|
||||
totalValue += +data[i].value;
|
||||
maxValue = Math.max(maxValue, +data[i].value);
|
||||
}
|
||||
}
|
||||
if (totalValue === 0) {
|
||||
return;
|
||||
}
|
||||
var percent = 100;
|
||||
var clockWise = serie.clockWise;
|
||||
var startAngle = (serie.startAngle.toFixed(2) - 0 + 360) % 360;
|
||||
var endAngle;
|
||||
var minAngle = serie.minAngle || 0.01;
|
||||
var totalAngle = 360 - minAngle * totalSelected - 0.01 * totalSelectedValue0;
|
||||
var defaultColor;
|
||||
var roseType = serie.roseType;
|
||||
var center;
|
||||
var radius;
|
||||
var r0;
|
||||
var r1;
|
||||
for (var i = 0, l = data.length; i < l; i++) {
|
||||
itemName = data[i].name;
|
||||
if (!this.selectedMap[itemName] || isNaN(data[i].value)) {
|
||||
continue;
|
||||
}
|
||||
defaultColor = legend ? legend.getColor(itemName) : this.zr.getColor(i);
|
||||
percent = data[i].value / totalValue;
|
||||
if (roseType != 'area') {
|
||||
endAngle = clockWise ? startAngle - percent * totalAngle - (percent !== 0 ? minAngle : 0.01) : percent * totalAngle + startAngle + (percent !== 0 ? minAngle : 0.01);
|
||||
} else {
|
||||
endAngle = clockWise ? startAngle - 360 / l : 360 / l + startAngle;
|
||||
}
|
||||
endAngle = endAngle.toFixed(2) - 0;
|
||||
percent = (percent * 100).toFixed(2);
|
||||
center = this.parseCenter(this.zr, serie.center);
|
||||
radius = this.parseRadius(this.zr, serie.radius);
|
||||
r0 = +radius[0];
|
||||
r1 = +radius[1];
|
||||
if (roseType === 'radius') {
|
||||
r1 = data[i].value / maxValue * (r1 - r0) * 0.8 + (r1 - r0) * 0.2 + r0;
|
||||
} else if (roseType === 'area') {
|
||||
r1 = Math.sqrt(data[i].value / maxValue) * (r1 - r0) + r0;
|
||||
}
|
||||
if (clockWise) {
|
||||
var temp;
|
||||
temp = startAngle;
|
||||
startAngle = endAngle;
|
||||
endAngle = temp;
|
||||
}
|
||||
this._buildItem(singleShapeList, seriesIndex, i, percent, data[i].selected, center, r0, r1, startAngle, endAngle, defaultColor);
|
||||
if (!clockWise) {
|
||||
startAngle = endAngle;
|
||||
}
|
||||
}
|
||||
this._autoLabelLayout(singleShapeList, center, r1);
|
||||
for (var i = 0, l = singleShapeList.length; i < l; i++) {
|
||||
this.shapeList.push(singleShapeList[i]);
|
||||
}
|
||||
singleShapeList = null;
|
||||
},
|
||||
_buildItem: function (singleShapeList, seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) {
|
||||
var series = this.series;
|
||||
var midAngle = ((endAngle + startAngle) / 2 + 360) % 360;
|
||||
var sector = this.getSector(seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor);
|
||||
ecData.pack(sector, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent);
|
||||
singleShapeList.push(sector);
|
||||
var label = this.getLabel(seriesIndex, dataIndex, percent, center, midAngle, defaultColor, false);
|
||||
var labelLine = this.getLabelLine(seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, false);
|
||||
if (labelLine) {
|
||||
ecData.pack(labelLine, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent);
|
||||
singleShapeList.push(labelLine);
|
||||
}
|
||||
if (label) {
|
||||
ecData.pack(label, series[seriesIndex], seriesIndex, series[seriesIndex].data[dataIndex], dataIndex, series[seriesIndex].data[dataIndex].name, percent);
|
||||
label._labelLine = labelLine;
|
||||
singleShapeList.push(label);
|
||||
}
|
||||
},
|
||||
getSector: function (seriesIndex, dataIndex, percent, isSelected, center, r0, r1, startAngle, endAngle, defaultColor) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var queryTarget = [
|
||||
data,
|
||||
serie
|
||||
];
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {};
|
||||
var normalColor = this.getItemStyleColor(normal.color, seriesIndex, dataIndex, data) || defaultColor;
|
||||
var emphasisColor = this.getItemStyleColor(emphasis.color, seriesIndex, dataIndex, data) || (typeof normalColor === 'string' ? zrColor.lift(normalColor, -0.2) : normalColor);
|
||||
var sector = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
clickable: this.deepQuery(queryTarget, 'clickable'),
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r0: r0,
|
||||
r: r1,
|
||||
startAngle: startAngle,
|
||||
endAngle: endAngle,
|
||||
brushType: 'both',
|
||||
color: normalColor,
|
||||
lineWidth: normal.borderWidth,
|
||||
strokeColor: normal.borderColor,
|
||||
lineJoin: 'round'
|
||||
},
|
||||
highlightStyle: {
|
||||
color: emphasisColor,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor,
|
||||
lineJoin: 'round'
|
||||
},
|
||||
_seriesIndex: seriesIndex,
|
||||
_dataIndex: dataIndex
|
||||
};
|
||||
if (isSelected) {
|
||||
var midAngle = ((sector.style.startAngle + sector.style.endAngle) / 2).toFixed(2) - 0;
|
||||
sector.style._hasSelected = true;
|
||||
sector.style._x = sector.style.x;
|
||||
sector.style._y = sector.style.y;
|
||||
var offset = this.query(serie, 'selectedOffset');
|
||||
sector.style.x += zrMath.cos(midAngle, true) * offset;
|
||||
sector.style.y -= zrMath.sin(midAngle, true) * offset;
|
||||
this._selected[seriesIndex][dataIndex] = true;
|
||||
} else {
|
||||
this._selected[seriesIndex][dataIndex] = false;
|
||||
}
|
||||
if (this._selectedMode) {
|
||||
sector.onclick = this.shapeHandler.onclick;
|
||||
}
|
||||
if (this.deepQuery([
|
||||
data,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
this.setCalculable(sector);
|
||||
sector.draggable = true;
|
||||
}
|
||||
if (this._needLabel(serie, data, true) || this._needLabelLine(serie, data, true)) {
|
||||
sector.onmouseover = this.shapeHandler.onmouseover;
|
||||
}
|
||||
sector = new SectorShape(sector);
|
||||
return sector;
|
||||
},
|
||||
getLabel: function (seriesIndex, dataIndex, percent, center, midAngle, defaultColor, isEmphasis) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
if (!this._needLabel(serie, data, isEmphasis)) {
|
||||
return;
|
||||
}
|
||||
var status = isEmphasis ? 'emphasis' : 'normal';
|
||||
var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle);
|
||||
var labelControl = itemStyle[status].label;
|
||||
var textStyle = labelControl.textStyle || {};
|
||||
var centerX = center[0];
|
||||
var centerY = center[1];
|
||||
var x;
|
||||
var y;
|
||||
var radius = this.parseRadius(this.zr, serie.radius);
|
||||
var textAlign;
|
||||
var textBaseline = 'middle';
|
||||
labelControl.position = labelControl.position || itemStyle.normal.label.position;
|
||||
if (labelControl.position === 'center') {
|
||||
x = centerX;
|
||||
y = centerY;
|
||||
textAlign = 'center';
|
||||
} else if (labelControl.position === 'inner' || labelControl.position === 'inside') {
|
||||
radius = (radius[0] + radius[1]) * (labelControl.distance || 0.5);
|
||||
x = Math.round(centerX + radius * zrMath.cos(midAngle, true));
|
||||
y = Math.round(centerY - radius * zrMath.sin(midAngle, true));
|
||||
defaultColor = '#fff';
|
||||
textAlign = 'center';
|
||||
} else {
|
||||
radius = radius[1] - -itemStyle[status].labelLine.length;
|
||||
x = Math.round(centerX + radius * zrMath.cos(midAngle, true));
|
||||
y = Math.round(centerY - radius * zrMath.sin(midAngle, true));
|
||||
textAlign = midAngle >= 90 && midAngle <= 270 ? 'right' : 'left';
|
||||
}
|
||||
if (labelControl.position != 'center' && labelControl.position != 'inner' && labelControl.position != 'inside') {
|
||||
x += textAlign === 'left' ? 20 : -20;
|
||||
}
|
||||
data.__labelX = x - (textAlign === 'left' ? 5 : -5);
|
||||
data.__labelY = y;
|
||||
var ts = new TextShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
hoverable: false,
|
||||
style: {
|
||||
x: x,
|
||||
y: y,
|
||||
color: textStyle.color || defaultColor,
|
||||
text: this.getLabelText(seriesIndex, dataIndex, percent, status),
|
||||
textAlign: textStyle.align || textAlign,
|
||||
textBaseline: textStyle.baseline || textBaseline,
|
||||
textFont: this.getFont(textStyle)
|
||||
},
|
||||
highlightStyle: { brushType: 'fill' }
|
||||
});
|
||||
ts._radius = radius;
|
||||
ts._labelPosition = labelControl.position || 'outer';
|
||||
ts._rect = ts.getRect(ts.style);
|
||||
ts._seriesIndex = seriesIndex;
|
||||
ts._dataIndex = dataIndex;
|
||||
return ts;
|
||||
},
|
||||
getLabelText: function (seriesIndex, dataIndex, percent, status) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
var formatter = this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'itemStyle.' + status + '.label.formatter');
|
||||
if (formatter) {
|
||||
if (typeof formatter === 'function') {
|
||||
return formatter.call(this.myChart, {
|
||||
seriesIndex: seriesIndex,
|
||||
seriesName: serie.name || '',
|
||||
series: serie,
|
||||
dataIndex: dataIndex,
|
||||
data: data,
|
||||
name: data.name,
|
||||
value: data.value,
|
||||
percent: percent
|
||||
});
|
||||
} else if (typeof formatter === 'string') {
|
||||
formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}').replace('{d}', '{d0}');
|
||||
formatter = formatter.replace('{a0}', serie.name).replace('{b0}', data.name).replace('{c0}', data.value).replace('{d0}', percent);
|
||||
return formatter;
|
||||
}
|
||||
} else {
|
||||
return data.name;
|
||||
}
|
||||
},
|
||||
getLabelLine: function (seriesIndex, dataIndex, center, r0, r1, midAngle, defaultColor, isEmphasis) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var data = serie.data[dataIndex];
|
||||
if (this._needLabelLine(serie, data, isEmphasis)) {
|
||||
var status = isEmphasis ? 'emphasis' : 'normal';
|
||||
var itemStyle = zrUtil.merge(zrUtil.clone(data.itemStyle) || {}, serie.itemStyle);
|
||||
var labelLineControl = itemStyle[status].labelLine;
|
||||
var lineStyle = labelLineControl.lineStyle || {};
|
||||
var centerX = center[0];
|
||||
var centerY = center[1];
|
||||
var minRadius = r1;
|
||||
var maxRadius = this.parseRadius(this.zr, serie.radius)[1] - -labelLineControl.length;
|
||||
var cosValue = zrMath.cos(midAngle, true);
|
||||
var sinValue = zrMath.sin(midAngle, true);
|
||||
return new PolylineShape({
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z + 1,
|
||||
hoverable: false,
|
||||
style: {
|
||||
pointList: [
|
||||
[
|
||||
centerX + minRadius * cosValue,
|
||||
centerY - minRadius * sinValue
|
||||
],
|
||||
[
|
||||
centerX + maxRadius * cosValue,
|
||||
centerY - maxRadius * sinValue
|
||||
],
|
||||
[
|
||||
data.__labelX,
|
||||
data.__labelY
|
||||
]
|
||||
],
|
||||
strokeColor: lineStyle.color || defaultColor,
|
||||
lineType: lineStyle.type,
|
||||
lineWidth: lineStyle.width
|
||||
},
|
||||
_seriesIndex: seriesIndex,
|
||||
_dataIndex: dataIndex
|
||||
});
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
},
|
||||
_needLabel: function (serie, data, isEmphasis) {
|
||||
return this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.label.show');
|
||||
},
|
||||
_needLabelLine: function (serie, data, isEmphasis) {
|
||||
return this.deepQuery([
|
||||
data,
|
||||
serie
|
||||
], 'itemStyle.' + (isEmphasis ? 'emphasis' : 'normal') + '.labelLine.show');
|
||||
},
|
||||
_autoLabelLayout: function (sList, center, r) {
|
||||
var leftList = [];
|
||||
var rightList = [];
|
||||
for (var i = 0, l = sList.length; i < l; i++) {
|
||||
if (sList[i]._labelPosition === 'outer' || sList[i]._labelPosition === 'outside') {
|
||||
sList[i]._rect._y = sList[i]._rect.y;
|
||||
if (sList[i]._rect.x < center[0]) {
|
||||
leftList.push(sList[i]);
|
||||
} else {
|
||||
rightList.push(sList[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
this._layoutCalculate(leftList, center, r, -1);
|
||||
this._layoutCalculate(rightList, center, r, 1);
|
||||
},
|
||||
_layoutCalculate: function (tList, center, r, direction) {
|
||||
tList.sort(function (a, b) {
|
||||
return a._rect.y - b._rect.y;
|
||||
});
|
||||
function _changeDown(start, end, delta, direction) {
|
||||
for (var j = start; j < end; j++) {
|
||||
tList[j]._rect.y += delta;
|
||||
tList[j].style.y += delta;
|
||||
if (tList[j]._labelLine) {
|
||||
tList[j]._labelLine.style.pointList[1][1] += delta;
|
||||
tList[j]._labelLine.style.pointList[2][1] += delta;
|
||||
}
|
||||
if (j > start && j + 1 < end && tList[j + 1]._rect.y > tList[j]._rect.y + tList[j]._rect.height) {
|
||||
_changeUp(j, delta / 2);
|
||||
return;
|
||||
}
|
||||
}
|
||||
_changeUp(end - 1, delta / 2);
|
||||
}
|
||||
function _changeUp(end, delta) {
|
||||
for (var j = end; j >= 0; j--) {
|
||||
tList[j]._rect.y -= delta;
|
||||
tList[j].style.y -= delta;
|
||||
if (tList[j]._labelLine) {
|
||||
tList[j]._labelLine.style.pointList[1][1] -= delta;
|
||||
tList[j]._labelLine.style.pointList[2][1] -= delta;
|
||||
}
|
||||
if (j > 0 && tList[j]._rect.y > tList[j - 1]._rect.y + tList[j - 1]._rect.height) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
function _changeX(sList, isDownList, center, r, direction) {
|
||||
var x = center[0];
|
||||
var y = center[1];
|
||||
var deltaX;
|
||||
var deltaY;
|
||||
var length;
|
||||
var lastDeltaX = direction > 0 ? isDownList ? Number.MAX_VALUE : 0 : isDownList ? Number.MAX_VALUE : 0;
|
||||
for (var i = 0, l = sList.length; i < l; i++) {
|
||||
deltaY = Math.abs(sList[i]._rect.y - y);
|
||||
length = sList[i]._radius - r;
|
||||
deltaX = deltaY < r + length ? Math.sqrt((r + length + 20) * (r + length + 20) - Math.pow(sList[i]._rect.y - y, 2)) : Math.abs(sList[i]._rect.x + (direction > 0 ? 0 : sList[i]._rect.width) - x);
|
||||
if (isDownList && deltaX >= lastDeltaX) {
|
||||
deltaX = lastDeltaX - 10;
|
||||
}
|
||||
if (!isDownList && deltaX <= lastDeltaX) {
|
||||
deltaX = lastDeltaX + 10;
|
||||
}
|
||||
sList[i]._rect.x = sList[i].style.x = x + deltaX * direction;
|
||||
if (sList[i]._labelLine) {
|
||||
sList[i]._labelLine.style.pointList[2][0] = x + (deltaX - 5) * direction;
|
||||
sList[i]._labelLine.style.pointList[1][0] = x + (deltaX - 20) * direction;
|
||||
}
|
||||
lastDeltaX = deltaX;
|
||||
}
|
||||
}
|
||||
var lastY = 0;
|
||||
var delta;
|
||||
var len = tList.length;
|
||||
var upList = [];
|
||||
var downList = [];
|
||||
for (var i = 0; i < len; i++) {
|
||||
delta = tList[i]._rect.y - lastY;
|
||||
if (delta < 0) {
|
||||
_changeDown(i, len, -delta, direction);
|
||||
}
|
||||
lastY = tList[i]._rect.y + tList[i]._rect.height;
|
||||
}
|
||||
if (this.zr.getHeight() - lastY < 0) {
|
||||
_changeUp(len - 1, lastY - this.zr.getHeight());
|
||||
}
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (tList[i]._rect.y >= center[1]) {
|
||||
downList.push(tList[i]);
|
||||
} else {
|
||||
upList.push(tList[i]);
|
||||
}
|
||||
}
|
||||
_changeX(downList, true, center, r, direction);
|
||||
_changeX(upList, false, center, r, direction);
|
||||
},
|
||||
reformOption: function (opt) {
|
||||
var _merge = zrUtil.merge;
|
||||
opt = _merge(_merge(opt || {}, zrUtil.clone(this.ecTheme.pie || {})), zrUtil.clone(ecConfig.pie));
|
||||
opt.itemStyle.normal.label.textStyle = this.getTextStyle(opt.itemStyle.normal.label.textStyle);
|
||||
opt.itemStyle.emphasis.label.textStyle = this.getTextStyle(opt.itemStyle.emphasis.label.textStyle);
|
||||
this.z = opt.z;
|
||||
this.zlevel = opt.zlevel;
|
||||
return opt;
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
},
|
||||
addDataAnimation: function (params, done) {
|
||||
var series = this.series;
|
||||
var aniMap = {};
|
||||
for (var i = 0, l = params.length; i < l; i++) {
|
||||
aniMap[params[i][0]] = params[i];
|
||||
}
|
||||
var aniCount = 0;
|
||||
function animationDone() {
|
||||
aniCount--;
|
||||
if (aniCount === 0) {
|
||||
done && done();
|
||||
}
|
||||
}
|
||||
var sectorMap = {};
|
||||
var textMap = {};
|
||||
var lineMap = {};
|
||||
var backupShapeList = this.shapeList;
|
||||
this.shapeList = [];
|
||||
var seriesIndex;
|
||||
var isHead;
|
||||
var dataGrow;
|
||||
var deltaIdxMap = {};
|
||||
for (var i = 0, l = params.length; i < l; i++) {
|
||||
seriesIndex = params[i][0];
|
||||
isHead = params[i][2];
|
||||
dataGrow = params[i][3];
|
||||
if (series[seriesIndex] && series[seriesIndex].type === ecConfig.CHART_TYPE_PIE) {
|
||||
if (isHead) {
|
||||
if (!dataGrow) {
|
||||
sectorMap[seriesIndex + '_' + series[seriesIndex].data.length] = 'delete';
|
||||
}
|
||||
deltaIdxMap[seriesIndex] = 1;
|
||||
} else {
|
||||
if (!dataGrow) {
|
||||
sectorMap[seriesIndex + '_-1'] = 'delete';
|
||||
deltaIdxMap[seriesIndex] = -1;
|
||||
} else {
|
||||
deltaIdxMap[seriesIndex] = 0;
|
||||
}
|
||||
}
|
||||
this._buildSinglePie(seriesIndex);
|
||||
}
|
||||
}
|
||||
var dataIndex;
|
||||
var key;
|
||||
for (var i = 0, l = this.shapeList.length; i < l; i++) {
|
||||
seriesIndex = this.shapeList[i]._seriesIndex;
|
||||
dataIndex = this.shapeList[i]._dataIndex;
|
||||
key = seriesIndex + '_' + dataIndex;
|
||||
switch (this.shapeList[i].type) {
|
||||
case 'sector':
|
||||
sectorMap[key] = this.shapeList[i];
|
||||
break;
|
||||
case 'text':
|
||||
textMap[key] = this.shapeList[i];
|
||||
break;
|
||||
case 'polyline':
|
||||
lineMap[key] = this.shapeList[i];
|
||||
break;
|
||||
}
|
||||
}
|
||||
this.shapeList = [];
|
||||
var targeSector;
|
||||
for (var i = 0, l = backupShapeList.length; i < l; i++) {
|
||||
seriesIndex = backupShapeList[i]._seriesIndex;
|
||||
if (aniMap[seriesIndex]) {
|
||||
dataIndex = backupShapeList[i]._dataIndex + deltaIdxMap[seriesIndex];
|
||||
key = seriesIndex + '_' + dataIndex;
|
||||
targeSector = sectorMap[key];
|
||||
if (!targeSector) {
|
||||
continue;
|
||||
}
|
||||
if (backupShapeList[i].type === 'sector') {
|
||||
if (targeSector != 'delete') {
|
||||
aniCount++;
|
||||
this.zr.animate(backupShapeList[i].id, 'style').when(400, {
|
||||
startAngle: targeSector.style.startAngle,
|
||||
endAngle: targeSector.style.endAngle
|
||||
}).done(animationDone).start();
|
||||
} else {
|
||||
aniCount++;
|
||||
this.zr.animate(backupShapeList[i].id, 'style').when(400, deltaIdxMap[seriesIndex] < 0 ? { startAngle: backupShapeList[i].style.startAngle } : { endAngle: backupShapeList[i].style.endAngle }).done(animationDone).start();
|
||||
}
|
||||
} else if (backupShapeList[i].type === 'text' || backupShapeList[i].type === 'polyline') {
|
||||
if (targeSector === 'delete') {
|
||||
this.zr.delShape(backupShapeList[i].id);
|
||||
} else {
|
||||
switch (backupShapeList[i].type) {
|
||||
case 'text':
|
||||
aniCount++;
|
||||
targeSector = textMap[key];
|
||||
this.zr.animate(backupShapeList[i].id, 'style').when(400, {
|
||||
x: targeSector.style.x,
|
||||
y: targeSector.style.y
|
||||
}).done(animationDone).start();
|
||||
break;
|
||||
case 'polyline':
|
||||
aniCount++;
|
||||
targeSector = lineMap[key];
|
||||
this.zr.animate(backupShapeList[i].id, 'style').when(400, { pointList: targeSector.style.pointList }).done(animationDone).start();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
this.shapeList = backupShapeList;
|
||||
if (!aniCount) {
|
||||
done && done();
|
||||
}
|
||||
},
|
||||
onclick: function (param) {
|
||||
var series = this.series;
|
||||
if (!this.isClick || !param.target) {
|
||||
return;
|
||||
}
|
||||
this.isClick = false;
|
||||
var offset;
|
||||
var target = param.target;
|
||||
var style = target.style;
|
||||
var seriesIndex = ecData.get(target, 'seriesIndex');
|
||||
var dataIndex = ecData.get(target, 'dataIndex');
|
||||
for (var i = 0, len = this.shapeList.length; i < len; i++) {
|
||||
if (this.shapeList[i].id === target.id) {
|
||||
seriesIndex = ecData.get(target, 'seriesIndex');
|
||||
dataIndex = ecData.get(target, 'dataIndex');
|
||||
if (!style._hasSelected) {
|
||||
var midAngle = ((style.startAngle + style.endAngle) / 2).toFixed(2) - 0;
|
||||
target.style._hasSelected = true;
|
||||
this._selected[seriesIndex][dataIndex] = true;
|
||||
target.style._x = target.style.x;
|
||||
target.style._y = target.style.y;
|
||||
offset = this.query(series[seriesIndex], 'selectedOffset');
|
||||
target.style.x += zrMath.cos(midAngle, true) * offset;
|
||||
target.style.y -= zrMath.sin(midAngle, true) * offset;
|
||||
} else {
|
||||
target.style.x = target.style._x;
|
||||
target.style.y = target.style._y;
|
||||
target.style._hasSelected = false;
|
||||
this._selected[seriesIndex][dataIndex] = false;
|
||||
}
|
||||
this.zr.modShape(target.id);
|
||||
} else if (this.shapeList[i].style._hasSelected && this._selectedMode === 'single') {
|
||||
seriesIndex = ecData.get(this.shapeList[i], 'seriesIndex');
|
||||
dataIndex = ecData.get(this.shapeList[i], 'dataIndex');
|
||||
this.shapeList[i].style.x = this.shapeList[i].style._x;
|
||||
this.shapeList[i].style.y = this.shapeList[i].style._y;
|
||||
this.shapeList[i].style._hasSelected = false;
|
||||
this._selected[seriesIndex][dataIndex] = false;
|
||||
this.zr.modShape(this.shapeList[i].id);
|
||||
}
|
||||
}
|
||||
this.messageCenter.dispatch(ecConfig.EVENT.PIE_SELECTED, param.event, {
|
||||
selected: this._selected,
|
||||
target: ecData.get(target, 'name')
|
||||
}, this.myChart);
|
||||
this.zr.refreshNextFrame();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Pie, ChartBase);
|
||||
require('../chart').define('pie', Pie);
|
||||
return Pie;
|
||||
});
|
||||
@ -0,0 +1,942 @@
|
||||
define('echarts/chart/radar', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Polygon',
|
||||
'../component/polar',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'../util/accMath',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var PolygonShape = require('zrender/shape/Polygon');
|
||||
require('../component/polar');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.radar = {
|
||||
zlevel: 0,
|
||||
z: 2,
|
||||
clickable: true,
|
||||
legendHoverLink: true,
|
||||
polarIndex: 0,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: { show: false },
|
||||
lineStyle: {
|
||||
width: 2,
|
||||
type: 'solid'
|
||||
}
|
||||
},
|
||||
emphasis: { label: { show: false } }
|
||||
},
|
||||
symbolSize: 2
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
function Radar(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Radar.prototype = {
|
||||
type: ecConfig.CHART_TYPE_RADAR,
|
||||
_buildShape: function () {
|
||||
this.selectedMap = {};
|
||||
this._symbol = this.option.symbolList;
|
||||
this._queryTarget;
|
||||
this._dropBoxList = [];
|
||||
this._radarDataCounter = 0;
|
||||
var series = this.series;
|
||||
var legend = this.component.legend;
|
||||
var serieName;
|
||||
for (var i = 0, l = series.length; i < l; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_RADAR) {
|
||||
this.serie = this.reformOption(series[i]);
|
||||
this.legendHoverLink = series[i].legendHoverLink || this.legendHoverLink;
|
||||
serieName = this.serie.name || '';
|
||||
this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true;
|
||||
if (this.selectedMap[serieName]) {
|
||||
this._queryTarget = [
|
||||
this.serie,
|
||||
this.option
|
||||
];
|
||||
if (this.deepQuery(this._queryTarget, 'calculable')) {
|
||||
this._addDropBox(i);
|
||||
}
|
||||
this._buildSingleRadar(i);
|
||||
this.buildMark(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildSingleRadar: function (index) {
|
||||
var legend = this.component.legend;
|
||||
var iconShape;
|
||||
var data = this.serie.data;
|
||||
var defaultColor;
|
||||
var name;
|
||||
var pointList;
|
||||
var calculable = this.deepQuery(this._queryTarget, 'calculable');
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
name = data[i].name || '';
|
||||
this.selectedMap[name] = legend ? legend.isSelected(name) : true;
|
||||
if (!this.selectedMap[name]) {
|
||||
continue;
|
||||
}
|
||||
if (legend) {
|
||||
defaultColor = legend.getColor(name);
|
||||
iconShape = legend.getItemShape(name);
|
||||
if (iconShape) {
|
||||
iconShape.style.brushType = this.deepQuery([
|
||||
data[i],
|
||||
this.serie
|
||||
], 'itemStyle.normal.areaStyle') ? 'both' : 'stroke';
|
||||
legend.setItemShape(name, iconShape);
|
||||
}
|
||||
} else {
|
||||
defaultColor = this.zr.getColor(i);
|
||||
}
|
||||
pointList = this._getPointList(this.serie.polarIndex, data[i]);
|
||||
this._addSymbol(pointList, defaultColor, i, index, this.serie.polarIndex);
|
||||
this._addDataShape(pointList, defaultColor, data[i], index, i, calculable);
|
||||
this._radarDataCounter++;
|
||||
}
|
||||
},
|
||||
_getPointList: function (polarIndex, dataArr) {
|
||||
var pointList = [];
|
||||
var vector;
|
||||
var polar = this.component.polar;
|
||||
var value;
|
||||
for (var i = 0, l = dataArr.value.length; i < l; i++) {
|
||||
value = this.getDataFromOption(dataArr.value[i]);
|
||||
vector = value != '-' ? polar.getVector(polarIndex, i, value) : false;
|
||||
if (vector) {
|
||||
pointList.push(vector);
|
||||
}
|
||||
}
|
||||
return pointList;
|
||||
},
|
||||
_addSymbol: function (pointList, defaultColor, dataIndex, seriesIndex, polarIndex) {
|
||||
var series = this.series;
|
||||
var itemShape;
|
||||
var polar = this.component.polar;
|
||||
for (var i = 0, l = pointList.length; i < l; i++) {
|
||||
itemShape = this.getSymbolShape(this.deepMerge([
|
||||
series[seriesIndex].data[dataIndex],
|
||||
series[seriesIndex]
|
||||
]), seriesIndex, series[seriesIndex].data[dataIndex].value[i], i, polar.getIndicatorText(polarIndex, i), pointList[i][0], pointList[i][1], this._symbol[this._radarDataCounter % this._symbol.length], defaultColor, '#fff', 'vertical');
|
||||
itemShape.zlevel = this.getZlevelBase();
|
||||
itemShape.z = this.getZBase() + 1;
|
||||
ecData.set(itemShape, 'data', series[seriesIndex].data[dataIndex]);
|
||||
ecData.set(itemShape, 'value', series[seriesIndex].data[dataIndex].value);
|
||||
ecData.set(itemShape, 'dataIndex', dataIndex);
|
||||
ecData.set(itemShape, 'special', i);
|
||||
this.shapeList.push(itemShape);
|
||||
}
|
||||
},
|
||||
_addDataShape: function (pointList, defaultColor, data, seriesIndex, dataIndex, calculable) {
|
||||
var series = this.series;
|
||||
var queryTarget = [
|
||||
data,
|
||||
this.serie
|
||||
];
|
||||
var nColor = this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.normal.color'), seriesIndex, dataIndex, data);
|
||||
var nLineWidth = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.width');
|
||||
var nLineType = this.deepQuery(queryTarget, 'itemStyle.normal.lineStyle.type');
|
||||
var nAreaColor = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle.color');
|
||||
var nIsAreaFill = this.deepQuery(queryTarget, 'itemStyle.normal.areaStyle');
|
||||
var shape = {
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: {
|
||||
pointList: pointList,
|
||||
brushType: nIsAreaFill ? 'both' : 'stroke',
|
||||
color: nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor),
|
||||
strokeColor: nColor || defaultColor,
|
||||
lineWidth: nLineWidth,
|
||||
lineType: nLineType
|
||||
},
|
||||
highlightStyle: {
|
||||
brushType: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle') || nIsAreaFill ? 'both' : 'stroke',
|
||||
color: this.deepQuery(queryTarget, 'itemStyle.emphasis.areaStyle.color') || nAreaColor || nColor || (typeof defaultColor === 'string' ? zrColor.alpha(defaultColor, 0.5) : defaultColor),
|
||||
strokeColor: this.getItemStyleColor(this.deepQuery(queryTarget, 'itemStyle.emphasis.color'), seriesIndex, dataIndex, data) || nColor || defaultColor,
|
||||
lineWidth: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.width') || nLineWidth,
|
||||
lineType: this.deepQuery(queryTarget, 'itemStyle.emphasis.lineStyle.type') || nLineType
|
||||
}
|
||||
};
|
||||
ecData.pack(shape, series[seriesIndex], seriesIndex, data, dataIndex, data.name, this.component.polar.getIndicator(series[seriesIndex].polarIndex));
|
||||
if (calculable) {
|
||||
shape.draggable = true;
|
||||
this.setCalculable(shape);
|
||||
}
|
||||
shape = new PolygonShape(shape);
|
||||
this.shapeList.push(shape);
|
||||
},
|
||||
_addDropBox: function (index) {
|
||||
var series = this.series;
|
||||
var polarIndex = this.deepQuery(this._queryTarget, 'polarIndex');
|
||||
if (!this._dropBoxList[polarIndex]) {
|
||||
var shape = this.component.polar.getDropBox(polarIndex);
|
||||
shape.zlevel = this.getZlevelBase();
|
||||
shape.z = this.getZBase();
|
||||
this.setCalculable(shape);
|
||||
ecData.pack(shape, series, index, undefined, -1);
|
||||
this.shapeList.push(shape);
|
||||
this._dropBoxList[polarIndex] = true;
|
||||
}
|
||||
},
|
||||
ondragend: function (param, status) {
|
||||
var series = this.series;
|
||||
if (!this.isDragend || !param.target) {
|
||||
return;
|
||||
}
|
||||
var target = param.target;
|
||||
var seriesIndex = ecData.get(target, 'seriesIndex');
|
||||
var dataIndex = ecData.get(target, 'dataIndex');
|
||||
this.component.legend && this.component.legend.del(series[seriesIndex].data[dataIndex].name);
|
||||
series[seriesIndex].data.splice(dataIndex, 1);
|
||||
status.dragOut = true;
|
||||
status.needRefresh = true;
|
||||
this.isDragend = false;
|
||||
return;
|
||||
},
|
||||
ondrop: function (param, status) {
|
||||
var series = this.series;
|
||||
if (!this.isDrop || !param.target) {
|
||||
return;
|
||||
}
|
||||
var target = param.target;
|
||||
var dragged = param.dragged;
|
||||
var seriesIndex = ecData.get(target, 'seriesIndex');
|
||||
var dataIndex = ecData.get(target, 'dataIndex');
|
||||
var data;
|
||||
var legend = this.component.legend;
|
||||
var value;
|
||||
if (dataIndex === -1) {
|
||||
data = {
|
||||
value: ecData.get(dragged, 'value'),
|
||||
name: ecData.get(dragged, 'name')
|
||||
};
|
||||
series[seriesIndex].data.push(data);
|
||||
legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor);
|
||||
} else {
|
||||
var accMath = require('../util/accMath');
|
||||
data = series[seriesIndex].data[dataIndex];
|
||||
legend && legend.del(data.name);
|
||||
data.name += this.option.nameConnector + ecData.get(dragged, 'name');
|
||||
value = ecData.get(dragged, 'value');
|
||||
for (var i = 0; i < value.length; i++) {
|
||||
data.value[i] = accMath.accAdd(data.value[i], value[i]);
|
||||
}
|
||||
legend && legend.add(data.name, dragged.style.color || dragged.style.strokeColor);
|
||||
}
|
||||
status.dragIn = status.dragIn || true;
|
||||
this.isDrop = false;
|
||||
return;
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this.backupShapeList();
|
||||
this._buildShape();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Radar, ChartBase);
|
||||
require('../chart').define('radar', Radar);
|
||||
return Radar;
|
||||
});define('echarts/component/polar', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Text',
|
||||
'zrender/shape/Line',
|
||||
'zrender/shape/Polygon',
|
||||
'zrender/shape/Circle',
|
||||
'zrender/shape/Ring',
|
||||
'../config',
|
||||
'zrender/tool/util',
|
||||
'../util/coordinates',
|
||||
'../util/accMath',
|
||||
'../util/smartSteps',
|
||||
'../component'
|
||||
], function (require) {
|
||||
var Base = require('./base');
|
||||
var TextShape = require('zrender/shape/Text');
|
||||
var LineShape = require('zrender/shape/Line');
|
||||
var PolygonShape = require('zrender/shape/Polygon');
|
||||
var Circle = require('zrender/shape/Circle');
|
||||
var Ring = require('zrender/shape/Ring');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.polar = {
|
||||
zlevel: 0,
|
||||
z: 0,
|
||||
center: [
|
||||
'50%',
|
||||
'50%'
|
||||
],
|
||||
radius: '75%',
|
||||
startAngle: 90,
|
||||
boundaryGap: [
|
||||
0,
|
||||
0
|
||||
],
|
||||
splitNumber: 5,
|
||||
name: {
|
||||
show: true,
|
||||
textStyle: { color: '#333' }
|
||||
},
|
||||
axisLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
color: '#ccc',
|
||||
width: 1,
|
||||
type: 'solid'
|
||||
}
|
||||
},
|
||||
axisLabel: {
|
||||
show: false,
|
||||
textStyle: { color: '#333' }
|
||||
},
|
||||
splitArea: {
|
||||
show: true,
|
||||
areaStyle: {
|
||||
color: [
|
||||
'rgba(250,250,250,0.3)',
|
||||
'rgba(200,200,200,0.3)'
|
||||
]
|
||||
}
|
||||
},
|
||||
splitLine: {
|
||||
show: true,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
color: '#ccc'
|
||||
}
|
||||
},
|
||||
type: 'polygon'
|
||||
};
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var ecCoordinates = require('../util/coordinates');
|
||||
function Polar(ecTheme, messageCenter, zr, option, myChart) {
|
||||
Base.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Polar.prototype = {
|
||||
type: ecConfig.COMPONENT_TYPE_POLAR,
|
||||
_buildShape: function () {
|
||||
for (var i = 0; i < this.polar.length; i++) {
|
||||
this._index = i;
|
||||
this.reformOption(this.polar[i]);
|
||||
this._queryTarget = [
|
||||
this.polar[i],
|
||||
this.option
|
||||
];
|
||||
this._createVector(i);
|
||||
this._buildSpiderWeb(i);
|
||||
this._buildText(i);
|
||||
this._adjustIndicatorValue(i);
|
||||
this._addAxisLabel(i);
|
||||
}
|
||||
for (var i = 0; i < this.shapeList.length; i++) {
|
||||
this.zr.addShape(this.shapeList[i]);
|
||||
}
|
||||
},
|
||||
_createVector: function (index) {
|
||||
var item = this.polar[index];
|
||||
var indicator = this.deepQuery(this._queryTarget, 'indicator');
|
||||
var length = indicator.length;
|
||||
var startAngle = item.startAngle;
|
||||
var dStep = 2 * Math.PI / length;
|
||||
var radius = this._getRadius();
|
||||
var __ecIndicator = item.__ecIndicator = [];
|
||||
var vector;
|
||||
for (var i = 0; i < length; i++) {
|
||||
vector = ecCoordinates.polar2cartesian(radius, startAngle * Math.PI / 180 + dStep * i);
|
||||
__ecIndicator.push({
|
||||
vector: [
|
||||
vector[1],
|
||||
-vector[0]
|
||||
]
|
||||
});
|
||||
}
|
||||
},
|
||||
_getRadius: function () {
|
||||
var item = this.polar[this._index];
|
||||
return this.parsePercent(item.radius, Math.min(this.zr.getWidth(), this.zr.getHeight()) / 2);
|
||||
},
|
||||
_buildSpiderWeb: function (index) {
|
||||
var item = this.polar[index];
|
||||
var __ecIndicator = item.__ecIndicator;
|
||||
var splitArea = item.splitArea;
|
||||
var splitLine = item.splitLine;
|
||||
var center = this.getCenter(index);
|
||||
var splitNumber = item.splitNumber;
|
||||
var strokeColor = splitLine.lineStyle.color;
|
||||
var lineWidth = splitLine.lineStyle.width;
|
||||
var show = splitLine.show;
|
||||
var axisLine = this.deepQuery(this._queryTarget, 'axisLine');
|
||||
this._addArea(__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show);
|
||||
axisLine.show && this._addLine(__ecIndicator, center, axisLine);
|
||||
},
|
||||
_addAxisLabel: function (index) {
|
||||
var accMath = require('../util/accMath');
|
||||
var item = this.polar[index];
|
||||
var indicator = this.deepQuery(this._queryTarget, 'indicator');
|
||||
var __ecIndicator = item.__ecIndicator;
|
||||
var axisLabel;
|
||||
var vector;
|
||||
var style;
|
||||
var newStyle;
|
||||
var splitNumber = this.deepQuery(this._queryTarget, 'splitNumber');
|
||||
var center = this.getCenter(index);
|
||||
var vector;
|
||||
var value;
|
||||
var text;
|
||||
var theta;
|
||||
var offset;
|
||||
var interval;
|
||||
for (var i = 0; i < indicator.length; i++) {
|
||||
axisLabel = this.deepQuery([
|
||||
indicator[i],
|
||||
item,
|
||||
this.option
|
||||
], 'axisLabel');
|
||||
if (axisLabel.show) {
|
||||
var textStyle = this.deepQuery([
|
||||
axisLabel,
|
||||
item,
|
||||
this.option
|
||||
], 'textStyle');
|
||||
var formatter = this.deepQuery([
|
||||
axisLabel,
|
||||
item
|
||||
], 'formatter');
|
||||
style = {};
|
||||
style.textFont = this.getFont(textStyle);
|
||||
style.color = textStyle.color;
|
||||
style = zrUtil.merge(style, axisLabel);
|
||||
style.lineWidth = style.width;
|
||||
vector = __ecIndicator[i].vector;
|
||||
value = __ecIndicator[i].value;
|
||||
theta = i / indicator.length * 2 * Math.PI;
|
||||
offset = axisLabel.offset || 10;
|
||||
interval = axisLabel.interval || 0;
|
||||
if (!value) {
|
||||
return;
|
||||
}
|
||||
for (var j = 1; j <= splitNumber; j += interval + 1) {
|
||||
newStyle = zrUtil.merge({}, style);
|
||||
text = accMath.accAdd(value.min, accMath.accMul(value.step, j));
|
||||
if (typeof formatter === 'function') {
|
||||
text = formatter(text);
|
||||
} else if (typeof formatter === 'string') {
|
||||
text = formatter.replace('{a}', '{a0}').replace('{a0}', text);
|
||||
} else {
|
||||
text = this.numAddCommas(text);
|
||||
}
|
||||
newStyle.text = text;
|
||||
newStyle.x = j * vector[0] / splitNumber + Math.cos(theta) * offset + center[0];
|
||||
newStyle.y = j * vector[1] / splitNumber + Math.sin(theta) * offset + center[1];
|
||||
this.shapeList.push(new TextShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: newStyle,
|
||||
draggable: false,
|
||||
hoverable: false
|
||||
}));
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
_buildText: function (index) {
|
||||
var item = this.polar[index];
|
||||
var __ecIndicator = item.__ecIndicator;
|
||||
var vector;
|
||||
var indicator = this.deepQuery(this._queryTarget, 'indicator');
|
||||
var center = this.getCenter(index);
|
||||
var style;
|
||||
var textAlign;
|
||||
var name;
|
||||
var rotation;
|
||||
var x = 0;
|
||||
var y = 0;
|
||||
var margin;
|
||||
var textStyle;
|
||||
for (var i = 0; i < indicator.length; i++) {
|
||||
name = this.deepQuery([
|
||||
indicator[i],
|
||||
item,
|
||||
this.option
|
||||
], 'name');
|
||||
if (!name.show) {
|
||||
continue;
|
||||
}
|
||||
textStyle = this.deepQuery([
|
||||
name,
|
||||
item,
|
||||
this.option
|
||||
], 'textStyle');
|
||||
style = {};
|
||||
style.textFont = this.getFont(textStyle);
|
||||
style.color = textStyle.color;
|
||||
if (typeof name.formatter == 'function') {
|
||||
style.text = name.formatter.call(this.myChart, indicator[i].text, i);
|
||||
} else if (typeof name.formatter == 'string') {
|
||||
style.text = name.formatter.replace('{value}', indicator[i].text);
|
||||
} else {
|
||||
style.text = indicator[i].text;
|
||||
}
|
||||
__ecIndicator[i].text = style.text;
|
||||
vector = __ecIndicator[i].vector;
|
||||
if (Math.round(vector[0]) > 0) {
|
||||
textAlign = 'left';
|
||||
} else if (Math.round(vector[0]) < 0) {
|
||||
textAlign = 'right';
|
||||
} else {
|
||||
textAlign = 'center';
|
||||
}
|
||||
if (name.margin == null) {
|
||||
vector = this._mapVector(vector, center, 1.1);
|
||||
} else {
|
||||
margin = name.margin;
|
||||
x = vector[0] > 0 ? margin : -margin;
|
||||
y = vector[1] > 0 ? margin : -margin;
|
||||
x = vector[0] === 0 ? 0 : x;
|
||||
y = vector[1] === 0 ? 0 : y;
|
||||
vector = this._mapVector(vector, center, 1);
|
||||
}
|
||||
style.textAlign = textAlign;
|
||||
style.x = vector[0] + x;
|
||||
style.y = vector[1] + y;
|
||||
if (name.rotate) {
|
||||
rotation = [
|
||||
name.rotate / 180 * Math.PI,
|
||||
vector[0],
|
||||
vector[1]
|
||||
];
|
||||
} else {
|
||||
rotation = [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
];
|
||||
}
|
||||
this.shapeList.push(new TextShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: style,
|
||||
draggable: false,
|
||||
hoverable: false,
|
||||
rotation: rotation
|
||||
}));
|
||||
}
|
||||
},
|
||||
getIndicatorText: function (polarIndex, indicatorIndex) {
|
||||
return this.polar[polarIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex] && this.polar[polarIndex].__ecIndicator[indicatorIndex].text;
|
||||
},
|
||||
getDropBox: function (index) {
|
||||
var index = index || 0;
|
||||
var item = this.polar[index];
|
||||
var center = this.getCenter(index);
|
||||
var __ecIndicator = item.__ecIndicator;
|
||||
var len = __ecIndicator.length;
|
||||
var pointList = [];
|
||||
var vector;
|
||||
var shape;
|
||||
var type = item.type;
|
||||
if (type == 'polygon') {
|
||||
for (var i = 0; i < len; i++) {
|
||||
vector = __ecIndicator[i].vector;
|
||||
pointList.push(this._mapVector(vector, center, 1.2));
|
||||
}
|
||||
shape = this._getShape(pointList, 'fill', 'rgba(0,0,0,0)', '', 1);
|
||||
} else if (type == 'circle') {
|
||||
shape = this._getCircle('', 1, 1.2, center, 'fill', 'rgba(0,0,0,0)');
|
||||
}
|
||||
return shape;
|
||||
},
|
||||
_addArea: function (__ecIndicator, splitNumber, center, splitArea, strokeColor, lineWidth, show) {
|
||||
var shape;
|
||||
var scale;
|
||||
var scale1;
|
||||
var pointList;
|
||||
var type = this.deepQuery(this._queryTarget, 'type');
|
||||
for (var i = 0; i < splitNumber; i++) {
|
||||
scale = (splitNumber - i) / splitNumber;
|
||||
if (show) {
|
||||
if (type == 'polygon') {
|
||||
pointList = this._getPointList(__ecIndicator, scale, center);
|
||||
shape = this._getShape(pointList, 'stroke', '', strokeColor, lineWidth);
|
||||
} else if (type == 'circle') {
|
||||
shape = this._getCircle(strokeColor, lineWidth, scale, center, 'stroke');
|
||||
}
|
||||
this.shapeList.push(shape);
|
||||
}
|
||||
if (splitArea.show) {
|
||||
scale1 = (splitNumber - i - 1) / splitNumber;
|
||||
this._addSplitArea(__ecIndicator, splitArea, scale, scale1, center, i);
|
||||
}
|
||||
}
|
||||
},
|
||||
_getCircle: function (strokeColor, lineWidth, scale, center, brushType, color) {
|
||||
var radius = this._getRadius();
|
||||
return new Circle({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r: radius * scale,
|
||||
brushType: brushType,
|
||||
strokeColor: strokeColor,
|
||||
lineWidth: lineWidth,
|
||||
color: color
|
||||
},
|
||||
hoverable: false,
|
||||
draggable: false
|
||||
});
|
||||
},
|
||||
_getRing: function (color, scale0, scale1, center) {
|
||||
var radius = this._getRadius();
|
||||
return new Ring({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: {
|
||||
x: center[0],
|
||||
y: center[1],
|
||||
r: scale0 * radius,
|
||||
r0: scale1 * radius,
|
||||
color: color,
|
||||
brushType: 'fill'
|
||||
},
|
||||
hoverable: false,
|
||||
draggable: false
|
||||
});
|
||||
},
|
||||
_getPointList: function (__ecIndicator, scale, center) {
|
||||
var pointList = [];
|
||||
var len = __ecIndicator.length;
|
||||
var vector;
|
||||
for (var i = 0; i < len; i++) {
|
||||
vector = __ecIndicator[i].vector;
|
||||
pointList.push(this._mapVector(vector, center, scale));
|
||||
}
|
||||
return pointList;
|
||||
},
|
||||
_getShape: function (pointList, brushType, color, strokeColor, lineWidth) {
|
||||
return new PolygonShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: {
|
||||
pointList: pointList,
|
||||
brushType: brushType,
|
||||
color: color,
|
||||
strokeColor: strokeColor,
|
||||
lineWidth: lineWidth
|
||||
},
|
||||
hoverable: false,
|
||||
draggable: false
|
||||
});
|
||||
},
|
||||
_addSplitArea: function (__ecIndicator, splitArea, scale, scale1, center, colorInd) {
|
||||
var indLen = __ecIndicator.length;
|
||||
var color;
|
||||
var colorArr = splitArea.areaStyle.color;
|
||||
var colorLen;
|
||||
var vector;
|
||||
var vector1;
|
||||
var pointList = [];
|
||||
var indLen = __ecIndicator.length;
|
||||
var shape;
|
||||
var type = this.deepQuery(this._queryTarget, 'type');
|
||||
if (typeof colorArr == 'string') {
|
||||
colorArr = [colorArr];
|
||||
}
|
||||
colorLen = colorArr.length;
|
||||
color = colorArr[colorInd % colorLen];
|
||||
if (type == 'polygon') {
|
||||
for (var i = 0; i < indLen; i++) {
|
||||
pointList = [];
|
||||
vector = __ecIndicator[i].vector;
|
||||
vector1 = __ecIndicator[(i + 1) % indLen].vector;
|
||||
pointList.push(this._mapVector(vector, center, scale));
|
||||
pointList.push(this._mapVector(vector, center, scale1));
|
||||
pointList.push(this._mapVector(vector1, center, scale1));
|
||||
pointList.push(this._mapVector(vector1, center, scale));
|
||||
shape = this._getShape(pointList, 'fill', color, '', 1);
|
||||
this.shapeList.push(shape);
|
||||
}
|
||||
} else if (type == 'circle') {
|
||||
shape = this._getRing(color, scale, scale1, center);
|
||||
this.shapeList.push(shape);
|
||||
}
|
||||
},
|
||||
_mapVector: function (vector, center, scale) {
|
||||
return [
|
||||
vector[0] * scale + center[0],
|
||||
vector[1] * scale + center[1]
|
||||
];
|
||||
},
|
||||
getCenter: function (index) {
|
||||
var index = index || 0;
|
||||
return this.parseCenter(this.zr, this.polar[index].center);
|
||||
},
|
||||
_addLine: function (__ecIndicator, center, axisLine) {
|
||||
var indLen = __ecIndicator.length;
|
||||
var line;
|
||||
var vector;
|
||||
var lineStyle = axisLine.lineStyle;
|
||||
var strokeColor = lineStyle.color;
|
||||
var lineWidth = lineStyle.width;
|
||||
var lineType = lineStyle.type;
|
||||
for (var i = 0; i < indLen; i++) {
|
||||
vector = __ecIndicator[i].vector;
|
||||
line = this._getLine(center[0], center[1], vector[0] + center[0], vector[1] + center[1], strokeColor, lineWidth, lineType);
|
||||
this.shapeList.push(line);
|
||||
}
|
||||
},
|
||||
_getLine: function (xStart, yStart, xEnd, yEnd, strokeColor, lineWidth, lineType) {
|
||||
return new LineShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: {
|
||||
xStart: xStart,
|
||||
yStart: yStart,
|
||||
xEnd: xEnd,
|
||||
yEnd: yEnd,
|
||||
strokeColor: strokeColor,
|
||||
lineWidth: lineWidth,
|
||||
lineType: lineType
|
||||
},
|
||||
hoverable: false
|
||||
});
|
||||
},
|
||||
_adjustIndicatorValue: function (index) {
|
||||
var item = this.polar[index];
|
||||
var indicator = this.deepQuery(this._queryTarget, 'indicator');
|
||||
var len = indicator.length;
|
||||
var __ecIndicator = item.__ecIndicator;
|
||||
var max;
|
||||
var min;
|
||||
var data = this._getSeriesData(index);
|
||||
var boundaryGap = item.boundaryGap;
|
||||
var splitNumber = item.splitNumber;
|
||||
var scale = item.scale;
|
||||
var opts;
|
||||
var smartSteps = require('../util/smartSteps');
|
||||
for (var i = 0; i < len; i++) {
|
||||
if (typeof indicator[i].max == 'number') {
|
||||
max = indicator[i].max;
|
||||
min = indicator[i].min || 0;
|
||||
opts = {
|
||||
max: max,
|
||||
min: min
|
||||
};
|
||||
} else {
|
||||
var value = this._findValue(data, i, splitNumber, boundaryGap);
|
||||
min = value.min;
|
||||
max = value.max;
|
||||
}
|
||||
if (!scale && min >= 0 && max >= 0) {
|
||||
min = 0;
|
||||
}
|
||||
if (!scale && min <= 0 && max <= 0) {
|
||||
max = 0;
|
||||
}
|
||||
var stepOpt = smartSteps(min, max, splitNumber, opts);
|
||||
__ecIndicator[i].value = {
|
||||
min: stepOpt.min,
|
||||
max: stepOpt.max,
|
||||
step: stepOpt.step
|
||||
};
|
||||
}
|
||||
},
|
||||
_getSeriesData: function (index) {
|
||||
var data = [];
|
||||
var serie;
|
||||
var serieData;
|
||||
var legend = this.component.legend;
|
||||
var polarIndex;
|
||||
for (var i = 0; i < this.series.length; i++) {
|
||||
serie = this.series[i];
|
||||
if (serie.type != ecConfig.CHART_TYPE_RADAR) {
|
||||
continue;
|
||||
}
|
||||
serieData = serie.data || [];
|
||||
for (var j = 0; j < serieData.length; j++) {
|
||||
polarIndex = this.deepQuery([
|
||||
serieData[j],
|
||||
serie,
|
||||
this.option
|
||||
], 'polarIndex') || 0;
|
||||
if (polarIndex == index && (!legend || legend.isSelected(serieData[j].name))) {
|
||||
data.push(serieData[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return data;
|
||||
},
|
||||
_findValue: function (data, index, splitNumber, boundaryGap) {
|
||||
var max;
|
||||
var min;
|
||||
var one;
|
||||
if (!data || data.length === 0) {
|
||||
return;
|
||||
}
|
||||
function _compare(item) {
|
||||
(item > max || max === undefined) && (max = item);
|
||||
(item < min || min === undefined) && (min = item);
|
||||
}
|
||||
if (data.length == 1) {
|
||||
min = 0;
|
||||
}
|
||||
if (data.length != 1) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
_compare(this.getDataFromOption(data[i].value[index]));
|
||||
}
|
||||
} else {
|
||||
one = data[0];
|
||||
for (var i = 0; i < one.value.length; i++) {
|
||||
_compare(this.getDataFromOption(one.value[i]));
|
||||
}
|
||||
}
|
||||
var gap = Math.abs(max - min);
|
||||
min = min - Math.abs(gap * boundaryGap[0]);
|
||||
max = max + Math.abs(gap * boundaryGap[1]);
|
||||
if (min === max) {
|
||||
if (max === 0) {
|
||||
max = 1;
|
||||
} else if (max > 0) {
|
||||
min = max / splitNumber;
|
||||
} else {
|
||||
max = max / splitNumber;
|
||||
}
|
||||
}
|
||||
return {
|
||||
max: max,
|
||||
min: min
|
||||
};
|
||||
},
|
||||
getVector: function (polarIndex, indicatorIndex, value) {
|
||||
polarIndex = polarIndex || 0;
|
||||
indicatorIndex = indicatorIndex || 0;
|
||||
var __ecIndicator = this.polar[polarIndex].__ecIndicator;
|
||||
if (indicatorIndex >= __ecIndicator.length) {
|
||||
return;
|
||||
}
|
||||
var indicator = this.polar[polarIndex].__ecIndicator[indicatorIndex];
|
||||
var center = this.getCenter(polarIndex);
|
||||
var vector = indicator.vector;
|
||||
var max = indicator.value.max;
|
||||
var min = indicator.value.min;
|
||||
var alpha;
|
||||
if (typeof value == 'undefined') {
|
||||
return center;
|
||||
}
|
||||
switch (value) {
|
||||
case 'min':
|
||||
value = min;
|
||||
break;
|
||||
case 'max':
|
||||
value = max;
|
||||
break;
|
||||
case 'center':
|
||||
value = (max + min) / 2;
|
||||
break;
|
||||
}
|
||||
if (max != min) {
|
||||
alpha = (value - min) / (max - min);
|
||||
} else {
|
||||
alpha = 0.5;
|
||||
}
|
||||
return this._mapVector(vector, center, alpha);
|
||||
},
|
||||
isInside: function (vector) {
|
||||
var polar = this.getNearestIndex(vector);
|
||||
if (polar) {
|
||||
return polar.polarIndex;
|
||||
}
|
||||
return -1;
|
||||
},
|
||||
getNearestIndex: function (vector) {
|
||||
var item;
|
||||
var center;
|
||||
var radius;
|
||||
var polarVector;
|
||||
var startAngle;
|
||||
var indicator;
|
||||
var len;
|
||||
var angle;
|
||||
var finalAngle;
|
||||
for (var i = 0; i < this.polar.length; i++) {
|
||||
item = this.polar[i];
|
||||
center = this.getCenter(i);
|
||||
if (vector[0] == center[0] && vector[1] == center[1]) {
|
||||
return {
|
||||
polarIndex: i,
|
||||
valueIndex: 0
|
||||
};
|
||||
}
|
||||
radius = this._getRadius();
|
||||
startAngle = item.startAngle;
|
||||
indicator = item.indicator;
|
||||
len = indicator.length;
|
||||
angle = 2 * Math.PI / len;
|
||||
polarVector = ecCoordinates.cartesian2polar(vector[0] - center[0], center[1] - vector[1]);
|
||||
if (vector[0] - center[0] < 0) {
|
||||
polarVector[1] += Math.PI;
|
||||
}
|
||||
if (polarVector[1] < 0) {
|
||||
polarVector[1] += 2 * Math.PI;
|
||||
}
|
||||
finalAngle = polarVector[1] - startAngle / 180 * Math.PI + Math.PI * 2;
|
||||
if (Math.abs(Math.cos(finalAngle % (angle / 2))) * radius > polarVector[0]) {
|
||||
return {
|
||||
polarIndex: i,
|
||||
valueIndex: Math.floor((finalAngle + angle / 2) / angle) % len
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
getIndicator: function (index) {
|
||||
var index = index || 0;
|
||||
return this.polar[index].indicator;
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.polar = this.option.polar;
|
||||
this.series = this.option.series;
|
||||
}
|
||||
this.clear();
|
||||
this._buildShape();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Polar, Base);
|
||||
require('../component').define('polar', Polar);
|
||||
return Polar;
|
||||
});define('echarts/util/coordinates', [
|
||||
'require',
|
||||
'zrender/tool/math'
|
||||
], function (require) {
|
||||
var zrMath = require('zrender/tool/math');
|
||||
function polar2cartesian(r, theta) {
|
||||
return [
|
||||
r * zrMath.sin(theta),
|
||||
r * zrMath.cos(theta)
|
||||
];
|
||||
}
|
||||
function cartesian2polar(x, y) {
|
||||
return [
|
||||
Math.sqrt(x * x + y * y),
|
||||
Math.atan(y / x)
|
||||
];
|
||||
}
|
||||
return {
|
||||
polar2cartesian: polar2cartesian,
|
||||
cartesian2polar: cartesian2polar
|
||||
};
|
||||
});
|
||||
@ -0,0 +1,625 @@
|
||||
define('echarts/chart/tree', [
|
||||
'require',
|
||||
'./base',
|
||||
'../util/shape/Icon',
|
||||
'zrender/shape/Image',
|
||||
'zrender/shape/Line',
|
||||
'zrender/shape/BezierCurve',
|
||||
'../layout/Tree',
|
||||
'../data/Tree',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/config',
|
||||
'zrender/tool/event',
|
||||
'zrender/tool/util',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var GOLDEN_SECTION = 0.618;
|
||||
var IconShape = require('../util/shape/Icon');
|
||||
var ImageShape = require('zrender/shape/Image');
|
||||
var LineShape = require('zrender/shape/Line');
|
||||
var BezierCurveShape = require('zrender/shape/BezierCurve');
|
||||
var TreeLayout = require('../layout/Tree');
|
||||
var TreeData = require('../data/Tree');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.tree = {
|
||||
zlevel: 1,
|
||||
z: 2,
|
||||
calculable: false,
|
||||
clickable: true,
|
||||
rootLocation: {},
|
||||
orient: 'vertical',
|
||||
symbol: 'circle',
|
||||
symbolSize: 20,
|
||||
nodePadding: 30,
|
||||
layerPadding: 100,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: { show: true },
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
color: '#777',
|
||||
type: 'curve'
|
||||
}
|
||||
},
|
||||
emphasis: {}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrConfig = require('zrender/config');
|
||||
var zrEvent = require('zrender/tool/event');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function Tree(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Tree.prototype = {
|
||||
type: ecConfig.CHART_TYPE_TREE,
|
||||
_buildShape: function (series, seriesIndex) {
|
||||
var data = series.data[0];
|
||||
this.tree = TreeData.fromOptionData(data.name, data.children);
|
||||
this.tree.root.data = data;
|
||||
this._setTreeShape(series);
|
||||
this.tree.traverse(function (treeNode) {
|
||||
this._buildItem(treeNode, series, seriesIndex);
|
||||
if (treeNode.children.length > 0) {
|
||||
this._buildLink(treeNode, series);
|
||||
}
|
||||
}, this);
|
||||
var panable = series.roam === true || series.roam === 'move';
|
||||
var zoomable = series.roam === true || series.roam === 'scale';
|
||||
this.zr.modLayer(this.getZlevelBase(), {
|
||||
panable: panable,
|
||||
zoomable: zoomable
|
||||
});
|
||||
if (this.query('markPoint.effect.show') || this.query('markLine.effect.show')) {
|
||||
this.zr.modLayer(ecConfig.EFFECT_ZLEVEL, {
|
||||
panable: panable,
|
||||
zoomable: zoomable
|
||||
});
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildItem: function (treeNode, serie, seriesIndex) {
|
||||
var queryTarget = [
|
||||
treeNode.data,
|
||||
serie
|
||||
];
|
||||
var symbol = this.deepQuery(queryTarget, 'symbol');
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {};
|
||||
var normalColor = normal.color || this.zr.getColor();
|
||||
var emphasisColor = emphasis.color || this.zr.getColor();
|
||||
var angle = -treeNode.layout.angle || 0;
|
||||
if (treeNode.id === this.tree.root.id) {
|
||||
angle = 0;
|
||||
}
|
||||
var textPosition = 'right';
|
||||
if (Math.abs(angle) >= Math.PI / 2 && Math.abs(angle) < Math.PI * 3 / 2) {
|
||||
angle += Math.PI;
|
||||
textPosition = 'left';
|
||||
}
|
||||
var rotation = [
|
||||
angle,
|
||||
treeNode.layout.position[0],
|
||||
treeNode.layout.position[1]
|
||||
];
|
||||
var shape = new IconShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase() + 1,
|
||||
rotation: rotation,
|
||||
clickable: this.deepQuery(queryTarget, 'clickable'),
|
||||
style: {
|
||||
x: treeNode.layout.position[0] - treeNode.layout.width * 0.5,
|
||||
y: treeNode.layout.position[1] - treeNode.layout.height * 0.5,
|
||||
width: treeNode.layout.width,
|
||||
height: treeNode.layout.height,
|
||||
iconType: symbol,
|
||||
color: normalColor,
|
||||
brushType: 'both',
|
||||
lineWidth: normal.borderWidth,
|
||||
strokeColor: normal.borderColor
|
||||
},
|
||||
highlightStyle: {
|
||||
color: emphasisColor,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor
|
||||
}
|
||||
});
|
||||
if (shape.style.iconType.match('image')) {
|
||||
shape.style.image = shape.style.iconType.replace(new RegExp('^image:\\/\\/'), '');
|
||||
shape = new ImageShape({
|
||||
rotation: rotation,
|
||||
style: shape.style,
|
||||
highlightStyle: shape.highlightStyle,
|
||||
clickable: shape.clickable,
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase()
|
||||
});
|
||||
}
|
||||
if (this.deepQuery(queryTarget, 'itemStyle.normal.label.show')) {
|
||||
shape.style.text = treeNode.data.label == null ? treeNode.id : treeNode.data.label;
|
||||
shape.style.textPosition = this.deepQuery(queryTarget, 'itemStyle.normal.label.position');
|
||||
if (serie.orient === 'radial' && shape.style.textPosition !== 'inside') {
|
||||
shape.style.textPosition = textPosition;
|
||||
}
|
||||
shape.style.textColor = this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle.color');
|
||||
shape.style.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.normal.label.textStyle') || {});
|
||||
}
|
||||
if (this.deepQuery(queryTarget, 'itemStyle.emphasis.label.show')) {
|
||||
shape.highlightStyle.textPosition = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.position');
|
||||
shape.highlightStyle.textColor = this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle.color');
|
||||
shape.highlightStyle.textFont = this.getFont(this.deepQuery(queryTarget, 'itemStyle.emphasis.label.textStyle') || {});
|
||||
}
|
||||
ecData.pack(shape, serie, seriesIndex, treeNode.data, 0, treeNode.id);
|
||||
this.shapeList.push(shape);
|
||||
},
|
||||
_buildLink: function (parentNode, serie) {
|
||||
var lineStyle = serie.itemStyle.normal.lineStyle;
|
||||
if (lineStyle.type === 'broken') {
|
||||
this._buildBrokenLine(parentNode, lineStyle, serie);
|
||||
return;
|
||||
}
|
||||
for (var i = 0; i < parentNode.children.length; i++) {
|
||||
var xStart = parentNode.layout.position[0];
|
||||
var yStart = parentNode.layout.position[1];
|
||||
var xEnd = parentNode.children[i].layout.position[0];
|
||||
var yEnd = parentNode.children[i].layout.position[1];
|
||||
switch (lineStyle.type) {
|
||||
case 'curve':
|
||||
this._buildBezierCurve(parentNode, parentNode.children[i], lineStyle, serie);
|
||||
break;
|
||||
case 'broken':
|
||||
break;
|
||||
default:
|
||||
var shape = this._getLine(xStart, yStart, xEnd, yEnd, lineStyle);
|
||||
this.shapeList.push(shape);
|
||||
}
|
||||
}
|
||||
},
|
||||
_buildBrokenLine: function (parentNode, lineStyle, serie) {
|
||||
var solidLineStyle = zrUtil.clone(lineStyle);
|
||||
solidLineStyle.type = 'solid';
|
||||
var shapes = [];
|
||||
var xStart = parentNode.layout.position[0];
|
||||
var yStart = parentNode.layout.position[1];
|
||||
var orient = serie.orient;
|
||||
var yEnd = parentNode.children[0].layout.position[1];
|
||||
var xMiddle = xStart;
|
||||
var yMiddle = yStart + (yEnd - yStart) * (1 - GOLDEN_SECTION);
|
||||
var xMiddleStart = parentNode.children[0].layout.position[0];
|
||||
var yMiddleStart = yMiddle;
|
||||
var xMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[0];
|
||||
var yMiddleEnd = yMiddle;
|
||||
if (orient === 'horizontal') {
|
||||
var xEnd = parentNode.children[0].layout.position[0];
|
||||
xMiddle = xStart + (xEnd - xStart) * (1 - GOLDEN_SECTION);
|
||||
yMiddle = yStart;
|
||||
xMiddleStart = xMiddle;
|
||||
yMiddleStart = parentNode.children[0].layout.position[1];
|
||||
xMiddleEnd = xMiddle;
|
||||
yMiddleEnd = parentNode.children[parentNode.children.length - 1].layout.position[1];
|
||||
}
|
||||
shapes.push(this._getLine(xStart, yStart, xMiddle, yMiddle, solidLineStyle));
|
||||
shapes.push(this._getLine(xMiddleStart, yMiddleStart, xMiddleEnd, yMiddleEnd, solidLineStyle));
|
||||
for (var i = 0; i < parentNode.children.length; i++) {
|
||||
xEnd = parentNode.children[i].layout.position[0];
|
||||
yEnd = parentNode.children[i].layout.position[1];
|
||||
if (orient === 'horizontal') {
|
||||
yMiddleStart = yEnd;
|
||||
} else {
|
||||
xMiddleStart = xEnd;
|
||||
}
|
||||
shapes.push(this._getLine(xMiddleStart, yMiddleStart, xEnd, yEnd, solidLineStyle));
|
||||
}
|
||||
this.shapeList = this.shapeList.concat(shapes);
|
||||
},
|
||||
_getLine: function (xStart, yStart, xEnd, yEnd, lineStyle) {
|
||||
if (xStart === xEnd) {
|
||||
xStart = xEnd = this.subPixelOptimize(xStart, lineStyle.width);
|
||||
}
|
||||
if (yStart === yEnd) {
|
||||
yStart = yEnd = this.subPixelOptimize(yStart, lineStyle.width);
|
||||
}
|
||||
return new LineShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
hoverable: false,
|
||||
style: zrUtil.merge({
|
||||
xStart: xStart,
|
||||
yStart: yStart,
|
||||
xEnd: xEnd,
|
||||
yEnd: yEnd,
|
||||
lineType: lineStyle.type,
|
||||
strokeColor: lineStyle.color,
|
||||
lineWidth: lineStyle.width
|
||||
}, lineStyle, true)
|
||||
});
|
||||
},
|
||||
_buildBezierCurve: function (parentNode, treeNode, lineStyle, serie) {
|
||||
var offsetRatio = GOLDEN_SECTION;
|
||||
var orient = serie.orient;
|
||||
var xStart = parentNode.layout.position[0];
|
||||
var yStart = parentNode.layout.position[1];
|
||||
var xEnd = treeNode.layout.position[0];
|
||||
var yEnd = treeNode.layout.position[1];
|
||||
var cpX1 = xStart;
|
||||
var cpY1 = (yEnd - yStart) * offsetRatio + yStart;
|
||||
var cpX2 = xEnd;
|
||||
var cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart;
|
||||
if (orient === 'horizontal') {
|
||||
cpX1 = (xEnd - xStart) * offsetRatio + xStart;
|
||||
cpY1 = yStart;
|
||||
cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart;
|
||||
cpY2 = yEnd;
|
||||
} else if (orient === 'radial') {
|
||||
if (parentNode.id === this.tree.root.id) {
|
||||
cpX1 = (xEnd - xStart) * offsetRatio + xStart;
|
||||
cpY1 = (yEnd - yStart) * offsetRatio + yStart;
|
||||
cpX2 = (xEnd - xStart) * (1 - offsetRatio) + xStart;
|
||||
cpY2 = (yEnd - yStart) * (1 - offsetRatio) + yStart;
|
||||
} else {
|
||||
var xStartOrigin = parentNode.layout.originPosition[0];
|
||||
var yStartOrigin = parentNode.layout.originPosition[1];
|
||||
var xEndOrigin = treeNode.layout.originPosition[0];
|
||||
var yEndOrigin = treeNode.layout.originPosition[1];
|
||||
var rootX = this.tree.root.layout.position[0];
|
||||
var rootY = this.tree.root.layout.position[1];
|
||||
cpX1 = xStartOrigin;
|
||||
cpY1 = (yEndOrigin - yStartOrigin) * offsetRatio + yStartOrigin;
|
||||
cpX2 = xEndOrigin;
|
||||
cpY2 = (yEndOrigin - yStartOrigin) * (1 - offsetRatio) + yStartOrigin;
|
||||
var rad = (cpX1 - this.minX) / this.width * Math.PI * 2;
|
||||
cpX1 = cpY1 * Math.cos(rad) + rootX;
|
||||
cpY1 = cpY1 * Math.sin(rad) + rootY;
|
||||
rad = (cpX2 - this.minX) / this.width * Math.PI * 2;
|
||||
cpX2 = cpY2 * Math.cos(rad) + rootX;
|
||||
cpY2 = cpY2 * Math.sin(rad) + rootY;
|
||||
}
|
||||
}
|
||||
var shape = new BezierCurveShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
hoverable: false,
|
||||
style: zrUtil.merge({
|
||||
xStart: xStart,
|
||||
yStart: yStart,
|
||||
cpX1: cpX1,
|
||||
cpY1: cpY1,
|
||||
cpX2: cpX2,
|
||||
cpY2: cpY2,
|
||||
xEnd: xEnd,
|
||||
yEnd: yEnd,
|
||||
strokeColor: lineStyle.color,
|
||||
lineWidth: lineStyle.width
|
||||
}, lineStyle, true)
|
||||
});
|
||||
this.shapeList.push(shape);
|
||||
},
|
||||
_setTreeShape: function (serie) {
|
||||
var treeLayout = new TreeLayout({
|
||||
nodePadding: serie.nodePadding,
|
||||
layerPadding: serie.layerPadding
|
||||
});
|
||||
this.tree.traverse(function (treeNode) {
|
||||
var queryTarget = [
|
||||
treeNode.data,
|
||||
serie
|
||||
];
|
||||
var symbolSize = this.deepQuery(queryTarget, 'symbolSize');
|
||||
if (typeof symbolSize === 'number') {
|
||||
symbolSize = [
|
||||
symbolSize,
|
||||
symbolSize
|
||||
];
|
||||
}
|
||||
treeNode.layout = {
|
||||
width: symbolSize[0],
|
||||
height: symbolSize[1]
|
||||
};
|
||||
}, this);
|
||||
treeLayout.run(this.tree);
|
||||
var orient = serie.orient;
|
||||
var rootX = serie.rootLocation.x;
|
||||
var rootY = serie.rootLocation.y;
|
||||
var zrWidth = this.zr.getWidth();
|
||||
var zrHeight = this.zr.getHeight();
|
||||
if (rootX === 'center') {
|
||||
rootX = zrWidth * 0.5;
|
||||
} else {
|
||||
rootX = this.parsePercent(rootX, zrWidth);
|
||||
}
|
||||
if (rootY === 'center') {
|
||||
rootY = zrHeight * 0.5;
|
||||
} else {
|
||||
rootY = this.parsePercent(rootY, zrHeight);
|
||||
}
|
||||
rootY = this.parsePercent(rootY, zrHeight);
|
||||
if (orient === 'horizontal') {
|
||||
rootX = isNaN(rootX) ? 10 : rootX;
|
||||
rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY;
|
||||
}
|
||||
if (orient === 'radial') {
|
||||
rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX;
|
||||
rootY = isNaN(rootY) ? zrHeight * 0.5 : rootY;
|
||||
} else {
|
||||
rootX = isNaN(rootX) ? zrWidth * 0.5 : rootX;
|
||||
rootY = isNaN(rootY) ? 10 : rootY;
|
||||
}
|
||||
var originRootX = this.tree.root.layout.position[0];
|
||||
if (orient === 'radial') {
|
||||
var minX = Infinity;
|
||||
var maxX = 0;
|
||||
var maxWidth = 0;
|
||||
this.tree.traverse(function (treeNode) {
|
||||
maxX = Math.max(maxX, treeNode.layout.position[0]);
|
||||
minX = Math.min(minX, treeNode.layout.position[0]);
|
||||
maxWidth = Math.max(maxWidth, treeNode.layout.width);
|
||||
});
|
||||
this.width = maxX - minX + 2 * maxWidth;
|
||||
this.minX = minX;
|
||||
}
|
||||
this.tree.traverse(function (treeNode) {
|
||||
var x;
|
||||
var y;
|
||||
if (orient === 'vertical' && serie.direction === 'inverse') {
|
||||
x = treeNode.layout.position[0] - originRootX + rootX;
|
||||
y = rootY - treeNode.layout.position[1];
|
||||
} else if (orient === 'vertical') {
|
||||
x = treeNode.layout.position[0] - originRootX + rootX;
|
||||
y = treeNode.layout.position[1] + rootY;
|
||||
} else if (orient === 'horizontal' && serie.direction === 'inverse') {
|
||||
y = treeNode.layout.position[0] - originRootX + rootY;
|
||||
x = rootX - treeNode.layout.position[1];
|
||||
} else if (orient === 'horizontal') {
|
||||
y = treeNode.layout.position[0] - originRootX + rootY;
|
||||
x = treeNode.layout.position[1] + rootX;
|
||||
} else {
|
||||
x = treeNode.layout.position[0];
|
||||
y = treeNode.layout.position[1];
|
||||
treeNode.layout.originPosition = [
|
||||
x,
|
||||
y
|
||||
];
|
||||
var r = y;
|
||||
var angle = (x - minX) / this.width * Math.PI * 2;
|
||||
x = r * Math.cos(angle) + rootX;
|
||||
y = r * Math.sin(angle) + rootY;
|
||||
treeNode.layout.angle = angle;
|
||||
}
|
||||
treeNode.layout.position[0] = x;
|
||||
treeNode.layout.position[1] = y;
|
||||
}, this);
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
this.clear();
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = this.option.series;
|
||||
}
|
||||
var series = this.series;
|
||||
var legend = this.component.legend;
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_TREE) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
var seriesName = series[i].name || '';
|
||||
this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true;
|
||||
if (!this.selectedMap[seriesName]) {
|
||||
continue;
|
||||
}
|
||||
this._buildSeries(series[i], i);
|
||||
}
|
||||
}
|
||||
},
|
||||
_buildSeries: function (series, seriesIndex) {
|
||||
this._buildShape(series, seriesIndex);
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Tree, ChartBase);
|
||||
require('../chart').define('tree', Tree);
|
||||
return Tree;
|
||||
});define('echarts/layout/Tree', [
|
||||
'require',
|
||||
'zrender/tool/vector'
|
||||
], function (require) {
|
||||
var vec2 = require('zrender/tool/vector');
|
||||
function TreeLayout(opts) {
|
||||
opts = opts || {};
|
||||
this.nodePadding = opts.nodePadding || 30;
|
||||
this.layerPadding = opts.layerPadding || 100;
|
||||
this._layerOffsets = [];
|
||||
this._layers = [];
|
||||
}
|
||||
TreeLayout.prototype.run = function (tree) {
|
||||
this._layerOffsets.length = 0;
|
||||
for (var i = 0; i < tree.root.height + 1; i++) {
|
||||
this._layerOffsets[i] = 0;
|
||||
this._layers[i] = [];
|
||||
}
|
||||
this._updateNodeXPosition(tree.root);
|
||||
var root = tree.root;
|
||||
this._updateNodeYPosition(root, 0, root.layout.height);
|
||||
};
|
||||
TreeLayout.prototype._updateNodeXPosition = function (node) {
|
||||
var minX = Infinity;
|
||||
var maxX = -Infinity;
|
||||
node.layout.position = node.layout.position || vec2.create();
|
||||
for (var i = 0; i < node.children.length; i++) {
|
||||
var child = node.children[i];
|
||||
this._updateNodeXPosition(child);
|
||||
var x = child.layout.position[0];
|
||||
if (x < minX) {
|
||||
minX = x;
|
||||
}
|
||||
if (x > maxX) {
|
||||
maxX = x;
|
||||
}
|
||||
}
|
||||
if (node.children.length > 0) {
|
||||
node.layout.position[0] = (minX + maxX) / 2;
|
||||
} else {
|
||||
node.layout.position[0] = 0;
|
||||
}
|
||||
var off = this._layerOffsets[node.depth] || 0;
|
||||
if (off > node.layout.position[0]) {
|
||||
var shift = off - node.layout.position[0];
|
||||
this._shiftSubtree(node, shift);
|
||||
for (var i = node.depth + 1; i < node.height + node.depth; i++) {
|
||||
this._layerOffsets[i] += shift;
|
||||
}
|
||||
}
|
||||
this._layerOffsets[node.depth] = node.layout.position[0] + node.layout.width + this.nodePadding;
|
||||
this._layers[node.depth].push(node);
|
||||
};
|
||||
TreeLayout.prototype._shiftSubtree = function (root, offset) {
|
||||
root.layout.position[0] += offset;
|
||||
for (var i = 0; i < root.children.length; i++) {
|
||||
this._shiftSubtree(root.children[i], offset);
|
||||
}
|
||||
};
|
||||
TreeLayout.prototype._updateNodeYPosition = function (node, y, prevLayerHeight) {
|
||||
node.layout.position[1] = y;
|
||||
var layerHeight = 0;
|
||||
for (var i = 0; i < node.children.length; i++) {
|
||||
layerHeight = Math.max(node.children[i].layout.height, layerHeight);
|
||||
}
|
||||
var layerPadding = this.layerPadding;
|
||||
if (typeof layerPadding === 'function') {
|
||||
layerPadding = layerPadding(node.depth);
|
||||
}
|
||||
for (var i = 0; i < node.children.length; i++) {
|
||||
this._updateNodeYPosition(node.children[i], y + layerPadding + prevLayerHeight, layerHeight);
|
||||
}
|
||||
};
|
||||
return TreeLayout;
|
||||
});define('echarts/data/Tree', [
|
||||
'require',
|
||||
'zrender/tool/util'
|
||||
], function (require) {
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function TreeNode(id, data) {
|
||||
this.id = id;
|
||||
this.depth = 0;
|
||||
this.height = 0;
|
||||
this.children = [];
|
||||
this.parent = null;
|
||||
this.data = data || null;
|
||||
}
|
||||
TreeNode.prototype.add = function (child) {
|
||||
var children = this.children;
|
||||
if (child.parent === this) {
|
||||
return;
|
||||
}
|
||||
children.push(child);
|
||||
child.parent = this;
|
||||
};
|
||||
TreeNode.prototype.remove = function (child) {
|
||||
var children = this.children;
|
||||
var idx = zrUtil.indexOf(children, child);
|
||||
if (idx >= 0) {
|
||||
children.splice(idx, 1);
|
||||
child.parent = null;
|
||||
}
|
||||
};
|
||||
TreeNode.prototype.traverse = function (cb, context) {
|
||||
cb.call(context, this);
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
this.children[i].traverse(cb, context);
|
||||
}
|
||||
};
|
||||
TreeNode.prototype.updateDepthAndHeight = function (depth) {
|
||||
var height = 0;
|
||||
this.depth = depth;
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
var child = this.children[i];
|
||||
child.updateDepthAndHeight(depth + 1);
|
||||
if (child.height > height) {
|
||||
height = child.height;
|
||||
}
|
||||
}
|
||||
this.height = height + 1;
|
||||
};
|
||||
TreeNode.prototype.getNodeById = function (id) {
|
||||
if (this.id === id) {
|
||||
return this;
|
||||
}
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
var res = this.children[i].getNodeById(id);
|
||||
if (res) {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
};
|
||||
function Tree(id) {
|
||||
this.root = new TreeNode(id);
|
||||
}
|
||||
Tree.prototype.traverse = function (cb, context) {
|
||||
this.root.traverse(cb, context);
|
||||
};
|
||||
Tree.prototype.getSubTree = function (id) {
|
||||
var root = this.getNodeById(id);
|
||||
if (root) {
|
||||
var tree = new Tree(root.id);
|
||||
tree.root = root;
|
||||
return tree;
|
||||
}
|
||||
};
|
||||
Tree.prototype.getNodeById = function (id) {
|
||||
return this.root.getNodeById(id);
|
||||
};
|
||||
Tree.fromOptionData = function (id, data) {
|
||||
var tree = new Tree(id);
|
||||
var rootNode = tree.root;
|
||||
rootNode.data = {
|
||||
name: id,
|
||||
children: data
|
||||
};
|
||||
function buildHierarchy(dataNode, parentNode) {
|
||||
var node = new TreeNode(dataNode.name, dataNode);
|
||||
parentNode.add(node);
|
||||
var children = dataNode.children;
|
||||
if (children) {
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
buildHierarchy(children[i], node);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
buildHierarchy(data[i], rootNode);
|
||||
}
|
||||
tree.root.updateDepthAndHeight(0);
|
||||
return tree;
|
||||
};
|
||||
Tree.fromGraph = function (graph) {
|
||||
function buildHierarchy(root) {
|
||||
var graphNode = graph.getNodeById(root.id);
|
||||
for (var i = 0; i < graphNode.outEdges.length; i++) {
|
||||
var edge = graphNode.outEdges[i];
|
||||
var childTreeNode = treeNodesMap[edge.node2.id];
|
||||
root.children.push(childTreeNode);
|
||||
buildHierarchy(childTreeNode);
|
||||
}
|
||||
}
|
||||
var treeMap = {};
|
||||
var treeNodesMap = {};
|
||||
for (var i = 0; i < graph.nodes.length; i++) {
|
||||
var node = graph.nodes[i];
|
||||
var treeNode;
|
||||
if (node.inDegree() === 0) {
|
||||
treeMap[node.id] = new Tree(node.id);
|
||||
treeNode = treeMap[node.id].root;
|
||||
} else {
|
||||
treeNode = new TreeNode(node.id);
|
||||
}
|
||||
treeNode.data = node.data;
|
||||
treeNodesMap[node.id] = treeNode;
|
||||
}
|
||||
var treeList = [];
|
||||
for (var id in treeMap) {
|
||||
buildHierarchy(treeMap[id].root);
|
||||
treeMap[id].root.updateDepthAndHeight(0);
|
||||
treeList.push(treeMap[id]);
|
||||
}
|
||||
return treeList;
|
||||
};
|
||||
return Tree;
|
||||
});
|
||||
@ -0,0 +1,632 @@
|
||||
define('echarts/chart/treemap', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/tool/area',
|
||||
'zrender/shape/Rectangle',
|
||||
'zrender/shape/Text',
|
||||
'zrender/shape/Line',
|
||||
'../layout/TreeMap',
|
||||
'../data/Tree',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/config',
|
||||
'zrender/tool/event',
|
||||
'zrender/tool/util',
|
||||
'zrender/tool/color',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var toolArea = require('zrender/tool/area');
|
||||
var RectangleShape = require('zrender/shape/Rectangle');
|
||||
var TextShape = require('zrender/shape/Text');
|
||||
var LineShape = require('zrender/shape/Line');
|
||||
var TreeMapLayout = require('../layout/TreeMap');
|
||||
var Tree = require('../data/Tree');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.treemap = {
|
||||
zlevel: 0,
|
||||
z: 1,
|
||||
calculable: false,
|
||||
clickable: true,
|
||||
center: [
|
||||
'50%',
|
||||
'50%'
|
||||
],
|
||||
size: [
|
||||
'80%',
|
||||
'80%'
|
||||
],
|
||||
root: '',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: {
|
||||
show: true,
|
||||
x: 5,
|
||||
y: 12,
|
||||
textStyle: {
|
||||
align: 'left',
|
||||
color: '#000',
|
||||
fontFamily: 'Arial',
|
||||
fontSize: 13,
|
||||
fontStyle: 'normal',
|
||||
fontWeight: 'normal'
|
||||
}
|
||||
},
|
||||
breadcrumb: {
|
||||
show: true,
|
||||
textStyle: {}
|
||||
},
|
||||
borderWidth: 1,
|
||||
borderColor: '#ccc',
|
||||
childBorderWidth: 1,
|
||||
childBorderColor: '#ccc'
|
||||
},
|
||||
emphasis: {}
|
||||
}
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrConfig = require('zrender/config');
|
||||
var zrEvent = require('zrender/tool/event');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
var zrColor = require('zrender/tool/color');
|
||||
function Treemap(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
var self = this;
|
||||
self._onclick = function (params) {
|
||||
return self.__onclick(params);
|
||||
};
|
||||
self.zr.on(zrConfig.EVENT.CLICK, self._onclick);
|
||||
}
|
||||
Treemap.prototype = {
|
||||
type: ecConfig.CHART_TYPE_TREEMAP,
|
||||
refresh: function (newOption) {
|
||||
this.clear();
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = this.option.series;
|
||||
}
|
||||
this._treesMap = {};
|
||||
var series = this.series;
|
||||
var legend = this.component.legend;
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_TREEMAP) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
var seriesName = series[i].name || '';
|
||||
this.selectedMap[seriesName] = legend ? legend.isSelected(seriesName) : true;
|
||||
if (!this.selectedMap[seriesName]) {
|
||||
continue;
|
||||
}
|
||||
this._buildSeries(series[i], i);
|
||||
}
|
||||
}
|
||||
},
|
||||
_buildSeries: function (series, seriesIndex) {
|
||||
var tree = Tree.fromOptionData(series.name, series.data);
|
||||
this._treesMap[seriesIndex] = tree;
|
||||
var treeRoot = series.root && tree.getNodeById(series.root) || tree.root;
|
||||
this._buildTreemap(treeRoot, seriesIndex);
|
||||
},
|
||||
_buildTreemap: function (treeRoot, seriesIndex) {
|
||||
var shapeList = this.shapeList;
|
||||
for (var i = 0; i < shapeList.length;) {
|
||||
var shape = shapeList[i];
|
||||
if (ecData.get(shape, 'seriesIndex') === seriesIndex) {
|
||||
this.zr.delShape(shapeList[i]);
|
||||
shapeList.splice(i, 1);
|
||||
} else {
|
||||
i++;
|
||||
}
|
||||
}
|
||||
var currentShapeLen = shapeList.length;
|
||||
var series = this.series[seriesIndex];
|
||||
var itemStyle = series.itemStyle;
|
||||
var treemapWidth = this.parsePercent(series.size[0], this.zr.getWidth()) || 400;
|
||||
var treemapHeight = this.parsePercent(series.size[1], this.zr.getHeight()) || 500;
|
||||
var center = this.parseCenter(this.zr, series.center);
|
||||
var treemapX = center[0] - treemapWidth * 0.5;
|
||||
var treemapY = center[1] - treemapHeight * 0.5;
|
||||
var treemapArea = treemapWidth * treemapHeight;
|
||||
var sum = 0;
|
||||
var areaArr = [];
|
||||
var children = treeRoot.children;
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
sum += children[i].data.value;
|
||||
}
|
||||
for (var j = 0; j < children.length; j++) {
|
||||
areaArr.push(children[j].data.value * treemapArea / sum);
|
||||
}
|
||||
var treeMapLayout = new TreeMapLayout({
|
||||
x: treemapX,
|
||||
y: treemapY,
|
||||
width: treemapWidth,
|
||||
height: treemapHeight
|
||||
});
|
||||
var locationArr = treeMapLayout.run(areaArr);
|
||||
for (var k = 0; k < locationArr.length; k++) {
|
||||
var dataItem = children[k].data;
|
||||
var rect = locationArr[k];
|
||||
var queryTarget = [
|
||||
dataItem.itemStyle,
|
||||
itemStyle
|
||||
];
|
||||
var itemStyleMerged = this.deepMerge(queryTarget);
|
||||
if (!itemStyleMerged.normal.color) {
|
||||
itemStyleMerged.normal.color = this.zr.getColor(k);
|
||||
}
|
||||
if (!itemStyleMerged.emphasis.color) {
|
||||
itemStyleMerged.emphasis.color = itemStyleMerged.normal.color;
|
||||
}
|
||||
this._buildItem(dataItem, itemStyleMerged, rect, seriesIndex, k);
|
||||
if (dataItem.children) {
|
||||
this._buildChildrenTreemap(dataItem.children, itemStyleMerged, rect, seriesIndex);
|
||||
}
|
||||
}
|
||||
if (this.query(series, 'itemStyle.normal.breadcrumb.show')) {
|
||||
this._buildBreadcrumb(treeRoot, seriesIndex, treemapX, treemapY + treemapHeight);
|
||||
}
|
||||
for (var i = currentShapeLen; i < shapeList.length; i++) {
|
||||
this.zr.addShape(shapeList[i]);
|
||||
}
|
||||
},
|
||||
_buildItem: function (dataItem, itemStyle, rect, seriesIndex, dataIndex) {
|
||||
var series = this.series;
|
||||
var rectangle = this.getRectangle(dataItem, itemStyle, rect);
|
||||
ecData.pack(rectangle, series[seriesIndex], seriesIndex, dataItem, dataIndex, dataItem.name);
|
||||
this.shapeList.push(rectangle);
|
||||
},
|
||||
getRectangle: function (dataItem, itemStyle, rect) {
|
||||
var emphasis = itemStyle.emphasis;
|
||||
var normal = itemStyle.normal;
|
||||
var textShape = this.getLabel(itemStyle, rect, dataItem.name, dataItem.value);
|
||||
var hoverable = this.option.hoverable;
|
||||
var rectangleShape = {
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
hoverable: hoverable,
|
||||
clickable: true,
|
||||
style: zrUtil.merge({
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height,
|
||||
brushType: 'both',
|
||||
color: normal.color,
|
||||
lineWidth: normal.borderWidth,
|
||||
strokeColor: normal.borderColor
|
||||
}, textShape.style, true),
|
||||
highlightStyle: zrUtil.merge({
|
||||
color: emphasis.color,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor
|
||||
}, textShape.highlightStyle, true)
|
||||
};
|
||||
return new RectangleShape(rectangleShape);
|
||||
},
|
||||
getLabel: function (itemStyle, rect, name, value) {
|
||||
var normalTextStyle = itemStyle.normal.label.textStyle;
|
||||
var queryTarget = [
|
||||
itemStyle.emphasis.label.textStyle,
|
||||
normalTextStyle
|
||||
];
|
||||
var emphasisTextStyle = this.deepMerge(queryTarget);
|
||||
var formatter = itemStyle.normal.label.formatter;
|
||||
var text = this.getLabelText(name, value, formatter);
|
||||
var textFont = this.getFont(normalTextStyle);
|
||||
var textWidth = toolArea.getTextWidth(text, textFont);
|
||||
var textHeight = toolArea.getTextHeight(text, textFont);
|
||||
var emphasisFormatter = this.deepQuery([
|
||||
itemStyle.emphasis,
|
||||
itemStyle.normal
|
||||
], 'label.formatter');
|
||||
var emphasisText = this.getLabelText(name, value, emphasisFormatter);
|
||||
var emphasisTextFont = this.getFont(emphasisTextStyle);
|
||||
var emphasisTextWidth = toolArea.getTextWidth(text, emphasisTextFont);
|
||||
var emphasisTextHeight = toolArea.getTextHeight(text, emphasisTextFont);
|
||||
if (!itemStyle.normal.label.show) {
|
||||
text = '';
|
||||
} else if (itemStyle.normal.label.x + textWidth > rect.width || itemStyle.normal.label.y + textHeight > rect.height) {
|
||||
text = '';
|
||||
}
|
||||
if (!itemStyle.emphasis.label.show) {
|
||||
emphasisText = '';
|
||||
} else if (emphasisTextStyle.x + emphasisTextWidth > rect.width || emphasisTextStyle.y + emphasisTextHeight > rect.height) {
|
||||
emphasisText = '';
|
||||
}
|
||||
var textShape = {
|
||||
style: {
|
||||
textX: rect.x + itemStyle.normal.label.x,
|
||||
textY: rect.y + itemStyle.normal.label.y,
|
||||
text: text,
|
||||
textPosition: 'specific',
|
||||
textColor: normalTextStyle.color,
|
||||
textFont: textFont
|
||||
},
|
||||
highlightStyle: {
|
||||
textX: rect.x + itemStyle.emphasis.label.x,
|
||||
textY: rect.y + itemStyle.emphasis.label.y,
|
||||
text: emphasisText,
|
||||
textColor: emphasisTextStyle.color,
|
||||
textPosition: 'specific'
|
||||
}
|
||||
};
|
||||
return textShape;
|
||||
},
|
||||
getLabelText: function (name, value, formatter) {
|
||||
if (formatter) {
|
||||
if (typeof formatter === 'function') {
|
||||
return formatter.call(this.myChart, name, value);
|
||||
} else if (typeof formatter === 'string') {
|
||||
formatter = formatter.replace('{b}', '{b0}').replace('{c}', '{c0}');
|
||||
formatter = formatter.replace('{b0}', name).replace('{c0}', value);
|
||||
return formatter;
|
||||
}
|
||||
} else {
|
||||
return name;
|
||||
}
|
||||
},
|
||||
_buildChildrenTreemap: function (data, itemStyle, rect, seriesIndex) {
|
||||
var treemapArea = rect.width * rect.height;
|
||||
var sum = 0;
|
||||
var areaArr = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
sum += data[i].value;
|
||||
}
|
||||
for (var j = 0; j < data.length; j++) {
|
||||
areaArr.push(data[j].value * treemapArea / sum);
|
||||
}
|
||||
var treeMapLayout = new TreeMapLayout({
|
||||
x: rect.x,
|
||||
y: rect.y,
|
||||
width: rect.width,
|
||||
height: rect.height
|
||||
});
|
||||
var locationArr = treeMapLayout.run(areaArr);
|
||||
var lineWidth = itemStyle.normal.childBorderWidth;
|
||||
var lineColor = itemStyle.normal.childBorderColor;
|
||||
for (var k = 0; k < locationArr.length; k++) {
|
||||
var item = locationArr[k];
|
||||
var lines = [];
|
||||
if (rect.y.toFixed(2) !== item.y.toFixed(2)) {
|
||||
lines.push(this._getLine(item.x, item.y, item.x + item.width, item.y, lineWidth, lineColor));
|
||||
}
|
||||
if (rect.x.toFixed(2) !== item.x.toFixed(2)) {
|
||||
lines.push(this._getLine(item.x, item.y, item.x, item.y + item.height, lineWidth, lineColor));
|
||||
}
|
||||
if ((rect.y + rect.height).toFixed(2) !== (item.y + item.height).toFixed(2)) {
|
||||
lines.push(this._getLine(item.x, item.y + item.height, item.x + item.width, item.y + item.height, lineWidth, lineColor));
|
||||
}
|
||||
if ((rect.x + rect.width).toFixed(2) !== (item.x + item.width).toFixed(2)) {
|
||||
lines.push(this._getLine(item.x + item.width, item.y, item.x + item.width, item.y + item.height, lineWidth, lineColor));
|
||||
}
|
||||
for (var l = 0; l < lines.length; l++) {
|
||||
ecData.set(lines[l], 'seriesIndex', seriesIndex);
|
||||
this.shapeList.push(lines[l]);
|
||||
}
|
||||
}
|
||||
},
|
||||
_getLine: function (xStart, yStart, xEnd, yEnd, lineWidth, lineColor) {
|
||||
var lineShape = {
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
hoverable: false,
|
||||
style: {
|
||||
xStart: xStart,
|
||||
yStart: yStart,
|
||||
xEnd: xEnd,
|
||||
yEnd: yEnd,
|
||||
lineWidth: lineWidth,
|
||||
strokeColor: lineColor
|
||||
}
|
||||
};
|
||||
return new LineShape(lineShape);
|
||||
},
|
||||
_buildBreadcrumb: function (treeRoot, seriesIndex, x, y) {
|
||||
var stack = [];
|
||||
var current = treeRoot;
|
||||
while (current) {
|
||||
stack.unshift(current.data.name);
|
||||
current = current.parent;
|
||||
}
|
||||
var series = this.series[seriesIndex];
|
||||
var textStyle = this.query(series, 'itemStyle.normal.breadcrumb.textStyle') || {};
|
||||
var textEmphasisStyle = this.query(series, 'itemStyle.emphasis.breadcrumb.textStyle') || {};
|
||||
var commonStyle = {
|
||||
y: y + 10,
|
||||
textBaseline: 'top',
|
||||
textAlign: 'left',
|
||||
color: textStyle.color,
|
||||
textFont: this.getFont(textStyle)
|
||||
};
|
||||
var commonHighlightStyle = {
|
||||
brushType: 'fill',
|
||||
color: textEmphasisStyle.color || zrColor.lift(textStyle.color, -0.3),
|
||||
textFont: this.getFont(textEmphasisStyle)
|
||||
};
|
||||
for (var i = 0; i < stack.length; i++) {
|
||||
var textShape = new TextShape({
|
||||
zlevel: this.getZlevelBase(),
|
||||
z: this.getZBase(),
|
||||
style: zrUtil.merge({
|
||||
x: x,
|
||||
text: stack[i] + (stack.length - 1 - i ? ' > ' : '')
|
||||
}, commonStyle),
|
||||
clickable: true,
|
||||
highlightStyle: commonHighlightStyle
|
||||
});
|
||||
ecData.set(textShape, 'seriesIndex', seriesIndex);
|
||||
ecData.set(textShape, 'name', stack[i]);
|
||||
x += textShape.getRect(textShape.style).width;
|
||||
this.shapeList.push(textShape);
|
||||
}
|
||||
},
|
||||
__onclick: function (params) {
|
||||
var target = params.target;
|
||||
if (target) {
|
||||
var seriesIndex = ecData.get(target, 'seriesIndex');
|
||||
var name = ecData.get(target, 'name');
|
||||
var tree = this._treesMap[seriesIndex];
|
||||
var root = tree.getNodeById(name);
|
||||
if (root && root.children.length) {
|
||||
this._buildTreemap(root, seriesIndex);
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Treemap, ChartBase);
|
||||
require('../chart').define('treemap', Treemap);
|
||||
return Treemap;
|
||||
});define('echarts/layout/TreeMap', ['require'], function (require) {
|
||||
function TreeMapLayout(opts) {
|
||||
var row = {
|
||||
x: opts.x,
|
||||
y: opts.y,
|
||||
width: opts.width,
|
||||
height: opts.height
|
||||
};
|
||||
this.x = opts.x;
|
||||
this.y = opts.y;
|
||||
this.width = opts.width;
|
||||
this.height = opts.height;
|
||||
}
|
||||
TreeMapLayout.prototype.run = function (areas) {
|
||||
var out = [];
|
||||
this._squarify(areas, {
|
||||
x: this.x,
|
||||
y: this.y,
|
||||
width: this.width,
|
||||
height: this.height
|
||||
}, out);
|
||||
return out;
|
||||
};
|
||||
TreeMapLayout.prototype._squarify = function (areas, row, out) {
|
||||
var layoutDirection = 'VERTICAL';
|
||||
var width = row.width;
|
||||
var height = row.height;
|
||||
if (row.width < row.height) {
|
||||
layoutDirection = 'HORIZONTAL';
|
||||
width = row.height;
|
||||
height = row.width;
|
||||
}
|
||||
var shapeArr = this._getShapeListInAbstractRow(areas, width, height);
|
||||
for (var i = 0; i < shapeArr.length; i++) {
|
||||
shapeArr[i].x = 0;
|
||||
shapeArr[i].y = 0;
|
||||
for (var j = 0; j < i; j++) {
|
||||
shapeArr[i].y += shapeArr[j].height;
|
||||
}
|
||||
}
|
||||
var nextRow = {};
|
||||
if (layoutDirection == 'VERTICAL') {
|
||||
for (var k = 0; k < shapeArr.length; k++) {
|
||||
out.push({
|
||||
x: shapeArr[k].x + row.x,
|
||||
y: shapeArr[k].y + row.y,
|
||||
width: shapeArr[k].width,
|
||||
height: shapeArr[k].height
|
||||
});
|
||||
}
|
||||
nextRow = {
|
||||
x: shapeArr[0].width + row.x,
|
||||
y: row.y,
|
||||
width: row.width - shapeArr[0].width,
|
||||
height: row.height
|
||||
};
|
||||
} else {
|
||||
for (var l = 0; l < shapeArr.length; l++) {
|
||||
out.push({
|
||||
x: shapeArr[l].y + row.x,
|
||||
y: shapeArr[l].x + row.y,
|
||||
width: shapeArr[l].height,
|
||||
height: shapeArr[l].width
|
||||
});
|
||||
}
|
||||
nextRow = {
|
||||
x: row.x,
|
||||
y: row.y + shapeArr[0].width,
|
||||
width: row.width,
|
||||
height: row.height - shapeArr[0].width
|
||||
};
|
||||
}
|
||||
var nextAreaArr = areas.slice(shapeArr.length);
|
||||
if (nextAreaArr.length === 0) {
|
||||
return;
|
||||
} else {
|
||||
this._squarify(nextAreaArr, nextRow, out);
|
||||
}
|
||||
};
|
||||
TreeMapLayout.prototype._getShapeListInAbstractRow = function (areas, width, height) {
|
||||
if (areas.length === 1) {
|
||||
return [{
|
||||
width: width,
|
||||
height: height
|
||||
}];
|
||||
}
|
||||
for (var count = 1; count < areas.length; count++) {
|
||||
var shapeArr0 = this._placeFixedNumberRectangles(areas.slice(0, count), width, height);
|
||||
var shapeArr1 = this._placeFixedNumberRectangles(areas.slice(0, count + 1), width, height);
|
||||
if (this._isFirstBetter(shapeArr0, shapeArr1)) {
|
||||
return shapeArr0;
|
||||
}
|
||||
}
|
||||
};
|
||||
TreeMapLayout.prototype._placeFixedNumberRectangles = function (areaSubArr, width, height) {
|
||||
var count = areaSubArr.length;
|
||||
var shapeArr = [];
|
||||
var sum = 0;
|
||||
for (var i = 0; i < areaSubArr.length; i++) {
|
||||
sum += areaSubArr[i];
|
||||
}
|
||||
var cellWidth = sum / height;
|
||||
for (var j = 0; j < count; j++) {
|
||||
var cellHeight = height * areaSubArr[j] / sum;
|
||||
shapeArr.push({
|
||||
width: cellWidth,
|
||||
height: cellHeight
|
||||
});
|
||||
}
|
||||
return shapeArr;
|
||||
};
|
||||
TreeMapLayout.prototype._isFirstBetter = function (shapeArr0, shapeArr1) {
|
||||
var ratio0 = shapeArr0[0].height / shapeArr0[0].width;
|
||||
ratio0 = ratio0 > 1 ? 1 / ratio0 : ratio0;
|
||||
var ratio1 = shapeArr1[0].height / shapeArr1[0].width;
|
||||
ratio1 = ratio1 > 1 ? 1 / ratio1 : ratio1;
|
||||
if (Math.abs(ratio0 - 1) <= Math.abs(ratio1 - 1)) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
};
|
||||
return TreeMapLayout;
|
||||
});define('echarts/data/Tree', [
|
||||
'require',
|
||||
'zrender/tool/util'
|
||||
], function (require) {
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function TreeNode(id, data) {
|
||||
this.id = id;
|
||||
this.depth = 0;
|
||||
this.height = 0;
|
||||
this.children = [];
|
||||
this.parent = null;
|
||||
this.data = data || null;
|
||||
}
|
||||
TreeNode.prototype.add = function (child) {
|
||||
var children = this.children;
|
||||
if (child.parent === this) {
|
||||
return;
|
||||
}
|
||||
children.push(child);
|
||||
child.parent = this;
|
||||
};
|
||||
TreeNode.prototype.remove = function (child) {
|
||||
var children = this.children;
|
||||
var idx = zrUtil.indexOf(children, child);
|
||||
if (idx >= 0) {
|
||||
children.splice(idx, 1);
|
||||
child.parent = null;
|
||||
}
|
||||
};
|
||||
TreeNode.prototype.traverse = function (cb, context) {
|
||||
cb.call(context, this);
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
this.children[i].traverse(cb, context);
|
||||
}
|
||||
};
|
||||
TreeNode.prototype.updateDepthAndHeight = function (depth) {
|
||||
var height = 0;
|
||||
this.depth = depth;
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
var child = this.children[i];
|
||||
child.updateDepthAndHeight(depth + 1);
|
||||
if (child.height > height) {
|
||||
height = child.height;
|
||||
}
|
||||
}
|
||||
this.height = height + 1;
|
||||
};
|
||||
TreeNode.prototype.getNodeById = function (id) {
|
||||
if (this.id === id) {
|
||||
return this;
|
||||
}
|
||||
for (var i = 0; i < this.children.length; i++) {
|
||||
var res = this.children[i].getNodeById(id);
|
||||
if (res) {
|
||||
return res;
|
||||
}
|
||||
}
|
||||
};
|
||||
function Tree(id) {
|
||||
this.root = new TreeNode(id);
|
||||
}
|
||||
Tree.prototype.traverse = function (cb, context) {
|
||||
this.root.traverse(cb, context);
|
||||
};
|
||||
Tree.prototype.getSubTree = function (id) {
|
||||
var root = this.getNodeById(id);
|
||||
if (root) {
|
||||
var tree = new Tree(root.id);
|
||||
tree.root = root;
|
||||
return tree;
|
||||
}
|
||||
};
|
||||
Tree.prototype.getNodeById = function (id) {
|
||||
return this.root.getNodeById(id);
|
||||
};
|
||||
Tree.fromOptionData = function (id, data) {
|
||||
var tree = new Tree(id);
|
||||
var rootNode = tree.root;
|
||||
rootNode.data = {
|
||||
name: id,
|
||||
children: data
|
||||
};
|
||||
function buildHierarchy(dataNode, parentNode) {
|
||||
var node = new TreeNode(dataNode.name, dataNode);
|
||||
parentNode.add(node);
|
||||
var children = dataNode.children;
|
||||
if (children) {
|
||||
for (var i = 0; i < children.length; i++) {
|
||||
buildHierarchy(children[i], node);
|
||||
}
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
buildHierarchy(data[i], rootNode);
|
||||
}
|
||||
tree.root.updateDepthAndHeight(0);
|
||||
return tree;
|
||||
};
|
||||
Tree.fromGraph = function (graph) {
|
||||
function buildHierarchy(root) {
|
||||
var graphNode = graph.getNodeById(root.id);
|
||||
for (var i = 0; i < graphNode.outEdges.length; i++) {
|
||||
var edge = graphNode.outEdges[i];
|
||||
var childTreeNode = treeNodesMap[edge.node2.id];
|
||||
root.children.push(childTreeNode);
|
||||
buildHierarchy(childTreeNode);
|
||||
}
|
||||
}
|
||||
var treeMap = {};
|
||||
var treeNodesMap = {};
|
||||
for (var i = 0; i < graph.nodes.length; i++) {
|
||||
var node = graph.nodes[i];
|
||||
var treeNode;
|
||||
if (node.inDegree() === 0) {
|
||||
treeMap[node.id] = new Tree(node.id);
|
||||
treeNode = treeMap[node.id].root;
|
||||
} else {
|
||||
treeNode = new TreeNode(node.id);
|
||||
}
|
||||
treeNode.data = node.data;
|
||||
treeNodesMap[node.id] = treeNode;
|
||||
}
|
||||
var treeList = [];
|
||||
for (var id in treeMap) {
|
||||
buildHierarchy(treeMap[id].root);
|
||||
treeMap[id].root.updateDepthAndHeight(0);
|
||||
treeList.push(treeMap[id]);
|
||||
}
|
||||
return treeList;
|
||||
};
|
||||
return Tree;
|
||||
});
|
||||
@ -0,0 +1,686 @@
|
||||
define('echarts/chart/venn', [
|
||||
'require',
|
||||
'./base',
|
||||
'zrender/shape/Text',
|
||||
'zrender/shape/Circle',
|
||||
'zrender/shape/Path',
|
||||
'../config',
|
||||
'../util/ecData',
|
||||
'zrender/tool/util',
|
||||
'../chart'
|
||||
], function (require) {
|
||||
var ChartBase = require('./base');
|
||||
var TextShape = require('zrender/shape/Text');
|
||||
var CircleShape = require('zrender/shape/Circle');
|
||||
var PathShape = require('zrender/shape/Path');
|
||||
var ecConfig = require('../config');
|
||||
ecConfig.venn = {
|
||||
zlevel: 0,
|
||||
z: 1,
|
||||
calculable: false
|
||||
};
|
||||
var ecData = require('../util/ecData');
|
||||
var zrUtil = require('zrender/tool/util');
|
||||
function Venn(ecTheme, messageCenter, zr, option, myChart) {
|
||||
ChartBase.call(this, ecTheme, messageCenter, zr, option, myChart);
|
||||
this.refresh(option);
|
||||
}
|
||||
Venn.prototype = {
|
||||
type: ecConfig.CHART_TYPE_VENN,
|
||||
_buildShape: function () {
|
||||
this.selectedMap = {};
|
||||
this._symbol = this.option.symbolList;
|
||||
this._queryTarget;
|
||||
this._dropBoxList = [];
|
||||
this._vennDataCounter = 0;
|
||||
var series = this.series;
|
||||
var legend = this.component.legend;
|
||||
for (var i = 0; i < series.length; i++) {
|
||||
if (series[i].type === ecConfig.CHART_TYPE_VENN) {
|
||||
series[i] = this.reformOption(series[i]);
|
||||
var serieName = series[i].name || '';
|
||||
this.selectedMap[serieName] = legend ? legend.isSelected(serieName) : true;
|
||||
if (!this.selectedMap[serieName]) {
|
||||
continue;
|
||||
}
|
||||
this._buildVenn(i);
|
||||
}
|
||||
}
|
||||
this.addShapeList();
|
||||
},
|
||||
_buildVenn: function (seriesIndex) {
|
||||
var r0;
|
||||
var r1;
|
||||
var serie = this.series[seriesIndex];
|
||||
var data = serie.data;
|
||||
if (data[0].value > data[1].value) {
|
||||
r0 = this.zr.getHeight() / 3;
|
||||
r1 = r0 * Math.sqrt(data[1].value) / Math.sqrt(data[0].value);
|
||||
} else {
|
||||
r1 = this.zr.getHeight() / 3;
|
||||
r0 = r1 * Math.sqrt(data[0].value) / Math.sqrt(data[1].value);
|
||||
}
|
||||
var x0 = this.zr.getWidth() / 2 - r0;
|
||||
var coincideLengthAnchor = (r0 + r1) / 2 * Math.sqrt(data[2].value) / Math.sqrt((data[0].value + data[1].value) / 2);
|
||||
var coincideLength = r0 + r1;
|
||||
if (data[2].value !== 0) {
|
||||
coincideLength = this._getCoincideLength(data[0].value, data[1].value, data[2].value, r0, r1, coincideLengthAnchor, Math.abs(r0 - r1), r0 + r1);
|
||||
}
|
||||
var x1 = x0 + coincideLength;
|
||||
var y = this.zr.getHeight() / 2;
|
||||
this._buildItem(seriesIndex, 0, data[0], x0, y, r0);
|
||||
this._buildItem(seriesIndex, 1, data[1], x1, y, r1);
|
||||
if (data[2].value !== 0 && data[2].value !== data[0].value && data[2].value !== data[1].value) {
|
||||
var xLeft = (r0 * r0 - r1 * r1) / (2 * coincideLength) + coincideLength / 2;
|
||||
var xRight = coincideLength / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLength);
|
||||
var h = Math.sqrt(r0 * r0 - xLeft * xLeft);
|
||||
var rightLargeArcFlag = 0;
|
||||
var leftLargeArcFlag = 0;
|
||||
if (data[0].value > data[1].value && x1 < x0 + xLeft) {
|
||||
leftLargeArcFlag = 1;
|
||||
}
|
||||
if (data[0].value < data[1].value && x1 < x0 + xRight) {
|
||||
rightLargeArcFlag = 1;
|
||||
}
|
||||
this._buildCoincideItem(seriesIndex, 2, data[2], x0 + xLeft, y - h, y + h, r0, r1, rightLargeArcFlag, leftLargeArcFlag);
|
||||
}
|
||||
},
|
||||
_getCoincideLength: function (value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax) {
|
||||
var x = (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor) + coincideLengthAnchor / 2;
|
||||
var y = coincideLengthAnchor / 2 - (r0 * r0 - r1 * r1) / (2 * coincideLengthAnchor);
|
||||
var alfa = Math.acos(x / r0);
|
||||
var beta = Math.acos(y / r1);
|
||||
var area0 = r0 * r0 * Math.PI;
|
||||
var area2 = alfa * r0 * r0 - x * r0 * Math.sin(alfa) + beta * r1 * r1 - y * r1 * Math.sin(beta);
|
||||
var scaleAnchor = area2 / area0;
|
||||
var scale = value2 / value0;
|
||||
var approximateValue = Math.abs(scaleAnchor / scale);
|
||||
if (approximateValue > 0.999 && approximateValue < 1.001) {
|
||||
return coincideLengthAnchor;
|
||||
} else if (approximateValue <= 0.999) {
|
||||
coincideLengthAnchorMax = coincideLengthAnchor;
|
||||
coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMin) / 2;
|
||||
return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax);
|
||||
} else {
|
||||
coincideLengthAnchorMin = coincideLengthAnchor;
|
||||
coincideLengthAnchor = (coincideLengthAnchor + coincideLengthAnchorMax) / 2;
|
||||
return this._getCoincideLength(value0, value1, value2, r0, r1, coincideLengthAnchor, coincideLengthAnchorMin, coincideLengthAnchorMax);
|
||||
}
|
||||
},
|
||||
_buildItem: function (seriesIndex, dataIndex, dataItem, x, y, r) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var circle = this.getCircle(seriesIndex, dataIndex, dataItem, x, y, r);
|
||||
ecData.pack(circle, serie, seriesIndex, dataItem, dataIndex, dataItem.name);
|
||||
this.shapeList.push(circle);
|
||||
if (serie.itemStyle.normal.label.show) {
|
||||
var label = this.getLabel(seriesIndex, dataIndex, dataItem, x, y, r);
|
||||
ecData.pack(label, serie, seriesIndex, serie.data[dataIndex], dataIndex, serie.data[dataIndex].name);
|
||||
this.shapeList.push(label);
|
||||
}
|
||||
},
|
||||
_buildCoincideItem: function (seriesIndex, dataIndex, dataItem, x, y0, y1, r0, r1, rightLargeArcFlag, leftLargeArcFlag) {
|
||||
var series = this.series;
|
||||
var serie = series[seriesIndex];
|
||||
var queryTarget = [
|
||||
dataItem,
|
||||
serie
|
||||
];
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {};
|
||||
var normalColor = normal.color || this.zr.getColor(dataIndex);
|
||||
var emphasisColor = emphasis.color || this.zr.getColor(dataIndex);
|
||||
var path = 'M' + x + ',' + y0 + 'A' + r0 + ',' + r0 + ',0,' + rightLargeArcFlag + ',1,' + x + ',' + y1 + 'A' + r1 + ',' + r1 + ',0,' + leftLargeArcFlag + ',1,' + x + ',' + y0;
|
||||
var style = {
|
||||
color: normalColor,
|
||||
path: path
|
||||
};
|
||||
var shape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
style: style,
|
||||
highlightStyle: {
|
||||
color: emphasisColor,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor
|
||||
}
|
||||
};
|
||||
shape = new PathShape(shape);
|
||||
if (shape.buildPathArray) {
|
||||
shape.style.pathArray = shape.buildPathArray(style.path);
|
||||
}
|
||||
ecData.pack(shape, series[seriesIndex], 0, dataItem, dataIndex, dataItem.name);
|
||||
this.shapeList.push(shape);
|
||||
},
|
||||
getCircle: function (seriesIndex, dataIndex, dataItem, x, y, r) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var queryTarget = [
|
||||
dataItem,
|
||||
serie
|
||||
];
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var emphasis = this.deepMerge(queryTarget, 'itemStyle.emphasis') || {};
|
||||
var normalColor = normal.color || this.zr.getColor(dataIndex);
|
||||
var emphasisColor = emphasis.color || this.zr.getColor(dataIndex);
|
||||
var circle = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
clickable: true,
|
||||
style: {
|
||||
x: x,
|
||||
y: y,
|
||||
r: r,
|
||||
brushType: 'fill',
|
||||
opacity: 1,
|
||||
color: normalColor
|
||||
},
|
||||
highlightStyle: {
|
||||
color: emphasisColor,
|
||||
lineWidth: emphasis.borderWidth,
|
||||
strokeColor: emphasis.borderColor
|
||||
}
|
||||
};
|
||||
if (this.deepQuery([
|
||||
dataItem,
|
||||
serie,
|
||||
this.option
|
||||
], 'calculable')) {
|
||||
this.setCalculable(circle);
|
||||
circle.draggable = true;
|
||||
}
|
||||
return new CircleShape(circle);
|
||||
},
|
||||
getLabel: function (seriesIndex, dataIndex, dataItem, x, y, r) {
|
||||
var serie = this.series[seriesIndex];
|
||||
var itemStyle = serie.itemStyle;
|
||||
var queryTarget = [
|
||||
dataItem,
|
||||
serie
|
||||
];
|
||||
var normal = this.deepMerge(queryTarget, 'itemStyle.normal') || {};
|
||||
var status = 'normal';
|
||||
var labelControl = itemStyle[status].label;
|
||||
var textStyle = labelControl.textStyle || {};
|
||||
var text = this.getLabelText(dataIndex, dataItem, status);
|
||||
var textFont = this.getFont(textStyle);
|
||||
var textColor = normal.color || this.zr.getColor(dataIndex);
|
||||
var textSize = textStyle.fontSize || 12;
|
||||
var textShape = {
|
||||
zlevel: serie.zlevel,
|
||||
z: serie.z,
|
||||
style: {
|
||||
x: x,
|
||||
y: y - r - textSize,
|
||||
color: textStyle.color || textColor,
|
||||
text: text,
|
||||
textFont: textFont,
|
||||
textAlign: 'center'
|
||||
}
|
||||
};
|
||||
return new TextShape(textShape);
|
||||
},
|
||||
getLabelText: function (dataIndex, dataItem, status) {
|
||||
var series = this.series;
|
||||
var serie = series[0];
|
||||
var formatter = this.deepQuery([
|
||||
dataItem,
|
||||
serie
|
||||
], 'itemStyle.' + status + '.label.formatter');
|
||||
if (formatter) {
|
||||
if (typeof formatter == 'function') {
|
||||
return formatter(serie.name, dataItem.name, dataItem.value);
|
||||
} else if (typeof formatter == 'string') {
|
||||
formatter = formatter.replace('{a}', '{a0}').replace('{b}', '{b0}').replace('{c}', '{c0}');
|
||||
formatter = formatter.replace('{a0}', serie.name).replace('{b0}', dataItem.name).replace('{c0}', dataItem.value);
|
||||
return formatter;
|
||||
}
|
||||
} else {
|
||||
return dataItem.name;
|
||||
}
|
||||
},
|
||||
refresh: function (newOption) {
|
||||
if (newOption) {
|
||||
this.option = newOption;
|
||||
this.series = newOption.series;
|
||||
}
|
||||
this._buildShape();
|
||||
}
|
||||
};
|
||||
zrUtil.inherits(Venn, ChartBase);
|
||||
require('../chart').define('venn', Venn);
|
||||
return Venn;
|
||||
});define('zrender/shape/Path', [
|
||||
'require',
|
||||
'./Base',
|
||||
'./util/PathProxy',
|
||||
'../tool/util'
|
||||
], function (require) {
|
||||
var Base = require('./Base');
|
||||
var PathProxy = require('./util/PathProxy');
|
||||
var PathSegment = PathProxy.PathSegment;
|
||||
var vMag = function (v) {
|
||||
return Math.sqrt(v[0] * v[0] + v[1] * v[1]);
|
||||
};
|
||||
var vRatio = function (u, v) {
|
||||
return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));
|
||||
};
|
||||
var vAngle = function (u, v) {
|
||||
return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vRatio(u, v));
|
||||
};
|
||||
var Path = function (options) {
|
||||
Base.call(this, options);
|
||||
};
|
||||
Path.prototype = {
|
||||
type: 'path',
|
||||
buildPathArray: function (data, x, y) {
|
||||
if (!data) {
|
||||
return [];
|
||||
}
|
||||
x = x || 0;
|
||||
y = y || 0;
|
||||
var cs = data;
|
||||
var cc = [
|
||||
'm',
|
||||
'M',
|
||||
'l',
|
||||
'L',
|
||||
'v',
|
||||
'V',
|
||||
'h',
|
||||
'H',
|
||||
'z',
|
||||
'Z',
|
||||
'c',
|
||||
'C',
|
||||
'q',
|
||||
'Q',
|
||||
't',
|
||||
'T',
|
||||
's',
|
||||
'S',
|
||||
'a',
|
||||
'A'
|
||||
];
|
||||
cs = cs.replace(/-/g, ' -');
|
||||
cs = cs.replace(/ /g, ' ');
|
||||
cs = cs.replace(/ /g, ',');
|
||||
cs = cs.replace(/,,/g, ',');
|
||||
var n;
|
||||
for (n = 0; n < cc.length; n++) {
|
||||
cs = cs.replace(new RegExp(cc[n], 'g'), '|' + cc[n]);
|
||||
}
|
||||
var arr = cs.split('|');
|
||||
var ca = [];
|
||||
var cpx = 0;
|
||||
var cpy = 0;
|
||||
for (n = 1; n < arr.length; n++) {
|
||||
var str = arr[n];
|
||||
var c = str.charAt(0);
|
||||
str = str.slice(1);
|
||||
str = str.replace(new RegExp('e,-', 'g'), 'e-');
|
||||
var p = str.split(',');
|
||||
if (p.length > 0 && p[0] === '') {
|
||||
p.shift();
|
||||
}
|
||||
for (var i = 0; i < p.length; i++) {
|
||||
p[i] = parseFloat(p[i]);
|
||||
}
|
||||
while (p.length > 0) {
|
||||
if (isNaN(p[0])) {
|
||||
break;
|
||||
}
|
||||
var cmd = null;
|
||||
var points = [];
|
||||
var ctlPtx;
|
||||
var ctlPty;
|
||||
var prevCmd;
|
||||
var rx;
|
||||
var ry;
|
||||
var psi;
|
||||
var fa;
|
||||
var fs;
|
||||
var x1 = cpx;
|
||||
var y1 = cpy;
|
||||
switch (c) {
|
||||
case 'l':
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'L';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'L':
|
||||
cpx = p.shift();
|
||||
cpy = p.shift();
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'm':
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'M';
|
||||
points.push(cpx, cpy);
|
||||
c = 'l';
|
||||
break;
|
||||
case 'M':
|
||||
cpx = p.shift();
|
||||
cpy = p.shift();
|
||||
cmd = 'M';
|
||||
points.push(cpx, cpy);
|
||||
c = 'L';
|
||||
break;
|
||||
case 'h':
|
||||
cpx += p.shift();
|
||||
cmd = 'L';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'H':
|
||||
cpx = p.shift();
|
||||
cmd = 'L';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'v':
|
||||
cpy += p.shift();
|
||||
cmd = 'L';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'V':
|
||||
cpy = p.shift();
|
||||
cmd = 'L';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'C':
|
||||
points.push(p.shift(), p.shift(), p.shift(), p.shift());
|
||||
cpx = p.shift();
|
||||
cpy = p.shift();
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'c':
|
||||
points.push(cpx + p.shift(), cpy + p.shift(), cpx + p.shift(), cpy + p.shift());
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'C';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'S':
|
||||
ctlPtx = cpx;
|
||||
ctlPty = cpy;
|
||||
prevCmd = ca[ca.length - 1];
|
||||
if (prevCmd.command === 'C') {
|
||||
ctlPtx = cpx + (cpx - prevCmd.points[2]);
|
||||
ctlPty = cpy + (cpy - prevCmd.points[3]);
|
||||
}
|
||||
points.push(ctlPtx, ctlPty, p.shift(), p.shift());
|
||||
cpx = p.shift();
|
||||
cpy = p.shift();
|
||||
cmd = 'C';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 's':
|
||||
ctlPtx = cpx, ctlPty = cpy;
|
||||
prevCmd = ca[ca.length - 1];
|
||||
if (prevCmd.command === 'C') {
|
||||
ctlPtx = cpx + (cpx - prevCmd.points[2]);
|
||||
ctlPty = cpy + (cpy - prevCmd.points[3]);
|
||||
}
|
||||
points.push(ctlPtx, ctlPty, cpx + p.shift(), cpy + p.shift());
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'C';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'Q':
|
||||
points.push(p.shift(), p.shift());
|
||||
cpx = p.shift();
|
||||
cpy = p.shift();
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'q':
|
||||
points.push(cpx + p.shift(), cpy + p.shift());
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'Q';
|
||||
points.push(cpx, cpy);
|
||||
break;
|
||||
case 'T':
|
||||
ctlPtx = cpx, ctlPty = cpy;
|
||||
prevCmd = ca[ca.length - 1];
|
||||
if (prevCmd.command === 'Q') {
|
||||
ctlPtx = cpx + (cpx - prevCmd.points[0]);
|
||||
ctlPty = cpy + (cpy - prevCmd.points[1]);
|
||||
}
|
||||
cpx = p.shift();
|
||||
cpy = p.shift();
|
||||
cmd = 'Q';
|
||||
points.push(ctlPtx, ctlPty, cpx, cpy);
|
||||
break;
|
||||
case 't':
|
||||
ctlPtx = cpx, ctlPty = cpy;
|
||||
prevCmd = ca[ca.length - 1];
|
||||
if (prevCmd.command === 'Q') {
|
||||
ctlPtx = cpx + (cpx - prevCmd.points[0]);
|
||||
ctlPty = cpy + (cpy - prevCmd.points[1]);
|
||||
}
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'Q';
|
||||
points.push(ctlPtx, ctlPty, cpx, cpy);
|
||||
break;
|
||||
case 'A':
|
||||
rx = p.shift();
|
||||
ry = p.shift();
|
||||
psi = p.shift();
|
||||
fa = p.shift();
|
||||
fs = p.shift();
|
||||
x1 = cpx, y1 = cpy;
|
||||
cpx = p.shift(), cpy = p.shift();
|
||||
cmd = 'A';
|
||||
points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);
|
||||
break;
|
||||
case 'a':
|
||||
rx = p.shift();
|
||||
ry = p.shift();
|
||||
psi = p.shift();
|
||||
fa = p.shift();
|
||||
fs = p.shift();
|
||||
x1 = cpx, y1 = cpy;
|
||||
cpx += p.shift();
|
||||
cpy += p.shift();
|
||||
cmd = 'A';
|
||||
points = this._convertPoint(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);
|
||||
break;
|
||||
}
|
||||
for (var j = 0, l = points.length; j < l; j += 2) {
|
||||
points[j] += x;
|
||||
points[j + 1] += y;
|
||||
}
|
||||
ca.push(new PathSegment(cmd || c, points));
|
||||
}
|
||||
if (c === 'z' || c === 'Z') {
|
||||
ca.push(new PathSegment('z', []));
|
||||
}
|
||||
}
|
||||
return ca;
|
||||
},
|
||||
_convertPoint: function (x1, y1, x2, y2, fa, fs, rx, ry, psiDeg) {
|
||||
var psi = psiDeg * (Math.PI / 180);
|
||||
var xp = Math.cos(psi) * (x1 - x2) / 2 + Math.sin(psi) * (y1 - y2) / 2;
|
||||
var yp = -1 * Math.sin(psi) * (x1 - x2) / 2 + Math.cos(psi) * (y1 - y2) / 2;
|
||||
var lambda = xp * xp / (rx * rx) + yp * yp / (ry * ry);
|
||||
if (lambda > 1) {
|
||||
rx *= Math.sqrt(lambda);
|
||||
ry *= Math.sqrt(lambda);
|
||||
}
|
||||
var f = Math.sqrt((rx * rx * (ry * ry) - rx * rx * (yp * yp) - ry * ry * (xp * xp)) / (rx * rx * (yp * yp) + ry * ry * (xp * xp)));
|
||||
if (fa === fs) {
|
||||
f *= -1;
|
||||
}
|
||||
if (isNaN(f)) {
|
||||
f = 0;
|
||||
}
|
||||
var cxp = f * rx * yp / ry;
|
||||
var cyp = f * -ry * xp / rx;
|
||||
var cx = (x1 + x2) / 2 + Math.cos(psi) * cxp - Math.sin(psi) * cyp;
|
||||
var cy = (y1 + y2) / 2 + Math.sin(psi) * cxp + Math.cos(psi) * cyp;
|
||||
var theta = vAngle([
|
||||
1,
|
||||
0
|
||||
], [
|
||||
(xp - cxp) / rx,
|
||||
(yp - cyp) / ry
|
||||
]);
|
||||
var u = [
|
||||
(xp - cxp) / rx,
|
||||
(yp - cyp) / ry
|
||||
];
|
||||
var v = [
|
||||
(-1 * xp - cxp) / rx,
|
||||
(-1 * yp - cyp) / ry
|
||||
];
|
||||
var dTheta = vAngle(u, v);
|
||||
if (vRatio(u, v) <= -1) {
|
||||
dTheta = Math.PI;
|
||||
}
|
||||
if (vRatio(u, v) >= 1) {
|
||||
dTheta = 0;
|
||||
}
|
||||
if (fs === 0 && dTheta > 0) {
|
||||
dTheta = dTheta - 2 * Math.PI;
|
||||
}
|
||||
if (fs === 1 && dTheta < 0) {
|
||||
dTheta = dTheta + 2 * Math.PI;
|
||||
}
|
||||
return [
|
||||
cx,
|
||||
cy,
|
||||
rx,
|
||||
ry,
|
||||
theta,
|
||||
dTheta,
|
||||
psi,
|
||||
fs
|
||||
];
|
||||
},
|
||||
buildPath: function (ctx, style) {
|
||||
var path = style.path;
|
||||
var x = style.x || 0;
|
||||
var y = style.y || 0;
|
||||
style.pathArray = style.pathArray || this.buildPathArray(path, x, y);
|
||||
var pathArray = style.pathArray;
|
||||
var pointList = style.pointList = [];
|
||||
var singlePointList = [];
|
||||
for (var i = 0, l = pathArray.length; i < l; i++) {
|
||||
if (pathArray[i].command.toUpperCase() == 'M') {
|
||||
singlePointList.length > 0 && pointList.push(singlePointList);
|
||||
singlePointList = [];
|
||||
}
|
||||
var p = pathArray[i].points;
|
||||
for (var j = 0, k = p.length; j < k; j += 2) {
|
||||
singlePointList.push([
|
||||
p[j],
|
||||
p[j + 1]
|
||||
]);
|
||||
}
|
||||
}
|
||||
singlePointList.length > 0 && pointList.push(singlePointList);
|
||||
for (var i = 0, l = pathArray.length; i < l; i++) {
|
||||
var c = pathArray[i].command;
|
||||
var p = pathArray[i].points;
|
||||
switch (c) {
|
||||
case 'L':
|
||||
ctx.lineTo(p[0], p[1]);
|
||||
break;
|
||||
case 'M':
|
||||
ctx.moveTo(p[0], p[1]);
|
||||
break;
|
||||
case 'C':
|
||||
ctx.bezierCurveTo(p[0], p[1], p[2], p[3], p[4], p[5]);
|
||||
break;
|
||||
case 'Q':
|
||||
ctx.quadraticCurveTo(p[0], p[1], p[2], p[3]);
|
||||
break;
|
||||
case 'A':
|
||||
var cx = p[0];
|
||||
var cy = p[1];
|
||||
var rx = p[2];
|
||||
var ry = p[3];
|
||||
var theta = p[4];
|
||||
var dTheta = p[5];
|
||||
var psi = p[6];
|
||||
var fs = p[7];
|
||||
var r = rx > ry ? rx : ry;
|
||||
var scaleX = rx > ry ? 1 : rx / ry;
|
||||
var scaleY = rx > ry ? ry / rx : 1;
|
||||
ctx.translate(cx, cy);
|
||||
ctx.rotate(psi);
|
||||
ctx.scale(scaleX, scaleY);
|
||||
ctx.arc(0, 0, r, theta, theta + dTheta, 1 - fs);
|
||||
ctx.scale(1 / scaleX, 1 / scaleY);
|
||||
ctx.rotate(-psi);
|
||||
ctx.translate(-cx, -cy);
|
||||
break;
|
||||
case 'z':
|
||||
ctx.closePath();
|
||||
break;
|
||||
}
|
||||
}
|
||||
return;
|
||||
},
|
||||
getRect: function (style) {
|
||||
if (style.__rect) {
|
||||
return style.__rect;
|
||||
}
|
||||
var lineWidth;
|
||||
if (style.brushType == 'stroke' || style.brushType == 'fill') {
|
||||
lineWidth = style.lineWidth || 1;
|
||||
} else {
|
||||
lineWidth = 0;
|
||||
}
|
||||
var minX = Number.MAX_VALUE;
|
||||
var maxX = Number.MIN_VALUE;
|
||||
var minY = Number.MAX_VALUE;
|
||||
var maxY = Number.MIN_VALUE;
|
||||
var x = style.x || 0;
|
||||
var y = style.y || 0;
|
||||
var pathArray = style.pathArray || this.buildPathArray(style.path);
|
||||
for (var i = 0; i < pathArray.length; i++) {
|
||||
var p = pathArray[i].points;
|
||||
for (var j = 0; j < p.length; j++) {
|
||||
if (j % 2 === 0) {
|
||||
if (p[j] + x < minX) {
|
||||
minX = p[j];
|
||||
}
|
||||
if (p[j] + x > maxX) {
|
||||
maxX = p[j];
|
||||
}
|
||||
} else {
|
||||
if (p[j] + y < minY) {
|
||||
minY = p[j];
|
||||
}
|
||||
if (p[j] + y > maxY) {
|
||||
maxY = p[j];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
var rect;
|
||||
if (minX === Number.MAX_VALUE || maxX === Number.MIN_VALUE || minY === Number.MAX_VALUE || maxY === Number.MIN_VALUE) {
|
||||
rect = {
|
||||
x: 0,
|
||||
y: 0,
|
||||
width: 0,
|
||||
height: 0
|
||||
};
|
||||
} else {
|
||||
rect = {
|
||||
x: Math.round(minX - lineWidth / 2),
|
||||
y: Math.round(minY - lineWidth / 2),
|
||||
width: maxX - minX + lineWidth,
|
||||
height: maxY - minY + lineWidth
|
||||
};
|
||||
}
|
||||
style.__rect = rect;
|
||||
return rect;
|
||||
}
|
||||
};
|
||||
require('../tool/util').inherits(Path, Base);
|
||||
return Path;
|
||||
});
|
||||
@ -0,0 +1,347 @@
|
||||
/*!
|
||||
* Bootstrap v3.1.1 (http://getbootstrap.com)
|
||||
* Copyright 2011-2014 Twitter, Inc.
|
||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||
*/
|
||||
|
||||
.btn-default,
|
||||
.btn-primary,
|
||||
.btn-success,
|
||||
.btn-info,
|
||||
.btn-warning,
|
||||
.btn-danger {
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, .2);
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 1px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.btn-default:active,
|
||||
.btn-primary:active,
|
||||
.btn-success:active,
|
||||
.btn-info:active,
|
||||
.btn-warning:active,
|
||||
.btn-danger:active,
|
||||
.btn-default.active,
|
||||
.btn-primary.active,
|
||||
.btn-success.active,
|
||||
.btn-info.active,
|
||||
.btn-warning.active,
|
||||
.btn-danger.active {
|
||||
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||
box-shadow: inset 0 3px 5px rgba(0, 0, 0, .125);
|
||||
}
|
||||
.btn:active,
|
||||
.btn.active {
|
||||
background-image: none;
|
||||
}
|
||||
.btn-default {
|
||||
text-shadow: 0 1px 0 #fff;
|
||||
background-image: -webkit-linear-gradient(top, #fff 0%, #e0e0e0 100%);
|
||||
background-image: linear-gradient(to bottom, #fff 0%, #e0e0e0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #dbdbdb;
|
||||
border-color: #ccc;
|
||||
}
|
||||
.btn-default:hover,
|
||||
.btn-default:focus {
|
||||
background-color: #e0e0e0;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-default:active,
|
||||
.btn-default.active {
|
||||
background-color: #e0e0e0;
|
||||
border-color: #dbdbdb;
|
||||
}
|
||||
.btn-primary {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #2d6ca2 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #2d6ca2 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff2d6ca2', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #2b669a;
|
||||
}
|
||||
.btn-primary:hover,
|
||||
.btn-primary:focus {
|
||||
background-color: #2d6ca2;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-primary:active,
|
||||
.btn-primary.active {
|
||||
background-color: #2d6ca2;
|
||||
border-color: #2b669a;
|
||||
}
|
||||
.btn-success {
|
||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #419641 100%);
|
||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #419641 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #3e8f3e;
|
||||
}
|
||||
.btn-success:hover,
|
||||
.btn-success:focus {
|
||||
background-color: #419641;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-success:active,
|
||||
.btn-success.active {
|
||||
background-color: #419641;
|
||||
border-color: #3e8f3e;
|
||||
}
|
||||
.btn-info {
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #2aabd2 100%);
|
||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #2aabd2 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #28a4c9;
|
||||
}
|
||||
.btn-info:hover,
|
||||
.btn-info:focus {
|
||||
background-color: #2aabd2;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-info:active,
|
||||
.btn-info.active {
|
||||
background-color: #2aabd2;
|
||||
border-color: #28a4c9;
|
||||
}
|
||||
.btn-warning {
|
||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #eb9316 100%);
|
||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #eb9316 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #e38d13;
|
||||
}
|
||||
.btn-warning:hover,
|
||||
.btn-warning:focus {
|
||||
background-color: #eb9316;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-warning:active,
|
||||
.btn-warning.active {
|
||||
background-color: #eb9316;
|
||||
border-color: #e38d13;
|
||||
}
|
||||
.btn-danger {
|
||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c12e2a 100%);
|
||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c12e2a 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #b92c28;
|
||||
}
|
||||
.btn-danger:hover,
|
||||
.btn-danger:focus {
|
||||
background-color: #c12e2a;
|
||||
background-position: 0 -15px;
|
||||
}
|
||||
.btn-danger:active,
|
||||
.btn-danger.active {
|
||||
background-color: #c12e2a;
|
||||
border-color: #b92c28;
|
||||
}
|
||||
.thumbnail,
|
||||
.img-thumbnail {
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.dropdown-menu > li > a:hover,
|
||||
.dropdown-menu > li > a:focus {
|
||||
background-color: #e8e8e8;
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.dropdown-menu > .active > a,
|
||||
.dropdown-menu > .active > a:hover,
|
||||
.dropdown-menu > .active > a:focus {
|
||||
background-color: #357ebd;
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.navbar-default {
|
||||
background-image: -webkit-linear-gradient(top, #fff 0%, #f8f8f8 100%);
|
||||
background-image: linear-gradient(to bottom, #fff 0%, #f8f8f8 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .15), 0 1px 5px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.navbar-default .navbar-nav > .active > a {
|
||||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f3f3f3 100%);
|
||||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f3f3f3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff3f3f3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.navbar-brand,
|
||||
.navbar-nav > li > a {
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .25);
|
||||
}
|
||||
.navbar-inverse {
|
||||
background-image: -webkit-linear-gradient(top, #3c3c3c 0%, #222 100%);
|
||||
background-image: linear-gradient(to bottom, #3c3c3c 0%, #222 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.navbar-inverse .navbar-nav > .active > a {
|
||||
background-image: -webkit-linear-gradient(top, #222 0%, #282828 100%);
|
||||
background-image: linear-gradient(to bottom, #222 0%, #282828 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff222222', endColorstr='#ff282828', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
-webkit-box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||
box-shadow: inset 0 3px 9px rgba(0, 0, 0, .25);
|
||||
}
|
||||
.navbar-inverse .navbar-brand,
|
||||
.navbar-inverse .navbar-nav > li > a {
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, .25);
|
||||
}
|
||||
.navbar-static-top,
|
||||
.navbar-fixed-top,
|
||||
.navbar-fixed-bottom {
|
||||
border-radius: 0;
|
||||
}
|
||||
.alert {
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, .2);
|
||||
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 1px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
.alert-success {
|
||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #c8e5bc 100%);
|
||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #c8e5bc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #b2dba1;
|
||||
}
|
||||
.alert-info {
|
||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #b9def0 100%);
|
||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #b9def0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #9acfea;
|
||||
}
|
||||
.alert-warning {
|
||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #f8efc0 100%);
|
||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #f8efc0 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #f5e79e;
|
||||
}
|
||||
.alert-danger {
|
||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #e7c3c3 100%);
|
||||
background-image: linear-gradient(to bottom, #f2dede 0%, #e7c3c3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #dca7a7;
|
||||
}
|
||||
.progress {
|
||||
background-image: -webkit-linear-gradient(top, #ebebeb 0%, #f5f5f5 100%);
|
||||
background-image: linear-gradient(to bottom, #ebebeb 0%, #f5f5f5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #3071a9 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #3071a9 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3071a9', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-success {
|
||||
background-image: -webkit-linear-gradient(top, #5cb85c 0%, #449d44 100%);
|
||||
background-image: linear-gradient(to bottom, #5cb85c 0%, #449d44 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-info {
|
||||
background-image: -webkit-linear-gradient(top, #5bc0de 0%, #31b0d5 100%);
|
||||
background-image: linear-gradient(to bottom, #5bc0de 0%, #31b0d5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-warning {
|
||||
background-image: -webkit-linear-gradient(top, #f0ad4e 0%, #ec971f 100%);
|
||||
background-image: linear-gradient(to bottom, #f0ad4e 0%, #ec971f 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.progress-bar-danger {
|
||||
background-image: -webkit-linear-gradient(top, #d9534f 0%, #c9302c 100%);
|
||||
background-image: linear-gradient(to bottom, #d9534f 0%, #c9302c 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.list-group {
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .075);
|
||||
}
|
||||
.list-group-item.active,
|
||||
.list-group-item.active:hover,
|
||||
.list-group-item.active:focus {
|
||||
text-shadow: 0 -1px 0 #3071a9;
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #3278b3 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #3278b3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff3278b3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #3278b3;
|
||||
}
|
||||
.panel {
|
||||
-webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||
box-shadow: 0 1px 2px rgba(0, 0, 0, .05);
|
||||
}
|
||||
.panel-default > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #f5f5f5 0%, #e8e8e8 100%);
|
||||
background-image: linear-gradient(to bottom, #f5f5f5 0%, #e8e8e8 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-primary > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #428bca 0%, #357ebd 100%);
|
||||
background-image: linear-gradient(to bottom, #428bca 0%, #357ebd 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff428bca', endColorstr='#ff357ebd', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-success > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #dff0d8 0%, #d0e9c6 100%);
|
||||
background-image: linear-gradient(to bottom, #dff0d8 0%, #d0e9c6 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-info > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #d9edf7 0%, #c4e3f3 100%);
|
||||
background-image: linear-gradient(to bottom, #d9edf7 0%, #c4e3f3 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-warning > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #fcf8e3 0%, #faf2cc 100%);
|
||||
background-image: linear-gradient(to bottom, #fcf8e3 0%, #faf2cc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.panel-danger > .panel-heading {
|
||||
background-image: -webkit-linear-gradient(top, #f2dede 0%, #ebcccc 100%);
|
||||
background-image: linear-gradient(to bottom, #f2dede 0%, #ebcccc 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
}
|
||||
.well {
|
||||
background-image: -webkit-linear-gradient(top, #e8e8e8 0%, #f5f5f5 100%);
|
||||
background-image: linear-gradient(to bottom, #e8e8e8 0%, #f5f5f5 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);
|
||||
background-repeat: repeat-x;
|
||||
border-color: #dcdcdc;
|
||||
-webkit-box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||
box-shadow: inset 0 1px 3px rgba(0, 0, 0, .05), 0 1px 0 rgba(255, 255, 255, .1);
|
||||
}
|
||||
/*# sourceMappingURL=bootstrap-theme.css.map */
|
||||
@ -0,0 +1,164 @@
|
||||
/* GLOBAL STYLES
|
||||
-------------------------------------------------- */
|
||||
/* Padding below the footer and lighter body text */
|
||||
|
||||
body {
|
||||
padding-bottom: 40px;
|
||||
color: #5a5a5a;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* CUSTOMIZE THE NAVBAR
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Special class on .container surrounding .navbar, used for positioning it into place. */
|
||||
.navbar-wrapper {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
z-index: 20;
|
||||
}
|
||||
|
||||
/* Flip around the padding for proper display in narrow viewports */
|
||||
.navbar-wrapper .container {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
.navbar-wrapper .navbar {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
|
||||
/* CUSTOMIZE THE CAROUSEL
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Carousel base class */
|
||||
.carousel {
|
||||
height: 400px;
|
||||
margin-bottom: 60px;
|
||||
}
|
||||
/* Since positioning the image, we need to help out the caption */
|
||||
.carousel-caption {
|
||||
z-index: 10;
|
||||
}
|
||||
|
||||
/* Declare heights because of positioning of img element */
|
||||
.carousel .item {
|
||||
height: 400px;
|
||||
background-color: #3A90BA ;
|
||||
}
|
||||
.carousel-inner > .item > img {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 50%;
|
||||
margin-left:-640px;
|
||||
min-width: 1280px;
|
||||
height: 400px;
|
||||
}
|
||||
.carousel-control.left {
|
||||
background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .3) 0%), color-stop(rgba(0, 0, 0, .0001) 100%));
|
||||
background-image: linear-gradient(to right, rgba(0, 0, 0, .3) 0%, rgba(0, 0, 0, .0001) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
|
||||
}
|
||||
.carousel-control.right {
|
||||
background-image: -webkit-linear-gradient(left, color-stop(rgba(0, 0, 0, .0001) 0%), color-stop(rgba(0, 0, 0, .3) 100%));
|
||||
background-image: linear-gradient(to right, rgba(0, 0, 0, .0001) 0%, rgba(0, 0, 0, .3) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
|
||||
}
|
||||
.carousel-control:hover, .carousel-control:focus {
|
||||
opacity: .8;
|
||||
}
|
||||
.carousel-caption .btn-warning{
|
||||
background-color: #F4BE27
|
||||
}
|
||||
|
||||
|
||||
/* MARKETING CONTENT
|
||||
-------------------------------------------------- */
|
||||
|
||||
/* Pad the edges of the mobile views a bit */
|
||||
.marketing {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
|
||||
/* Center align the text within the three columns below the carousel */
|
||||
.marketing .col-lg-4 {
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.marketing h2 {
|
||||
font-weight: normal;
|
||||
}
|
||||
.marketing .col-lg-4 p {
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
|
||||
/* Featurettes
|
||||
------------------------- */
|
||||
|
||||
.featurette-divider {
|
||||
margin: 80px 0; /* Space out the Bootstrap <hr> more */
|
||||
}
|
||||
|
||||
/* Thin out the marketing headings */
|
||||
.featurette-heading {
|
||||
font-weight: 300;
|
||||
line-height: 1;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* RESPONSIVE CSS
|
||||
-------------------------------------------------- */
|
||||
|
||||
@media (min-width: 768px) {
|
||||
|
||||
/* Remove the edge padding needed for mobile */
|
||||
.marketing {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
/* Navbar positioning foo */
|
||||
.navbar-wrapper {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.navbar-wrapper .container {
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
}
|
||||
.navbar-wrapper .navbar {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
/* The navbar becomes detached from the top, so we round the corners */
|
||||
.navbar-wrapper .navbar {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
/* Bump up size of carousel content */
|
||||
.carousel-caption p {
|
||||
margin-bottom: 20px;
|
||||
font-size: 21px;
|
||||
line-height: 1.4;
|
||||
}
|
||||
|
||||
.featurette-heading {
|
||||
font-size: 50px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 992px) {
|
||||
.featurette-heading {
|
||||
margin-top: 120px;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,325 @@
|
||||
/* BASICS */
|
||||
|
||||
.CodeMirror {
|
||||
/* Set height, width, borders, and global font properties here */
|
||||
font-family: monospace;
|
||||
height: 420px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
/* PADDING */
|
||||
|
||||
.CodeMirror-lines {
|
||||
padding: 4px 0; /* Vertical padding around content */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
padding: 0 4px; /* Horizontal padding of content */
|
||||
}
|
||||
|
||||
.CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||
background-color: white; /* The little square between H and V scrollbars */
|
||||
}
|
||||
|
||||
/* GUTTER */
|
||||
|
||||
.CodeMirror-gutters {
|
||||
border-right: 1px solid #ddd;
|
||||
background-color: #f7f7f7;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.CodeMirror-linenumbers {}
|
||||
.CodeMirror-linenumber {
|
||||
padding: 0 3px 0 5px;
|
||||
min-width: 20px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.CodeMirror-guttermarker { color: black; }
|
||||
.CodeMirror-guttermarker-subtle { color: #999; }
|
||||
|
||||
/* CURSOR */
|
||||
|
||||
.CodeMirror div.CodeMirror-cursor {
|
||||
border-left: 1px solid black;
|
||||
}
|
||||
/* Shown when moving in bi-directional text */
|
||||
.CodeMirror div.CodeMirror-secondarycursor {
|
||||
border-left: 1px solid silver;
|
||||
}
|
||||
.CodeMirror.cm-fat-cursor div.CodeMirror-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
background: #7e7;
|
||||
}
|
||||
.CodeMirror.cm-fat-cursor div.CodeMirror-cursors {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
.cm-animate-fat-cursor {
|
||||
width: auto;
|
||||
border: 0;
|
||||
-webkit-animation: blink 1.06s steps(1) infinite;
|
||||
-moz-animation: blink 1.06s steps(1) infinite;
|
||||
animation: blink 1.06s steps(1) infinite;
|
||||
}
|
||||
@-moz-keyframes blink {
|
||||
0% { background: #7e7; }
|
||||
50% { background: none; }
|
||||
100% { background: #7e7; }
|
||||
}
|
||||
@-webkit-keyframes blink {
|
||||
0% { background: #7e7; }
|
||||
50% { background: none; }
|
||||
100% { background: #7e7; }
|
||||
}
|
||||
@keyframes blink {
|
||||
0% { background: #7e7; }
|
||||
50% { background: none; }
|
||||
100% { background: #7e7; }
|
||||
}
|
||||
|
||||
/* Can style cursor different in overwrite (non-insert) mode */
|
||||
div.CodeMirror-overwrite div.CodeMirror-cursor {}
|
||||
|
||||
.cm-tab { display: inline-block; text-decoration: inherit; }
|
||||
|
||||
.CodeMirror-ruler {
|
||||
border-left: 1px solid #ccc;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
/* DEFAULT THEME */
|
||||
|
||||
.cm-s-default .cm-keyword {color: #708;}
|
||||
.cm-s-default .cm-atom {color: #219;}
|
||||
.cm-s-default .cm-number {color: #164;}
|
||||
.cm-s-default .cm-def {color: #00f;}
|
||||
.cm-s-default .cm-variable,
|
||||
.cm-s-default .cm-punctuation,
|
||||
.cm-s-default .cm-property,
|
||||
.cm-s-default .cm-operator {}
|
||||
.cm-s-default .cm-variable-2 {color: #05a;}
|
||||
.cm-s-default .cm-variable-3 {color: #085;}
|
||||
.cm-s-default .cm-comment {color: #a50;}
|
||||
.cm-s-default .cm-string {color: #a11;}
|
||||
.cm-s-default .cm-string-2 {color: #f50;}
|
||||
.cm-s-default .cm-meta {color: #555;}
|
||||
.cm-s-default .cm-qualifier {color: #555;}
|
||||
.cm-s-default .cm-builtin {color: #30a;}
|
||||
.cm-s-default .cm-bracket {color: #997;}
|
||||
.cm-s-default .cm-tag {color: #170;}
|
||||
.cm-s-default .cm-attribute {color: #00c;}
|
||||
.cm-s-default .cm-header {color: blue;}
|
||||
.cm-s-default .cm-quote {color: #090;}
|
||||
.cm-s-default .cm-hr {color: #999;}
|
||||
.cm-s-default .cm-link {color: #00c;}
|
||||
|
||||
.cm-negative {color: #d44;}
|
||||
.cm-positive {color: #292;}
|
||||
.cm-header, .cm-strong {font-weight: bold;}
|
||||
.cm-em {font-style: italic;}
|
||||
.cm-link {text-decoration: underline;}
|
||||
.cm-strikethrough {text-decoration: line-through;}
|
||||
|
||||
.cm-s-default .cm-error {color: #f00;}
|
||||
.cm-invalidchar {color: #f00;}
|
||||
|
||||
.CodeMirror-composing { border-bottom: 2px solid; }
|
||||
|
||||
/* Default styles for common addons */
|
||||
|
||||
div.CodeMirror span.CodeMirror-matchingbracket {color: #0f0;}
|
||||
div.CodeMirror span.CodeMirror-nonmatchingbracket {color: #f22;}
|
||||
.CodeMirror-matchingtag { background: rgba(255, 150, 0, .3); }
|
||||
.CodeMirror-activeline-background {background: #e8f2ff;}
|
||||
|
||||
/* STOP */
|
||||
|
||||
/* The rest of this file contains styles related to the mechanics of
|
||||
the editor. You probably shouldn't touch them. */
|
||||
|
||||
.CodeMirror {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
background: white;
|
||||
}
|
||||
|
||||
.CodeMirror-scroll {
|
||||
overflow: scroll !important; /* Things will break if this is overridden */
|
||||
/* 30px is the magic margin used to hide the element's real scrollbars */
|
||||
/* See overflow: hidden in .CodeMirror */
|
||||
margin-bottom: -30px; margin-right: -30px;
|
||||
padding-bottom: 30px;
|
||||
height: 100%;
|
||||
outline: none; /* Prevent dragging from highlighting the element */
|
||||
position: relative;
|
||||
}
|
||||
.CodeMirror-sizer {
|
||||
position: relative;
|
||||
border-right: 30px solid transparent;
|
||||
}
|
||||
|
||||
/* The fake, visible scrollbars. Used to force redraw during scrolling
|
||||
before actuall scrolling happens, thus preventing shaking and
|
||||
flickering artifacts. */
|
||||
.CodeMirror-vscrollbar, .CodeMirror-hscrollbar, .CodeMirror-scrollbar-filler, .CodeMirror-gutter-filler {
|
||||
position: absolute;
|
||||
z-index: 6;
|
||||
display: none;
|
||||
}
|
||||
.CodeMirror-vscrollbar {
|
||||
right: 0; top: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.CodeMirror-hscrollbar {
|
||||
bottom: 0; left: 0;
|
||||
overflow-y: hidden;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
.CodeMirror-scrollbar-filler {
|
||||
right: 0; bottom: 0;
|
||||
}
|
||||
.CodeMirror-gutter-filler {
|
||||
left: 0; bottom: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-gutters {
|
||||
position: absolute; left: 0; top: 0;
|
||||
z-index: 3;
|
||||
}
|
||||
.CodeMirror-gutter {
|
||||
white-space: normal;
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
margin-bottom: -30px;
|
||||
/* Hack to make IE7 behave */
|
||||
*zoom:1;
|
||||
*display:inline;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper {
|
||||
position: absolute;
|
||||
z-index: 4;
|
||||
height: 100%;
|
||||
}
|
||||
.CodeMirror-gutter-elt {
|
||||
position: absolute;
|
||||
cursor: default;
|
||||
z-index: 4;
|
||||
}
|
||||
.CodeMirror-gutter-wrapper {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.CodeMirror-lines {
|
||||
cursor: text;
|
||||
min-height: 1px; /* prevents collapsing before first draw */
|
||||
}
|
||||
.CodeMirror pre {
|
||||
/* Reset some styles that the rest of the page might have set */
|
||||
-moz-border-radius: 0; -webkit-border-radius: 0; border-radius: 0;
|
||||
border-width: 0;
|
||||
background: transparent;
|
||||
font-family: inherit;
|
||||
font-size: inherit;
|
||||
margin: 0;
|
||||
white-space: pre;
|
||||
word-wrap: normal;
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
z-index: 2;
|
||||
position: relative;
|
||||
overflow: visible;
|
||||
-webkit-tap-highlight-color: transparent;
|
||||
}
|
||||
.CodeMirror-wrap pre {
|
||||
word-wrap: break-word;
|
||||
white-space: pre-wrap;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
.CodeMirror-linebackground {
|
||||
position: absolute;
|
||||
left: 0; right: 0; top: 0; bottom: 0;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.CodeMirror-linewidget {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
overflow: auto;
|
||||
}
|
||||
|
||||
.CodeMirror-widget {}
|
||||
|
||||
.CodeMirror-code {
|
||||
outline: none;
|
||||
}
|
||||
|
||||
/* Force content-box sizing for the elements where we expect it */
|
||||
.CodeMirror-scroll,
|
||||
.CodeMirror-sizer,
|
||||
.CodeMirror-gutter,
|
||||
.CodeMirror-gutters,
|
||||
.CodeMirror-linenumber {
|
||||
-moz-box-sizing: content-box;
|
||||
box-sizing: content-box;
|
||||
}
|
||||
|
||||
.CodeMirror-measure {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 0;
|
||||
overflow: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
.CodeMirror-measure pre { position: static; }
|
||||
|
||||
.CodeMirror div.CodeMirror-cursor {
|
||||
position: absolute;
|
||||
border-right: none;
|
||||
width: 0;
|
||||
}
|
||||
|
||||
div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
}
|
||||
.CodeMirror-focused div.CodeMirror-cursors {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.CodeMirror-selected { background: #d9d9d9; }
|
||||
.CodeMirror-focused .CodeMirror-selected { background: #d7d4f0; }
|
||||
.CodeMirror-crosshair { cursor: crosshair; }
|
||||
.CodeMirror ::selection { background: #d7d4f0; }
|
||||
.CodeMirror ::-moz-selection { background: #d7d4f0; }
|
||||
|
||||
.cm-searching {
|
||||
background: #ffa;
|
||||
background: rgba(255, 255, 0, .4);
|
||||
}
|
||||
|
||||
/* IE7 hack to prevent it from returning funny offsetTops on the spans */
|
||||
.CodeMirror span { *vertical-align: text-bottom; }
|
||||
|
||||
/* Used to force a border model for a node */
|
||||
.cm-force-border { padding-right: .1px; }
|
||||
|
||||
@media print {
|
||||
/* Hide the cursor when printing */
|
||||
.CodeMirror div.CodeMirror-cursors {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
/* See issue #2901 */
|
||||
.cm-tab-wrap-hack:after { content: ''; }
|
||||
|
||||
/* Help users use markselection to safely style text background */
|
||||
span.CodeMirror-selectedtext { background: none; }
|
||||
@ -0,0 +1,463 @@
|
||||
* {
|
||||
font-family: "Microsoft YaHei";
|
||||
}
|
||||
.CodeMirror * {
|
||||
font-family: sans-serif;
|
||||
}
|
||||
html {
|
||||
background-color: rgb(6, 19, 37);
|
||||
}
|
||||
body {
|
||||
padding-top: 50px;
|
||||
padding-bottom: 0;
|
||||
background-color: rgb(247, 247, 247);
|
||||
}
|
||||
body p {
|
||||
line-height: 2;
|
||||
}
|
||||
.navbar {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.navbar > .container .navbar-brand {
|
||||
margin-left:0;
|
||||
}
|
||||
.navbar a.navbar-brand {
|
||||
background:url('../img/echarts-logo.png') no-repeat 0 10px;
|
||||
padding-left: 48px;
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
font-size: 25px;
|
||||
}
|
||||
.navbar-default {
|
||||
background-color: rgb(247, 247, 247);
|
||||
border-color:rgb(218, 218, 218);
|
||||
}
|
||||
.navbar-default .navbar-nav > li.active > a {
|
||||
background-color: transparent;
|
||||
color: #3E98C5;
|
||||
font-weight: bolder;
|
||||
border-bottom: 3px solid rgb(62,152, 197);
|
||||
}
|
||||
@media (max-width: 980px) {
|
||||
.navbar-default .navbar-nav > li > a {
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
}
|
||||
.navbar-default .navbar-nav > li > a:hover {
|
||||
background-color: #eee;
|
||||
}
|
||||
.navbar-fixed-top {
|
||||
z-index: 999999;
|
||||
}
|
||||
.carousel-caption.ecx-link {
|
||||
bottom: 20px;
|
||||
}
|
||||
.carousel-caption.ecx-link a {
|
||||
font-size:14px;
|
||||
height: 30px;
|
||||
display: block;
|
||||
color:#999;
|
||||
}
|
||||
.carousel-caption.ecx-link a:hover {
|
||||
color:#eee;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-width:0;
|
||||
margin-bottom:10px;
|
||||
}
|
||||
.marketing .feature .col-lg-4 img {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.marketing .thx .col-lg-4 {
|
||||
margin-bottom: 0;
|
||||
text-align:left;
|
||||
}
|
||||
.thx blockquote p {
|
||||
text-align:left;
|
||||
margin-bottom:0;
|
||||
}
|
||||
.thx blockquote small {
|
||||
text-align:right;
|
||||
}
|
||||
.thx div {
|
||||
padding:0;
|
||||
}
|
||||
div.user {
|
||||
margin-top: 30px;
|
||||
}
|
||||
.user img {
|
||||
height:50px;
|
||||
padding: 5px;
|
||||
margin: 15px 3px;
|
||||
border: 1px solid #ddd;
|
||||
opacity: .75;
|
||||
}
|
||||
.user a:hover img {
|
||||
opacity: 1;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
|
||||
.featurette {
|
||||
padding:50px 0;
|
||||
border-top: 1px solid #ddd;
|
||||
}
|
||||
.featurette-heading {
|
||||
margin-top: 0px
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
hr {
|
||||
border-color: #ddd;
|
||||
}
|
||||
|
||||
.row {
|
||||
margin-right: 0;
|
||||
margin-left: 0;
|
||||
}
|
||||
.jumbotron {
|
||||
margin: 0;
|
||||
text-align: center;
|
||||
background-color:transparent;
|
||||
}
|
||||
.jumbotron h1 {
|
||||
font-size: 100px;
|
||||
line-height: 1;
|
||||
}
|
||||
.jumbotron .lead {
|
||||
font-size: 24px;
|
||||
line-height: 1.25;
|
||||
}
|
||||
.jumbotron .btn {
|
||||
font-size: 21px;
|
||||
padding: 14px 24px;
|
||||
}
|
||||
.team {
|
||||
padding-bottom:0;
|
||||
}
|
||||
.team .row {
|
||||
margin-bottom: 40px;
|
||||
}
|
||||
.team i {
|
||||
font-size:12px;
|
||||
}
|
||||
|
||||
.e-list dt {
|
||||
float: left;
|
||||
clear: left;
|
||||
width: 60px;
|
||||
}
|
||||
.e-list dd {
|
||||
float: left;
|
||||
clear: right;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
#footer {
|
||||
clear:both;
|
||||
background-color: rgb(6, 19, 37);
|
||||
padding: 30px 0;
|
||||
}
|
||||
#footer p {
|
||||
color: #fff;
|
||||
font-size: 14px;
|
||||
}
|
||||
#footer li a {
|
||||
color: rgb(190, 205, 223);
|
||||
font-size: 12px;
|
||||
}
|
||||
#footer ul {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
#footer i {
|
||||
color: rgb(190, 205, 223);
|
||||
}
|
||||
#footer div.flogo {
|
||||
position:relative;
|
||||
}
|
||||
#footer div.flogo img {
|
||||
width:220px;
|
||||
position:absolute;
|
||||
left:30px;
|
||||
top:-120px;
|
||||
}
|
||||
#footer div.flogo a:hover img {
|
||||
top:-130px;
|
||||
}
|
||||
.dropdown i {
|
||||
color:#555;
|
||||
}
|
||||
.nav ul.dropdown-menu{
|
||||
min-width : 0;
|
||||
}
|
||||
.dropdown-menu > li > a {
|
||||
padding: 3px 10px;
|
||||
}
|
||||
|
||||
|
||||
/*example*/
|
||||
.CodeMirror pre{color: #f8f8f2;}
|
||||
.CodeMirror-scrollbar-filler {
|
||||
background-color:rgb(247,247,247);
|
||||
}
|
||||
.container-fluid .example {
|
||||
padding: 25px 0;
|
||||
}
|
||||
.sidebar-nav {
|
||||
padding: 9px 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.nav-header {
|
||||
display: block;
|
||||
padding: 3px 15px;
|
||||
font-size: 11px;
|
||||
font-weight: bold;
|
||||
line-height: 20px;
|
||||
color: #999999;
|
||||
text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
.col-md-4.ani {
|
||||
transition: width 1s;
|
||||
-moz-transition: width 1s;
|
||||
-webkit-transition: width 1s;
|
||||
-o-transition: width 1s;
|
||||
}
|
||||
.col-md-8.ani {
|
||||
transition: width 1s;
|
||||
-moz-transition: width 1s;
|
||||
-webkit-transition: width 1s;
|
||||
-o-transition: width 1s;
|
||||
}
|
||||
.main {
|
||||
height: 400px;
|
||||
/*width: 778px !important;*/
|
||||
overflow: hidden;
|
||||
padding : 10px;
|
||||
margin-bottom: 10px;
|
||||
border: 1px solid #e3e3e3;
|
||||
-webkit-border-radius: 4px;
|
||||
-moz-border-radius: 4px;
|
||||
border-radius: 4px;
|
||||
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
-moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
#graphic .btn {
|
||||
width: 80px;
|
||||
}
|
||||
#graphic .text-primary {
|
||||
margin:0 5px 0 20px
|
||||
}
|
||||
#icon-resize {
|
||||
color:#000;
|
||||
float:right;
|
||||
opacity:.4;
|
||||
filter:alpha(opacity=30);
|
||||
}
|
||||
a#icon-resize:hover {
|
||||
opacity:.8;
|
||||
filter:alpha(opacity=60);
|
||||
text-decoration: blink;
|
||||
}
|
||||
|
||||
/*doc*/
|
||||
.panel {
|
||||
background-color:transparent;
|
||||
margin-left: -15px;
|
||||
margin-top: 10px;
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
}
|
||||
.panel-body {
|
||||
padding: 0 0 0 10px;
|
||||
}
|
||||
#toc,
|
||||
#config {
|
||||
padding: 9px 0;
|
||||
overflow-y : auto;
|
||||
}
|
||||
.tree ul,
|
||||
.tree li {
|
||||
list-style: none;
|
||||
font-size : 14px;
|
||||
line-height : 20px;
|
||||
}
|
||||
.tree ul {
|
||||
margin: 0;
|
||||
padding: 0 0 0 2em;
|
||||
}
|
||||
|
||||
.tree {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.tree strong {
|
||||
color: purple;
|
||||
font-weight: normal;
|
||||
}
|
||||
.tree li {
|
||||
position: relative;
|
||||
}
|
||||
.tree strong:hover, #content .value:hover, #content .summary:hover {
|
||||
background-color: silver;
|
||||
-webkit-transition: all .5s ease-in;
|
||||
}
|
||||
.tree .operator {
|
||||
position: absolute;
|
||||
left: -1em;
|
||||
top: 0;
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
.tree ul .operator {
|
||||
display: block;
|
||||
}
|
||||
.tree ul .value,
|
||||
.tree ul .group,
|
||||
.tree ul .summary {
|
||||
margin-left: .5em;
|
||||
}
|
||||
.tree .group {
|
||||
display: inline;
|
||||
}
|
||||
.tree .summary {
|
||||
display: none;
|
||||
color: black;
|
||||
font-weight: bold;
|
||||
}
|
||||
.tree .tree-close .group {
|
||||
display: none;
|
||||
}
|
||||
.tree .tree-close .summary {
|
||||
display: inline;
|
||||
}
|
||||
.tree .string {
|
||||
color: maroon;
|
||||
}
|
||||
.tree .number {
|
||||
color: blue;
|
||||
}
|
||||
.tree .boolean {
|
||||
color: black;
|
||||
}
|
||||
#doc h3 a,#doc h4 a,#doc h5 a{
|
||||
display:inline-block;
|
||||
padding-top:80px;
|
||||
}
|
||||
table.full {width:100%;}
|
||||
.ADoc_table { border-collapse: collapse; margin-bottom:15px; }
|
||||
|
||||
.ADoc_table th, .ADoc_table td {
|
||||
border:1px solid rgb(23,53,81);
|
||||
padding: 3px;
|
||||
color:#222;
|
||||
}
|
||||
|
||||
.ADoc_table th {
|
||||
border-bottom:2px solid rgb(23,53,81);
|
||||
background:rgb(37,78,117);
|
||||
color:#fff;
|
||||
text-align:center;
|
||||
}
|
||||
.bgRed {
|
||||
background:rgb(255,230,230);
|
||||
}
|
||||
.bgGreen {
|
||||
background:rgb(230,255,230);
|
||||
}
|
||||
.bgBlue {
|
||||
background:rgb(210,230,255);
|
||||
}
|
||||
|
||||
.prettyprint {
|
||||
margin-top: 8px;
|
||||
}
|
||||
.prettyprint xmp{
|
||||
margin: 0px;
|
||||
padding: 10px;
|
||||
}
|
||||
.prettyprint .pln {
|
||||
line-height: 0px;
|
||||
}
|
||||
|
||||
.ec-icon {
|
||||
display: inline-block;
|
||||
width: 35px;
|
||||
height: 25px;
|
||||
*margin-right: .3em;
|
||||
line-height: 25px;
|
||||
vertical-align: middle;
|
||||
background-image: url("../img/icon-bar.png");
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
.ec-icon-line {
|
||||
background-position: 0 -1px;
|
||||
}
|
||||
.ec-icon-bar {
|
||||
background-position: 0 -26px;
|
||||
}
|
||||
.ec-icon-scatter {
|
||||
background-position: 0 -51px;
|
||||
}
|
||||
.ec-icon-k {
|
||||
background-position: 0 -76px;
|
||||
}
|
||||
.ec-icon-pie {
|
||||
background-position: 0 -101px;
|
||||
}
|
||||
.ec-icon-radar {
|
||||
background-position: 0 -126px;
|
||||
}
|
||||
.ec-icon-chord {
|
||||
background-position: 0 -151px;
|
||||
}
|
||||
.ec-icon-force {
|
||||
background-position: 0 -176px;
|
||||
}
|
||||
.ec-icon-map {
|
||||
background-position: 0 -201px;
|
||||
}
|
||||
.ec-icon-gauge {
|
||||
background-position: 0 -226px;
|
||||
}
|
||||
.ec-icon-funnel {
|
||||
background-position: 0 -251px;
|
||||
}
|
||||
.ec-icon-mix {
|
||||
background-position: 0 -276px;
|
||||
}
|
||||
.ec-icon-component {
|
||||
background-position: 0 -301px;
|
||||
}
|
||||
.ec-icon-other {
|
||||
background-position: 0 -326px;
|
||||
}
|
||||
.ec-icon-theme {
|
||||
background-position: 0 -351px;
|
||||
}
|
||||
.ec-icon-topic {
|
||||
background-position: 0 -376px;
|
||||
}
|
||||
.ec-icon-eventRiver {
|
||||
background-position: 0 -401px;
|
||||
}
|
||||
.ec-icon-venn {
|
||||
background-position: 0 -426px;
|
||||
}
|
||||
.ec-icon-treemap {
|
||||
background-position: 0 -451px;
|
||||
}
|
||||
.ec-icon-wordCloud {
|
||||
background-position: 0 -476px;
|
||||
}
|
||||
.ec-icon-tree {
|
||||
background-position: 0 -501px;
|
||||
}
|
||||
.ec-icon-heatmap {
|
||||
background-position: 0 -526px;
|
||||
}
|
||||
@ -0,0 +1,89 @@
|
||||
/*
|
||||
* jQuery FlexSlider v2.0
|
||||
* http://www.woothemes.com/flexslider/
|
||||
*
|
||||
* Copyright 2012 WooThemes
|
||||
* Free to use under the GPLv2 license.
|
||||
* http://www.gnu.org/licenses/gpl-2.0.html
|
||||
*
|
||||
* Contributing author: Tyler Smith (@mbmufffin)
|
||||
*/
|
||||
|
||||
|
||||
/* Browser Resets */
|
||||
.flex-container a:active,
|
||||
.flexslider a:active,
|
||||
.flex-container a:focus,
|
||||
.flexslider a:focus {outline: none;}
|
||||
.slides,
|
||||
.flex-control-nav,
|
||||
.flex-direction-nav {margin: 0; padding: 0; list-style: none;}
|
||||
|
||||
/* FlexSlider Necessary Styles
|
||||
*********************************/
|
||||
.flexslider {margin: 0; padding: 0;overflow:hidden;}
|
||||
.flexslider .slides > li {display: none; -webkit-backface-visibility: hidden;} /* Hide the slides before the JS is loaded. Avoids image jumping */
|
||||
.flexslider .slides img {width: 100%; display: block;}
|
||||
.flex-pauseplay span {text-transform: capitalize;}
|
||||
|
||||
/* Clearfix for the .slides element */
|
||||
.slides:after {content: "."; display: block; clear: both; visibility: hidden; line-height: 0; height: 0;}
|
||||
html[xmlns] .slides {display: block;}
|
||||
* html .slides {height: 1%;}
|
||||
|
||||
/* No JavaScript Fallback */
|
||||
/* If you are not using another script, such as Modernizr, make sure you
|
||||
* include js that eliminates this class on page load */
|
||||
.no-js .slides > li:first-child {display: block;}
|
||||
|
||||
|
||||
/* FlexSlider Default Theme
|
||||
*********************************/
|
||||
.flexslider {margin: 0 0 60px; background: #fff; border: 1px solid #c3e7fd; position: relative; -webkit-border-radius: 4px; -moz-border-radius: 4px; -o-border-radius: 4px; border-radius: 4px; box-shadow: 0 1px 4px rgba(0,0,0,.2); -webkit-box-shadow: 0 1px 4px rgba(0,0,0,.2); -moz-box-shadow: 0 1px 4px rgba(0,0,0,.2); -o-box-shadow: 0 1px 4px rgba(0,0,0,.2); zoom: 1;}
|
||||
.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}
|
||||
.loading .flex-viewport {max-height: 300px;}
|
||||
.flexslider .slides {zoom: 1;}
|
||||
|
||||
.carousel li {margin-right: 5px}
|
||||
|
||||
|
||||
/* Direction Nav */
|
||||
.flex-direction-nav a {width: 30px; height: 30px; margin: -20px 0 0; display: block; background: url(../img/bg_direction_nav.png) no-repeat 0 0; position: absolute; top: 50%; cursor: pointer; text-indent: -9999px; opacity: 0; -webkit-transition: all .3s ease;}
|
||||
.flex-direction-nav .flex-next {background-position: 100% 0; right: -36px; }
|
||||
.flex-direction-nav .flex-prev {left: -36px;}
|
||||
.flexslider:hover .flex-next {opacity: 0.8; right: 5px;}
|
||||
.flexslider:hover .flex-prev {opacity: 0.8; left: 5px;}
|
||||
.flexslider:hover .flex-next:hover, .flexslider:hover .flex-prev:hover {opacity: 1;}
|
||||
.flex-direction-nav .disabled {opacity: .3!important; filter:alpha(opacity=30); cursor: default;}
|
||||
|
||||
/* Control Nav */
|
||||
.flex-control-nav {width: 100%; position: absolute; bottom: -40px; text-align: center;}
|
||||
.flex-control-nav li {margin: 0 6px; display: inline-block; zoom: 1; *display: inline;}
|
||||
.flex-control-paging li a {width: 11px; height: 11px; display: block; background: #666; background: rgba(0,0,0,0.5); cursor: pointer; text-indent: -9999px; -webkit-border-radius: 20px; -moz-border-radius: 20px; -o-border-radius: 20px; border-radius: 20px; box-shadow: inset 0 0 3px rgba(0,0,0,0.3);}
|
||||
.flex-control-paging li a:hover { background: #333; background: rgba(0,0,0,0.7); }
|
||||
.flex-control-paging li a.flex-active { background: #000; background: rgba(0,0,0,0.9); cursor: default; }
|
||||
|
||||
.flex-control-thumbs {margin: 5px 0 0; position: static; overflow: hidden;}
|
||||
.flex-control-thumbs li {width: 25%; float: left; margin: 0;}
|
||||
.flex-control-thumbs img {width: 100%; display: block; opacity: .8; cursor: pointer;border-bottom:10px solid #fff}
|
||||
.flex-control-thumbs img:hover {opacity: 1;border-bottom:10px solid #90ee90}
|
||||
.flex-control-thumbs img.active {opacity: 1; cursor: default;}
|
||||
img.flex-active {border-bottom:10px solid #c3e7fd}
|
||||
|
||||
@media screen and (max-width: 860px) {
|
||||
.flex-direction-nav .flex-prev {opacity: 1; left: 0;}
|
||||
.flex-direction-nav .flex-next {opacity: 1; right: 0;}
|
||||
}
|
||||
|
||||
.thumb6 .flex-control-thumbs li {width: 16.6%;}
|
||||
.thumb5 .flex-control-thumbs li {width: 20%;}
|
||||
.thumb4 .flex-control-thumbs li {width: 25%;}
|
||||
.thumb3 .flex-control-thumbs li {width: 33.3%;}
|
||||
.thumb2 .flex-control-thumbs li {width: 50%;}
|
||||
.slides p{
|
||||
font-weight: bolder;
|
||||
text-align:center;
|
||||
background-color:#c3e7fd;
|
||||
height:30px;
|
||||
line-height:30px;
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
|
||||
@ -0,0 +1,34 @@
|
||||
/* Based on Sublime Text's Monokai theme */
|
||||
|
||||
.cm-s-monokai.CodeMirror {background: #272822; color: #f8f8f2;}
|
||||
.cm-s-monokai div.CodeMirror-selected {background: #49483E !important;}
|
||||
.cm-s-monokai.CodeMirror ::selection { background: rgba(73, 72, 62, .99); }
|
||||
.cm-s-monokai.CodeMirror ::-moz-selection { background: rgba(73, 72, 62, .99); }
|
||||
.cm-s-monokai .CodeMirror-gutters {/*background: #272822;*/ border-right: 0px;}
|
||||
.cm-s-monokai .CodeMirror-guttermarker { color: white; }
|
||||
.cm-s-monokai .CodeMirror-guttermarker-subtle { color: #d0d0d0; }
|
||||
.cm-s-monokai .CodeMirror-linenumber {/*color: #d0d0d0;*/ color: green;}
|
||||
.cm-s-monokai .CodeMirror-cursor {border-left: 1px solid #f8f8f0 !important;}
|
||||
|
||||
.cm-s-monokai span.cm-comment {color: #75715e;}
|
||||
.cm-s-monokai span.cm-atom {color: #ae81ff;}
|
||||
.cm-s-monokai span.cm-number {color: #ae81ff;}
|
||||
|
||||
.cm-s-monokai span.cm-property, .cm-s-monokai span.cm-attribute {color: #a6e22e;}
|
||||
.cm-s-monokai span.cm-keyword {color: #f92672;}
|
||||
.cm-s-monokai span.cm-string {color: #e6db74;}
|
||||
|
||||
.cm-s-monokai span.cm-variable {color: #f8f8f2;}
|
||||
.cm-s-monokai span.cm-variable-2 {color: #9effff;}
|
||||
.cm-s-monokai span.cm-variable-3 {color: #66d9ef;}
|
||||
.cm-s-monokai span.cm-def {color: #fd971f;}
|
||||
.cm-s-monokai span.cm-bracket {color: #f8f8f2;}
|
||||
.cm-s-monokai span.cm-tag {color: #f92672;}
|
||||
.cm-s-monokai span.cm-link {color: #ae81ff;}
|
||||
.cm-s-monokai span.cm-error {background: #f92672; color: #f8f8f0;}
|
||||
|
||||
.cm-s-monokai .CodeMirror-activeline-background {background: #373831 !important;}
|
||||
.cm-s-monokai .CodeMirror-matchingbracket {
|
||||
text-decoration: underline;
|
||||
color: white !important;
|
||||
}
|
||||
@ -0,0 +1,504 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="fontawesomeregular" horiz-adv-x="1536" >
|
||||
<font-face units-per-em="1792" ascent="1536" descent="-256" />
|
||||
<missing-glyph horiz-adv-x="448" />
|
||||
<glyph unicode=" " horiz-adv-x="448" />
|
||||
<glyph unicode="	" horiz-adv-x="448" />
|
||||
<glyph unicode=" " horiz-adv-x="448" />
|
||||
<glyph unicode="¨" horiz-adv-x="1792" />
|
||||
<glyph unicode="©" horiz-adv-x="1792" />
|
||||
<glyph unicode="®" horiz-adv-x="1792" />
|
||||
<glyph unicode="´" horiz-adv-x="1792" />
|
||||
<glyph unicode="Æ" horiz-adv-x="1792" />
|
||||
<glyph unicode="Ø" horiz-adv-x="1792" />
|
||||
<glyph unicode=" " horiz-adv-x="768" />
|
||||
<glyph unicode=" " horiz-adv-x="1537" />
|
||||
<glyph unicode=" " horiz-adv-x="768" />
|
||||
<glyph unicode=" " horiz-adv-x="1537" />
|
||||
<glyph unicode=" " horiz-adv-x="512" />
|
||||
<glyph unicode=" " horiz-adv-x="384" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="256" />
|
||||
<glyph unicode=" " horiz-adv-x="192" />
|
||||
<glyph unicode=" " horiz-adv-x="307" />
|
||||
<glyph unicode=" " horiz-adv-x="85" />
|
||||
<glyph unicode=" " horiz-adv-x="307" />
|
||||
<glyph unicode=" " horiz-adv-x="384" />
|
||||
<glyph unicode="™" horiz-adv-x="1792" />
|
||||
<glyph unicode="∞" horiz-adv-x="1792" />
|
||||
<glyph unicode="≠" horiz-adv-x="1792" />
|
||||
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M93 1350q0 23 18 36.5t38 17.5t43 4h1408q23 0 43 -4t38 -17.5t18 -36.5q0 -35 -43 -78l-632 -632v-768h320q26 0 45 -19t19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45t19 45t45 19h320v768l-632 632q-43 43 -43 78z" />
|
||||
<glyph unicode="" d="M0 -64q0 50 34 89t86 60.5t103.5 32t96.5 10.5q105 0 192 -39v967q0 31 19 56.5t49 35.5l832 256q12 4 28 4q40 0 68 -28t28 -68v-1120q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89t34 89t86 60.5t103.5 32t96.5 10.5 q105 0 192 -39v537l-768 -237v-709q0 -50 -34 -89t-86 -60.5t-103.5 -32t-96.5 -10.5t-96.5 10.5t-103.5 32t-86 60.5t-34 89z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90q0 -52 -38 -90t-90 -38q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v768q-32 -36 -69 -66q-268 -206 -426 -338q-51 -43 -83 -67t-86.5 -48.5 t-102.5 -24.5h-1h-1q-48 0 -102.5 24.5t-86.5 48.5t-83 67q-158 132 -426 338q-37 30 -69 66v-768zM128 1120q0 -168 147 -284q193 -152 401 -317q6 -5 35 -29.5t46 -37.5t44.5 -31.5t50.5 -27.5t43 -9h1h1q20 0 43 9t50.5 27.5t44.5 31.5t46 37.5t35 29.5q208 165 401 317 q54 43 100.5 115.5t46.5 131.5v11v13.5t-0.5 13t-3 12.5t-5.5 9t-9 7.5t-14 2.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z " />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -21 -10.5 -35.5t-30.5 -14.5q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500 l-364 354q-25 27 -25 48z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41t49 -41l225 -455l502 -73q56 -9 56 -46q0 -22 -26 -48l-363 -354l86 -500q1 -7 1 -20q0 -50 -41 -50q-19 0 -40 12l-449 236l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354 q-25 27 -25 48zM221 829l306 -297l-73 -421l378 199l377 -199l-72 421l306 297l-422 62l-189 382l-189 -382z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 131q0 53 3.5 103.5t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q9 0 42 -21.5t74.5 -48t108 -48t133.5 -21.5t133.5 21.5t108 48t74.5 48t42 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5 h-874q-121 0 -194 69.5t-73 189.5zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 -96v1344q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1344q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 64v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM128 320q0 -26 19 -45t45 -19h128 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM128 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19 h-128q-26 0 -45 -19t-19 -45v-128zM512 -64q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM512 704q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v512q0 26 -19 45t-45 19h-768q-26 0 -45 -19t-19 -45v-512zM1536 64 v-128q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45zM1536 320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 704q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128zM1536 1088q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 128v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM0 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 128v384q0 52 38 90t90 38h512q52 0 90 -38 t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM896 896v384q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-384q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 608v192 q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1280 1120v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 96v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM640 608v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68zM640 1120v192q0 40 28 68t68 28h960q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M121 608q0 40 28 68l136 136q28 28 68 28t68 -28l294 -295l656 657q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-724 -724l-136 -136q-28 -28 -68 -28t-68 28l-136 136l-362 362q-28 28 -28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M110 214q0 40 28 68l294 294l-294 294q-28 28 -28 68t28 68l136 136q28 28 68 28t68 -28l294 -294l294 294q28 28 68 28t68 -28l136 -136q28 -28 28 -68t-28 -68l-294 -294l294 -294q28 -28 28 -68t-28 -68l-136 -136q-28 -28 -68 -28t-68 28l-294 294l-294 -294 q-28 -28 -68 -28t-68 28l-136 136q-28 28 -28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h224v224q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-224h224q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-224q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v224h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 704q0 143 55.5 273.5t150 225t225 150t273.5 55.5t273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -220 -124 -399l343 -343q37 -37 37 -90t-37.5 -90.5t-90.5 -37.5q-54 0 -90 38l-343 342q-179 -124 -399 -124q-143 0 -273.5 55.5t-225 150t-150 225t-55.5 273.5z M256 704q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM384 672v64q0 13 9.5 22.5t22.5 9.5h576q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-576q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" d="M0 640q0 182 80.5 343t226.5 270q43 32 95.5 25t83.5 -50q32 -42 24.5 -94.5t-49.5 -84.5q-98 -74 -151.5 -181t-53.5 -228q0 -104 40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5t198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5q0 121 -53.5 228t-151.5 181 q-42 32 -49.5 84.5t24.5 94.5q31 43 84 50t95 -25q146 -109 226.5 -270t80.5 -343q0 -156 -61 -298t-164 -245t-245 -164t-298 -61t-298 61t-245 164t-164 245t-61 298zM640 768v640q0 52 38 90t90 38t90 -38t38 -90v-640q0 -52 -38 -90t-90 -38t-90 38t-38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -96v192q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM384 -96v320q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM768 -96v576q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-576 q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 -96v960q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-960q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1536 -96v1472q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1472q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M0 531v222q0 12 8 23t19 13l186 28q14 46 39 92q-40 57 -107 138q-10 12 -10 24q0 10 9 23q26 36 98.5 107.5t94.5 71.5q13 0 26 -10l138 -107q44 23 91 38q16 136 29 186q7 28 36 28h222q14 0 24.5 -8.5t11.5 -21.5l28 -184q49 -16 90 -37l142 107q9 9 24 9q13 0 25 -10 q129 -119 165 -170q7 -8 7 -22q0 -12 -8 -23q-15 -21 -51 -66.5t-54 -70.5q26 -50 41 -98l183 -28q13 -2 21 -12.5t8 -23.5v-222q0 -12 -8 -23t-20 -13l-185 -28q-19 -54 -39 -91q35 -50 107 -138q10 -12 10 -25t-9 -23q-27 -37 -99 -108t-94 -71q-12 0 -26 9l-138 108 q-44 -23 -91 -38q-16 -136 -29 -186q-7 -28 -36 -28h-222q-14 0 -24.5 8.5t-11.5 21.5l-28 184q-49 16 -90 37l-141 -107q-10 -9 -25 -9q-14 0 -25 11q-126 114 -165 168q-7 10 -7 23q0 12 8 23q15 21 51 66.5t54 70.5q-27 50 -41 99l-183 27q-13 2 -21 12.5t-8 23.5z M512 640q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1056v64q0 14 9 23t23 9h309l70 167q15 37 54 63t79 26h320q40 0 79 -26t54 -63l70 -167h309q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-96v-948q0 -83 -47 -143.5t-113 -60.5h-832q-66 0 -113 58.5t-47 141.5v952h-96q-14 0 -23 9t-9 23zM256 76q0 -22 7 -40.5 t14.5 -27t10.5 -8.5h832q3 0 10.5 8.5t14.5 27t7 40.5v948h-896v-948zM384 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM480 1152h448l-48 117q-7 9 -17 11h-317q-10 -2 -17 -11zM640 224v576q0 14 9 23t23 9h64 q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23zM896 224v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M26 636.5q1 13.5 11 21.5l719 599q32 26 76 26t76 -26l244 -204v195q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-408l219 -182q10 -8 11 -21.5t-7 -23.5l-62 -74q-8 -9 -21 -11h-3q-13 0 -21 7l-692 577l-692 -577q-12 -8 -24 -7q-13 2 -21 11l-62 74q-8 10 -7 23.5zM256 64 v480q0 1 0.5 3t0.5 3l575 474l575 -474q1 -2 1 -6v-480q0 -26 -19 -45t-45 -19h-384v384h-256v-384h-384q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22 v-376z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 544v64q0 14 9 23t23 9h224v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M50 73q0 54 26 116l417 1044q8 19 26 33t38 14h339q-13 0 -23 -9.5t-11 -22.5l-15 -192q-1 -14 8 -23t22 -9h166q13 0 22 9t8 23l-15 192q-1 13 -11 22.5t-23 9.5h339q20 0 38 -14t26 -33l417 -1044q26 -62 26 -116q0 -73 -46 -73h-704q13 0 22 9.5t8 22.5l-20 256 q-1 13 -11 22.5t-23 9.5h-272q-13 0 -23 -9.5t-11 -22.5l-20 -256q-1 -13 8 -22.5t22 -9.5h-704q-46 0 -46 73zM809 540q-1 -12 8 -20t21 -8h244q12 0 21 8t8 20v4l-24 320q-1 13 -11 22.5t-23 9.5h-186q-13 0 -23 -9.5t-11 -22.5l-24 -320v-4z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 96v320q0 40 28 68t68 28h465l135 -136q58 -56 136 -56t136 56l136 136h464q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 985q17 39 59 39h256v448q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-448h256q42 0 59 -39q17 -41 -14 -70 l-448 -448q-18 -19 -45 -19t-45 19l-448 448q-31 29 -14 70zM1152 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM418 620q8 20 30 20h192v352q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-352h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-11 -9 -23 -9t-23 9l-320 320q-15 16 -7 35z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM416 672q0 12 10 24l319 319q11 9 23 9t23 -9l320 -320q15 -16 7 -35q-8 -20 -30 -20h-192v-352q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v352h-192q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M0 64v482q0 62 25 123l238 552q10 25 36.5 42t52.5 17h832q26 0 52.5 -17t36.5 -42l238 -552q25 -61 25 -123v-482q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM197 576h316l95 -192h320l95 192h316q-1 3 -2.5 8t-2.5 8l-212 496h-708l-212 -496q-1 -2 -2.5 -8 t-2.5 -8z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 320v640q0 37 32 56q33 18 64 -1l544 -320q32 -18 32 -55t-32 -55l-544 -320q-15 -9 -32 -9q-16 0 -32 8q-32 19 -32 56z" />
|
||||
<glyph unicode="" d="M0 640q0 156 61 298t164 245t245 164t298 61q147 0 284.5 -55.5t244.5 -156.5l130 129q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l138 138q-148 137 -349 137q-104 0 -198.5 -40.5t-163.5 -109.5t-109.5 -163.5 t-40.5 -198.5t40.5 -198.5t109.5 -163.5t163.5 -109.5t198.5 -40.5q119 0 225 52t179 147q7 10 23 12q14 0 25 -9l137 -138q9 -8 9.5 -20.5t-7.5 -22.5q-109 -132 -264 -204.5t-327 -72.5q-156 0 -298 61t-245 164t-164 245t-61 298z" />
|
||||
<glyph unicode="" d="M0 0v448q0 26 19 45t45 19h448q26 0 45 -19t19 -45t-19 -45l-137 -137q71 -66 161 -102t187 -36q134 0 250 65t186 179q11 17 53 117q8 23 30 23h192q13 0 22.5 -9.5t9.5 -22.5q0 -5 -1 -7q-64 -268 -268 -434.5t-478 -166.5q-146 0 -282.5 55t-243.5 157l-129 -129 q-19 -19 -45 -19t-45 19t-19 45zM18 800v7q65 268 270 434.5t480 166.5q146 0 284 -55.5t245 -156.5l130 129q19 19 45 19t45 -19t19 -45v-448q0 -26 -19 -45t-45 -19h-448q-26 0 -45 19t-19 45t19 45l138 138q-148 137 -349 137q-134 0 -250 -65t-186 -179 q-11 -17 -53 -117q-8 -23 -30 -23h-199q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 160v1088q0 66 47 113t113 47h1472q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1472q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1472q-13 0 -22.5 -9.5t-9.5 -22.5v-832z M256 288v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 544v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z M256 800v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 288v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z M512 544v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5zM512 800v64q0 13 9.5 22.5t22.5 9.5h960q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-13 0 -22.5 9.5t-9.5 22.5z " />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v192q0 184 132 316t316 132t316 -132t132 -316v-192h32q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68zM320 768h512v192q0 106 -75 181t-181 75t-181 -75t-75 -181v-192z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -72 -64 -110v-1266q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5v1266q-64 38 -64 110zM320 320v742q0 32 31 55q21 14 79 43q236 120 421 120q107 0 200 -29t219 -88q38 -19 88 -19 q54 0 117.5 21t110 47t88 47t54.5 21q26 0 45 -19t19 -45v-763q0 -25 -12.5 -38.5t-39.5 -27.5q-215 -116 -369 -116q-61 0 -123.5 22t-108.5 48t-115.5 48t-142.5 22q-192 0 -464 -146q-17 -9 -33 -9q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 650q0 151 67 291t179 242.5t266 163.5t320 61t320 -61t266 -163.5t179 -242.5t67 -291q0 -166 -60 -314l-20 -49l-185 -33q-22 -83 -90.5 -136.5t-156.5 -53.5v-32q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v576q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-32 q71 0 130 -35.5t93 -95.5l68 12q29 95 29 193q0 148 -88 279t-236.5 209t-315.5 78t-315.5 -78t-236.5 -209t-88 -279q0 -98 29 -193l68 -12q34 60 93 95.5t130 35.5v32q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-576q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v32 q-88 0 -156.5 53.5t-90.5 136.5l-185 33l-20 49q-60 148 -60 314z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 448v384q0 26 19 45t45 19h262l333 333q19 19 45 19t45 -19t19 -45v-1088q0 -26 -19 -45t-45 -19t-45 19l-333 333h-262q-26 0 -45 19t-19 45zM908 464q0 21 12 35.5t29 25t34 23t29 35.5t12 57t-12 57t-29 35.5t-34 23t-29 25t-12 35.5q0 27 19 45.5t45 18.5 q15 0 25 -5q70 -27 112.5 -93t42.5 -142t-42.5 -141.5t-112.5 -93.5q-10 -5 -25 -5q-26 0 -45 18.5t-19 45.5zM1008 228q0 39 39 59q56 29 76 44q74 54 115.5 135.5t41.5 173.5t-41.5 173.5t-115.5 135.5q-20 15 -76 44q-39 20 -39 59q0 26 19 45t45 19q13 0 26 -5 q140 -59 225 -188.5t85 -282.5t-85 -282.5t-225 -188.5q-13 -5 -25 -5q-27 0 -46 19t-19 45zM1109 -7q0 36 39 59q7 4 22.5 10.5t22.5 10.5q46 25 82 51q123 91 192 227t69 289t-69 289t-192 227q-36 26 -82 51q-7 4 -22.5 10.5t-22.5 10.5q-39 23 -39 59q0 26 19 45t45 19 q13 0 26 -5q211 -91 338 -283.5t127 -422.5t-127 -422.5t-338 -283.5q-13 -5 -26 -5q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 0v640h640v-640h-640zM0 768v640h640v-640h-640zM128 129h384v383h-384v-383zM128 896h384v384h-384v-384zM256 256v128h128v-128h-128zM256 1024v128h128v-128h-128zM768 0v640h384v-128h128v128h128v-384h-384v128h-128v-384h-128zM768 768v640h640v-640h-640z M896 896h384v384h-384v-384zM1024 0v128h128v-128h-128zM1024 1024v128h128v-128h-128zM1280 0v128h128v-128h-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0v1408h63v-1408h-63zM94 1v1407h32v-1407h-32zM189 1v1407h31v-1407h-31zM346 1v1407h31v-1407h-31zM472 1v1407h62v-1407h-62zM629 1v1407h31v-1407h-31zM692 1v1407h31v-1407h-31zM755 1v1407h31v-1407h-31zM880 1v1407h63v-1407h-63zM1037 1v1407h63v-1407h-63z M1163 1v1407h63v-1407h-63zM1289 1v1407h63v-1407h-63zM1383 1v1407h63v-1407h-63zM1541 1v1407h94v-1407h-94zM1666 1v1407h32v-1407h-32zM1729 0v1408h63v-1408h-63z" />
|
||||
<glyph unicode="" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 864v416q0 52 38 90t90 38h416q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-53 0 -90 37l-715 716q-38 37 -64.5 101t-26.5 117zM192 1088q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5 t-90.5 -37.5t-37.5 -90.5zM704 1408h224q53 0 117 -26.5t102 -64.5l715 -714q37 -39 37 -91q0 -53 -37 -90l-491 -492q-39 -37 -91 -37q-36 0 -59 14t-53 45l470 470q37 37 37 90q0 52 -37 91l-715 714q-38 38 -102 64.5t-117 26.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M10 184q0 4 3 27t4 37q1 8 -3 21.5t-3 19.5q2 11 8 21t16.5 23.5t16.5 23.5q23 38 45 91.5t30 91.5q3 10 0.5 30t-0.5 28q3 11 17 28t17 23q21 36 42 92t25 90q1 9 -2.5 32t0.5 28q4 13 22 30.5t22 22.5q19 26 42.5 84.5t27.5 96.5q1 8 -3 25.5t-2 26.5q2 8 9 18t18 23 t17 21q8 12 16.5 30.5t15 35t16 36t19.5 32t26.5 23.5t36 11.5t47.5 -5.5l-1 -3q38 9 51 9h761q74 0 114 -56t18 -130l-274 -906q-36 -119 -71.5 -153.5t-128.5 -34.5h-869q-27 0 -38 -15q-11 -16 -1 -43q24 -70 144 -70h923q29 0 56 15.5t35 41.5l300 987q7 22 5 57 q38 -15 59 -43q40 -57 18 -129l-275 -906q-19 -64 -76.5 -107.5t-122.5 -43.5h-923q-77 0 -148.5 53.5t-99.5 131.5q-24 67 -2 127zM492 800q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5zM575 1056 q-4 -13 2 -22.5t20 -9.5h608q13 0 25.5 9.5t16.5 22.5l21 64q4 13 -2 22.5t-20 9.5h-608q-13 0 -25.5 -9.5t-16.5 -22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 160v416q0 79 56.5 135.5t135.5 56.5h64v544q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-256h64q79 0 135.5 -56.5t56.5 -135.5v-416q0 -13 -9.5 -22.5t-22.5 -9.5h-224v-160q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-224 q-13 0 -22.5 9.5t-9.5 22.5zM384 0h896v256h-896v-256zM384 640h896v384h-160q-40 0 -68 28t-28 68v160h-640v-640zM1408 576q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 128v896q0 106 75 181t181 75h224l51 136q19 49 69.5 84.5t103.5 35.5h512q53 0 103.5 -35.5t69.5 -84.5l51 -136h224q106 0 181 -75t75 -181v-896q0 -106 -75 -181t-181 -75h-1408q-106 0 -181 75t-75 181zM512 576q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5 t131.5 316.5t-131.5 316.5t-316.5 131.5t-316.5 -131.5t-131.5 -316.5zM672 576q0 119 84.5 203.5t203.5 84.5t203.5 -84.5t84.5 -203.5t-84.5 -203.5t-203.5 -84.5t-203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -128l2 79q23 7 56 12.5t57 10.5t49.5 14.5t44.5 29t31 50.5l237 616l280 724h75h53q8 -14 11 -21l205 -480q33 -78 106 -257.5t114 -274.5q15 -34 58 -144.5t72 -168.5q20 -45 35 -57q19 -15 88 -29.5t84 -20.5q6 -38 6 -57q0 -4 -0.5 -13t-0.5 -13q-63 0 -190 8 t-191 8q-76 0 -215 -7t-178 -8q0 43 4 78l131 28q1 0 12.5 2.5t15.5 3.5t14.5 4.5t15 6.5t11 8t9 11t2.5 14q0 16 -31 96.5t-72 177.5t-42 100l-450 2q-26 -58 -76.5 -195.5t-50.5 -162.5q0 -22 14 -37.5t43.5 -24.5t48.5 -13.5t57 -8.5t41 -4q1 -19 1 -58q0 -9 -2 -27 q-58 0 -174.5 10t-174.5 10q-8 0 -26.5 -4t-21.5 -4q-80 -14 -188 -14zM555 527q33 0 136.5 -2t160.5 -2q19 0 57 2q-87 253 -184 452z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -128l2 94q15 4 85 16t106 27q7 12 12.5 27t8.5 33.5t5.5 32.5t3 37.5t0.5 34v35.5v30q0 982 -22 1025q-4 8 -22 14.5t-44.5 11t-49.5 7t-48.5 4.5t-30.5 3l-4 83q98 2 340 11.5t373 9.5q23 0 68.5 -0.5t67.5 -0.5q70 0 136.5 -13t128.5 -42t108 -71t74 -104.5 t28 -137.5q0 -52 -16.5 -95.5t-39 -72t-64.5 -57.5t-73 -45t-84 -40q154 -35 256.5 -134t102.5 -248q0 -100 -35 -179.5t-93.5 -130.5t-138 -85.5t-163.5 -48.5t-176 -14q-44 0 -132 3t-132 3q-106 0 -307 -11t-231 -12zM533 1292q0 -50 4 -151t4 -152q0 -27 -0.5 -80 t-0.5 -79q0 -46 1 -69q42 -7 109 -7q82 0 143 13t110 44.5t74.5 89.5t25.5 142q0 70 -29 122.5t-79 82t-108 43.5t-124 14q-50 0 -130 -13zM538.5 165q0.5 -37 4.5 -83.5t12 -66.5q74 -32 140 -32q376 0 376 335q0 114 -41 180q-27 44 -61.5 74t-67.5 46.5t-80.5 25 t-84 10.5t-94.5 2q-73 0 -101 -10q0 -53 -0.5 -159t-0.5 -158q0 -8 -1 -67.5t-0.5 -96.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 -126l17 85q6 2 81.5 21.5t111.5 37.5q28 35 41 101q1 7 62 289t114 543.5t52 296.5v25q-24 13 -54.5 18.5t-69.5 8t-58 5.5l19 103q33 -2 120 -6.5t149.5 -7t120.5 -2.5q48 0 98.5 2.5t121 7t98.5 6.5q-5 -39 -19 -89q-30 -10 -101.5 -28.5t-108.5 -33.5 q-8 -19 -14 -42.5t-9 -40t-7.5 -45.5t-6.5 -42q-27 -148 -87.5 -419.5t-77.5 -355.5q-2 -9 -13 -58t-20 -90t-16 -83.5t-6 -57.5l1 -18q17 -4 185 -31q-3 -44 -16 -99q-11 0 -32.5 -1.5t-32.5 -1.5q-29 0 -87 10t-86 10q-138 2 -206 2q-51 0 -143 -9t-121 -11z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q36 0 107.5 -0.5t107.5 -0.5h293q6 0 21 -0.5t20.5 0t16 3t17.5 9t15 17.5l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 48t-14.5 73.5t-7.5 35.5 q-6 8 -12 12.5t-15.5 6t-13 2.5t-18 0.5t-16.5 -0.5q-17 0 -66.5 0.5t-74.5 0.5t-64 -2t-71 -6q-9 -81 -8 -136q0 -94 2 -388t2 -455q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9 t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29t78 27q19 42 19 383q0 101 -3 303t-3 303v117q0 2 0.5 15.5t0.5 25t-1 25.5t-3 24t-5 14q-11 12 -162 12q-33 0 -93 -12t-80 -26q-19 -13 -34 -72.5t-31.5 -111t-42.5 -53.5q-42 26 -56 44zM1414 109.5q9 18.5 42 18.5h80v1024 h-80q-33 0 -42 18.5t11 44.5l126 162q20 26 49 26t49 -26l126 -162q20 -26 11 -44.5t-42 -18.5h-80v-1024h80q33 0 42 -18.5t-11 -44.5l-126 -162q-20 -26 -49 -26t-49 26l-126 162q-20 26 -11 44.5z" />
|
||||
<glyph unicode="" d="M0 1023v383l81 1l54 -27q12 -5 211 -5q44 0 132 2t132 2q70 0 246.5 1t304.5 0.5t247 -4.5q33 -1 56 31l42 1q4 0 14 -0.5t14 -0.5q2 -112 2 -336q0 -80 -5 -109q-39 -14 -68 -18q-25 44 -54 128q-3 9 -11 47.5t-15 73.5t-7 36q-10 13 -27 19q-5 2 -66 2q-30 0 -93 1 t-103 1t-94 -2t-96 -7q-9 -81 -8 -136l1 -152v52q0 -55 1 -154t1.5 -180t0.5 -153q0 -16 -2.5 -71.5t0 -91.5t12.5 -69q40 -21 124 -42.5t120 -37.5q5 -40 5 -50q0 -14 -3 -29l-34 -1q-76 -2 -218 8t-207 10q-50 0 -151 -9t-152 -9q-3 51 -3 52v9q17 27 61.5 43t98.5 29 t78 27q7 16 11.5 74t6 145.5t1.5 155t-0.5 153.5t-0.5 89q0 7 -2.5 21.5t-2.5 22.5q0 7 0.5 44t1 73t0 76.5t-3 67.5t-6.5 32q-11 12 -162 12q-41 0 -163 -13.5t-138 -24.5q-19 -12 -34 -71.5t-31.5 -111.5t-42.5 -54q-42 26 -56 44zM5 -64q0 28 26 49q4 3 36 30t59.5 49 t57.5 41.5t42 19.5q13 0 20.5 -10.5t10 -28.5t2.5 -33.5t-1.5 -33t-1.5 -19.5h1024q0 2 -1.5 19.5t-1.5 33t2.5 33.5t10 28.5t20.5 10.5q12 0 42 -19.5t57.5 -41.5t59.5 -49t36 -30q26 -21 26 -49t-26 -49q-4 -3 -36 -30t-59.5 -49t-57.5 -41.5t-42 -19.5q-13 0 -20.5 10.5 t-10 28.5t-2.5 33.5t1.5 33t1.5 19.5h-1024q0 -2 1.5 -19.5t1.5 -33t-2.5 -33.5t-10 -28.5t-20.5 -10.5q-12 0 -42 19.5t-57.5 41.5t-59.5 49t-36 30q-26 21 -26 49z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1536 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h896 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-896q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h640q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-640q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM128 832v128q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM384 448v128q0 26 19 45t45 19h1280 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM512 1216v128q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1152q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 448v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 832v128q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1216v128q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 416v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5 t-9.5 22.5zM0 800v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h192q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-192 q-13 0 -22.5 9.5t-9.5 22.5zM384 32v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 416v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5 t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 800v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5zM384 1184v192q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5 t-9.5 22.5zM32 704q0 14 9 23l288 288q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-576q0 -13 -9.5 -22.5t-22.5 -9.5q-14 0 -23 9l-288 288q-9 9 -9 23zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088 q-13 0 -22.5 9.5t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM0 416v576q0 13 9.5 22.5t22.5 9.5q14 0 23 -9l288 -288q9 -9 9 -23t-9 -23l-288 -288q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5z M0 1184v192q0 13 9.5 22.5t22.5 9.5h1728q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1728q-13 0 -22.5 9.5t-9.5 22.5zM640 416v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5 t-9.5 22.5zM640 800v192q0 13 9.5 22.5t22.5 9.5h1088q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1088q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h704q119 0 203.5 -84.5t84.5 -203.5v-165l403 402q18 19 45 19q12 0 25 -5q39 -17 39 -59v-1088q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-403 403v-166q0 -119 -84.5 -203.5t-203.5 -84.5h-704q-119 0 -203.5 84.5 t-84.5 203.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v192l320 320l160 -160l512 512l416 -416v-448h-1408zM256 960q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136z" />
|
||||
<glyph unicode="" d="M0 -128v416l832 832l416 -416l-832 -832h-416zM128 128h128v-128h107l91 91l-235 235l-91 -91v-107zM298 384q0 -22 22 -22q10 0 17 7l542 542q7 7 7 17q0 22 -22 22q-10 0 -17 -7l-542 -542q-7 -7 -7 -17zM896 1184l166 165q36 38 90 38q53 0 91 -38l235 -234 q37 -39 37 -91q0 -53 -37 -90l-166 -166z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 896q0 212 150 362t362 150t362 -150t150 -362q0 -109 -33 -179l-364 -774q-16 -33 -47.5 -52t-67.5 -19t-67.5 19t-46.5 52l-365 774q-33 70 -33 179zM256 896q0 -106 75 -181t181 -75t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73v1088q-148 0 -273 -73t-198 -198t-73 -273z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 512q0 145 81 275q6 9 62.5 90.5t101 151t99.5 178t83 201.5q9 30 34 47t51 17t51.5 -17t33.5 -47q28 -93 83 -201.5t99.5 -178t101 -151t62.5 -90.5q81 -127 81 -275q0 -212 -150 -362t-362 -150t-362 150t-150 362zM256 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5 t37.5 90.5q0 36 -20 69q-1 1 -15.5 22.5t-25.5 38t-25 44t-21 50.5q-4 16 -21 16t-21 -16q-7 -23 -21 -50.5t-25 -44t-25.5 -38t-15.5 -22.5q-20 -33 -20 -69z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-14 -14 -32 -8q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v126q0 13 9 22l64 64q15 15 35 7t20 -29v-190 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM640 256v288l672 672l288 -288l-672 -672h-288zM736 448h96v-96h56l116 116l-152 152l-116 -116v-56zM944 688q16 -16 33 1l350 350q17 17 1 33t-33 -1l-350 -350q-17 -17 -1 -33zM1376 1280l92 92 q28 28 68 28t68 -28l152 -152q28 -28 28 -68t-28 -68l-92 -92z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h255q13 0 22.5 -9.5t9.5 -22.5q0 -27 -26 -32q-77 -26 -133 -60q-10 -4 -16 -4h-112q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v214q0 19 18 29q28 13 54 37q16 16 35 8q21 -9 21 -29v-259 q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM256 704q0 49 3.5 91t14 90t28 88t47 81.5t68.5 74t94.5 61.5t124.5 48.5t159.5 30.5t196.5 11h160v192q0 42 39 59q13 5 25 5q26 0 45 -19l384 -384q19 -19 19 -45t-19 -45l-384 -384 q-18 -19 -45 -19q-12 0 -25 5q-39 17 -39 59v192h-160q-323 0 -438 -131q-119 -137 -74 -473q3 -23 -20 -34q-8 -2 -12 -2q-16 0 -26 13q-10 14 -21 31t-39.5 68.5t-49.5 99.5t-38.5 114t-17.5 122z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q63 0 117 -25q15 -7 18 -23q3 -17 -9 -29l-49 -49q-10 -10 -23 -10q-3 0 -9 2q-23 6 -45 6h-832q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v254q0 13 9 22l64 64q10 10 23 10q6 0 12 -3 q20 -8 20 -29v-318q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM257 768q0 33 24 57l110 110q24 24 57 24t57 -24l263 -263l647 647q24 24 57 24t57 -24l110 -110q24 -24 24 -57t-24 -57l-814 -814q-24 -24 -57 -24t-57 24l-430 430 q-24 24 -24 57z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h384v384h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-384h384v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256 q-19 -19 -45 -19t-45 19t-19 45v128h-384v-384h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45t19 45t45 19h128v384h-384v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -64v1408q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-678q4 11 13 19l710 710q19 19 32 13t13 -32v-710q4 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-9 9 -13 19v-678q0 -26 -19 -45 t-45 -19h-128q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M122 640q0 26 19 45l710 710q19 19 32 13t13 -32v-710q5 11 13 19l710 710q19 19 32 13t13 -32v-1472q0 -26 -13 -32t-32 13l-710 710q-8 9 -13 19v-710q0 -26 -13 -32t-32 13l-710 710q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -96v1472q0 26 16.5 36t39.5 -3l1328 -738q23 -13 23 -31t-23 -31l-1328 -738q-23 -13 -39.5 -3t-16.5 36z" />
|
||||
<glyph unicode="" d="M0 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM896 -64v1408q0 26 19 45t45 19h512q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q19 -19 19 -45t-19 -45l-710 -710q-19 -19 -32 -13t-13 32v710q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v710q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32v710 q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 -96v1472q0 26 13 32t32 -13l710 -710q8 -8 13 -19v678q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v678q-5 -10 -13 -19l-710 -710q-19 -19 -32 -13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1538" d="M1 64v256q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM1 525q-6 13 13 32l710 710q19 19 45 19t45 -19l710 -710q19 -19 13 -32t-32 -13h-1472q-26 0 -32 13z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M154 704q0 26 19 45l742 742q19 19 45 19t45 -19l166 -166q19 -19 19 -45t-19 -45l-531 -531l531 -531q19 -19 19 -45t-19 -45l-166 -166q-19 -19 -45 -19t-45 19l-742 742q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M90 128q0 26 19 45l531 531l-531 531q-19 19 -19 45t19 45l166 166q19 19 45 19t45 -19l742 -742q19 -19 19 -45t-19 -45l-742 -742q-19 -19 -45 -19t-45 19l-166 166q-19 19 -19 45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h256v-256q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v256h256q26 0 45 19 t19 45v128q0 26 -19 45t-45 19h-256v256q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-256h-256q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 576q0 -26 19 -45t45 -19h768q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-768q-26 0 -45 -19 t-19 -45v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM387 414q0 -27 19 -46l90 -90q19 -19 46 -19q26 0 45 19l181 181l181 -181q19 -19 45 -19q27 0 46 19 l90 90q19 19 19 46q0 26 -19 45l-181 181l181 181q19 19 19 45q0 27 -19 46l-90 90q-19 19 -46 19q-26 0 -45 -19l-181 -181l-181 181q-19 19 -45 19q-27 0 -46 -19l-90 -90q-19 -19 -19 -46q0 -26 19 -45l181 -181l-181 -181q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 621q0 -27 18 -45l362 -362q19 -19 45 -19q27 0 46 19l543 543q18 18 18 45q0 28 -18 46l-91 90 q-19 19 -45 19t-45 -19l-408 -407l-226 226q-19 19 -45 19t-45 -19l-91 -90q-18 -18 -18 -46z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM417 939q-15 -24 8 -42l132 -100q7 -6 19 -6q16 0 25 12q53 68 86 92q34 24 86 24q48 0 85.5 -26 t37.5 -59q0 -38 -20 -61t-68 -45q-63 -28 -115.5 -86.5t-52.5 -125.5v-36q0 -14 9 -23t23 -9h192q14 0 23 9t9 23q0 19 21.5 49.5t54.5 49.5q32 18 49 28.5t46 35t44.5 48t28 60.5t12.5 81q0 88 -55.5 163t-138.5 116t-170 41q-243 0 -371 -213zM640 160q0 -14 9 -23t23 -9 h192q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-192z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 160q0 -14 9 -23t23 -9h448q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-96v512q0 14 -9 23t-23 9h-320 q-14 0 -23 -9t-9 -23v-160q0 -14 9 -23t23 -9h96v-320h-96q-14 0 -23 -9t-9 -23v-160zM640 1056q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v160q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-160z" />
|
||||
<glyph unicode="" d="M0 576v128q0 26 19 45t45 19h143q37 161 154.5 278.5t278.5 154.5v143q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-143q161 -37 278.5 -154.5t154.5 -278.5h143q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-143q-37 -161 -154.5 -278.5t-278.5 -154.5v-143 q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v143q-161 37 -278.5 154.5t-154.5 278.5h-143q-26 0 -45 19t-19 45zM339 512q32 -108 112.5 -188.5t188.5 -112.5v109q0 26 19 45t45 19h128q26 0 45 -19t19 -45v-109q108 32 188.5 112.5t112.5 188.5h-109q-26 0 -45 19 t-19 45v128q0 26 19 45t45 19h109q-32 108 -112.5 188.5t-188.5 112.5v-109q0 -26 -19 -45t-45 -19h-128q-26 0 -45 19t-19 45v109q-108 -32 -188.5 -112.5t-112.5 -188.5h109q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-109z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM429 480q0 13 10 23l137 137l-137 137q-10 10 -10 23t10 23l146 146q10 10 23 10t23 -10l137 -137l137 137q10 10 23 10t23 -10l146 -146q10 -10 10 -23t-10 -23l-137 -137l137 -137q10 -10 10 -23t-10 -23l-146 -146q-10 -10 -23 -10t-23 10l-137 137 l-137 -137q-10 -10 -23 -10t-23 10l-146 146q-10 10 -10 23z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM346 640q0 26 19 45l102 102q19 19 45 19t45 -19l147 -147l275 275q19 19 45 19t45 -19l102 -102q19 -19 19 -45t-19 -45l-422 -422q-19 -19 -45 -19t-45 19l-294 294q-19 19 -19 45z" />
|
||||
<glyph unicode="" d="M0 643q0 157 61 299.5t163.5 245.5t245 164t298.5 61t298.5 -61t245 -164t163.5 -245.5t61 -299.5t-61 -300t-163.5 -246t-245 -164t-298.5 -61t-298.5 61t-245 164t-163.5 246t-61 300zM224 643q0 -162 89 -299l755 754q-135 91 -300 91q-148 0 -273 -73t-198 -199 t-73 -274zM471 185q137 -89 297 -89q111 0 211.5 43.5t173.5 116.5t116 174.5t43 212.5q0 161 -87 295z" />
|
||||
<glyph unicode="" d="M64 576q0 52 37 91l651 650q38 38 91 38q52 0 90 -38l75 -74q38 -38 38 -91t-38 -91l-293 -293h704q52 0 84.5 -37.5t32.5 -90.5v-128q0 -53 -32.5 -90.5t-84.5 -37.5h-704l293 -294q38 -36 38 -90t-38 -90l-75 -76q-37 -37 -90 -37q-52 0 -91 37l-651 652q-37 37 -37 90 z" />
|
||||
<glyph unicode="" d="M0 512v128q0 53 32.5 90.5t84.5 37.5h704l-293 294q-38 36 -38 90t38 90l75 75q38 38 90 38q53 0 91 -38l651 -651q37 -35 37 -90q0 -54 -37 -91l-651 -651q-39 -37 -91 -37q-51 0 -90 37l-75 75q-38 38 -38 91t38 91l293 293h-704q-52 0 -84.5 37.5t-32.5 90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M53 565q0 53 38 91l651 651q35 37 90 37q54 0 91 -37l651 -651q37 -39 37 -91q0 -51 -37 -90l-75 -75q-38 -38 -91 -38q-54 0 -90 38l-294 293v-704q0 -52 -37.5 -84.5t-90.5 -32.5h-128q-53 0 -90.5 32.5t-37.5 84.5v704l-294 -293q-36 -38 -90 -38t-90 38l-75 75 q-38 38 -38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M53 704q0 53 38 91l74 75q39 37 91 37q53 0 90 -37l294 -294v704q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-704l294 294q37 37 90 37q52 0 91 -37l75 -75q37 -39 37 -91q0 -53 -37 -90l-651 -652q-39 -37 -91 -37q-53 0 -90 37l-651 652q-38 36 -38 90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 416q0 199 53 333q162 403 875 403h224v256q0 26 19 45t45 19t45 -19l512 -512q19 -19 19 -45t-19 -45l-512 -512q-19 -19 -45 -19t-45 19t-19 45v256h-224q-98 0 -175.5 -6t-154 -21.5t-133 -42.5t-105.5 -69.5t-80 -101t-48.5 -138.5t-17.5 -181q0 -55 5 -123 q0 -6 2.5 -23.5t2.5 -26.5q0 -15 -8.5 -25t-23.5 -10q-16 0 -28 17q-7 9 -13 22t-13.5 30t-10.5 24q-127 285 -127 451z" />
|
||||
<glyph unicode="" d="M0 -64v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45zM781 800q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448 q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
|
||||
<glyph unicode="" d="M13 32q0 13 10 23l332 332l-144 144q-19 19 -19 45t19 45t45 19h448q26 0 45 -19t19 -45v-448q0 -26 -19 -45t-45 -19t-45 19l-144 144l-332 -332q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23zM768 704v448q0 26 19 45t45 19t45 -19l144 -144l332 332q10 10 23 10 t23 -10l114 -114q10 -10 10 -23t-10 -23l-332 -332l144 -144q19 -19 19 -45t-19 -45t-45 -19h-448q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h416v416q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-416h416q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-416v-416q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68v416h-416q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h1216q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-1216q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M122.5 408.5q13.5 51.5 59.5 77.5l266 154l-266 154q-46 26 -59.5 77.5t12.5 97.5l64 110q26 46 77.5 59.5t97.5 -12.5l266 -153v307q0 52 38 90t90 38h128q52 0 90 -38t38 -90v-307l266 153q46 26 97.5 12.5t77.5 -59.5l64 -110q26 -46 12.5 -97.5t-59.5 -77.5 l-266 -154l266 -154q46 -26 59.5 -77.5t-12.5 -97.5l-64 -110q-26 -46 -77.5 -59.5t-97.5 12.5l-266 153v-307q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v307l-266 -153q-46 -26 -97.5 -12.5t-77.5 59.5l-64 110q-26 46 -12.5 97.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM624 1126l17 -621q0 -10 10 -17.5t24 -7.5h185q14 0 23.5 7.5t10.5 17.5l18 621q0 12 -10 18 q-10 8 -24 8h-220q-14 0 -24 -8q-10 -6 -10 -18zM640 161q0 -13 10 -23t23 -10h192q13 0 22 9.5t9 23.5v190q0 14 -9 23.5t-22 9.5h-192q-13 0 -23 -10t-10 -23v-190z" />
|
||||
<glyph unicode="" d="M0 544v320q0 14 9 23t23 9h440q-93 0 -158.5 65.5t-65.5 158.5t65.5 158.5t158.5 65.5q107 0 168 -77l128 -165l128 165q61 77 168 77q93 0 158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5h440q14 0 23 -9t9 -23v-320q0 -14 -9 -23t-23 -9h-96v-416q0 -40 -28 -68 t-68 -28h-1088q-40 0 -68 28t-28 68v416h-96q-14 0 -23 9t-9 23zM376 1120q0 -40 28 -68t68 -28h195l-126 161q-26 31 -69 31q-40 0 -68 -28t-28 -68zM608 180q0 -25 18 -38.5t46 -13.5h192q28 0 46 13.5t18 38.5v56v468v192h-320v-192v-468v-56zM870 1024h194q40 0 68 28 t28 68t-28 68t-68 28q-43 0 -69 -31z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 121q0 35 31 73.5t68 65.5t68 56t31 48q0 4 -14 38t-16 44q-9 51 -9 104q0 115 43.5 220t119 184.5t170.5 139t204 95.5q55 18 145 25.5t179.5 9t178.5 6t163.5 24t113.5 56.5l29.5 29.5t29.5 28t27 20t36.5 16t43.5 4.5q39 0 70.5 -46t47.5 -112t24 -124t8 -96 q0 -95 -20 -193q-46 -224 -184.5 -383t-357.5 -268q-214 -108 -438 -108q-148 0 -286 47q-15 5 -88 42t-96 37q-16 0 -39.5 -32t-45 -70t-52.5 -70t-60 -32q-30 0 -51 11t-31 24t-27 42q-2 4 -6 11t-5.5 10t-3 9.5t-1.5 13.5zM384 448q0 -26 19 -45t45 -19q24 0 45 19 q27 24 74 71t67 66q137 124 268.5 176t313.5 52q26 0 45 19t19 45t-19 45t-45 19q-172 0 -318 -49.5t-259.5 -134t-235.5 -219.5q-19 -21 -19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -160q0 13 9.5 22.5t22.5 9.5h1344q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-1344q-13 0 -22.5 9.5t-9.5 22.5v64zM256 640q0 78 24.5 144t64 112.5t87.5 88t96 77.5t87.5 72t64 81.5t24.5 96.5q0 94 -66 224l3 -1l-1 1q90 -41 160 -83t138.5 -100 t113.5 -122.5t72.5 -150.5t27.5 -184q0 -78 -24.5 -144t-64 -112.5t-87.5 -88t-96 -77.5t-87.5 -72t-64 -81.5t-24.5 -96.5q0 -96 67 -224l-4 1l1 -1q-90 41 -160 83t-138.5 100t-113.5 122.5t-72.5 150.5t-27.5 184z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 576q0 34 20 69q140 229 376.5 368t499.5 139t499.5 -139t376.5 -368q20 -35 20 -69t-20 -69q-140 -230 -376.5 -368.5t-499.5 -138.5t-499.5 139t-376.5 368q-20 35 -20 69zM128 576q133 -205 333.5 -326.5t434.5 -121.5t434.5 121.5t333.5 326.5q-152 236 -381 353 q61 -104 61 -225q0 -185 -131.5 -316.5t-316.5 -131.5t-316.5 131.5t-131.5 316.5q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5t-89.5 -214.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 576q0 38 20 69q153 235 380 371t496 136q89 0 180 -17l54 97q10 16 28 16q5 0 18 -6t31 -15.5t33 -18.5t31.5 -18.5t19.5 -11.5q16 -10 16 -27q0 -7 -1 -9q-105 -188 -315 -566t-316 -567l-49 -89q-10 -16 -28 -16q-12 0 -134 70q-16 10 -16 28q0 12 44 87 q-143 65 -263.5 173t-208.5 245q-20 31 -20 69zM128 576q167 -258 427 -375l78 141q-87 63 -136 159t-49 203q0 121 61 225q-229 -117 -381 -353zM592 704q0 -20 14 -34t34 -14t34 14t14 34q0 86 61 147t147 61q20 0 34 14t14 34t-14 34t-34 14q-125 0 -214.5 -89.5 t-89.5 -214.5zM896 0l74 132q212 18 392.5 137t301.5 307q-115 179 -282 294l63 112q95 -64 182.5 -153t144.5 -184q20 -34 20 -69t-20 -69q-39 -64 -109 -145q-150 -172 -347.5 -267t-419.5 -95zM1056 286l280 502q8 -45 8 -84q0 -139 -79 -253.5t-209 -164.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M16 61l768 1408q17 31 47 49t65 18t65 -18t47 -49l768 -1408q35 -63 -2 -126q-17 -29 -46.5 -46t-63.5 -17h-1536q-34 0 -63.5 17t-46.5 46q-37 63 -2 126zM752 992l17 -457q0 -10 10 -16.5t24 -6.5h185q14 0 23.5 6.5t10.5 16.5l18 459q0 12 -10 19q-13 11 -24 11h-220 q-11 0 -24 -11q-10 -7 -10 -21zM768 161q0 -14 9.5 -23.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 23.5v190q0 14 -9.5 23.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -23.5v-190z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 477q-1 13 9 25l96 97q9 9 23 9q6 0 8 -1l194 -53l259 259l-508 279q-14 8 -17 24q-2 16 9 27l128 128q14 13 30 8l665 -159l160 160q76 76 172 108t148 -12q44 -52 12 -148t-108 -172l-161 -161l160 -696q5 -19 -12 -33l-128 -96q-7 -6 -19 -6q-4 0 -7 1q-15 3 -21 16 l-279 508l-259 -259l53 -194q5 -17 -8 -31l-96 -96q-9 -9 -23 -9h-2q-15 2 -24 13l-189 252l-252 189q-11 7 -13 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h288v288h-288v-288zM128 224 h288v320h-288v-320zM128 608h288v288h-288v-288zM384 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM480 -128h320v288h-320v-288zM480 224h320v320h-320v-320zM480 608h320v288h-320 v-288zM864 -128h320v288h-320v-288zM864 224h320v320h-320v-320zM864 608h320v288h-320v-288zM1152 1088q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v288q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-288zM1248 -128h288v288h-288v-288z M1248 224h288v320h-288v-320zM1248 608h288v288h-288v-288z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 160v192q0 14 9 23t23 9h224q48 0 87 15t69 45t51 61.5t45 77.5q32 62 78 171q29 66 49.5 111t54 105t64 100t74 83t90 68.5t106.5 42t128 16.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 h-256q-48 0 -87 -15t-69 -45t-51 -61.5t-45 -77.5q-32 -62 -78 -171q-29 -66 -49.5 -111t-54 -105t-64 -100t-74 -83t-90 -68.5t-106.5 -42t-128 -16.5h-224q-14 0 -23 9t-9 23zM0 1056v192q0 14 9 23t23 9h224q250 0 410 -225q-60 -92 -137 -273q-22 45 -37 72.5 t-40.5 63.5t-51 56.5t-63 35t-81.5 14.5h-224q-14 0 -23 9t-9 23zM743 353q59 93 136 273q22 -45 37 -72.5t40.5 -63.5t51 -56.5t63 -35t81.5 -14.5h256v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192 q-32 0 -85 -0.5t-81 -1t-73 1t-71 5t-64 10.5t-63 18.5t-58 28.5t-59 40t-55 53.5t-56 69.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 130 71 248.5t191 204.5t286 136.5t348 50.5q244 0 450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22q-17 -2 -30.5 9t-17.5 29v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5 t34.5 38t31 39.5t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281z" />
|
||||
<glyph unicode="" d="M0 576v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -52 23.5 -90t53.5 -57t71 -30t64 -13t44 -2t44 2t64 13t71 30t53.5 57t23.5 90v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-128q0 -201 -98.5 -362t-274 -251.5t-395.5 -90.5t-395.5 90.5t-274 251.5 t-98.5 362zM0 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45zM1024 960v384q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-384q0 -26 -19 -45t-45 -19h-384q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M90 250.5q0 26.5 19 45.5l742 741q19 19 45 19t45 -19l742 -741q19 -19 19 -45.5t-19 -45.5l-166 -165q-19 -19 -45 -19t-45 19l-531 531l-531 -531q-19 -19 -45 -19t-45 19l-166 165q-19 19 -19 45.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M90 773.5q0 26.5 19 45.5l166 165q19 19 45 19t45 -19l531 -531l531 531q19 19 45 19t45 -19l166 -165q19 -19 19 -45.5t-19 -45.5l-742 -741q-19 -19 -45 -19t-45 19l-742 741q-19 19 -19 45.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 704q0 24 15 41l320 384q19 22 49 22t49 -22l320 -384q15 -17 15 -41q0 -26 -19 -45t-45 -19h-192v-384h576q16 0 25 -11l160 -192q7 -11 7 -21q0 -13 -9.5 -22.5t-22.5 -9.5h-960q-8 0 -13.5 2t-9 7t-5.5 8t-3 11.5t-1 11.5v13v11v160v416h-192q-26 0 -45 19t-19 45z M640 1120q0 13 9.5 22.5t22.5 9.5h960q8 0 13.5 -2t9 -7t5.5 -8t3 -11.5t1 -11.5v-13v-11v-160v-416h192q26 0 45 -19t19 -45q0 -24 -15 -41l-320 -384q-20 -23 -49 -23t-49 23l-320 384q-15 17 -15 41q0 26 19 45t45 19h192v384h-576q-16 0 -25 12l-160 192q-7 9 -7 20z " />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 1216q0 26 19 45t45 19h256q16 0 28.5 -6.5t20 -15.5t13 -24.5t7.5 -26.5t5.5 -29.5t4.5 -25.5h1201q26 0 45 -19t19 -45v-512q0 -24 -16 -42.5t-41 -21.5l-1044 -122q1 -7 4.5 -21.5t6 -26.5t2.5 -22q0 -16 -24 -64h920q26 0 45 -19t19 -45t-19 -45t-45 -19h-1024 q-26 0 -45 19t-19 45q0 14 11 39.5t29.5 59.5t20.5 38l-177 823h-204q-26 0 -45 19t-19 45zM384 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1280 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h-832q-94 0 -197 -47.5t-164 -119.5l-337 -396l-5 -6q0 4 -0.5 12.5t-0.5 12.5zM73 56q0 31 31 66l336 396q43 51 120.5 86.5t143.5 35.5h1088q34 0 60.5 -13t26.5 -43 q0 -31 -31 -66l-336 -396q-43 -51 -120.5 -86.5t-143.5 -35.5h-1088q-34 0 -60.5 13t-26.5 43z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M64 64q0 26 19 45t45 19h128v1024h-128q-26 0 -45 19t-19 45t19 45l256 256q19 19 45 19t45 -19l256 -256q19 -19 19 -45t-19 -45t-45 -19h-128v-1024h128q26 0 45 -19t19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19l-256 256q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 26 19 45l256 256q19 19 45 19t45 -19t19 -45v-128h1024v128q0 26 19 45t45 19t45 -19l256 -256q19 -19 19 -45t-19 -45l-256 -256q-19 -19 -45 -19t-45 19t-19 45v128h-1024v-128q0 -26 -19 -45t-45 -19t-45 19l-256 256q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v1216q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-1216z M256 128v384h256v-384h-256zM640 128v896h256v-896h-256zM1024 128v640h256v-640h-256zM1408 128v1024h256v-1024h-256z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 286q148 -94 322 -94q112 0 210 35.5t168 95t120.5 137t75 162t24.5 168.5q0 18 -1 27q63 45 105 109 q-56 -25 -121 -34q68 40 93 117q-65 -38 -134 -51q-61 66 -153 66q-87 0 -148.5 -61.5t-61.5 -148.5q0 -29 5 -48q-129 7 -242 65t-192 155q-29 -50 -29 -106q0 -114 91 -175q-47 1 -100 26v-2q0 -75 50 -133.5t123 -72.5q-29 -8 -51 -8q-13 0 -39 4q21 -63 74.5 -104 t121.5 -42q-116 -90 -261 -90q-26 0 -50 3z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-192v608h203l30 224h-233v143q0 54 28 83t96 29l132 1v207q-96 9 -180 9q-136 0 -218 -80.5t-82 -225.5v-166h-224v-224h224v-608h-544 q-119 0 -203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0v1280q0 53 37.5 90.5t90.5 37.5h1536q53 0 90.5 -37.5t37.5 -90.5v-1280q0 -53 -37.5 -90.5t-90.5 -37.5h-1536q-53 0 -90.5 37.5t-37.5 90.5zM128 0h1536v128h-1536v-128zM128 1024h1536v118v138h-828l-64 -128h-644v-128zM256 1216h384v128h-384v-128zM512 574 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM640 574q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM736 576q0 -14 9 -23t23 -9t23 9t9 23q0 40 28 68t68 28q14 0 23 9 t9 23t-9 23t-23 9q-66 0 -113 -47t-47 -113z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 752q0 160 95 313t248 248t313 95q163 0 265.5 -102.5t102.5 -265.5q0 -189 -131 -365l355 -355l96 96q-3 3 -26 24.5t-40 38.5t-33 36.5t-16 28.5q0 17 49 66t66 49q13 0 23 -10q6 -6 46 -44.5t82 -79.5t86.5 -86t73 -78t28.5 -41q0 -17 -49 -66t-66 -49 q-9 0 -28.5 16t-36.5 33t-38.5 40t-24.5 26l-96 -96l220 -220q28 -28 28 -68q0 -42 -39 -81t-81 -39q-40 0 -68 28l-671 671q-176 -131 -365 -131q-163 0 -265.5 102.5t-102.5 265.5zM192 768q0 -80 56 -136t136 -56t136 56t56 136q0 42 -19 83q41 -19 83 -19q80 0 136 56 t56 136t-56 136t-136 56t-136 -56t-56 -136q0 -42 19 -83q-41 19 -83 19q-80 0 -136 -56t-56 -136z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 549v185q0 10 7 19.5t16 10.5l155 24q11 35 32 76q-34 48 -90 115q-7 11 -7 20q0 12 7 20q22 30 82 89t79 59q11 0 21 -7l115 -90q34 18 77 32q11 108 23 154q7 24 30 24h186q11 0 20 -7.5t10 -17.5l23 -153q34 -10 75 -31l118 89q8 7 20 7q11 0 21 -8 q144 -133 144 -160q0 -9 -7 -19q-12 -16 -42 -54t-45 -60q23 -48 34 -82l152 -23q10 -2 17 -10.5t7 -19.5v-185q0 -10 -7 -19.5t-16 -10.5l-155 -24q-11 -35 -32 -76q34 -48 90 -115q7 -10 7 -20q0 -12 -7 -19q-23 -30 -82.5 -89.5t-78.5 -59.5q-11 0 -21 7l-115 90 q-37 -19 -77 -31q-11 -108 -23 -155q-7 -24 -30 -24h-186q-11 0 -20 7.5t-10 17.5l-23 153q-34 10 -75 31l-118 -89q-7 -7 -20 -7q-11 0 -21 8q-144 133 -144 160q0 9 7 19q10 14 41 53t47 61q-23 44 -35 82l-152 24q-10 1 -17 9.5t-7 19.5zM384 640q0 -106 75 -181t181 -75 t181 75t75 181t-75 181t-181 75t-181 -75t-75 -181zM1152 58v140q0 16 149 31q13 29 30 52q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31 v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1152 1082v140q0 16 149 31q13 29 30 52 q-51 113 -51 138q0 4 4 7q4 2 35 20t59 34t30 16q8 0 46 -46.5t52 -67.5q20 2 30 2t30 -2q51 71 92 112l6 2q4 0 124 -70q4 -3 4 -7q0 -25 -51 -138q17 -23 30 -52q149 -15 149 -31v-140q0 -16 -149 -31q-12 -27 -30 -52q51 -113 51 -138q0 -4 -4 -7q-122 -71 -124 -71 q-8 0 -46 47t-52 68q-20 -2 -30 -2t-30 2q-14 -21 -52 -68t-46 -47q-2 0 -124 71q-4 3 -4 7q0 25 51 138q-18 25 -30 52q-149 15 -149 31zM1408 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90zM1408 1152q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5q0 52 -38 90t-90 38t-90 -38t-38 -90z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM616 132q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5 t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
|
||||
<glyph unicode="" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h274q36 24 137 155q58 75 107 128q24 25 35.5 85.5t30.5 126.5t62 108q39 37 90 37q84 0 151 -32.5t102 -101.5t35 -186q0 -93 -48 -192h176q104 0 180 -76t76 -179q0 -89 -49 -163q9 -33 9 -69q0 -77 -38 -144q3 -21 3 -43 q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5h-36h-93q-96 0 -189.5 22.5t-216.5 65.5q-116 40 -138 40h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q13 0 31.5 -3t33 -6.5t38 -11t35 -11.5 t35.5 -12.5t29 -10.5q211 -73 342 -73h121q192 0 192 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5q32 1 53.5 47t21.5 81q0 51 -39 89.5t-89 38.5h-352q0 58 48 159.5t48 160.5q0 98 -32 145t-128 47q-26 -26 -38 -85 t-30.5 -125.5t-59.5 -109.5q-22 -23 -77 -91q-4 -5 -23 -30t-31.5 -41t-34.5 -42.5t-40 -44t-38.5 -35.5t-40 -27t-35.5 -9h-32v-640z" />
|
||||
<glyph unicode="" d="M0 512v640q0 53 37.5 90.5t90.5 37.5h288q22 0 138 40q128 44 223 66t200 22h112q140 0 226.5 -79t85.5 -216v-5q60 -77 60 -178q0 -22 -3 -43q38 -67 38 -144q0 -36 -9 -69q49 -74 49 -163q0 -103 -76 -179t-180 -76h-176q48 -99 48 -192q0 -118 -35 -186 q-35 -69 -102 -101.5t-151 -32.5q-51 0 -90 37q-34 33 -54 82t-25.5 90.5t-17.5 84.5t-31 64q-48 50 -107 127q-101 131 -137 155h-274q-53 0 -90.5 37.5t-37.5 90.5zM128 1088q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 512h32q16 0 35.5 -9 t40 -27t38.5 -35.5t40 -44t34.5 -42.5t31.5 -41t23 -30q55 -68 77 -91q41 -43 59.5 -109.5t30.5 -125.5t38 -85q96 0 128 47t32 145q0 59 -48 160.5t-48 159.5h352q50 0 89 38.5t39 89.5q0 35 -21.5 81t-53.5 47q15 17 25 47.5t10 55.5q0 69 -53 119q18 32 18 69t-17.5 73.5 t-47.5 52.5q5 30 5 56q0 85 -49 126t-136 41h-128q-131 0 -342 -73q-5 -2 -29 -10.5t-35.5 -12.5t-35 -11.5t-38 -11t-33 -6.5t-31.5 -3h-32v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="896" d="M0 889q0 37 56 46l502 73l225 455q19 41 49 41v-1339l-449 -236q-22 -12 -40 -12q-21 0 -31.5 14.5t-10.5 35.5q0 6 2 20l86 500l-364 354q-25 27 -25 48z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 940q0 220 127 344t351 124q62 0 126.5 -21.5t120 -58t95.5 -68.5t76 -68q36 36 76 68t95.5 68.5t120 58t126.5 21.5q224 0 351 -124t127 -344q0 -221 -229 -450l-623 -600q-18 -18 -44 -18t-44 18l-624 602q-10 8 -27.5 26t-55.5 65.5t-68 97.5t-53.5 121t-23.5 138z M128 940q0 -168 187 -355l581 -560l580 559q188 188 188 356q0 81 -21.5 143t-55 98.5t-81.5 59.5t-94 31t-98 8t-112 -25.5t-110.5 -64t-86.5 -72t-60 -61.5q-18 -22 -49 -22t-49 22q-24 28 -60 61.5t-86.5 72t-110.5 64t-112 25.5t-98 -8t-94 -31t-81.5 -59.5t-55 -98.5 t-21.5 -143z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 288v704q0 119 84.5 203.5t203.5 84.5h320q13 0 22.5 -9.5t9.5 -22.5q0 -4 1 -20t0.5 -26.5t-3 -23.5t-10 -19.5t-20.5 -6.5h-320q-66 0 -113 -47t-47 -113v-704q0 -66 47 -113t113 -47h288h11h13t11.5 -1t11.5 -3t8 -5.5t7 -9t2 -13.5q0 -4 1 -20t0.5 -26.5t-3 -23.5 t-10 -19.5t-20.5 -6.5h-320q-119 0 -203.5 84.5t-84.5 203.5zM384 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM223 1030q0 -51 35.5 -85.5t92.5 -34.5h1q59 0 95 34.5t36 85.5q-1 52 -36 86t-93 34t-94.5 -34t-36.5 -86z M237 122h231v694h-231v-694zM595 122h231v388q0 38 7 56q15 35 45 59.5t74 24.5q116 0 116 -157v-371h231v398q0 154 -73 233t-193 79q-136 0 -209 -117h2v101h-231q3 -66 0 -694z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 320q0 123 78.5 221.5t177.5 98.5v512q-52 0 -90 38t-38 90t38 90t90 38h640q52 0 90 -38t38 -90t-38 -90t-90 -38v-512q99 0 177.5 -98.5t78.5 -221.5q0 -26 -19 -45t-45 -19h-429l-51 -483q-2 -12 -10.5 -20.5t-20.5 -8.5h-1q-27 0 -32 27l-76 485h-404q-26 0 -45 19 t-19 45zM416 672q0 -14 9 -23t23 -9t23 9t9 23v448q0 14 -9 23t-23 9t-23 -9t-9 -23v-448z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-66 0 -113 -47t-47 -113v-832q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v320q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-320q0 -119 -84.5 -203.5t-203.5 -84.5h-832 q-119 0 -203.5 84.5t-84.5 203.5zM685 576q0 13 10 23l652 652l-176 176q-19 19 -19 45t19 45t45 19h512q26 0 45 -19t19 -45v-512q0 -26 -19 -45t-45 -19t-45 19l-176 176l-652 -652q-10 -10 -23 -10t-23 10l-114 114q-10 10 -10 23z" />
|
||||
<glyph unicode="" d="M0 448v384q0 26 19 45t45 19h448v288q0 26 19 45t45 19t45 -19l544 -544q19 -19 19 -45t-19 -45l-544 -544q-19 -19 -45 -19t-45 19t-19 45v288h-448q-26 0 -45 19t-19 45zM894.5 78.5q0.5 10.5 3 23.5t10 19.5t20.5 6.5h320q66 0 113 47t47 113v704q0 66 -47 113 t-113 47h-288h-11h-13t-11.5 1t-11.5 3t-8 5.5t-7 9t-2 13.5q0 4 -1 20t-0.5 26.5t3 23.5t10 19.5t20.5 6.5h320q119 0 203.5 -84.5t84.5 -203.5v-704q0 -119 -84.5 -203.5t-203.5 -84.5h-320q-13 0 -22.5 9.5t-9.5 22.5q0 4 -1 20t-0.5 26.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 928v128q0 40 28 68t68 28h288v96q0 66 47 113t113 47h576q66 0 113 -47t47 -113v-96h288q40 0 68 -28t28 -68v-128q0 -71 -41.5 -143t-112 -130t-173 -97.5t-215.5 -44.5q-42 -54 -95 -95q-38 -34 -52.5 -72.5t-14.5 -89.5q0 -54 30.5 -91t97.5 -37q75 0 133.5 -45.5 t58.5 -114.5v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23v64q0 69 58.5 114.5t133.5 45.5q67 0 97.5 37t30.5 91q0 51 -14.5 89.5t-52.5 72.5q-53 41 -95 95q-113 5 -215.5 44.5t-173 97.5t-112 130t-41.5 143zM128 928q0 -78 94.5 -162t235.5 -113q-74 162 -74 371 h-256v-96zM1206 653q141 29 235.5 113t94.5 162v96h-256q0 -209 -74 -371z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-224q-16 0 -24.5 1t-19.5 5t-16 14.5t-5 27.5v239q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204 q-28 9 -81 -11t-92 -44l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52 t-49.5 24l-20 3q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -103t0.5 -68q0 -22 -11 -33.5t-22 -13t-33 -1.5h-224q-119 0 -203.5 84.5t-84.5 203.5zM271 315q3 5 13 2 q10 -5 7 -12q-5 -7 -13 -2q-10 5 -7 12zM304 290q6 6 16 -3q9 -11 2 -16q-6 -7 -16 3q-9 11 -2 16zM335 233q-9 13 0 18q9 7 17 -6q9 -12 0 -19q-8 -6 -17 7zM370 206q8 9 20 -3q12 -11 4 -19q-8 -9 -20 3q-13 11 -4 19zM419 168q4 11 19 7q16 -5 13 -16q-4 -12 -19 -6 q-17 4 -13 15zM481 154q0 11 16 11q17 2 17 -11q0 -11 -16 -11q-17 -2 -17 11zM540 158q-2 12 14 15q16 2 18 -9q2 -10 -14 -14t-18 8z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -32v320q0 40 28 68t68 28h427q21 -56 70.5 -92t110.5 -36h256q61 0 110.5 36t70.5 92h427q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-1472q-40 0 -68 28t-28 68zM325 936q-17 39 14 69l448 448q18 19 45 19t45 -19l448 -448q31 -30 14 -69q-17 -40 -59 -40 h-256v-448q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45v448h-256q-42 0 -59 40zM1152 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM1408 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 433q0 111 18 217.5t54.5 209.5t100.5 194t150 156q78 59 232 120q194 78 316 78q60 0 175.5 -24t173.5 -24q19 0 57 5t58 5q81 0 118 -50.5t37 -134.5q0 -23 -5 -68t-5 -68q0 -10 1 -18.5t3 -17t4 -13.5t6.5 -16t6.5 -17q16 -40 25 -118.5t9 -136.5q0 -165 -70 -327.5 t-196 -288t-281 -180.5q-124 -44 -326 -44q-57 0 -170 14.5t-169 14.5q-24 0 -72.5 -14.5t-73.5 -14.5q-73 0 -123.5 55.5t-50.5 128.5q0 24 11 68t11 67q0 40 -12.5 120.5t-12.5 121.5zM128 434q0 -40 12.5 -120t12.5 -121q0 -23 -11 -66.5t-11 -65.5t12 -36.5t34 -14.5 q24 0 72.5 11t73.5 11q57 0 169.5 -15.5t169.5 -15.5q181 0 284 36q129 45 235.5 152.5t166 245.5t59.5 275q0 44 -7 113.5t-18 96.5q-12 30 -17 44t-9 36.5t-4 48.5q0 23 5 68.5t5 67.5q0 37 -10 55q-4 1 -13 1q-19 0 -58 -4.5t-59 -4.5q-60 0 -176 24t-175 24 q-43 0 -94.5 -11.5t-85 -23.5t-89.5 -34q-137 -54 -202 -103q-96 -73 -159.5 -189.5t-88 -236t-24.5 -248.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1069q0 92 51 186q56 101 106 122q25 11 68.5 21t70.5 10q14 0 21 -3q18 -6 53 -76q11 -19 30 -54t35 -63.5t31 -53.5q3 -4 17.5 -25t21.5 -35.5t7 -28.5q0 -20 -28.5 -50t-62 -55t-62 -53t-28.5 -46q0 -9 5 -22.5t8.5 -20.5t14 -24t11.5 -19q76 -137 174 -235 t235 -174q2 -1 19 -11.5t24 -14t20.5 -8.5t22.5 -5q18 0 46 28.5t53 62t55 62t50 28.5q14 0 28.5 -7t35.5 -21.5t25 -17.5q25 -15 53.5 -31t63.5 -35t54 -30q70 -35 76 -53q3 -7 3 -21q0 -27 -10 -70.5t-21 -68.5q-21 -50 -122 -106q-94 -51 -186 -51q-27 0 -52.5 3.5 t-57.5 12.5t-47.5 14.5t-55.5 20.5t-49 18q-98 35 -175 83q-128 79 -264.5 215.5t-215.5 264.5q-48 77 -83 175q-3 9 -18 49t-20.5 55.5t-14.5 47.5t-12.5 57.5t-3.5 52.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 7v1289q0 34 19.5 62t52.5 41q21 9 44 9h1048q23 0 44 -9q33 -13 52.5 -41t19.5 -62v-1289q0 -34 -19.5 -62t-52.5 -41q-19 -8 -44 -8q-48 0 -83 32l-441 424l-441 -424q-36 -33 -83 -33q-23 0 -44 9q-33 13 -52.5 41t-19.5 62zM128 38l423 406l89 85l89 -85l423 -406 v1242h-1024v-1242z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 905q0 -16 2.5 -34t5 -30.5t9 -33t10 -29.5t12.5 -33t11 -30q60 -164 216.5 -320.5t320.5 -216.5 q6 -2 30 -11t33 -12.5t29.5 -10t33 -9t30.5 -5t34 -2.5q57 0 130.5 34t94.5 80q22 53 22 101q0 11 -2 16q-3 8 -38.5 29.5t-88.5 49.5l-53 29q-5 3 -19 13t-25 15t-21 5q-18 0 -47 -32.5t-57 -65.5t-44 -33q-7 0 -16.5 3.5t-15.5 6.5t-17 9.5t-14 8.5q-99 55 -170.5 126.5 t-126.5 170.5q-2 3 -8.5 14t-9.5 17t-6.5 15.5t-3.5 16.5q0 13 20.5 33.5t45 38.5t45 39.5t20.5 36.5q0 10 -5 21t-15 25t-13 19q-3 6 -15 28.5t-25 45.5t-26.5 47.5t-25 40.5t-16.5 18t-16 2q-48 0 -101 -22q-46 -21 -80 -94.5t-34 -130.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M44 145q35 -4 78 -4q225 0 401 138q-105 2 -188 64.5t-114 159.5q33 -5 61 -5q43 0 85 11q-112 23 -185.5 111.5t-73.5 205.5v4q68 -38 146 -41q-66 44 -105 115t-39 154q0 88 44 163q121 -149 294.5 -238.5t371.5 -99.5q-8 38 -8 74q0 134 94.5 228.5t228.5 94.5 q140 0 236 -102q109 21 205 78q-37 -115 -142 -178q93 10 186 50q-67 -98 -162 -167q1 -14 1 -42q0 -130 -38 -259.5t-115.5 -248.5t-184.5 -210.5t-258 -146t-323 -54.5q-271 0 -496 145z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M95 631v296h255v218q0 186 104 288.5t277 102.5q147 0 228 -12v-264h-157q-86 0 -116 -36t-30 -108v-189h293l-39 -296h-254v-759h-306v759h-255z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5q0 -251 -146.5 -451.5t-378.5 -277.5q-27 -5 -39.5 7t-12.5 30v211q0 97 -52 142q57 6 102.5 18t94 39t81 66.5t53 105t20.5 150.5q0 121 -79 206q37 91 -8 204q-28 9 -81 -11t-92 -44 l-38 -24q-93 26 -192 26t-192 -26q-16 11 -42.5 27t-83.5 38.5t-86 13.5q-44 -113 -7 -204q-79 -85 -79 -206q0 -85 20.5 -150t52.5 -105t80.5 -67t94 -39t102.5 -18q-40 -36 -49 -103q-21 -10 -45 -15t-57 -5t-65.5 21.5t-55.5 62.5q-19 32 -48.5 52t-49.5 24l-20 3 q-21 0 -29 -4.5t-5 -11.5t9 -14t13 -12l7 -5q22 -10 43.5 -38t31.5 -51l10 -23q13 -38 44 -61.5t67 -30t69.5 -7t55.5 3.5l23 4q0 -38 0.5 -89t0.5 -54q0 -18 -13 -30t-40 -7q-232 77 -378.5 277.5t-146.5 451.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 96v576q0 40 28 68t68 28h672v192q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5v-256q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45v256q0 106 -75 181t-181 75t-181 -75t-75 -181v-192h96q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960 q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 32v1216q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1600q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v608h-1664v-608zM128 1024h1664v224q0 13 -9.5 22.5t-22.5 9.5h-1600 q-13 0 -22.5 -9.5t-9.5 -22.5v-224zM256 128v128h256v-128h-256zM640 128v128h384v-128h-384z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 192q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 697v135q0 29 21 47q17 17 43 17h5q160 -13 306 -80.5t259 -181.5q114 -113 181.5 -259t80.5 -306q2 -28 -17 -48q-18 -21 -47 -21h-135q-25 0 -43 16.5t-20 41.5q-22 229 -184.5 391.5 t-391.5 184.5q-25 2 -41.5 20t-16.5 43zM0 1201v143q0 28 20 46q18 18 44 18h3q262 -13 501.5 -120t425.5 -294q187 -186 294 -425.5t120 -501.5q2 -27 -18 -47q-18 -20 -46 -20h-143q-26 0 -44.5 17.5t-19.5 42.5q-12 215 -101 408.5t-231.5 336t-336 231.5t-408.5 102 q-25 1 -42.5 19.5t-17.5 43.5z" />
|
||||
<glyph unicode="" d="M0 160v320q0 25 16 75l197 606q17 53 63 86t101 33h782q55 0 101 -33t63 -86l197 -606q16 -50 16 -75v-320q0 -66 -47 -113t-113 -47h-1216q-66 0 -113 47t-47 113zM128 160q0 -13 9.5 -22.5t22.5 -9.5h1216q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-1216 q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM178 640h1180l-157 482q-4 13 -16 21.5t-26 8.5h-782q-14 0 -26 -8.5t-16 -21.5zM880 320q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1136 320q0 33 23.5 56.5t56.5 23.5 t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 672v192q0 66 47 113t113 47h480q435 0 896 384q52 0 90 -38t38 -90v-384q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5v-384q0 -52 -38 -90t-90 -38q-417 347 -812 380q-58 -19 -91 -66t-31 -100.5t40 -92.5q-20 -33 -23 -65.5t6 -58t33.5 -55t48 -50 t61.5 -50.5q-29 -58 -111.5 -83t-168.5 -11.5t-132 55.5q-7 23 -29.5 87.5t-32 94.5t-23 89t-15 101t3.5 98.5t22 110.5h-122q-66 0 -113 47t-47 113zM768 633q377 -42 768 -341v954q-394 -302 -768 -343v-270z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM183 128h1298q-164 181 -246.5 411.5t-82.5 484.5q0 256 -320 256t-320 -256q0 -254 -82.5 -484.5t-246.5 -411.5zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
|
||||
<glyph unicode="" d="M2 435q-10 42 20 70l138 135l-138 135q-30 28 -20 70q12 41 52 51l188 48l-53 186q-12 41 19 70q29 31 70 19l186 -53l48 188q10 41 51 51q41 12 70 -19l135 -139l135 139q29 30 70 19q41 -10 51 -51l48 -188l186 53q41 12 70 -19q31 -29 19 -70l-53 -186l188 -48 q40 -10 52 -51q10 -42 -20 -70l-138 -135l138 -135q30 -28 20 -70q-12 -41 -52 -51l-188 -48l53 -186q12 -41 -19 -70q-29 -31 -70 -19l-186 53l-48 -188q-10 -40 -51 -52q-12 -2 -19 -2q-31 0 -51 22l-135 138l-135 -138q-28 -30 -70 -20q-41 11 -51 52l-48 188l-186 -53 q-41 -12 -70 19q-31 29 -19 70l53 186l-188 48q-40 10 -52 51z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 128v640q0 53 37.5 90.5t90.5 37.5h288q10 0 21.5 4.5t23.5 14t22.5 18t24 22.5t20.5 21.5t19 21.5t14 17q65 74 100 129q13 21 33 62t37 72t40.5 63t55 49.5t69.5 17.5q125 0 206.5 -67t81.5 -189q0 -68 -22 -128h374q104 0 180 -76t76 -179q0 -105 -75.5 -181 t-180.5 -76h-169q-4 -62 -37 -119q3 -21 3 -43q0 -101 -60 -178q1 -139 -85 -219.5t-227 -80.5q-133 0 -322 69q-164 59 -223 59h-288q-53 0 -90.5 37.5t-37.5 90.5zM128 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM384 128h32q72 0 167 -32 t193.5 -64t179.5 -32q189 0 189 167q0 26 -5 56q30 16 47.5 52.5t17.5 73.5t-18 69q53 50 53 119q0 25 -10 55.5t-25 47.5h331q52 0 90 38t38 90q0 51 -39 89.5t-89 38.5h-576q0 20 15 48.5t33 55t33 68t15 84.5q0 67 -44.5 97.5t-115.5 30.5q-24 0 -90 -139 q-24 -44 -37 -65q-40 -64 -112 -145q-71 -81 -101 -106q-69 -57 -140 -57h-32v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 769q0 103 76 179t180 76h374q-22 60 -22 128q0 122 81.5 189t206.5 67q38 0 69.5 -17.5t55 -49.5t40.5 -63t37 -72t33 -62q35 -55 100 -129q2 -3 14 -17t19 -21.5t20.5 -21.5t24 -22.5t22.5 -18t23.5 -14t21.5 -4.5h288q53 0 90.5 -37.5t37.5 -90.5v-640 q0 -53 -37.5 -90.5t-90.5 -37.5h-288q-59 0 -223 -59q-190 -69 -317 -69q-142 0 -230 77.5t-87 217.5l1 5q-61 76 -61 178q0 22 3 43q-33 57 -37 119h-169q-105 0 -180.5 76t-75.5 181zM128 768q0 -52 38 -90t90 -38h331q-15 -17 -25 -47.5t-10 -55.5q0 -69 53 -119 q-18 -32 -18 -69t17.5 -73.5t47.5 -52.5q-4 -24 -4 -56q0 -85 48.5 -126t135.5 -41q84 0 183 32t194 64t167 32h32v640h-32q-35 0 -67.5 12t-62.5 37t-50 46t-49 54q-2 3 -3.5 4.5t-4 4.5t-4.5 5q-72 81 -112 145q-14 22 -38 68q-1 3 -10.5 22.5t-18.5 36t-20 35.5 t-21.5 30.5t-18.5 11.5q-71 0 -115.5 -30.5t-44.5 -97.5q0 -43 15 -84.5t33 -68t33 -55t15 -48.5h-576q-50 0 -89 -38.5t-39 -89.5zM1536 192q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 125 67 206.5t189 81.5q68 0 128 -22v374q0 104 76 180t179 76q105 0 181 -75.5t76 -180.5v-169q62 -4 119 -37q21 3 43 3q101 0 178 -60q139 1 219.5 -85t80.5 -227q0 -133 -69 -322q-59 -164 -59 -223v-288q0 -53 -37.5 -90.5t-90.5 -37.5h-640 q-53 0 -90.5 37.5t-37.5 90.5v288q0 10 -4.5 21.5t-14 23.5t-18 22.5t-22.5 24t-21.5 20.5t-21.5 19t-17 14q-74 65 -129 100q-21 13 -62 33t-72 37t-63 40.5t-49.5 55t-17.5 69.5zM128 640q0 -24 139 -90q44 -24 65 -37q64 -40 145 -112q81 -71 106 -101q57 -69 57 -140 v-32h640v32q0 72 32 167t64 193.5t32 179.5q0 189 -167 189q-26 0 -56 -5q-16 30 -52.5 47.5t-73.5 17.5t-69 -18q-50 53 -119 53q-25 0 -55.5 -10t-47.5 -25v331q0 52 -38 90t-90 38q-51 0 -89.5 -39t-38.5 -89v-576q-20 0 -48.5 15t-55 33t-68 33t-84.5 15 q-67 0 -97.5 -44.5t-30.5 -115.5zM1152 -64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 38 17.5 69.5t49.5 55t63 40.5t72 37t62 33q55 35 129 100q3 2 17 14t21.5 19t21.5 20.5t22.5 24t18 22.5t14 23.5t4.5 21.5v288q0 53 37.5 90.5t90.5 37.5h640q53 0 90.5 -37.5t37.5 -90.5v-288q0 -59 59 -223q69 -190 69 -317q0 -142 -77.5 -230t-217.5 -87 l-5 1q-76 -61 -178 -61q-22 0 -43 3q-54 -30 -119 -37v-169q0 -105 -76 -180.5t-181 -75.5q-103 0 -179 76t-76 180v374q-54 -22 -128 -22q-121 0 -188.5 81.5t-67.5 206.5zM128 640q0 -71 30.5 -115.5t97.5 -44.5q43 0 84.5 15t68 33t55 33t48.5 15v-576q0 -50 38.5 -89 t89.5 -39q52 0 90 38t38 90v331q46 -35 103 -35q69 0 119 53q32 -18 69 -18t73.5 17.5t52.5 47.5q24 -4 56 -4q85 0 126 48.5t41 135.5q0 84 -32 183t-64 194t-32 167v32h-640v-32q0 -35 -12 -67.5t-37 -62.5t-46 -50t-54 -49q-9 -8 -14 -12q-81 -72 -145 -112 q-22 -14 -68 -38q-3 -1 -22.5 -10.5t-36 -18.5t-35.5 -20t-30.5 -21.5t-11.5 -18.5zM1152 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM251 640q0 -27 18 -45l91 -91l362 -362q18 -18 45 -18t45 18l91 91q18 18 18 45t-18 45l-189 189h502 q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-502l189 189q19 19 19 45t-19 45l-91 91q-18 18 -45 18t-45 -18l-362 -362l-91 -91q-18 -18 -18 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM256 576q0 -26 19 -45t45 -19h502l-189 -189q-19 -19 -19 -45t19 -45l91 -91q18 -18 45 -18t45 18 l362 362l91 91q18 18 18 45t-18 45l-91 91l-362 362q-18 18 -45 18t-45 -18l-91 -91q-18 -18 -18 -45t18 -45l189 -189h-502q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 641q0 -27 18 -45l91 -91q18 -18 45 -18t45 18l189 189v-502q0 -26 19 -45t45 -19h128q26 0 45 19 t19 45v502l189 -189q19 -19 45 -19t45 19l91 91q18 18 18 45t-18 45l-362 362l-91 91q-18 18 -45 18t-45 -18l-91 -91l-362 -362q-18 -18 -18 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM252 639q0 -27 18 -45l362 -362l91 -91q18 -18 45 -18t45 18l91 91l362 362q18 18 18 45t-18 45l-91 91 q-18 18 -45 18t-45 -18l-189 -189v502q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-502l-189 189q-19 19 -45 19t-45 -19l-91 -91q-18 -18 -18 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM226 979q7 -7 12 -8q4 -1 5 -9t2.5 -11t11.5 3q9 -8 3 -19q1 1 44 -27q19 -17 21 -21q3 -11 -10 -18 q-1 2 -9 9t-9 4q-3 -5 0.5 -18.5t10.5 -12.5q-7 0 -9.5 -16t-2.5 -35.5t-1 -23.5l2 -1q-3 -12 5.5 -34.5t21.5 -19.5q-13 -3 20 -43q6 -8 8 -9q3 -2 12 -7.5t15 -10t10 -10.5q4 -5 10 -22.5t14 -23.5q-2 -6 9.5 -20t10.5 -23q-1 0 -2.5 -1t-2.5 -1q3 -7 15.5 -14t15.5 -13 q1 -3 2 -10t3 -11t8 -2q2 20 -24 62q-15 25 -17 29q-3 5 -5.5 15.5t-4.5 14.5q2 0 6 -1.5t8.5 -3.5t7.5 -4t2 -3q-3 -7 2 -17.5t12 -18.5t17 -19t12 -13q6 -6 14 -19.5t0 -13.5q9 0 20 -10t17 -20q5 -8 8 -26t5 -24q2 -7 8.5 -13.5t12.5 -9.5l16 -8t13 -7q5 -2 18.5 -10.5 t21.5 -11.5q10 -4 16 -4t14.5 2.5t13.5 3.5q15 2 29 -15t21 -21q36 -19 55 -11q-2 -1 0.5 -7.5t8 -15.5t9 -14.5t5.5 -8.5q5 -6 18 -15t18 -15q6 4 7 9q-3 -8 7 -20t18 -10q14 3 14 32q-31 -15 -49 18q0 1 -2.5 5.5t-4 8.5t-2.5 8.5t0 7.5t5 3q9 0 10 3.5t-2 12.5t-4 13 q-1 8 -11 20t-12 15q-5 -9 -16 -8t-16 9q0 -1 -1.5 -5.5t-1.5 -6.5q-13 0 -15 1q1 3 2.5 17.5t3.5 22.5q1 4 5.5 12t7.5 14.5t4 12.5t-4.5 9.5t-17.5 2.5q-19 -1 -26 -20q-1 -3 -3 -10.5t-5 -11.5t-9 -7q-7 -3 -24 -2t-24 5q-13 8 -22.5 29t-9.5 37q0 10 2.5 26.5t3 25 t-5.5 24.5q3 2 9 9.5t10 10.5q2 1 4.5 1.5t4.5 0t4 1.5t3 6q-1 1 -4 3q-3 3 -4 3q7 -3 28.5 1.5t27.5 -1.5q15 -11 22 2q0 1 -2.5 9.5t-0.5 13.5q5 -27 29 -9q3 -3 15.5 -5t17.5 -5q3 -2 7 -5.5t5.5 -4.5t5 0.5t8.5 6.5q10 -14 12 -24q11 -40 19 -44q7 -3 11 -2t4.5 9.5 t0 14t-1.5 12.5l-1 8v18l-1 8q-15 3 -18.5 12t1.5 18.5t15 18.5q1 1 8 3.5t15.5 6.5t12.5 8q21 19 15 35q7 0 11 9q-1 0 -5 3t-7.5 5t-4.5 2q9 5 2 16q5 3 7.5 11t7.5 10q9 -12 21 -2q7 8 1 16q5 7 20.5 10.5t18.5 9.5q7 -2 8 2t1 12t3 12q4 5 15 9t13 5l17 11q3 4 0 4 q18 -2 31 11q10 11 -6 20q3 6 -3 9.5t-15 5.5q3 1 11.5 0.5t10.5 1.5q15 10 -7 16q-17 5 -43 -12q-2 -1 -9.5 -9.5t-13.5 -9.5q2 0 4.5 5t5 11t3.5 7q6 7 22 15q14 6 52 12q34 8 51 -11q-2 2 9.5 13t14.5 12q3 2 15 4.5t15 7.5l2 22q-12 -1 -17.5 7t-6.5 21q0 -2 -6 -8 q0 7 -4.5 8t-11.5 -1t-9 -1q-10 3 -15 7.5t-8 16.5t-4 15q-2 5 -9.5 10.5t-9.5 10.5q-1 2 -2.5 5.5t-3 6.5t-4 5.5t-5.5 2.5t-7 -5t-7.5 -10t-4.5 -5q-3 2 -6 1.5t-4.5 -1t-4.5 -3t-5 -3.5q-3 -2 -8.5 -3t-8.5 -2q15 5 -1 11q-10 4 -16 3q9 4 7.5 12t-8.5 14h5 q-1 4 -8.5 8.5t-17.5 8.5t-13 6q-8 5 -34 9.5t-33 0.5q-5 -6 -4.5 -10.5t4 -14t3.5 -12.5q1 -6 -5.5 -13t-6.5 -12q0 -7 14 -15.5t10 -21.5q-3 -8 -16 -16t-16 -12q-5 -8 -1.5 -18.5t10.5 -16.5q2 -2 1.5 -4t-3.5 -4.5t-5.5 -4t-6.5 -3.5l-3 -2q-11 -5 -20.5 6t-13.5 26 q-7 25 -16 30q-23 8 -29 -1q-5 13 -41 26q-25 9 -58 4q6 1 0 15q-7 15 -19 12q3 6 4 17.5t1 13.5q3 13 12 23q1 1 7 8.5t9.5 13.5t0.5 6q35 -4 50 11q5 5 11.5 17t10.5 17q9 6 14 5.5t14.5 -5.5t14.5 -5q14 -1 15.5 11t-7.5 20q12 -1 3 17q-5 7 -8 9q-12 4 -27 -5 q-8 -4 2 -8q-1 1 -9.5 -10.5t-16.5 -17.5t-16 5q-1 1 -5.5 13.5t-9.5 13.5q-8 0 -16 -15q3 8 -11 15t-24 8q19 12 -8 27q-7 4 -20.5 5t-19.5 -4q-5 -7 -5.5 -11.5t5 -8t10.5 -5.5t11.5 -4t8.5 -3q14 -10 8 -14q-2 -1 -8.5 -3.5t-11.5 -4.5t-6 -4q-3 -4 0 -14t-2 -14 q-5 5 -9 17.5t-7 16.5q7 -9 -25 -6l-10 1q-4 0 -16 -2t-20.5 -1t-13.5 8q-4 8 0 20q1 4 4 2q-4 3 -11 9.5t-10 8.5q-46 -15 -94 -41q6 -1 12 1q5 2 13 6.5t10 5.5q34 14 42 7l5 5q14 -16 20 -25q-7 4 -30 1q-20 -6 -22 -12q7 -12 5 -18q-4 3 -11.5 10t-14.5 11t-15 5 q-16 0 -22 -1q-146 -80 -235 -222zM877 26q0 -6 2 -16q206 36 351 189q-3 3 -12.5 4.5t-12.5 3.5q-18 7 -24 8q1 7 -2.5 13t-8 9t-12.5 8t-11 7q-2 2 -7 6t-7 5.5t-7.5 4.5t-8.5 2t-10 -1l-3 -1q-3 -1 -5.5 -2.5t-5.5 -3t-4 -3t0 -2.5q-21 17 -36 22q-5 1 -11 5.5t-10.5 7 t-10 1.5t-11.5 -7q-5 -5 -6 -15t-2 -13q-7 5 0 17.5t2 18.5q-3 6 -10.5 4.5t-12 -4.5t-11.5 -8.5t-9 -6.5t-8.5 -5.5t-8.5 -7.5q-3 -4 -6 -12t-5 -11q-2 4 -11.5 6.5t-9.5 5.5q2 -10 4 -35t5 -38q7 -31 -12 -48q-27 -25 -29 -40q-4 -22 12 -26q0 -7 -8 -20.5t-7 -21.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M21 0q0 53 38 91l681 681q39 -98 114.5 -173.5t173.5 -114.5l-682 -682q-37 -37 -90 -37q-52 0 -91 37l-106 108q-38 36 -38 90zM256 64q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45zM768 960q0 185 131.5 316.5t316.5 131.5q58 0 121.5 -16.5 t107.5 -46.5q16 -11 16 -28t-16 -28l-293 -169v-224l193 -107q5 3 79 48.5t135.5 81t70.5 35.5q15 0 23.5 -10t8.5 -25q0 -39 -23 -106q-47 -134 -164.5 -217.5t-258.5 -83.5q-185 0 -316.5 131.5t-131.5 316.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 64v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 576v256q0 26 19 45t45 19h1664q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM0 1088v256q0 26 19 45t45 19h1664 q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1664q-26 0 -45 19t-19 45zM640 640h1024v128h-1024v-128zM1024 128h640v128h-640v-128zM1280 1152h384v128h-384v-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M5 1241q17 39 59 39h1280q42 0 59 -39q17 -41 -14 -70l-493 -493v-742q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-256 256q-19 19 -19 45v486l-493 493q-31 29 -14 70z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 160v480h672v-160q0 -26 19 -45t45 -19h320q26 0 45 19t19 45v160h672v-480q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 736v384q0 66 47 113t113 47h352v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h352q66 0 113 -47t47 -113v-384h-1792z M640 1280h512v128h-512v-128zM768 512v128h256v-128h-256z" />
|
||||
<glyph unicode="" d="M0 -64v448q0 42 40 59q39 17 69 -14l144 -144l355 355l-355 355l-144 -144q-19 -19 -45 -19q-12 0 -24 5q-40 17 -40 59v448q0 26 19 45t45 19h448q42 0 59 -40q17 -39 -14 -69l-144 -144l355 -355l355 355l-144 144q-31 30 -14 69q17 40 59 40h448q26 0 45 -19t19 -45 v-448q0 -42 -39 -59q-13 -5 -25 -5q-26 0 -45 19l-144 144l-355 -355l355 -355l144 144q29 31 70 14q39 -17 39 -59v-448q0 -26 -19 -45t-45 -19h-448q-42 0 -59 40q-17 39 14 69l144 144l-355 355l-355 -355l144 -144q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19 t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 671q0 353 124 353q6 0 43.5 -21t97.5 -42.5t119 -21.5q67 0 133 23q-5 -37 -5 -66q0 -139 81 -256q-162 -5 -265 -128h-134q-82 0 -138 40.5t-56 118.5zM128 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM256 3q0 53 3.5 103.5 t14 109t26.5 108.5t43 97.5t62 81t85.5 53.5t111.5 20q10 0 43 -21.5t73 -48t107 -48t135 -21.5t135 21.5t107 48t73 48t43 21.5q61 0 111.5 -20t85.5 -53.5t62 -81t43 -97.5t26.5 -108.5t14 -109t3.5 -103.5q0 -120 -73 -189.5t-194 -69.5h-874q-121 0 -194 69.5t-73 189.5 zM576 896q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5t-271.5 112.5t-112.5 271.5zM1280 1280q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181zM1327 640q81 117 81 256q0 29 -5 66q66 -23 133 -23 q59 0 119 21.5t97.5 42.5t43.5 21q124 0 124 -353q0 -78 -56 -118.5t-138 -40.5h-134q-103 123 -265 128z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l206 -207q83 -83 83 -203q0 -123 -88 -209l88 -88q86 88 208 88q120 0 204 -84l208 -208q84 -84 84 -204t-85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-206 207q-83 83 -83 203q0 123 88 209l-88 88 q-86 -88 -208 -88q-120 0 -204 84l-208 208q-84 84 -84 204zM208 1088q0 -40 28 -68l208 -208q27 -27 68 -27q42 0 72 31q-3 3 -19 18.5t-21.5 21.5t-15 19t-13 25.5t-3.5 27.5q0 40 28 68t68 28q15 0 27.5 -3.5t25.5 -13t19 -15t21.5 -21.5t18.5 -19q33 31 33 73 q0 40 -28 68l-206 207q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67zM911 383q0 -40 28 -68l206 -207q27 -27 68 -27q40 0 68 26l147 146q28 28 28 67q0 40 -28 68l-208 208q-28 28 -68 28q-42 0 -72 -32q3 -3 19 -18.5t21.5 -21.5t15 -19t13 -25.5t3.5 -27.5 q0 -40 -28 -68t-68 -28q-15 0 -27.5 3.5t-25.5 13t-19 15t-21.5 21.5t-18.5 19q-33 -31 -33 -73z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 448q0 132 71 241.5t187 163.5q-2 28 -2 43q0 212 150 362t362 150q158 0 286.5 -88t187.5 -230q70 62 166 62q106 0 181 -75t75 -181q0 -75 -41 -138q129 -30 213 -134.5t84 -239.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M115.5 -64.5q-34.5 63.5 21.5 152.5l503 793v399h-64q-26 0 -45 19t-19 45t19 45t45 19h512q26 0 45 -19t19 -45t-19 -45t-45 -19h-64v-399l503 -793q56 -89 21.5 -152.5t-140.5 -63.5h-1152q-106 0 -140.5 63.5zM476 384h712l-272 429l-20 31v37v399h-128v-399v-37 l-20 -31z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M1 157q7 76 56 147t131 124q132 84 278 84q83 0 151 -31q9 13 22 22l122 73l-122 73q-13 9 -22 22q-68 -31 -151 -31q-146 0 -278 84q-82 53 -131 124t-56 147q-5 59 15.5 113t63.5 93q85 79 222 79q145 0 277 -84q83 -52 132 -123t56 -148q4 -48 -10 -97q4 -1 12 -5 l110 -66l690 387q14 8 31 8q16 0 29 -7l128 -64q30 -16 35 -51q3 -36 -25 -56l-507 -398l507 -398q28 -20 25 -56q-5 -35 -35 -51l-128 -64q-13 -7 -29 -7q-17 0 -31 8l-690 387l-110 -66q-8 -4 -12 -5q14 -49 10 -97q-7 -77 -56 -147.5t-132 -123.5q-132 -84 -277 -84 q-136 0 -222 78q-90 84 -79 207zM168 176q-25 -66 21 -108q39 -36 113 -36q100 0 192 59q81 51 106 117t-21 108q-39 36 -113 36q-100 0 -192 -59q-81 -51 -106 -117zM168 976q25 -66 106 -117q92 -59 192 -59q74 0 113 36q46 42 21 108t-106 117q-92 59 -192 59 q-74 0 -113 -36q-46 -42 -21 -108zM672 448l9 -8q2 -2 7 -6q4 -4 11 -12t11 -12l26 -26l160 96l96 -32l736 576l-128 64l-768 -431v-113zM672 704l96 -58v11q0 36 33 56l14 8l-79 47l-26 -26q-3 -3 -10 -11t-12 -12q-2 -2 -4 -3.5t-3 -2.5zM896 576q0 26 19 45t45 19t45 -19 t19 -45t-19 -45t-45 -19t-45 19t-19 45zM1018 391l582 -327l128 64l-520 408l-177 -138q-2 -3 -13 -7z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 224v672q0 40 20 88t48 76l408 408q28 28 76 48t88 20h416q40 0 68 -28t28 -68v-328q68 40 128 40h416q40 0 68 -28t28 -68v-1216q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v288h-544q-40 0 -68 28t-28 68zM128 256h512v256q0 40 20 88t48 76l316 316v416h-384 v-416q0 -40 -28 -68t-68 -28h-416v-640zM213 1024h299v299zM768 -128h896v1152h-384v-416q0 -40 -28 -68t-68 -28h-416v-640zM853 640h299v299z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M4 1023q0 159 110 270t269 111q158 0 273 -113l605 -606q10 -10 10 -22q0 -16 -30.5 -46.5t-46.5 -30.5q-13 0 -23 10l-606 607q-79 77 -181 77q-106 0 -179 -75t-73 -181q0 -105 76 -181l776 -777q63 -63 145 -63q64 0 106 42t42 106q0 82 -63 145l-581 581 q-26 24 -60 24q-29 0 -48 -19t-19 -48q0 -32 25 -59l410 -410q10 -10 10 -22q0 -16 -31 -47t-47 -31q-12 0 -22 10l-410 410q-63 61 -63 149q0 82 57 139t139 57q88 0 149 -63l581 -581q100 -98 100 -235q0 -117 -79 -196t-196 -79q-135 0 -235 100l-777 776 q-113 115 -113 271z" />
|
||||
<glyph unicode="" d="M0 -32v1344q0 40 28 68t68 28h928q40 0 88 -20t76 -48l280 -280q28 -28 48 -76t20 -88v-928q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 0h128v416q0 40 28 68t68 28h832q40 0 68 -28t28 -68v-416h128v896q0 14 -10 38.5t-20 34.5l-281 281q-10 10 -34 20 t-39 10v-416q0 -40 -28 -68t-68 -28h-576q-40 0 -68 28t-28 68v416h-128v-1280zM384 0h768v384h-768v-384zM640 928q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-320z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" d="M0 64v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 576v128q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM0 1088v128q0 26 19 45t45 19h1408 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 128q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 640q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM0 1152q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM512 32v192 q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z M512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M15 438q0 51 23.5 93t56.5 68t66 47.5t56.5 43.5t23.5 45q0 25 -14.5 38.5t-39.5 13.5q-46 0 -81 -58l-85 59q24 51 71.5 79.5t105.5 28.5q73 0 123 -41.5t50 -112.5q0 -50 -34 -91.5t-75 -64.5t-75.5 -50.5t-35.5 -52.5h127v60h105v-159h-362q-6 36 -6 54zM19 -190 l57 88q49 -45 106 -45q29 0 50.5 14.5t21.5 42.5q0 64 -105 56l-26 56q8 10 32.5 43.5t42.5 54t37 38.5v1q-16 0 -48.5 -1t-48.5 -1v-53h-106v152h333v-88l-95 -115q51 -12 81 -49t30 -88q0 -80 -54.5 -126t-135.5 -46q-106 0 -172 66zM34 1400l136 127h106v-404h108v-99 h-335v99h107q0 41 0.5 122t0.5 121v12h-2q-8 -17 -50 -54zM512 32v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 544v192q0 14 9 23t23 9h1216q13 0 22.5 -9.5t9.5 -22.5v-192 q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5zM512 1056v192q0 13 9.5 22.5t22.5 9.5h1216q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1216q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 544v64q0 14 9 23t23 9h1728q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-1728q-14 0 -23 9t-9 23zM384 972q0 181 134 309q133 127 393 127q50 0 167 -19q66 -12 177 -48q10 -38 21 -118q14 -123 14 -183q0 -18 -5 -45l-12 -3l-84 6l-14 2q-50 149 -103 205 q-88 91 -210 91q-114 0 -182 -59q-67 -58 -67 -146q0 -73 66 -140t279 -129q69 -20 173 -66q58 -28 95 -52h-743q-28 35 -51 80q-48 97 -48 188zM414 154q-1 30 0 68l2 37v44l102 2q15 -34 30 -71t22.5 -56t12.5 -27q35 -57 80 -94q43 -36 105 -57q59 -22 132 -22 q64 0 139 27q77 26 122 86q47 61 47 129q0 84 -81 157q-34 29 -137 71h411q7 -39 7 -92q0 -111 -41 -212q-23 -55 -71 -104q-37 -35 -109 -81q-80 -48 -153 -66q-80 -21 -203 -21q-114 0 -195 23l-140 40q-57 16 -72 28q-8 8 -8 22v13q0 108 -2 156z" />
|
||||
<glyph unicode="" d="M0 -32v-64q0 -14 9 -23t23 -9h1472q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-1472q-14 0 -23 -9t-9 -23zM0 1405q13 1 40 1q60 0 112 -4q132 -7 166 -7q86 0 168 3q116 4 146 5q56 0 86 2l-1 -14l2 -64v-9q-60 -9 -124 -9q-60 0 -79 -25q-13 -14 -13 -132q0 -13 0.5 -32.5 t0.5 -25.5l1 -229l14 -280q6 -124 51 -202q35 -59 96 -92q88 -47 177 -47q104 0 191 28q56 18 99 51q48 36 65 64q36 56 53 114q21 73 21 229q0 79 -3.5 128t-11 122.5t-13.5 159.5l-4 59q-5 67 -24 88q-34 35 -77 34l-100 -2l-14 3l2 86h84l205 -10q76 -3 196 10l18 -2 q6 -38 6 -51q0 -7 -4 -31q-45 -12 -84 -13q-73 -11 -79 -17q-15 -15 -15 -41q0 -7 1.5 -27t1.5 -31q8 -19 22 -396q6 -195 -15 -304q-15 -76 -41 -122q-38 -65 -112 -123q-75 -57 -182 -89q-109 -33 -255 -33q-167 0 -284 46q-119 47 -179 122q-61 76 -83 195 q-16 80 -16 237v333q0 188 -17 213q-25 36 -147 39q-37 2 -45 4z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 160v1088q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 544q0 -14 9 -23t23 -9h320 q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM128 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9 t-9 -23v-192zM640 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM640 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 160q0 -14 9 -23t23 -9h320q14 0 23 9t9 23 v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 544q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192zM1152 928q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23v-192z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M27 160q0 27 18 45l1286 1286q18 18 45 18t45 -18l198 -198q18 -18 18 -45t-18 -45l-1286 -1286q-18 -18 -45 -18t-45 18l-198 198q-18 18 -18 45zM128 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM320 1216l196 60l60 196l60 -196l196 -60l-196 -60 l-60 -196l-60 196zM768 1408l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98zM1083 1062l107 -107l293 293l-107 107zM1408 768l98 30l30 98l30 -98l98 -30l-98 -30l-30 -98l-30 98z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 192q0 26 19 45t45 19v320q0 8 -0.5 35t0 38t2.5 34.5t6.5 37t14 30.5t22.5 30l198 198q19 19 50.5 32t58.5 13h160v192q0 26 19 45t45 19h1024q26 0 45 -19t19 -45v-1024q0 -15 -4 -26.5t-13.5 -18.5t-16.5 -11.5t-23.5 -6t-22.5 -2t-25.5 0t-22.5 0.5 q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-64q-3 0 -22.5 -0.5t-25.5 0t-22.5 2t-23.5 6t-16.5 11.5t-13.5 18.5t-4 26.5zM256 640h384v256h-158q-13 0 -22 -9l-195 -195q-9 -9 -9 -22v-30zM384 128q0 -52 38 -90t90 -38 t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90zM1280 128q0 -52 38 -90t90 -38t90 38t38 90t-38 90t-90 38t-90 -38t-38 -90z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103q-111 0 -218 32q59 93 78 164q9 34 54 211q20 -39 73 -67.5t114 -28.5q121 0 216 68.5t147 188.5t52 270q0 114 -59.5 214t-172.5 163t-255 63 q-105 0 -196 -29t-154.5 -77t-109 -110.5t-67 -129.5t-21.5 -134q0 -104 40 -183t117 -111q30 -12 38 20q2 7 8 31t8 30q6 23 -11 43q-51 61 -51 151q0 151 104.5 259.5t273.5 108.5q151 0 235.5 -82t84.5 -213q0 -170 -68.5 -289t-175.5 -119q-61 0 -98 43.5t-23 104.5 q8 35 26.5 93.5t30 103t11.5 75.5q0 50 -27 83t-77 33q-62 0 -105 -57t-43 -142q0 -73 25 -122l-99 -418q-17 -70 -13 -177q-206 91 -333 281t-127 423z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-725q85 122 108 210q9 34 53 209q21 -39 73.5 -67t112.5 -28q181 0 295.5 147.5t114.5 373.5q0 84 -35 162.5t-96.5 139t-152.5 97t-197 36.5 q-104 0 -194.5 -28.5t-153 -76.5t-107.5 -109.5t-66.5 -128t-21.5 -132.5q0 -102 39.5 -180t116.5 -110q13 -5 23.5 0t14.5 19q10 44 15 61q6 23 -11 42q-50 62 -50 150q0 150 103.5 256.5t270.5 106.5q149 0 232.5 -81t83.5 -210q0 -168 -67.5 -286t-173.5 -118 q-60 0 -97 43.5t-23 103.5q8 34 26.5 92.5t29.5 102t11 74.5q0 49 -26.5 81.5t-75.5 32.5q-61 0 -103.5 -56.5t-42.5 -139.5q0 -72 24 -121l-98 -414q-24 -100 -7 -254h-183q-119 0 -203.5 84.5t-84.5 203.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM276 309q0 -43 18.5 -77.5t48.5 -56.5t69 -37t77.5 -21t76.5 -6q60 0 120.5 15.5t113.5 46t86 82.5t33 117 q0 49 -20 89.5t-49 66.5t-58 47.5t-49 44t-20 44.5t15.5 42.5t37.5 39.5t44 42t37.5 59.5t15.5 82.5q0 60 -22.5 99.5t-72.5 90.5h83l88 64h-265q-85 0 -161 -32t-127.5 -98t-51.5 -153q0 -93 64.5 -154.5t158.5 -61.5q22 0 43 3q-13 -29 -13 -54q0 -44 40 -94 q-175 -12 -257 -63q-47 -29 -75.5 -73t-28.5 -95zM395 338q0 46 25 80t65.5 51.5t82 25t84.5 7.5q20 0 31 -2q2 -1 23 -16.5t26 -19t23 -18t24.5 -22t19 -22.5t17 -26t9 -26.5t4.5 -31.5q0 -76 -58.5 -112.5t-139.5 -36.5q-41 0 -80.5 9.5t-75.5 28.5t-58 53t-22 78z M462 969q0 61 32 104t92 43q53 0 93.5 -45t58 -101t17.5 -107q0 -60 -33 -99.5t-92 -39.5q-53 0 -93 42.5t-57.5 96.5t-17.5 106zM960 672h128v-160h64v160h128v64h-128v128h-64v-128h-128v-64z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M32 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 42 -47.5 74t-15.5 73q0 36 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q77 66 182.5 98t217.5 32h418l-138 -88h-131q74 -63 112 -133t38 -160q0 -72 -24.5 -129.5t-59 -93t-69.5 -65 t-59.5 -61.5t-24.5 -66q0 -36 32 -70.5t77.5 -68t90.5 -73.5t77 -104t32 -142q0 -90 -48 -173q-72 -122 -211 -179.5t-298 -57.5q-132 0 -246.5 41.5t-171.5 137.5q-37 60 -37 131zM218 228q0 -70 35 -123.5t91.5 -83t119 -44t127.5 -14.5q58 0 111.5 13t99 39t73 73 t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -48 2q-53 0 -105 -7t-107.5 -25t-97 -46t-68.5 -74.5t-27 -105.5zM324 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q38 0 78 16.5t66 43.5q53 57 53 159 q0 58 -17 125t-48.5 129.5t-84.5 103.5t-117 41q-42 0 -82.5 -19.5t-65.5 -52.5q-47 -59 -47 -160zM1084 731v108h212v217h105v-217h213v-108h-213v-219h-105v219h-212z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 64v1152q0 26 19 45t45 19h1792q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-1792q-26 0 -45 19t-19 45zM128 384q106 0 181 -75t75 -181h1152q0 106 75 181t181 75v512q-106 0 -181 75t-75 181h-1152q0 -106 -75 -181t-181 -75v-512zM640 640q0 70 21 142 t59.5 134t101.5 101t138 39t138 -39t101.5 -101t59.5 -134t21 -142t-21 -142t-59.5 -134t-101.5 -101t-138 -39t-138 39t-101.5 101t-59.5 134t-21 142zM762 791l77 -80q42 37 55 57h2v-288h-128v-96h384v96h-128v448h-114z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 832q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 320q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M64 640q0 26 19 45l448 448q19 19 45 19t45 -19t19 -45v-896q0 -26 -19 -45t-45 -19t-45 19l-448 448q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M0 192v896q0 26 19 45t45 19t45 -19l448 -448q19 -19 19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 32v1216q0 66 47 113t113 47h1344q66 0 113 -47t47 -113v-1216q0 -66 -47 -113t-113 -47h-1344q-66 0 -113 47t-47 113zM128 32q0 -13 9.5 -22.5t22.5 -9.5h608v1152h-640v-1120zM896 0h608q13 0 22.5 9.5t9.5 22.5v1120h-640v-1152z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45zM0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 448q0 26 19 45t45 19h896q26 0 45 -19t19 -45t-19 -45l-448 -448q-19 -19 -45 -19t-45 19l-448 448q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 832q0 26 19 45l448 448q19 19 45 19t45 -19l448 -448q19 -19 19 -45t-19 -45t-45 -19h-896q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 32v794q44 -49 101 -87q362 -246 497 -345q57 -42 92.5 -65.5t94.5 -48t110 -24.5h1h1q51 0 110 24.5t94.5 48t92.5 65.5q170 123 498 345q57 39 100 87v-794q0 -66 -47 -113t-113 -47h-1472q-66 0 -113 47t-47 113zM0 1098q0 78 41.5 130t118.5 52h1472 q65 0 112.5 -47t47.5 -113q0 -79 -49 -151t-122 -123q-376 -261 -468 -325q-10 -7 -42.5 -30.5t-54 -38t-52 -32.5t-57.5 -27t-50 -9h-1h-1q-23 0 -50 9t-57.5 27t-52 32.5t-54 38t-42.5 30.5q-91 64 -262 182.5t-205 142.5q-62 42 -117 115.5t-55 136.5z" />
|
||||
<glyph unicode="" d="M0 1217q0 74 51.5 122.5t134.5 48.5t133 -48.5t51 -122.5q1 -73 -50.5 -122t-135.5 -49h-2q-82 0 -132 49t-50 122zM19 -80v991h330v-991h-330zM531 -80q2 399 2 647t-1 296l-1 48h329v-144h-2q20 32 41 56t56.5 52t87 43.5t114.5 15.5q171 0 275 -113.5t104 -332.5v-568 h-329v530q0 105 -40.5 164.5t-126.5 59.5q-63 0 -105.5 -34.5t-63.5 -85.5q-11 -30 -11 -81v-553h-329z" />
|
||||
<glyph unicode="" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M40 736q0 13 4.5 26t9 22t15.5 22t16.5 18.5t20.5 19t18 16.5q30 28 68 28q10 0 18 -1.5t16.5 -5.5t13.5 -6t13.5 -10t11.5 -10t13 -12.5t12 -12.5q-14 14 -14 34t14 34l348 348q14 14 34 14t34 -14q-2 2 -12.5 12t-12.5 13t-10 11.5t-10 13.5t-6 13.5t-5.5 16.5t-1.5 18 q0 38 28 68q3 3 16.5 18t19 20.5t18.5 16.5t22 15.5t22 9t26 4.5q40 0 68 -28l408 -408q28 -28 28 -68q0 -13 -4.5 -26t-9 -22t-15.5 -22t-16.5 -18.5t-20.5 -19t-18 -16.5q-30 -28 -68 -28q-10 0 -18 1.5t-16.5 5.5t-13.5 6t-13.5 10t-11.5 10t-13 12.5t-12 12.5 q14 -14 14 -34t-14 -34l-126 -126l256 -256q43 43 96 43q52 0 91 -37l363 -363q37 -39 37 -91q0 -53 -37 -90l-107 -108q-39 -37 -91 -37q-53 0 -90 37l-363 364q-38 36 -38 90q0 53 43 96l-256 256l-126 -126q-14 -14 -34 -14t-34 14q2 -2 12.5 -12t12.5 -13t10 -11.5 t10 -13.5t6 -13.5t5.5 -16.5t1.5 -18q0 -38 -28 -68q-3 -3 -16.5 -18t-19 -20.5t-18.5 -16.5t-22 -15.5t-22 -9t-26 -4.5q-40 0 -68 28l-408 408q-28 28 -28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 384q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348q0 -261 -141 -483q-19 -29 -54 -29h-1402q-35 0 -54 29q-141 221 -141 483zM128 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M320 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM710 241q-20 -77 20 -146t117 -89t146 20t89 117q16 60 -6 117t-72 91l101 382q6 26 -7.5 48.5t-38.5 29.5t-48 -6.5t-30 -39.5l-101 -382q-60 -5 -107 -43.5 t-63 -98.5zM768 1024q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1216 832q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 384q0 -53 37.5 -90.5 t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 174 120 321.5t326 233t450 85.5t450 -85.5t326 -233t120 -321.5t-120 -321.5t-326 -233t-450 -85.5q-70 0 -145 8q-198 -175 -460 -242q-49 -14 -114 -22h-5q-15 0 -27 10.5t-16 27.5v1q-3 4 -0.5 12t2 10t4.5 9.5l6 9t7 8.5t8 9q7 8 31 34.5t34.5 38t31 39.5 t32.5 51t27 59t26 76q-157 89 -247.5 220t-90.5 281zM128 640q0 -112 71.5 -213.5t201.5 -175.5l87 -50l-27 -96q-24 -91 -70 -172q152 63 275 171l43 38l57 -6q69 -8 130 -8q204 0 381.5 69.5t282 187.5t104.5 255t-104.5 255t-282 187.5t-381.5 69.5t-381.5 -69.5 t-282 -187.5t-104.5 -255z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 768q0 139 94 257t256.5 186.5t353.5 68.5t353.5 -68.5t256.5 -186.5t94 -257t-94 -257t-256.5 -186.5t-353.5 -68.5q-86 0 -176 16q-124 -88 -278 -128q-36 -9 -86 -16h-3q-11 0 -20.5 8t-11.5 21q-1 3 -1 6.5t0.5 6.5t2 6l2.5 5t3.5 5.5t4 5t4.5 5t4 4.5q5 6 23 25 t26 29.5t22.5 29t25 38.5t20.5 44q-124 72 -195 177t-71 224zM128 768q0 -82 53 -158t149 -132l97 -56l-35 -84q34 20 62 39l44 31l53 -10q78 -14 153 -14q153 0 286 52t211.5 141t78.5 191t-78.5 191t-211.5 141t-286 52t-286 -52t-211.5 -141t-78.5 -191zM616 132 q58 -4 88 -4q161 0 309 45t264 129q125 92 192 212t67 254q0 77 -23 152q129 -71 204 -178t75 -230q0 -120 -71 -224.5t-195 -176.5q10 -24 20.5 -44t25 -38.5t22.5 -29t26 -29.5t23 -25q1 -1 4 -4.5t4.5 -5t4 -5t3.5 -5.5l2.5 -5t2 -6t0.5 -6.5t-1 -6.5q-3 -14 -13 -22 t-22 -7q-50 7 -86 16q-154 40 -278 128q-90 -16 -176 -16q-271 0 -472 132z" />
|
||||
<glyph unicode="" horiz-adv-x="896" d="M1 551l201 825q4 14 16 23t28 9h328q19 0 32 -12.5t13 -29.5q0 -8 -5 -18l-171 -463l396 98q8 2 12 2q19 0 34 -15q18 -20 7 -44l-540 -1157q-13 -25 -42 -25q-4 0 -14 2q-17 5 -25.5 19t-4.5 30l197 808l-406 -101q-4 -1 -12 -1q-18 0 -31 11q-18 15 -13 39z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -32v320q0 40 28 68t68 28h96v192q0 52 38 90t90 38h512v192h-96q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-96v-192h512q52 0 90 -38t38 -90v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320 q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68v320q0 40 28 68t68 28h96v192h-512v-192h96q40 0 68 -28t28 -68v-320q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 681q0 5 1 7q45 183 172.5 319.5t298 204.5t360.5 68q140 0 274.5 -40t246.5 -113.5t194.5 -187t115.5 -251.5q1 -2 1 -7q0 -13 -9.5 -22.5t-22.5 -9.5q-11 0 -23 10q-49 46 -93 69t-102 23q-68 0 -128 -37t-103 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -28 -17 q-18 0 -29 17q-4 6 -14.5 24t-17.5 28q-43 60 -102.5 97t-127.5 37t-127.5 -37t-102.5 -97q-7 -10 -17.5 -28t-14.5 -24q-11 -17 -29 -17q-17 0 -28 17q-4 6 -14.5 24t-17.5 28q-43 60 -103 97t-128 37q-58 0 -102 -23t-93 -69q-12 -10 -23 -10q-13 0 -22.5 9.5t-9.5 22.5z M384 128q0 26 19 45t45 19t45 -19t19 -45q0 -50 39 -89t89 -39t89 39t39 89v580q33 11 64 11t64 -11v-580q0 -104 -76 -180t-180 -76t-180 76t-76 180zM768 1310v98q0 26 19 45t45 19t45 -19t19 -45v-98q-42 2 -64 2t-64 -2z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v1344q0 40 28 68t68 28h1088q40 0 68 -28t28 -68v-328q21 -13 36 -28l408 -408q28 -28 48 -76t20 -88v-672q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28t-28 68v160h-544q-40 0 -68 28t-28 68zM256 1312q0 -13 9.5 -22.5t22.5 -9.5h704q13 0 22.5 9.5t9.5 22.5v64 q0 13 -9.5 22.5t-22.5 9.5h-704q-13 0 -22.5 -9.5t-9.5 -22.5v-64zM768 -128h896v640h-416q-40 0 -68 28t-28 68v416h-384v-1152zM1280 640h299l-299 299v-299z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 960q0 99 44.5 184.5t117 142t164 89t186.5 32.5t186.5 -32.5t164 -89t117 -142t44.5 -184.5q0 -155 -103 -268q-45 -49 -74.5 -87t-59.5 -95.5t-34 -107.5q47 -28 47 -82q0 -37 -25 -64q25 -27 25 -64q0 -52 -45 -81q13 -23 13 -47q0 -46 -31.5 -71t-77.5 -25 q-20 -44 -60 -70t-87 -26t-87 26t-60 70q-46 0 -77.5 25t-31.5 71q0 24 13 47q-45 29 -45 81q0 37 25 64q-25 27 -25 64q0 54 47 82q-4 50 -34 107.5t-59.5 95.5t-74.5 87q-103 113 -103 268zM128 960q0 -101 68 -180q10 -11 30.5 -33t30.5 -33q128 -153 141 -298h228 q13 145 141 298q10 11 30.5 33t30.5 33q68 79 68 180q0 72 -34.5 134t-90 101.5t-123 62t-136.5 22.5t-136.5 -22.5t-123 -62t-90 -101.5t-34.5 -134zM480 1088q0 13 9.5 22.5t22.5 9.5q50 0 99.5 -16t87 -54t37.5 -90q0 -13 -9.5 -22.5t-22.5 -9.5t-22.5 9.5t-9.5 22.5 q0 46 -54 71t-106 25q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 256q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h1376q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-1376v-192q0 -13 -9.5 -22.5t-22.5 -9.5q-12 0 -24 10l-319 320q-9 9 -9 22zM0 800v192q0 13 9.5 22.5t22.5 9.5h1376v192q0 14 9 23 t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-1376q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 608q0 -14 9 -23l352 -352q9 -9 23 -9t23 9l351 351q10 12 10 24q0 14 -9 23t-23 9h-224v352q0 13 -9.5 22.5t-22.5 9.5h-192q-13 0 -22.5 -9.5t-9.5 -22.5v-352h-224q-13 0 -22.5 -9.5t-9.5 -22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 448q0 130 70 240t188 165q-2 30 -2 43q0 212 150 362t362 150q156 0 285.5 -87t188.5 -231q71 62 166 62q106 0 181 -75t75 -181q0 -76 -41 -138q130 -31 213.5 -135.5t83.5 -238.5q0 -159 -112.5 -271.5t-271.5 -112.5h-1088q-185 0 -316.5 131.5t-131.5 316.5z M512 672q0 -14 9 -23t23 -9h224v-352q0 -13 9.5 -22.5t22.5 -9.5h192q13 0 22.5 9.5t9.5 22.5v352h224q13 0 22.5 9.5t9.5 22.5q0 14 -9 23l-352 352q-9 9 -23 9t-23 -9l-351 -351q-10 -12 -10 -24z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 131q0 68 5.5 131t24 138t47.5 132.5t81 103t120 60.5q-22 -52 -22 -120v-203q-58 -20 -93 -70t-35 -111q0 -80 56 -136t136 -56t136 56t56 136q0 61 -35.5 111t-92.5 70v203q0 62 25 93q132 -104 295 -104t295 104q25 -31 25 -93v-64q-106 0 -181 -75t-75 -181v-89 q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 52 38 90t90 38t90 -38t38 -90v-89q-32 -29 -32 -71q0 -40 28 -68t68 -28t68 28t28 68q0 42 -32 71v89q0 68 -34.5 127.5t-93.5 93.5q0 10 0.5 42.5t0 48t-2.5 41.5t-7 47t-13 40q68 -15 120 -60.5 t81 -103t47.5 -132.5t24 -138t5.5 -131q0 -121 -73 -190t-194 -69h-874q-121 0 -194 69t-73 190zM256 192q0 26 19 45t45 19t45 -19t19 -45t-19 -45t-45 -19t-45 19t-19 45zM320 1024q0 159 112.5 271.5t271.5 112.5t271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5 t-271.5 112.5t-112.5 271.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 768v512q0 26 19 45t45 19q6 0 16 -2q17 30 47 48t65 18q53 0 90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5q-33 0 -64 18v-402q0 -106 94 -181t226 -75t226 75t94 181v402q-31 -18 -64 -18q-53 0 -90.5 37.5t-37.5 90.5t37.5 90.5t90.5 37.5q35 0 65 -18t47 -48 q10 2 16 2q26 0 45 -19t19 -45v-512q0 -144 -110 -252t-274 -128v-132q0 -106 94 -181t226 -75t226 75t94 181v395q-57 21 -92.5 70t-35.5 111q0 80 56 136t136 56t136 -56t56 -136q0 -62 -35.5 -111t-92.5 -70v-395q0 -159 -131.5 -271.5t-316.5 -112.5t-316.5 112.5 t-131.5 271.5v132q-164 20 -274 128t-110 252zM1152 832q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h64v-1280h-64q-92 0 -158 66t-66 158zM384 -128v1280h128v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h128v-1280h-1024zM640 1152h512v128h-512v-128zM1504 -128v1280h64q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-64z " />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 128q190 161 287 397.5t97 498.5q0 165 96 262t264 117q-8 18 -8 37q0 40 28 68t68 28t68 -28t28 -68q0 -19 -8 -37q168 -20 264 -117t96 -262q0 -262 97 -498.5t287 -397.5q0 -52 -38 -90t-90 -38h-448q0 -106 -75 -181t-181 -75t-181 75t-75 181h-448q-52 0 -90 38 t-38 90zM656 0q0 -73 51.5 -124.5t124.5 -51.5q16 0 16 16t-16 16q-59 0 -101.5 42.5t-42.5 101.5q0 16 -16 16t-16 -16z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 128h1792q0 -106 -75 -181t-181 -75h-1280q-106 0 -181 75t-75 181zM256 480v736q0 26 19 45t45 19h1152q159 0 271.5 -112.5t112.5 -271.5t-112.5 -271.5t-271.5 -112.5h-64v-32q0 -92 -66 -158t-158 -66h-704q-92 0 -158 66t-66 158zM1408 704h64q80 0 136 56t56 136 t-56 136t-136 56h-64v-384z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 832v640q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-416q0 -26 19 -45t45 -19t45 19t19 45v416q0 26 19 45t45 19t45 -19t19 -45v-640q0 -61 -35.5 -111t-92.5 -70v-779q0 -52 -38 -90t-90 -38h-128 q-52 0 -90 38t-38 90v779q-57 20 -92.5 70t-35.5 111zM768 416v800q0 132 94 226t226 94h256q26 0 45 -19t19 -45v-1600q0 -52 -38 -90t-90 -38h-128q-52 0 -90 38t-38 90v512h-224q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM384 160v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64 q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 416v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM384 672v64q0 14 9 23t23 9h704q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-704q-14 0 -23 9t-9 23zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1536h-1152v-1536zM256 160v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 928v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 1184v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 928v64q0 13 9.5 22.5t22.5 9.5h64 q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 1184v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -192v1280q0 26 19 45t45 19h320v288q0 40 28 68t68 28h448q40 0 68 -28t28 -68v-288h320q26 0 45 -19t19 -45v-1280q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM128 -128h384v224q0 13 9.5 22.5t22.5 9.5h320q13 0 22.5 -9.5t9.5 -22.5v-224h384v1152h-256 v-32q0 -40 -28 -68t-68 -28h-448q-40 0 -68 28t-28 68v32h-256v-1152zM256 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM256 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64 q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM512 1056q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v96h128 v-96q0 -13 9.5 -22.5t22.5 -9.5h64q13 0 22.5 9.5t9.5 22.5v320q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-96h-128v96q0 13 -9.5 22.5t-22.5 9.5h-64q-13 0 -22.5 -9.5t-9.5 -22.5v-320zM768 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM768 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 160v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 416v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5zM1024 672v64q0 13 9.5 22.5t22.5 9.5h64q13 0 22.5 -9.5t9.5 -22.5 v-64q0 -13 -9.5 -22.5t-22.5 -9.5h-64q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M64 192q0 26 19 45t45 19v416q0 26 13 58t32 51l198 198q19 19 51 32t58 13h160v320q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-1152q0 -26 -19 -45t-45 -19h-192q0 -106 -75 -181t-181 -75t-181 75t-75 181h-384q0 -106 -75 -181t-181 -75t-181 75t-75 181h-128 q-26 0 -45 19t-19 45zM256 640h384v256h-158q-14 -2 -22 -9l-195 -195q-7 -12 -9 -22v-30zM384 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM896 800q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192 q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM1280 128q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 96v832q0 92 66 158t158 66h32v-1280h-32q-92 0 -158 66t-66 158zM352 -128v1280h160v160q0 40 28 68t68 28h576q40 0 68 -28t28 -68v-160h160v-1280h-1088zM512 416q0 -14 9 -23t23 -9h224v-224q0 -14 9 -23t23 -9h192q14 0 23 9t9 23v224h224q14 0 23 9t9 23v192 q0 14 -9 23t-23 9h-224v224q0 14 -9 23t-23 9h-192q-14 0 -23 -9t-9 -23v-224h-224q-14 0 -23 -9t-9 -23v-192zM640 1152h512v128h-512v-128zM1536 -128v1280h32q92 0 158 -66t66 -158v-832q0 -92 -66 -158t-158 -66h-32z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 512v128l192 24v8h-128v32h-32v192l32 32h96l192 -224h160v416h-64v32h64h160h96q26 0 45 -4.5t19 -11.5t-19 -11.5t-45 -4.5h-69l293 -352h64l224 -64l352 -32q261 -58 287 -93l1 -3q-1 -32 -288 -96l-352 -32l-224 -64h-64l-293 -352h69q26 0 45 -4.5t19 -11.5 t-19 -11.5t-45 -4.5h-96h-160h-64v32h64v416h-160l-192 -224h-96l-32 32v192h32v32h128v8z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M64 1152l32 128h480l32 128h960l32 -192l-64 -32v-800l128 -192v-192h-1152v192l128 192h-128q-159 0 -271.5 112.5t-112.5 271.5v320zM384 768q0 -53 37.5 -90.5t90.5 -37.5h128v384h-256v-256z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 192q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h512v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45 v896q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-512v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-896z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h320v-320q0 -26 19 -45t45 -19h128q26 0 45 19t19 45v320h320q26 0 45 19t19 45 v128q0 26 -19 45t-45 19h-320v320q0 26 -19 45t-45 19h-128q-26 0 -45 -19t-19 -45v-320h-320q-26 0 -45 -19t-19 -45v-128z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM429 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23 l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM397 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10 l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 224q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM77 608q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23 l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 672q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM77 1056q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10 l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 352q0 13 10 23l466 466q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-393 393l-393 -393q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M77 800q0 13 10 23l50 50q10 10 23 10t23 -10l393 -393l393 393q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 288v1088q0 66 47 113t113 47h1600q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-544q0 -37 16 -77.5t32 -71t16 -43.5q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45q0 14 16 44t32 70t16 78h-544q-66 0 -113 47t-47 113zM128 544q0 -13 9.5 -22.5 t22.5 -9.5h1600q13 0 22.5 9.5t9.5 22.5v832q0 13 -9.5 22.5t-22.5 9.5h-1600q-13 0 -22.5 -9.5t-9.5 -22.5v-832z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 96v96h160h1600h160v-96q0 -40 -47 -68t-113 -28h-1600q-66 0 -113 28t-47 68zM256 416v704q0 66 47 113t113 47h1088q66 0 113 -47t47 -113v-704q0 -66 -47 -113t-113 -47h-1088q-66 0 -113 47t-47 113zM384 416q0 -13 9.5 -22.5t22.5 -9.5h1088q13 0 22.5 9.5 t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-1088q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM864 112q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 160v1088q0 66 47 113t113 47h832q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-832q-66 0 -113 47t-47 113zM128 288q0 -13 9.5 -22.5t22.5 -9.5h832q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-832q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM512 128 q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M0 128v1024q0 52 38 90t90 38h512q52 0 90 -38t38 -90v-1024q0 -52 -38 -90t-90 -38h-512q-52 0 -90 38t-38 90zM96 288q0 -13 9.5 -22.5t22.5 -9.5h512q13 0 22.5 9.5t9.5 22.5v704q0 13 -9.5 22.5t-22.5 9.5h-512q-13 0 -22.5 -9.5t-9.5 -22.5v-704zM288 1136 q0 -16 16 -16h160q16 0 16 16t-16 16h-160q-16 0 -16 -16zM304 128q0 -33 23.5 -56.5t56.5 -23.5t56.5 23.5t23.5 56.5t-23.5 56.5t-56.5 23.5t-56.5 -23.5t-23.5 -56.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z M896 192v704q0 104 40.5 198.5t109.5 163.5t163.5 109.5t198.5 40.5h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-64q-106 0 -181 -75t-75 -181v-32q0 -40 28 -68t68 -28h224q80 0 136 -56t56 -136v-384q0 -80 -56 -136t-136 -56h-384q-80 0 -136 56t-56 136z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 832v384q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136zM896 832v384 q0 80 56 136t136 56h384q80 0 136 -56t56 -136v-704q0 -104 -40.5 -198.5t-109.5 -163.5t-163.5 -109.5t-198.5 -40.5h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h64q106 0 181 75t75 181v32q0 40 -28 68t-68 28h-224q-80 0 -136 56t-56 136z" />
|
||||
<glyph unicode="" horiz-adv-x="1568" d="M0 640q0 66 47 113t113 47t113 -47t47 -113t-47 -113t-113 -47t-113 47t-47 113zM176 1088q0 73 51.5 124.5t124.5 51.5t124.5 -51.5t51.5 -124.5t-51.5 -124.5t-124.5 -51.5t-124.5 51.5t-51.5 124.5zM208 192q0 60 42 102t102 42q59 0 101.5 -42t42.5 -102t-42.5 -102 t-101.5 -42q-60 0 -102 42t-42 102zM608 1280q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM672 0q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM1136 192q0 46 33 79t79 33t79 -33t33 -79 t-33 -79t-79 -33t-79 33t-33 79zM1168 1088q0 33 23.5 56.5t56.5 23.5t56.5 -23.5t23.5 -56.5t-23.5 -56.5t-56.5 -23.5t-56.5 23.5t-23.5 56.5zM1344 640q0 40 28 68t68 28t68 -28t28 -68t-28 -68t-68 -28t-68 28t-28 68z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q19 19 45 19t45 -19t19 -45v-256h224q713 0 875 -403q53 -134 53 -333q0 -166 -127 -451q-3 -7 -10.5 -24t-13.5 -30t-13 -22q-12 -17 -28 -17q-15 0 -23.5 10t-8.5 25q0 9 2.5 26.5t2.5 23.5q5 68 5 123q0 101 -17.5 181t-48.5 138.5t-80 101 t-105.5 69.5t-133 42.5t-154 21.5t-175.5 6h-224v-256q0 -26 -19 -45t-45 -19t-45 19l-512 512q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 496q0 237 136 396q-27 82 -27 170q0 116 51 218q108 0 190 -39.5t189 -123.5q147 35 309 35q148 0 280 -32q105 82 187 121t189 39q51 -102 51 -218q0 -87 -27 -168q136 -160 136 -398q0 -207 -61 -331q-38 -77 -105.5 -133t-141 -86t-170 -47.5t-171.5 -22t-167 -4.5 q-78 0 -142 3t-147.5 12.5t-152.5 30t-137 51.5t-121 81t-86 115q-62 123 -62 331zM224 320q0 -88 32 -153.5t81 -103t122 -60t140 -29.5t149 -7h168q82 0 149 7t140 29.5t122 60t81 103t32 153.5q0 120 -69 204t-187 84q-41 0 -195 -21q-71 -11 -157 -11t-157 11 q-152 21 -195 21q-118 0 -187 -84t-69 -204zM384 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34t-43 76t-12.5 82zM1024 320q0 40 12.5 82t43 76t72.5 34t72.5 -34t43 -76t12.5 -82t-12.5 -82t-43 -76t-72.5 -34t-72.5 34 t-43 76t-12.5 82z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h672q92 0 158 -66t66 -158v-704q0 -92 -66 -158t-158 -66h-1216q-92 0 -158 66t-66 158zM128 224q0 -40 28 -68t68 -28h1216q40 0 68 28t28 68v704q0 40 -28 68t-68 28h-704q-40 0 -68 28t-28 68v64 q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-960z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 224v960q0 92 66 158t158 66h320q92 0 158 -66t66 -158v-32h544q92 0 158 -66t66 -158v-160h192q54 0 99 -24.5t67 -70.5q15 -32 15 -68q0 -62 -46 -120l-295 -363q-43 -53 -116 -87.5t-140 -34.5h-1088q-92 0 -158 66t-66 158zM128 331l256 315q44 53 116 87.5 t140 34.5h768v160q0 40 -28 68t-68 28h-576q-40 0 -68 28t-28 68v64q0 40 -28 68t-68 28h-320q-40 0 -68 -28t-28 -68v-853zM171 163q0 -35 53 -35h1088q40 0 86 22t71 53l294 363q18 22 18 39q0 35 -53 35h-1088q-40 0 -85.5 -21.5t-71.5 -52.5l-294 -363q-18 -24 -18 -40z " />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 461q-8 25 4 48.5t38 31.5q25 8 48.5 -4t31.5 -38 q25 -80 92.5 -129.5t151.5 -49.5t151.5 49.5t92.5 129.5q8 26 32 38t49 4t37 -31.5t4 -48.5q-37 -121 -138 -195t-228 -74t-228 74t-138 195zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM402 307q37 121 138 195t228 74t228 -74t138 -195q8 -25 -4 -48.5 t-37 -31.5t-49 4t-32 38q-25 80 -92.5 129.5t-151.5 49.5t-151.5 -49.5t-92.5 -129.5q-8 -26 -31.5 -38t-48.5 -4q-26 8 -38 31.5t-4 48.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM384 448q0 26 19 45t45 19h640q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45zM384 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5 t-90.5 -37.5t-90.5 37.5t-37.5 90.5zM896 896q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5t-37.5 -90.5t-90.5 -37.5t-90.5 37.5t-37.5 90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 512q0 212 150 362t362 150h896q212 0 362 -150t150 -362t-150 -362t-362 -150q-192 0 -338 128h-220q-146 -128 -338 -128q-212 0 -362 150t-150 362zM192 448q0 -14 9 -23t23 -9h192v-192q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v192h192q14 0 23 9t9 23v128 q0 14 -9 23t-23 9h-192v192q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-192h-192q-14 0 -23 -9t-9 -23v-128zM1152 384q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5zM1408 640q0 -53 37.5 -90.5t90.5 -37.5 t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 128v896q0 53 37.5 90.5t90.5 37.5h1664q53 0 90.5 -37.5t37.5 -90.5v-896q0 -53 -37.5 -90.5t-90.5 -37.5h-1664q-53 0 -90.5 37.5t-37.5 90.5zM128 128h1664v896h-1664v-896zM256 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM256 528v96 q0 16 16 16h224q16 0 16 -16v-96q0 -16 -16 -16h-224q-16 0 -16 16zM256 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM512 272v96q0 16 16 16h864q16 0 16 -16v-96q0 -16 -16 -16h-864q-16 0 -16 16zM512 784v96q0 16 16 16h96q16 0 16 -16v-96 q0 -16 -16 -16h-96q-16 0 -16 16zM640 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM768 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM896 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z M1024 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1152 528v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1280 784v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16zM1408 528v96q0 16 16 16h112v240 q0 16 16 16h96q16 0 16 -16v-352q0 -16 -16 -16h-224q-16 0 -16 16zM1536 272v96q0 16 16 16h96q16 0 16 -16v-96q0 -16 -16 -16h-96q-16 0 -16 16z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q245 113 433 113q55 0 103.5 -7.5t98 -26t77 -31t82.5 -39.5l28 -14q44 -22 101 -22q120 0 293 92v616q-169 -91 -306 -91q-82 0 -145 32q-100 49 -184 76.5t-178 27.5q-173 0 -403 -127v-599z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1280q0 53 37.5 90.5t90.5 37.5t90.5 -37.5t37.5 -90.5q0 -35 -17.5 -64t-46.5 -46v-1266q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v1266q-29 17 -46.5 46t-17.5 64zM320 320v742q0 35 31 55q35 21 78.5 42.5t114 52t152.5 49.5t155 19q112 0 209 -31t209 -86 q38 -19 89 -19q122 0 310 112q22 12 31 17q31 16 62 -2q31 -20 31 -55v-763q0 -39 -35 -57q-10 -5 -17 -9q-218 -116 -369 -116q-88 0 -158 35l-28 14q-64 33 -99 48t-91 29t-114 14q-102 0 -235.5 -44t-228.5 -102q-15 -9 -33 -9q-16 0 -32 8q-32 19 -32 56zM448 426 q205 96 384 110v192q-181 -16 -384 -117v-185zM448 836q215 111 384 118v197q-172 -8 -384 -126v-189zM832 730h19q102 0 192.5 -29t197.5 -82q19 -9 39 -15v-188q42 -17 91 -17q120 0 293 92v184q-235 -116 -384 -71v224q-20 6 -39 15q-5 3 -33 17t-34.5 17t-31.5 15 t-34.5 15.5t-32.5 13t-36 12.5t-35 8.5t-39.5 7.5t-39.5 4t-44 2q-23 0 -49 -3v-222zM1280 828q148 -42 384 90v189q-169 -91 -306 -91q-45 0 -78 8v-196z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M13 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23zM640 32v64q0 14 9 23t23 9h960q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-960 q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M45 576q0 13 10 23l466 466q10 10 23 10t23 -10l50 -50q10 -10 10 -23t-10 -23l-393 -393l393 -393q10 -10 10 -23t-10 -23l-50 -50q-10 -10 -23 -10t-23 10l-466 466q-10 10 -10 23zM712 -52l373 1291q4 13 15.5 19.5t23.5 2.5l62 -17q13 -4 19.5 -15.5t2.5 -24.5 l-373 -1291q-4 -13 -15.5 -19.5t-23.5 -2.5l-62 17q-13 4 -19.5 15.5t-2.5 24.5zM1293 160q0 13 10 23l393 393l-393 393q-10 10 -10 23t10 23l50 50q10 10 23 10t23 -10l466 -466q10 -10 10 -23t-10 -23l-466 -466q-10 -10 -23 -10t-23 10l-50 50q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-69l-397 -398q-19 -19 -19 -45t19 -45l397 -397v-70q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45zM384 896q0 26 19 45l512 512q29 31 70 14q39 -17 39 -59v-262q411 -28 599 -221 q169 -173 169 -509q0 -58 -17 -133.5t-38.5 -138t-48 -125t-40.5 -90.5l-20 -40q-8 -17 -28 -17q-6 0 -9 1q-25 8 -23 34q43 400 -106 565q-64 71 -170.5 110.5t-267.5 52.5v-251q0 -42 -39 -59q-13 -5 -25 -5q-27 0 -45 19l-512 512q-19 19 -19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M2 900.5q9 27.5 54 34.5l502 73l225 455q20 41 49 41q28 0 49 -41l225 -455l502 -73q45 -7 54 -34.5t-24 -59.5l-363 -354l86 -500q5 -33 -6 -51.5t-34 -18.5q-17 0 -40 12l-449 236l-449 -236q-23 -12 -40 -12q-23 0 -34 18.5t-6 51.5l86 500l-364 354q-32 32 -23 59.5z M832 310l59 -31l318 -168l-60 355l-12 66l49 47l257 250l-356 52l-66 10l-30 60l-159 322v-963z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M2 561q-5 22 4 42t29 30l1280 640q13 7 29 7q27 0 45 -19q15 -14 18.5 -34.5t-6.5 -39.5l-640 -1280q-17 -35 -57 -35q-5 0 -15 2q-22 5 -35.5 22.5t-13.5 39.5v576h-576q-22 0 -39.5 13.5t-22.5 35.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 928v192q0 14 9 23t23 9h224v224q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-224h851l246 247q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-247 -246v-851h224q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-224v-224q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v224h-864 q-14 0 -23 9t-9 23v864h-224q-14 0 -23 9t-9 23zM512 301l595 595h-595v-595zM557 256h595v595z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 64q0 52 26 96.5t70 69.5v820q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136q0 -52 -26 -96.5t-70 -69.5v-497q54 26 154 57q55 17 87.5 29.5t70.5 31t59 39.5t40.5 51t28 69.5t8.5 91.5q-44 25 -70 69.5t-26 96.5q0 80 56 136t136 56t136 -56t56 -136 q0 -52 -26 -96.5t-70 -69.5q-2 -287 -226 -414q-68 -38 -203 -81q-128 -40 -169.5 -71t-41.5 -100v-26q44 -25 70 -69.5t26 -96.5q0 -80 -56 -136t-136 -56t-136 56t-56 136zM96 64q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM96 1216q0 -40 28 -68 t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68zM736 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 448q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23zM16 1088q0 120 85 203l147 146q83 83 203 83q121 0 204 -85l334 -335q21 -21 42 -56l-239 -18l-273 274q-28 28 -68 28q-39 0 -68 -27l-147 -146q-28 -28 -28 -67q0 -40 28 -68 l274 -274l-18 -240q-35 21 -56 42l-336 336q-84 86 -84 204zM128 32q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-10 -9 -23 -9q-12 0 -23 9q-9 10 -9 23zM544 -96v320q0 14 9 23t23 9t23 -9t9 -23v-320q0 -14 -9 -23t-23 -9t-23 9t-9 23zM633 364 l239 18l273 -274q27 -27 68 -27.5t68 26.5l147 146q28 28 28 67q0 40 -28 68l-274 275l18 239q35 -21 56 -42l336 -336q84 -86 84 -204q0 -120 -85 -203l-147 -146q-83 -83 -203 -83q-121 0 -204 85l-334 335q-21 21 -42 56zM1056 1184v320q0 14 9 23t23 9t23 -9t9 -23v-320 q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1216 1120q0 13 9 23l256 256q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-256 -256q-11 -9 -23 -9t-23 9q-9 10 -9 23zM1280 960q0 14 9 23t23 9h320q14 0 23 -9t9 -23t-9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M96.5 986q-2.5 15 5.5 28q160 266 464 266q80 0 161 -31t146 -83t106 -127.5t41 -158.5q0 -54 -15.5 -101t-35 -76.5t-55 -59.5t-57.5 -43.5t-61 -35.5q-41 -23 -68.5 -65t-27.5 -67q0 -17 -12 -32.5t-28 -15.5h-240q-15 0 -25.5 18.5t-10.5 37.5v45q0 83 65 156.5 t143 108.5q59 27 84 56t25 76q0 42 -46.5 74t-107.5 32q-65 0 -108 -29q-35 -25 -107 -115q-13 -16 -31 -16q-12 0 -25 8l-164 125q-13 10 -15.5 25zM384 40v240q0 16 12 28t28 12h240q16 0 28 -12t12 -28v-240q0 -16 -12 -28t-28 -12h-240q-16 0 -28 12t-12 28z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M0 64v128q0 26 19 45t45 19h64v384h-64q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h384q26 0 45 -19t19 -45v-576h64q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45zM128 1152v192q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-192 q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" horiz-adv-x="640" d="M98 1344q-1 26 17.5 45t44.5 19h320q26 0 44.5 -19t17.5 -45l-28 -768q-1 -26 -20.5 -45t-45.5 -19h-256q-26 0 -45.5 19t-20.5 45zM128 64v224q0 26 19 45t45 19h256q26 0 45 -19t19 -45v-224q0 -26 -19 -45t-45 -19h-256q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1013 713q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q83 65 188 65q110 0 178 -59.5t68 -158.5q0 -56 -24.5 -103t-62 -76.5t-81.5 -58.5t-82 -50.5t-65.5 -51.5t-30.5 -63h232v80h126v-206h-514l-3 27q-4 28 -4 46z " />
|
||||
<glyph unicode="" d="M5 0v167h128l197 291l-185 272h-137v168h276l139 -228q2 -4 23 -42q8 -9 11 -21h3q3 9 11 21l25 42l140 228h257v-168h-125l-184 -267l204 -296h109v-167h-248l-159 252l-24 42q-8 9 -11 21h-3l-9 -21q-10 -20 -25 -44l-155 -250h-258zM1015 -183q0 64 26 117t65 86.5 t84 65t84 54.5t65 54t26 64q0 38 -29.5 62.5t-70.5 24.5q-51 0 -97 -39q-14 -11 -36 -38l-105 92q26 37 63 66q80 65 188 65q110 0 178 -59.5t68 -158.5q0 -66 -34.5 -118.5t-84 -86t-99.5 -62.5t-87 -63t-41 -73h232v80h126v-206h-514l-4 27q-3 45 -3 46z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M1.5 146.5q5.5 37.5 30.5 65.5l896 1024q38 44 96 44h768q38 0 69.5 -20.5t47.5 -54.5q15 -34 9.5 -71.5t-30.5 -65.5l-896 -1024q-38 -44 -96 -44h-768q-38 0 -69.5 20.5t-47.5 54.5q-15 34 -9.5 71.5zM128 128h768l336 384h-768z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 0v1024q2 -1 17.5 -3.5t34 -5t21.5 -3.5q150 -24 245 -24q80 0 117 35q46 44 46 89q0 22 -15 50.5t-33.5 53t-33.5 64.5t-15 83q0 82 59 127.5t144 45.5q80 0 134 -44.5t54 -123.5q0 -41 -17.5 -77.5t-38 -59t-38 -56.5t-17.5 -71q0 -57 42 -83.5t103 -26.5 q64 0 180 15t163 17v-2q-1 -2 -3.5 -17.5t-5 -34t-3.5 -21.5q-24 -150 -24 -245q0 -80 35 -117q44 -46 89 -46q22 0 50.5 15t53 33.5t64.5 33.5t83 15q82 0 127.5 -59t45.5 -143q0 -81 -44.5 -135t-123.5 -54q-41 0 -77.5 17.5t-59 38t-56.5 38t-71 17.5q-110 0 -110 -124 q0 -39 16 -115t15 -115v-5q-22 0 -33 -1q-34 -3 -97.5 -11.5t-115.5 -13.5t-98 -5q-61 0 -103 26.5t-42 83.5q0 37 17.5 71t38 56.5t38 59t17.5 77.5q0 79 -54 123.5t-135 44.5q-84 0 -143 -45.5t-59 -127.5q0 -43 15 -83t33.5 -64.5t33.5 -53t15 -50.5q0 -45 -46 -89 q-37 -35 -117 -35q-95 0 -245 24q-9 2 -27.5 4t-27.5 4l-13 2q-1 0 -3 1q-2 0 -2 1z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -185 131.5 -316.5t316.5 -131.5t316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45 t19 45t45 19h256v132q-217 24 -364.5 187.5t-147.5 384.5zM256 704v512q0 132 94 226t226 94t226 -94t94 -226v-512q0 -132 -94 -226t-226 -94t-226 94t-94 226z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M13 64q0 13 10 23l1234 1234q10 10 23 10t23 -10l82 -82q10 -10 10 -23t-10 -23l-361 -361v-128q0 -132 -94 -226t-226 -94q-55 0 -109 19l-96 -96q97 -51 205 -51q185 0 316.5 131.5t131.5 316.5v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -221 -147.5 -384.5 t-364.5 -187.5v-132h256q26 0 45 -19t19 -45t-19 -45t-45 -19h-640q-26 0 -45 19t-19 45t19 45t45 19h256v132q-125 13 -235 81l-254 -254q-10 -10 -23 -10t-23 10l-82 82q-10 10 -10 23zM128 704v128q0 26 19 45t45 19t45 -19t19 -45v-128q0 -53 15 -113l-101 -101 q-42 103 -42 214zM384 704v512q0 132 94 226t226 94q102 0 184.5 -59t116.5 -152z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 576v768q0 26 19 45t45 19h1152q26 0 45 -19t19 -45v-768q0 -86 -33.5 -170.5t-83 -150t-118 -127.5t-126.5 -103t-121 -77.5t-89.5 -49.5t-42.5 -20q-12 -6 -26 -6t-26 6q-16 7 -42.5 20t-89.5 49.5t-121 77.5t-126.5 103t-118 127.5t-83 150t-33.5 170.5zM640 79 q119 63 213 137q235 184 235 360v640h-448v-1137z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -128v1280q0 52 38 90t90 38h128v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h384v96q0 66 47 113t113 47h64q66 0 113 -47t47 -113v-96h128q52 0 90 -38t38 -90v-1280q0 -52 -38 -90t-90 -38h-1408q-52 0 -90 38t-38 90zM128 -128h1408v1024h-1408v-1024z M384 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288zM1152 1088q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v288q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-288z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M3.5 940q-8.5 25 3.5 49q5 10 14.5 26t37.5 53.5t60.5 70t85 67t108.5 52.5q-25 42 -25 86q0 66 47 113t113 47t113 -47t47 -113q0 -33 -14 -64h302q0 11 7 20t18 11l448 96q3 1 7 1q12 0 20 -7q12 -9 12 -25v-320q0 -16 -12 -25q-8 -7 -20 -7q-4 0 -7 1l-448 96 q-11 2 -18 11t-7 20h-256v-102q111 -23 183.5 -111t72.5 -203v-800q0 -26 -19 -45t-45 -19h-512q-26 0 -45 19t-19 45v800q0 106 62.5 190.5t161.5 114.5v111h-32q-59 0 -115 -23.5t-91.5 -53t-66 -66.5t-40.5 -53.5t-14 -24.5q-17 -35 -57 -35q-16 0 -29 7q-23 12 -31.5 37 zM384 1344q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M36 464l224 384q10 14 26 16l379 20q96 114 176 195q188 187 358 258t431 71q14 0 24 -9.5t10 -22.5q0 -249 -75.5 -430.5t-253.5 -360.5q-81 -80 -195 -176l-20 -379q-2 -16 -16 -26l-384 -224q-7 -4 -16 -4q-12 0 -23 9l-64 64q-13 14 -8 32l85 276l-281 281l-276 -85 q-3 -1 -9 -1q-14 0 -23 9l-64 64q-17 19 -5 39zM1248 1088q0 -40 28 -68t68 -28t68 28t28 68t-28 68t-68 28t-68 -28t-28 -68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0l204 953l-153 327h1276q101 0 189.5 -40.5t147.5 -113.5q60 -73 81 -168.5t0 -194.5l-164 -763h-334l178 832q13 56 -15 88q-27 33 -83 33h-169l-204 -953h-334l204 953h-286l-204 -953h-334z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM346 640q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l102 102q19 19 19 45t-19 45l-307 307l307 307 q19 19 19 45t-19 45l-102 102q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM506 288q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-454 454 q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45t19 -45l307 -307l-307 -307q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 544q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l307 307l307 -307q19 -19 45 -19t45 19l102 102 q19 19 19 45t-19 45l-454 454q-19 19 -45 19t-45 -19l-454 -454q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM250 736q0 -26 19 -45l454 -454q19 -19 45 -19t45 19l454 454q19 19 19 45t-19 45l-102 102 q-19 19 -45 19t-45 -19l-307 -307l-307 307q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1408h1408l-128 -1438l-578 -162l-574 162zM262 1114l47 -534h612l-22 -228l-197 -53l-196 53l-13 140h-175l22 -278l362 -100h4v1l359 99l50 544h-644l-15 181h674l16 175h-884z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M12 75l71 356h297l-29 -147l422 -161l486 161l68 339h-1208l58 297h1209l38 191h-1208l59 297h1505l-266 -1333l-804 -267z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 0v352q0 14 9 23t23 9h352q22 0 30 -20q8 -19 -7 -35l-100 -100q67 -91 189.5 -153.5t271.5 -82.5v647h-192q-26 0 -45 19t-19 45v128q0 26 19 45t45 19h192v163q-58 34 -93 92.5t-35 128.5q0 106 75 181t181 75t181 -75t75 -181q0 -70 -35 -128.5t-93 -92.5v-163h192 q26 0 45 -19t19 -45v-128q0 -26 -19 -45t-45 -19h-192v-647q149 20 271.5 82.5t189.5 153.5l-100 100q-15 16 -7 35q8 20 30 20h352q14 0 23 -9t9 -23v-352q0 -22 -20 -30q-8 -2 -12 -2q-13 0 -23 9l-93 93q-119 -143 -318.5 -226.5t-429.5 -83.5t-429.5 83.5t-318.5 226.5 l-93 -93q-9 -9 -23 -9q-4 0 -12 2q-20 8 -20 30zM832 1280q0 -26 19 -45t45 -19t45 19t19 45t-19 45t-45 19t-45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 96v576q0 40 28 68t68 28h32v320q0 185 131.5 316.5t316.5 131.5t316.5 -131.5t131.5 -316.5q0 -26 -19 -45t-45 -19h-64q-26 0 -45 19t-19 45q0 106 -75 181t-181 75t-181 -75t-75 -181v-320h736q40 0 68 -28t28 -68v-576q0 -40 -28 -68t-68 -28h-960q-40 0 -68 28 t-28 68z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5zM256 640q0 212 150 362t362 150t362 -150t150 -362t-150 -362t-362 -150t-362 150t-150 362zM384 640q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5 t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM512 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM1024 608v192q0 40 28 68t68 28h192 q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" horiz-adv-x="384" d="M0 96v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 608v192q0 40 28 68t68 28h192q40 0 68 -28t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68zM0 1120v192q0 40 28 68t68 28h192q40 0 68 -28 t28 -68v-192q0 -40 -28 -68t-68 -28h-192q-40 0 -68 28t-28 68z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 256q0 -53 37.5 -90.5t90.5 -37.5t90.5 37.5t37.5 90.5t-37.5 90.5t-90.5 37.5t-90.5 -37.5t-37.5 -90.5z M256 575q0 -13 8.5 -22t21.5 -10q154 -11 264 -121t121 -264q1 -13 10 -21.5t22 -8.5h128q13 0 23 10t9 24q-13 232 -177 396t-396 177q-14 1 -24 -9t-10 -23v-128zM256 959q0 -13 9 -22t22 -10q204 -7 378 -111.5t278.5 -278.5t111.5 -378q1 -13 10 -22t22 -9h128 q13 0 23 10q11 9 9 23q-5 154 -56 297.5t-139.5 260t-205 205t-260 139.5t-297.5 56q-14 1 -23 -9q-10 -10 -10 -23v-128z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM512 320q0 -37 32 -56q16 -8 32 -8q17 0 32 9l544 320q32 18 32 55t-32 55l-544 320q-31 19 -64 1 q-32 -19 -32 -56v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M54 448.5q0 53.5 37 90.5l907 906q37 37 90.5 37t90.5 -37l125 -125q-56 -56 -56 -136t56 -136t136 -56t136 56l126 -125q37 -37 37 -90.5t-37 -90.5l-907 -908q-37 -37 -90.5 -37t-90.5 37l-126 126q56 56 56 136t-56 136t-136 56t-136 -56l-125 126q-37 37 -37 90.5z M342 512q0 -26 19 -45l362 -362q18 -18 45 -18t45 18l618 618q19 19 19 45t-19 45l-362 362q-18 18 -45 18t-45 -18l-618 -618q-19 -19 -19 -45zM452 512l572 572l316 -316l-572 -572z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 576q0 -26 19 -45t45 -19h896q26 0 45 19t19 45v128q0 26 -19 45t-45 19h-896q-26 0 -45 -19t-19 -45v-128 z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M3 18q-8 20 4 35l160 192q9 11 25 11h320v640h-192q-40 0 -58 37q-17 37 9 68l320 384q18 22 49 22t49 -22l320 -384q27 -32 9 -68q-18 -37 -58 -37h-192v-864q0 -14 -9 -23t-23 -9h-704q-21 0 -29 18z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M3 1261q9 19 29 19h704q13 0 22.5 -9.5t9.5 -23.5v-863h192q40 0 58 -37t-9 -69l-320 -384q-18 -22 -49 -22t-49 22l-320 384q-26 31 -9 69q18 37 58 37h192v640h-320q-14 0 -25 11l-160 192q-13 14 -4 34z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 640q0 -26 19 -45l358 -358q19 -19 45 -19t45 19l614 614q19 19 19 45t-19 45l-102 102q-19 19 -45 19 t-45 -19l-467 -467l-211 211q-19 19 -45 19t-45 -19l-102 -102q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 128h288l544 544l-288 288l-544 -544v-288zM352 320v56l52 52l152 -152l-52 -52h-56v96h-96zM494 494 q-14 13 3 30l291 291q17 17 30 3q14 -13 -3 -30l-291 -291q-17 -17 -30 -3zM864 1024l288 -288l92 92q28 28 28 68t-28 68l-152 152q-28 28 -68 28t-68 -28z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM282 320q0 -26 19 -45l102 -102q19 -19 45 -19t45 19l534 534l144 -144q18 -19 45 -19q12 0 25 5q39 17 39 59 v480q0 26 -19 45t-45 19h-480q-42 0 -59 -39q-17 -41 14 -70l144 -144l-534 -534q-19 -19 -19 -45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 448q0 -181 167 -404q10 -12 25 -12q7 0 13 3q22 9 19 33q-44 354 62 473q46 52 130 75.5t224 23.5v-160 q0 -42 40 -59q12 -5 24 -5q26 0 45 19l352 352q19 19 19 45t-19 45l-352 352q-30 31 -69 14q-40 -17 -40 -59v-160q-119 0 -216 -19.5t-162.5 -51t-114 -79t-76.5 -95.5t-44.5 -109t-21.5 -111.5t-5 -110.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 241v542l512 256v-542zM640 448l256 128l-256 128v-256z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 861q17 35 57 35h640q40 0 57 -35q18 -35 -5 -66l-320 -448q-19 -27 -52 -27t-52 27l-320 448q-23 31 -5 66z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM391 419q-18 35 5 66l320 448q19 27 52 27t52 -27l320 -448q23 -31 5 -66q-17 -35 -57 -35h-640q-40 0 -57 35z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -14 9 -23t23 -9h960q14 0 23 9t9 23v960q0 14 -9 23t-23 9h-960q-14 0 -23 -9t-9 -23v-960z M512 320v640q0 40 35 57q35 18 66 -5l448 -320q27 -19 27 -52t-27 -52l-448 -320q-31 -23 -66 -5q-35 17 -35 57z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 514v113q0 13 9.5 22.5t22.5 9.5h66q-2 57 1 105h-67q-14 0 -23 9t-9 23v114q0 14 9 23t23 9h98q67 210 243.5 338t400.5 128q102 0 194 -23q11 -3 20 -15q6 -11 3 -24l-43 -159q-3 -13 -14 -19.5t-24 -2.5l-4 1q-4 1 -11.5 2.5l-17.5 3.5t-22.5 3.5t-26 3t-29 2.5 t-29.5 1q-126 0 -226 -64t-150 -176h468q16 0 25 -12q10 -12 7 -26l-24 -114q-5 -26 -32 -26h-488q-3 -37 0 -105h459q15 0 25 -12q9 -12 6 -27l-24 -112q-2 -11 -11 -18.5t-20 -7.5h-387q48 -117 149.5 -185.5t228.5 -68.5q18 0 36 1.5t33.5 3.5t29.5 4.5t24.5 5t18.5 4.5 l12 3l5 2q13 5 26 -2q12 -7 15 -21l35 -159q3 -12 -3 -22.5t-17 -14.5l-5 -1q-4 -2 -10.5 -3.5t-16 -4.5t-21.5 -5.5t-25.5 -5t-30 -5t-33.5 -4.5t-36.5 -3t-38.5 -1q-234 0 -409 130.5t-238 351.5h-95q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 32v150q0 13 9.5 22.5t22.5 9.5h97v383h-95q-14 0 -23 9.5t-9 22.5v131q0 14 9 23t23 9h95v223q0 171 123.5 282t314.5 111q185 0 335 -125q9 -8 10 -20.5t-7 -22.5l-103 -127q-9 -11 -22 -12q-13 -2 -23 7q-5 5 -26 19t-69 32t-93 18q-85 0 -137 -47t-52 -123v-215 h305q13 0 22.5 -9t9.5 -23v-131q0 -13 -9.5 -22.5t-22.5 -9.5h-305v-379h414v181q0 13 9 22.5t23 9.5h162q14 0 23 -9.5t9 -22.5v-367q0 -14 -9 -23t-23 -9h-956q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M52 171l103 135q7 10 23 12q15 2 24 -9l2 -2q113 -99 243 -125q37 -8 74 -8q81 0 142.5 43t61.5 122q0 28 -15 53t-33.5 42t-58.5 37.5t-66 32t-80 32.5q-39 16 -61.5 25t-61.5 26.5t-62.5 31t-56.5 35.5t-53.5 42.5t-43.5 49t-35.5 58t-21 66.5t-8.5 78q0 138 98 242 t255 134v180q0 13 9.5 22.5t22.5 9.5h135q14 0 23 -9t9 -23v-176q57 -6 110.5 -23t87 -33.5t63.5 -37.5t39 -29t15 -14q17 -18 5 -38l-81 -146q-8 -15 -23 -16q-14 -3 -27 7q-3 3 -14.5 12t-39 26.5t-58.5 32t-74.5 26t-85.5 11.5q-95 0 -155 -43t-60 -111q0 -26 8.5 -48 t29.5 -41.5t39.5 -33t56 -31t60.5 -27t70 -27.5q53 -20 81 -31.5t76 -35t75.5 -42.5t62 -50t53 -63.5t31.5 -76.5t13 -94q0 -153 -99.5 -263.5t-258.5 -136.5v-175q0 -14 -9 -23t-23 -9h-135q-13 0 -22.5 9.5t-9.5 22.5v175q-66 9 -127.5 31t-101.5 44.5t-74 48t-46.5 37.5 t-17.5 18q-17 21 -2 41z" />
|
||||
<glyph unicode="" horiz-adv-x="898" d="M0 605v127q0 13 9.5 22.5t22.5 9.5h112q132 0 212.5 43t102.5 125h-427q-14 0 -23 9t-9 23v102q0 14 9 23t23 9h413q-57 113 -268 113h-145q-13 0 -22.5 9.5t-9.5 22.5v133q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-233q47 -61 64 -144h171 q14 0 23 -9t9 -23v-102q0 -14 -9 -23t-23 -9h-168q-23 -144 -129 -234t-276 -110q167 -178 459 -536q14 -16 4 -34q-8 -18 -29 -18h-195q-16 0 -25 12q-306 367 -498 571q-9 9 -9 22z" />
|
||||
<glyph unicode="" horiz-adv-x="1027" d="M4 1360q-8 16 0 32q10 16 28 16h194q19 0 29 -18l215 -425q19 -38 56 -125q10 24 30.5 68t27.5 61l191 420q8 19 29 19h191q17 0 27 -16q9 -14 1 -31l-313 -579h215q13 0 22.5 -9.5t9.5 -22.5v-104q0 -14 -9.5 -23t-22.5 -9h-290v-85h290q13 0 22.5 -9.5t9.5 -22.5v-103 q0 -14 -9.5 -23t-22.5 -9h-290v-330q0 -13 -9.5 -22.5t-22.5 -9.5h-172q-13 0 -22.5 9t-9.5 23v330h-288q-13 0 -22.5 9t-9.5 23v103q0 13 9.5 22.5t22.5 9.5h288v85h-288q-13 0 -22.5 9t-9.5 23v104q0 13 9.5 22.5t22.5 9.5h214z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 256v128q0 14 9 23t23 9h224v118h-224q-14 0 -23 9t-9 23v149q0 13 9 22.5t23 9.5h224v629q0 14 9 23t23 9h539q200 0 326.5 -122t126.5 -315t-126.5 -315t-326.5 -122h-340v-118h505q14 0 23 -9t9 -23v-128q0 -14 -9 -23t-23 -9h-505v-192q0 -14 -9.5 -23t-22.5 -9 h-167q-14 0 -23 9t-9 23v192h-224q-14 0 -23 9t-9 23zM487 747h320q106 0 171 62t65 162t-65 162t-171 62h-320v-448z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 672v64q0 14 9 23t23 9h175l-33 128h-142q-14 0 -23 9t-9 23v64q0 14 9 23t23 9h109l-89 344q-5 15 5 28q10 12 26 12h137q26 0 31 -24l90 -360h359l97 360q7 24 31 24h126q24 0 31 -24l98 -360h365l93 360q5 24 31 24h137q16 0 26 -12q10 -13 5 -28l-91 -344h111 q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-145l-34 -128h179q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-213l-164 -616q-7 -24 -31 -24h-159q-24 0 -31 24l-166 616h-209l-167 -616q-7 -24 -31 -24h-159q-11 0 -19.5 7t-10.5 17l-160 616h-208q-14 0 -23 9t-9 23z M373 896l32 -128h225l35 128h-292zM436 640l75 -300q1 -1 1 -3t1 -3q0 1 0.5 3.5t0.5 3.5l81 299h-159zM822 768h139l-35 128h-70zM1118 896l34 -128h230l33 128h-297zM1187 640l81 -299q0 -1 0.5 -3.5t1.5 -3.5q0 1 0.5 3t0.5 3l78 300h-162z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M56 0l31 183h111q50 0 58 51v402h16q-6 1 -16 1v287q-13 68 -89 68h-111v164l212 -1q64 0 97 1v252h154v-247q82 2 122 2v245h154v-252q79 -7 140 -22.5t113 -45t82.5 -78t36.5 -114.5q18 -182 -131 -258q117 -28 175 -103t45 -214q-7 -71 -32.5 -125t-64.5 -89 t-97 -58.5t-121.5 -34.5t-145.5 -15v-255h-154v251q-80 0 -122 1v-252h-154v255q-18 0 -54 0.5t-55 0.5h-200zM522 182q8 0 37 -0.5t48 -0.5t53 1.5t58.5 4t57 8.5t55.5 14t47.5 21t39.5 30t24.5 40t9.5 51q0 36 -15 64t-37 46t-57.5 30.5t-65.5 18.5t-74 9t-69 3t-64.5 -1 t-47.5 -1v-338zM522 674q5 0 34.5 -0.5t46.5 0t50 2t55 5.5t51.5 11t48.5 18.5t37 27t27 38.5t9 51q0 33 -12.5 58.5t-30.5 42t-48 28t-55 16.5t-61.5 8t-58 2.5t-54 -1t-39.5 -0.5v-307z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h800v-544q0 -40 28 -68t68 -28h544v-1056q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM384 160q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 416q0 -14 9 -23t23 -9h704 q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM384 672q0 -14 9 -23t23 -9h704q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-704q-14 0 -23 -9t-9 -23v-64zM1024 1024v472q22 -14 36 -28l408 -408q14 -14 28 -36h-472z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 768v106h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106 h-287zM988 -166l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -11v-2l14 2q9 2 30 2h248v119h121v-233h-584v90zM1191 1128h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18 t-7.5 -29z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM899 -150h70l230 662h162l230 -662h70v-106h-288v106h75l-47 144h-243l-47 -144h75v-106h-287 v106zM988 768v90l369 529q12 18 21 27l11 9v3q-2 0 -6.5 -0.5t-7.5 -0.5q-12 -3 -30 -3h-232v-115h-120v229h567v-89l-369 -530q-6 -8 -21 -26l-11 -10v-3l14 3q9 1 30 1h248v119h121v-233h-584zM1191 104h177l-72 218l-12 47q-2 16 -2 20h-4l-3 -20q0 -1 -3.5 -18t-7.5 -29 z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h832q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h256q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM896 -32q0 14 9 23t23 9h256q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-256q-14 0 -23 9 t-9 23v192zM896 288v192q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-448q-14 0 -23 9t-9 23zM896 800v192q0 14 9 23t23 9h640q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-640q-14 0 -23 9t-9 23zM896 1312v192q0 14 9 23t23 9h832q14 0 23 -9t9 -23 v-192q0 -14 -9 -23t-23 -9h-832q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 261q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 1351l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17 v16h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 261q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
|
||||
<glyph unicode="" d="M34 108q8 20 30 20h192v1376q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1376h192q14 0 23 -9t9 -23q0 -12 -10 -24l-319 -319q-10 -9 -23 -9q-12 0 -23 9l-320 320q-15 16 -7 35zM946 1285q0 105 72 178t181 73q123 0 205 -94.5t82 -252.5q0 -62 -13 -121.5t-41 -114 t-68 -95.5t-98.5 -65.5t-127.5 -24.5q-62 0 -108 16q-24 8 -42 15l39 113q15 -7 31 -11q37 -13 75 -13q84 0 134.5 58.5t66.5 145.5h-2q-21 -23 -61.5 -37t-84.5 -14q-106 0 -173 71.5t-67 172.5zM976 327l192 185h123v-654h165v-114h-469v114h167v432q0 7 0.5 19t0.5 17v16 h-2l-7 -12q-8 -13 -26 -31l-62 -58zM1085 1285q0 -57 36.5 -95t104.5 -38q50 0 85 27t35 68q0 63 -44 116t-103 53q-52 0 -83 -37t-31 -94z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 64v640q0 26 19 45t45 19h288q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19h-288q-26 0 -45 19t-19 45zM128 192q0 -27 18.5 -45.5t45.5 -18.5q26 0 45 18.5t19 45.5q0 26 -19 45t-45 19q-27 0 -45.5 -19t-18.5 -45zM480 64v641q0 25 18 43.5t43 20.5q24 2 76 59 t101 121q68 87 101 120q18 18 31 48t17.5 48.5t13.5 60.5q7 39 12.5 61t19.5 52t34 50q19 19 45 19q46 0 82.5 -10.5t60 -26t40 -40.5t24 -45t12 -50t5 -45t0.5 -39q0 -38 -9.5 -76t-19 -60t-27.5 -56q-3 -6 -10 -18t-11 -22t-8 -24h277q78 0 135 -57t57 -135 q0 -86 -55 -149q15 -44 15 -76q3 -76 -43 -137q17 -56 0 -117q-15 -57 -54 -94q9 -112 -49 -181q-64 -76 -197 -78h-36h-76h-17q-66 0 -144 15.5t-121.5 29t-120.5 39.5q-123 43 -158 44q-26 1 -45 19.5t-19 44.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 448q0 -26 19 -45t45 -19h288q26 0 45 19t19 45v640q0 26 -19 45t-45 19h-288q-26 0 -45 -19t-19 -45v-640zM128 960q0 27 18.5 45.5t45.5 18.5q26 0 45 -18.5t19 -45.5q0 -26 -19 -45t-45 -19q-27 0 -45.5 19t-18.5 45zM480 447v641q0 26 19 44.5t45 19.5q35 1 158 44 q77 26 120.5 39.5t121.5 29t144 15.5h17h76h36q133 -2 197 -78q58 -69 49 -181q39 -37 54 -94q17 -61 0 -117q46 -61 43 -137q0 -32 -15 -76q55 -61 55 -149q-1 -78 -57.5 -135t-134.5 -57h-277q4 -14 8 -24t11 -22t10 -18q18 -37 27 -57t19 -58.5t10 -76.5q0 -24 -0.5 -39 t-5 -45t-12 -50t-24 -45t-40 -40.5t-60 -26t-82.5 -10.5q-26 0 -45 19q-20 20 -34 50t-19.5 52t-12.5 61q-9 42 -13.5 60.5t-17.5 48.5t-31 48q-33 33 -101 120q-49 64 -101 121t-76 59q-25 2 -43 20.5t-18 43.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM218 366q0 -176 20 -260q10 -43 42.5 -73t75.5 -35q137 -15 412 -15t412 15q43 5 75.5 35t42.5 73 q20 84 20 260q0 177 -19 260q-10 44 -43 73.5t-76 34.5q-136 15 -412 15q-275 0 -411 -15q-44 -5 -76.5 -34.5t-42.5 -73.5q-20 -87 -20 -260zM300 551v70h232v-70h-80v-423h-74v423h-78zM396 1313l24 -69t23 -69q35 -103 46 -158v-201h74v201l90 296h-75l-51 -195l-53 195 h-78zM542 205v290h66v-270q0 -24 1 -26q1 -15 15 -15q20 0 42 31v280h67v-367h-67v40q-39 -45 -76 -45q-33 0 -42 28q-6 16 -6 54zM654 936q0 -58 21 -87q27 -38 78 -38q49 0 78 38q21 27 21 87v130q0 58 -21 87q-29 38 -78 38q-51 0 -78 -38q-21 -29 -21 -87v-130zM721 923 v156q0 52 32 52t32 -52v-156q0 -51 -32 -51t-32 51zM790 128v493h67v-161q32 40 68 40q41 0 53 -42q7 -21 7 -74v-146q0 -52 -7 -73q-12 -42 -53 -42q-35 0 -68 41v-36h-67zM857 200q16 -16 33 -16q29 0 29 49v157q0 50 -29 50q-17 0 -33 -16v-224zM907 893q0 -37 6 -55 q11 -27 43 -27q36 0 77 45v-40h67v370h-67v-283q-22 -31 -42 -31q-15 0 -16 16q-1 2 -1 26v272h-67v-293zM1037 247v129q0 59 20 86q29 38 80 38t78 -38q21 -28 21 -86v-76h-133v-65q0 -51 34 -51q24 0 30 26q0 1 0.5 7t0.5 16.5v21.5h68v-9q0 -29 -2 -43q-3 -22 -15 -40 q-27 -40 -80 -40q-52 0 -81 38q-21 27 -21 86zM1103 355h66v34q0 51 -33 51t-33 -51v-34z" />
|
||||
<glyph unicode="" d="M27 260q0 234 26 350q14 59 58 99t103 47q183 20 554 20t555 -20q58 -7 102.5 -47t57.5 -99q26 -112 26 -350q0 -234 -26 -350q-14 -59 -58 -99t-102 -46q-184 -21 -555 -21t-555 21q-58 6 -102.5 46t-57.5 99q-26 112 -26 350zM138 509h105v-569h100v569h107v94h-312 v-94zM266 1536h106l71 -263l68 263h102l-121 -399v-271h-100v271q-14 74 -61 212q-37 103 -65 187zM463 43q0 -49 8 -73q12 -37 58 -37q48 0 102 61v-54h89v494h-89v-378q-30 -42 -57 -42q-18 0 -21 21q-1 3 -1 35v364h-89v-391zM614 1028v175q0 80 28 117q38 51 105 51 q69 0 106 -51q28 -37 28 -117v-175q0 -81 -28 -118q-37 -51 -106 -51q-67 0 -105 51q-28 38 -28 118zM704 1011q0 -70 43 -70t43 70v210q0 69 -43 69t-43 -69v-210zM798 -60h89v48q45 -55 93 -55q54 0 71 55q9 27 9 100v197q0 73 -9 99q-17 56 -71 56q-50 0 -93 -54v217h-89 v-663zM887 36v301q22 22 45 22q39 0 39 -67v-211q0 -67 -39 -67q-23 0 -45 22zM955 971v394h91v-367q0 -33 1 -35q3 -22 21 -22q27 0 57 43v381h91v-499h-91v55q-53 -62 -103 -62q-46 0 -59 37q-8 24 -8 75zM1130 100q0 -79 29 -116q39 -51 108 -51q72 0 108 53q18 27 21 54 q2 9 2 58v13h-91q0 -51 -2 -61q-7 -36 -40 -36q-46 0 -46 69v87h179v103q0 79 -27 116q-39 51 -106 51q-68 0 -107 -51q-28 -37 -28 -116v-173zM1219 245v46q0 68 45 68t45 -68v-46h-90z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M5 384q-10 17 0 36l253 448q1 0 0 1l-161 279q-12 22 -1 37q9 15 32 15h239q40 0 66 -45l164 -286q-10 -18 -257 -456q-27 -46 -65 -46h-239q-21 0 -31 17zM536 539q18 32 531 942q25 45 64 45h241q22 0 31 -15q11 -16 0 -37l-528 -934v-1l336 -615q11 -20 1 -37 q-10 -15 -32 -15h-239q-42 0 -66 45z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM227 396q8 -13 24 -13h185q31 0 50 36l199 352q0 1 -126 222q-21 34 -52 34h-184q-18 0 -26 -11q-7 -12 1 -29 l125 -216v-1l-196 -346q-9 -14 0 -28zM638 516q1 -2 262 -481q20 -35 52 -35h184q18 0 25 12q8 13 -1 28l-260 476v1l409 723q8 16 0 28q-7 12 -24 12h-187q-30 0 -49 -35z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 96 1 150t8.5 136.5t22.5 147.5q16 73 69 123t124 58q222 25 671 25t671 -25q71 -8 124.5 -58t69.5 -123q14 -65 21.5 -147.5t8.5 -136.5t1 -150t-1 -150t-8.5 -136.5t-22.5 -147.5q-16 -73 -69 -123t-124 -58q-222 -25 -671 -25t-671 25q-71 8 -124.5 58 t-69.5 123q-14 65 -21.5 147.5t-8.5 136.5t-1 150zM640 320q0 -38 33 -56q16 -8 31 -8q20 0 34 10l512 320q30 17 30 54t-30 54l-512 320q-31 20 -65 2q-33 -18 -33 -56v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 558l338 271l494 -305l-342 -285zM64 1099l490 319l342 -285l-494 -304zM407 166v108l147 -96l342 284v2l1 -1l1 1v-2l343 -284l147 96v-108l-490 -293v-1l-1 1l-1 -1v1zM896 524l494 305l338 -271l-489 -319zM896 1133l343 285l489 -319l-338 -270z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -255v736h121v-618h928v618h120v-701l-1 -35v-1h-1132l-35 1h-1zM221 -17v151l707 1v-151zM227 243l14 150l704 -65l-13 -150zM270 563l39 146l683 -183l-39 -146zM395 928l77 130l609 -360l-77 -130zM707 1303l125 86l398 -585l-124 -85zM1136 1510l149 26l121 -697 l-149 -26z" />
|
||||
<glyph unicode="" d="M0 69v1142q0 81 58 139t139 58h1142q81 0 139 -58t58 -139v-1142q0 -81 -58 -139t-139 -58h-1142q-81 0 -139 58t-58 139zM171 110q0 -26 17.5 -43.5t43.5 -17.5h1069q25 0 43 17.5t18 43.5v648h-135q20 -63 20 -131q0 -126 -64 -232.5t-174 -168.5t-240 -62 q-197 0 -337 135.5t-140 327.5q0 68 20 131h-141v-648zM461 643q0 -124 90.5 -211.5t217.5 -87.5q128 0 218.5 87.5t90.5 211.5t-90.5 211.5t-218.5 87.5q-127 0 -217.5 -87.5t-90.5 -211.5zM1050 1003q0 -29 20 -49t49 -20h174q29 0 49 20t20 49v165q0 28 -20 48.5 t-49 20.5h-174q-29 0 -49 -20.5t-20 -48.5v-165z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM274 640q0 -88 62 -150t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150zM838 640q0 -88 62 -150 t150 -62t150 62t62 150t-62 150t-150 62t-150 -62t-62 -150z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM309 384h94l104 160h522l104 -160h94l-459 691zM567 608l201 306l201 -306h-402z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 1222q3 26 17.5 48.5t31.5 37.5t45 30t46 22.5t48 18.5q125 46 313 64q379 37 676 -50q155 -46 215 -122q16 -20 16.5 -51t-5.5 -54q-26 -167 -111 -655q-5 -30 -27 -56t-43.5 -40t-54.5 -31q-252 -126 -610 -88q-248 27 -394 139q-15 12 -25.5 26.5t-17 35t-9 34 t-6 39.5t-5.5 35q-9 50 -26.5 150t-28 161.5t-23.5 147.5t-22 158zM173 285l6 16l18 9q223 -148 506.5 -148t507.5 148q21 -6 24 -23t-5 -45t-8 -37q-8 -26 -15.5 -76.5t-14 -84t-28.5 -70t-58 -56.5q-86 -48 -189.5 -71.5t-202 -22t-201.5 18.5q-46 8 -81.5 18t-76.5 27 t-73 43.5t-52 61.5q-25 96 -57 292zM243 1240q30 -28 76 -45.5t73.5 -22t87.5 -11.5q228 -29 448 -1q63 8 89.5 12t72.5 21.5t75 46.5q-20 27 -56 44.5t-58 22t-71 12.5q-291 47 -566 -2q-43 -7 -66 -12t-55 -22t-50 -43zM481 657q4 -91 77.5 -155t165.5 -56q91 8 152 84 t50 168q-14 107 -113 164t-197 13q-63 -28 -100.5 -88.5t-34.5 -129.5zM599 710q14 41 52 58q36 18 72.5 12t64 -35.5t27.5 -67.5q8 -63 -50.5 -101t-111.5 -6q-39 17 -53.5 58t-0.5 82z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM260 1060q8 -68 19 -138t29 -171t24 -137q1 -5 5 -31t7 -36t12 -27t22 -28q105 -80 284 -100q259 -28 440 63 q24 13 39.5 23t31 29t19.5 40q48 267 80 473q9 53 -8 75q-43 55 -155 88q-216 63 -487 36q-132 -12 -226 -46q-38 -15 -59.5 -25t-47 -34t-29.5 -54zM385 384q26 -154 41 -210q47 -81 204 -108q249 -46 428 53q34 19 49 51.5t22.5 85.5t12.5 71q0 7 5.5 26.5t3 32 t-17.5 16.5q-161 -106 -365 -106t-366 106l-12 -6zM436 1073q13 19 36 31t40 15.5t47 8.5q198 35 408 1q33 -5 51 -8.5t43 -16t39 -31.5q-20 -21 -53.5 -34t-53 -16t-63.5 -8q-155 -20 -324 0q-44 6 -63 9.5t-52.5 16t-54.5 32.5zM607 653q-2 49 25.5 93t72.5 64 q70 31 141.5 -10t81.5 -118q8 -66 -36 -121t-110 -61t-119 40t-56 113zM687.5 660.5q0.5 -52.5 43.5 -70.5q39 -23 81 4t36 72q0 43 -41 66t-77 1q-43 -20 -42.5 -72.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M78 779v217q91 30 155 84q64 55 103 132q39 78 54 196h219v-388h364v-241h-364v-394q0 -136 14 -172q13 -37 52 -60q50 -31 117 -31q117 0 232 76v-242q-102 -48 -178 -65q-77 -19 -173 -19q-105 0 -186 27q-78 25 -138 75q-58 51 -79 105q-22 54 -22 161v539h-170z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM413 744h127v-404q0 -78 17 -121q17 -42 59 -78q43 -37 104 -57q62 -20 140 -20q67 0 129 14q57 13 134 49v181 q-88 -56 -174 -56q-51 0 -88 23q-29 17 -39 45q-11 30 -11 129v295h274v181h-274v291h-164q-11 -90 -40 -147t-78 -99q-48 -40 -116 -63v-163z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M3 237q9 19 29 19h224v1248q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-1248h224q21 0 29 -19t-5 -35l-350 -384q-10 -10 -23 -10q-14 0 -24 10l-355 384q-13 16 -5 35z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M3 1043q-8 19 5 35l350 384q10 10 23 10q14 0 24 -10l355 -384q13 -16 5 -35q-9 -19 -29 -19h-224v-1248q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v1248h-224q-21 0 -29 19z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 637q0 14 10 24l384 354q16 14 35 6q19 -9 19 -29v-224h1248q14 0 23 -9t9 -23v-192q0 -14 -9 -23t-23 -9h-1248v-224q0 -21 -19 -29t-35 5l-384 350q-10 10 -10 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 544v192q0 14 9 23t23 9h1248v224q0 21 19 29t35 -5l384 -350q10 -10 10 -23q0 -14 -10 -24l-384 -354q-16 -14 -35 -6q-19 9 -19 29v224h-1248q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 634q0 228 113 374q112 144 284 144q72 0 177 -30q104 -30 138 -30q45 0 143 34q102 34 173 34q119 0 213 -65q52 -36 104 -100q-79 -67 -114 -118q-65 -94 -65 -207q0 -124 69 -223t158 -126q-39 -125 -123 -250q-129 -196 -257 -196q-49 0 -140 32q-86 32 -151 32 q-61 0 -142 -33q-81 -34 -132 -34q-152 0 -301 259q-147 261 -147 503zM683 1131q3 149 78 257q74 107 250 148q1 -3 2.5 -11t2.5 -11q0 -4 0.5 -10t0.5 -10q0 -61 -29 -136q-30 -75 -93 -138q-54 -54 -108 -72q-37 -11 -104 -17z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 -27v557h682v-651zM0 614v565l682 94v-659h-682zM757 -131v661h907v-786zM757 614v669l907 125v-794h-907z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 337v430q0 42 30 72t73 30q42 0 72 -30t30 -72v-430q0 -43 -29.5 -73t-72.5 -30t-73 30t-30 73zM241 886q0 117 64 215.5t172 153.5l-71 131q-7 13 5 20q13 6 20 -6l72 -132q95 42 201 42t201 -42l72 132q7 12 20 6q12 -7 5 -20l-71 -131q107 -55 171 -153.5t64 -215.5 h-925zM245 184v666h918v-666q0 -46 -32 -78t-77 -32h-75v-227q0 -43 -30 -73t-73 -30t-73 30t-30 73v227h-138v-227q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73l-1 227h-74q-46 0 -78 32t-32 78zM455 1092q0 -16 11 -27.5t27 -11.5t27.5 11.5t11.5 27.5t-11.5 27.5 t-27.5 11.5t-27 -11.5t-11 -27.5zM876 1092q0 -16 11.5 -27.5t27.5 -11.5t27 11.5t11 27.5t-11 27.5t-27 11.5t-27.5 -11.5t-11.5 -27.5zM1203 337v430q0 43 30 72.5t72 29.5q43 0 73 -29.5t30 -72.5v-430q0 -43 -30 -73t-73 -30q-42 0 -72 30t-30 73z" />
|
||||
<glyph unicode="" d="M11 -115q-10 23 7 66.5t18 54.5q1 16 -4 40t-10 42.5t-4.5 36.5t10.5 27q14 12 57 14t60 12q30 18 42 35t12 51q21 -73 -32 -106q-32 -20 -83 -15q-34 3 -43 -10q-13 -15 5 -57q2 -6 8 -18t8.5 -18t4.5 -17t1 -22q0 -15 -17 -49t-14 -48q3 -17 37 -26q20 -6 84.5 -18.5 t99.5 -20.5q24 -6 74 -22t82.5 -23t55.5 -4q43 6 64.5 28t23 48t-7.5 58.5t-19 52t-20 36.5q-121 190 -169 242q-68 74 -113 40q-11 -9 -15 15q-3 16 -2 38q1 29 10 52t24 47t22 42q8 21 26.5 72t29.5 78t30 61t39 54q110 143 124 195q-12 112 -16 310q-2 90 24 151.5 t106 104.5q39 21 104 21q53 1 106 -13.5t89 -41.5q57 -42 91.5 -121.5t29.5 -147.5q-5 -95 30 -214q34 -113 133 -218q55 -59 99.5 -163t59.5 -191q8 -49 5 -84.5t-12 -55.5t-20 -22q-10 -2 -23.5 -19t-27 -35.5t-40.5 -33.5t-61 -14q-18 1 -31.5 5t-22.5 13.5t-13.5 15.5 t-11.5 20.5t-9 19.5q-22 37 -41 30t-28 -49t7 -97q20 -70 1 -195q-10 -65 18 -100.5t73 -33t85 35.5q59 49 89.5 66.5t103.5 42.5q53 18 77 36.5t18.5 34.5t-25 28.5t-51.5 23.5q-33 11 -49.5 48t-15 72.5t15.5 47.5q1 -31 8 -56.5t14.5 -40.5t20.5 -28.5t21 -19t21.5 -13 t16.5 -9.5q20 -12 31 -24.5t12 -24t-2.5 -22.5t-15.5 -22t-23.5 -19.5t-30 -18.5t-31.5 -16.5t-32 -15.5t-27 -13q-38 -19 -85.5 -56t-75.5 -64q-17 -16 -68 -19.5t-89 14.5q-18 9 -29.5 23.5t-16.5 25.5t-22 19.5t-47 9.5q-44 1 -130 1q-19 0 -57 -1.5t-58 -2.5 q-44 -1 -79.5 -15t-53.5 -30t-43.5 -28.5t-53.5 -11.5q-29 1 -111 31t-146 43q-19 4 -51 9.5t-50 9t-39.5 9.5t-33.5 14.5t-17 19.5zM321 495q-36 -65 10 -166q5 -12 25 -28t24 -20q20 -23 104 -90.5t93 -76.5q16 -15 17.5 -38t-14 -43t-45.5 -23q8 -15 29 -44.5t28 -54 t7 -70.5q46 24 7 92q-4 8 -10.5 16t-9.5 12t-2 6q3 5 13 9.5t20 -2.5q46 -52 166 -36q133 15 177 87q23 38 34 30q12 -6 10 -52q-1 -25 -23 -92q-9 -23 -6 -37.5t24 -15.5q3 19 14.5 77t13.5 90q2 21 -6.5 73.5t-7.5 97t23 70.5q15 18 51 18q1 37 34.5 53t72.5 10.5 t60 -22.5q0 18 -55 42q4 15 7.5 27.5t5 26t3 21.5t0.5 22.5t-1 19.5t-3.5 22t-4 20.5t-5 25t-5.5 26.5q-10 48 -47 103t-72 75q24 -20 57 -83q87 -162 54 -278q-11 -40 -50 -42q-31 -4 -38.5 18.5t-8 83.5t-11.5 107q-9 39 -19.5 69t-19.5 45.5t-15.5 24.5t-13 15t-7.5 7 q-14 62 -31 103t-29.5 56t-23.5 33t-15 40q-4 21 6 53.5t4.5 49.5t-44.5 25q-15 3 -44.5 18t-35.5 16q-8 1 -11 26t8 51t36 27q37 3 51 -30t4 -58q-11 -19 -2 -26.5t30 -0.5q13 4 13 36v37q-5 30 -13.5 50t-21 30.5t-23.5 15t-27 7.5q-107 -8 -89 -134q0 -15 -1 -15 q-9 9 -29.5 10.5t-33 -0.5t-15.5 5q1 57 -16 90t-45 34q-27 1 -41.5 -27.5t-16.5 -59.5q-1 -15 3.5 -37t13 -37.5t15.5 -13.5q10 3 16 14q4 9 -7 8q-7 0 -15.5 14.5t-9.5 33.5q-1 22 9 37t34 14q17 0 27 -21t9.5 -39t-1.5 -22q-22 -15 -31 -29q-8 -12 -27.5 -23.5 t-20.5 -12.5q-13 -14 -15.5 -27t7.5 -18q14 -8 25 -19.5t16 -19t18.5 -13t35.5 -6.5q47 -2 102 15q2 1 23 7t34.5 10.5t29.5 13t21 17.5q9 14 20 8q5 -3 6.5 -8.5t-3 -12t-16.5 -9.5q-20 -6 -56.5 -21.5t-45.5 -19.5q-44 -19 -70 -23q-25 -5 -79 2q-10 2 -9 -2t17 -19 q25 -23 67 -22q17 1 36 7t36 14t33.5 17.5t30 17t24.5 12t17.5 2.5t8.5 -11q0 -2 -1 -4.5t-4 -5t-6 -4.5t-8.5 -5t-9 -4.5t-10 -5t-9.5 -4.5q-28 -14 -67.5 -44t-66.5 -43t-49 -1q-21 11 -63 73q-22 31 -25 22q-1 -3 -1 -10q0 -25 -15 -56.5t-29.5 -55.5t-21 -58t11.5 -63 q-23 -6 -62.5 -90t-47.5 -141q-2 -18 -1.5 -69t-5.5 -59q-8 -24 -29 -3q-32 31 -36 94q-2 28 4 56q4 19 -1 18zM372 630q4 -1 12.5 7t12.5 18q1 3 2 7t2 6t1.5 4.5t0.5 4v3t-1 2.5t-3 2q-4 1 -6 -3t-4.5 -12.5t-5.5 -13.5t-10 -13q-7 -10 -1 -12zM603 1190q2 -5 5 -6 q10 0 7 -15q-3 -20 8 -20q3 0 3 3q3 17 -2.5 30t-11.5 15q-9 2 -9 -7zM634 1110q0 12 19 15h10q-11 -1 -15.5 -10.5t-8.5 -9.5q-5 -1 -5 5zM721 1122q24 11 32 -2q3 -6 -3 -9q-4 -1 -11.5 6.5t-17.5 4.5zM835 1196l4 -2q14 -4 18 -31q0 -3 8 2l2 3q0 11 -5 19.5t-11 12.5 t-9 3q-14 -1 -7 -7zM851 1381.5q-1 -2.5 3 -8.5q4 -3 8 0t11 9t15 9q1 1 9 1t15 2t9 7q0 2 -2.5 5t-9 7t-9.5 6q-15 15 -24 15q-9 -1 -11.5 -7.5t-1 -13t-0.5 -12.5q-1 -4 -6 -10.5t-6 -9zM981 1002q-14 -16 7 -43.5t39 -31.5q9 -1 14.5 8t3.5 20q-2 8 -6.5 11.5t-13 5 t-14.5 5.5q-5 3 -9.5 8t-7 8t-5.5 6.5t-4 4t-4 -1.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM112 640q0 -124 44 -236.5t124 -201.5q50 89 123.5 166.5t142.5 124.5t130.5 81t99.5 48l37 13 q4 1 13 3.5t13 4.5q-21 49 -53 111q-311 -93 -673 -93q-1 -7 -1 -21zM126 775q302 0 606 80q-120 213 -244 378q-138 -65 -234 -186t-128 -272zM350 134q184 -150 418 -150q132 0 256 52q-42 241 -140 498h-2l-2 -1q-16 -6 -43 -16.5t-101 -49t-137 -82t-131 -114.5 t-103 -148zM609 1276q1 1 2 1q-1 0 -2 -1zM613 1277q131 -170 246 -382q69 26 130 60.5t96.5 61.5t65.5 57t37.5 40.5l12.5 17.5q-185 164 -433 164q-76 0 -155 -19zM909 797q25 -53 44 -95q2 -6 6.5 -17.5t7.5 -16.5q36 5 74.5 7t73.5 2t69 -1.5t64 -4t56.5 -5.5t48 -6.5 t36.5 -6t25 -4.5l10 -2q-3 232 -149 410l-1 -1q-9 -12 -19 -24.5t-43.5 -44.5t-71 -60.5t-100 -65t-131.5 -64.5zM1007 565q87 -239 128 -469q111 75 185 189.5t96 250.5q-210 60 -409 29z" />
|
||||
<glyph unicode="" d="M0 1024q0 159 112.5 271.5t271.5 112.5q130 0 234 -80q77 16 150 16q143 0 273.5 -55.5t225 -150t150 -225t55.5 -273.5q0 -73 -16 -150q80 -104 80 -234q0 -159 -112.5 -271.5t-271.5 -112.5q-130 0 -234 80q-77 -16 -150 -16q-143 0 -273.5 55.5t-225 150t-150 225 t-55.5 273.5q0 73 16 150q-80 104 -80 234zM376 399q0 -92 122 -157.5t291 -65.5q73 0 140 18.5t122.5 53.5t88.5 93.5t33 131.5q0 50 -19.5 91.5t-48.5 68.5t-73 49t-82.5 34t-87.5 23l-104 24q-30 7 -44 10.5t-35 11.5t-30 16t-16.5 21t-7.5 30q0 77 144 77q43 0 77 -12 t54 -28.5t38 -33.5t40 -29t48 -12q47 0 75.5 32t28.5 77q0 55 -56 99.5t-142 67.5t-182 23q-68 0 -132 -15.5t-119.5 -47t-89 -87t-33.5 -128.5q0 -61 19 -106.5t56 -75.5t80 -48.5t103 -32.5l146 -36q90 -22 112 -36q32 -20 32 -60q0 -39 -40 -64.5t-105 -25.5 q-51 0 -91.5 16t-65 38.5t-45.5 45t-46 38.5t-54 16q-50 0 -75.5 -30t-25.5 -75z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 640q0 75 53 128l587 587q53 53 128 53t128 -53l265 -265l-398 -399l-188 188q-42 42 -99 42q-59 0 -100 -41l-120 -121q-42 -40 -42 -99q0 -58 42 -100l406 -408q30 -28 67 -37l6 -4h28q60 0 99 41l619 619l2 -3q53 -53 53 -128t-53 -128l-587 -587 q-52 -53 -127.5 -53t-128.5 53l-587 587q-53 53 -53 128zM302 660q0 21 14 35l121 120q13 15 35 15t36 -15l252 -252l574 575q15 15 36 15t36 -15l120 -120q14 -15 14 -36t-14 -36l-730 -730q-17 -15 -37 -15q-4 0 -6 1q-18 2 -30 14l-407 408q-14 15 -14 36z" />
|
||||
<glyph unicode="" d="M0 -64v1408q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-1408q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM160 192q0 -14 9 -23t23 -9h480q14 0 23 9t9 23v1024q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-1024zM832 576q0 -14 9 -23t23 -9h480q14 0 23 9t9 23 v640q0 14 -9 23t-23 9h-480q-14 0 -23 -9t-9 -23v-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M0 480q0 29 16 53l256 384q73 107 176 107h384q103 0 176 -107l256 -384q16 -24 16 -53q0 -40 -28 -68t-68 -28q-51 0 -80 43l-227 341h-45v-132l247 -411q9 -15 9 -33q0 -26 -19 -45t-45 -19h-192v-272q0 -46 -33 -79t-79 -33h-160q-46 0 -79 33t-33 79v272h-192 q-26 0 -45 19t-19 45q0 18 9 33l247 411v132h-45l-227 -341q-29 -43 -80 -43q-40 0 -68 28t-28 68zM416 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1024" d="M0 416v416q0 80 56 136t136 56h640q80 0 136 -56t56 -136v-416q0 -40 -28 -68t-68 -28t-68 28t-28 68v352h-64v-912q0 -46 -33 -79t-79 -33t-79 33t-33 79v464h-64v-464q0 -46 -33 -79t-79 -33t-79 33t-33 79v912h-64v-352q0 -40 -28 -68t-68 -28t-68 28t-28 68z M288 1280q0 93 65.5 158.5t158.5 65.5t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM399.5 766q8.5 -37 24.5 -59l349 -473l350 473q16 22 24.5 59t-6 85t-61.5 79q-40 26 -83 25.5 t-73.5 -17.5t-54.5 -45q-36 -40 -96 -40q-59 0 -95 40q-24 28 -54.5 45t-73.5 17.5t-84 -25.5q-46 -31 -60.5 -79t-6 -85z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M44 363q-5 17 4 29l180 248l-180 248q-9 13 -4 29q4 15 20 20l292 96v306q0 16 13 26q15 10 29 4l292 -94l180 248q9 12 26 12t26 -12l180 -248l292 94q14 6 29 -4q13 -10 13 -26v-306l292 -96q16 -5 20 -20q5 -16 -4 -29l-180 -248l180 -248q9 -12 4 -29q-4 -15 -20 -20 l-292 -96v-306q0 -16 -13 -26q-15 -10 -29 -4l-292 94l-180 -248q-10 -13 -26 -13t-26 13l-180 248l-292 -94q-14 -6 -29 4q-13 10 -13 26v306l-292 96q-16 5 -20 20zM320 640q0 -117 45.5 -223.5t123 -184t184 -123t223.5 -45.5t223.5 45.5t184 123t123 184t45.5 223.5 t-45.5 223.5t-123 184t-184 123t-223.5 45.5t-223.5 -45.5t-184 -123t-123 -184t-45.5 -223.5z" />
|
||||
<glyph unicode="" d="M0 640q0 153 57.5 292.5t156 241.5t235.5 164.5t290 68.5q44 2 61 -39q18 -41 -15 -72q-86 -78 -131.5 -181.5t-45.5 -218.5q0 -148 73 -273t198 -198t273 -73q118 0 228 51q41 18 72 -13q14 -14 17.5 -34t-4.5 -38q-94 -203 -283.5 -324.5t-413.5 -121.5q-156 0 -298 61 t-245 164t-164 245t-61 298zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51q144 0 273.5 61.5t220.5 171.5q-54 -9 -110 -9q-182 0 -337 90t-245 245t-90 337q0 192 104 357q-201 -60 -328.5 -229t-127.5 -384z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M64 1088v256q0 26 19 45t45 19h1536q26 0 45 -19t19 -45v-256q0 -26 -19 -45t-45 -19h-1536q-26 0 -45 19t-19 45zM128 -64v960q0 26 19 45t45 19h1408q26 0 45 -19t19 -45v-960q0 -26 -19 -45t-45 -19h-1408q-26 0 -45 19t-19 45zM704 704q0 -26 19 -45t45 -19h256 q26 0 45 19t19 45t-19 45t-45 19h-256q-26 0 -45 -19t-19 -45z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M32 576q0 26 19 45t45 19h224v294l-173 173q-19 19 -19 45t19 45t45 19t45 -19l173 -173h844l173 173q19 19 45 19t45 -19t19 -45t-19 -45l-173 -173v-294h224q26 0 45 -19t19 -45t-19 -45t-45 -19h-224q0 -171 -67 -290l208 -209q19 -19 19 -45t-19 -45q-18 -19 -45 -19 t-45 19l-198 197q-5 -5 -15 -13t-42 -28.5t-65 -36.5t-82 -29t-97 -13v896h-128v-896q-51 0 -101.5 13.5t-87 33t-66 39t-43.5 32.5l-15 14l-183 -207q-20 -21 -48 -21q-24 0 -43 16q-19 18 -20.5 44.5t15.5 46.5l202 227q-58 114 -58 274h-224q-26 0 -45 19t-19 45z M512 1152q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5h-640z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M-1 1004q0 11 3 16l4 6q15 19 57 19l274 2q12 -2 23 -6.5t16 -8.5l5 -3q16 -11 24 -32q20 -50 46 -103.5t41 -81.5l16 -29q29 -60 56 -104t48.5 -68.5t41.5 -38.5t34 -14t27 5q2 1 5 5t12 22t13.5 47t9.5 81t0 125q-2 40 -9 73t-14 46l-6 12q-25 34 -85 43q-13 2 5 24 q17 19 38 30q53 26 239 24q82 -1 135 -13q20 -5 33.5 -13.5t20.5 -24t10.5 -32t3.5 -45.5t-1 -55t-2.5 -70.5t-1.5 -82.5q0 -11 -1 -42t-0.5 -48t3.5 -40.5t11.5 -39t22.5 -24.5q8 -2 17 -4t26 11t38 34.5t52 67t68 107.5q60 104 107 225q4 10 10 17.5t11 10.5l4 3l5 2.5 t13 3t20 0.5l288 2q39 5 64 -2.5t31 -16.5l6 -10q23 -64 -150 -294q-24 -32 -65 -85q-78 -100 -90 -131q-17 -41 14 -81q17 -21 81 -82h1l1 -1l1 -1l2 -2q141 -131 191 -221q3 -5 6.5 -12.5t7 -26.5t-0.5 -34t-25 -27.5t-59 -12.5l-256 -4q-24 -5 -56 5t-52 22l-20 12 q-30 21 -70 64t-68.5 77.5t-61 58t-56.5 15.5q-3 -1 -8 -3.5t-17 -14.5t-21.5 -29.5t-17 -52t-6.5 -77.5q0 -15 -3.5 -27.5t-7.5 -18.5l-4 -5q-18 -19 -53 -22h-115q-71 -4 -146 16.5t-131.5 53t-103 66t-70.5 57.5l-25 24q-10 10 -27.5 30t-71.5 91t-106 151t-122.5 211 t-130.5 272q-6 16 -6 27z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 391q0 115 69.5 245t197.5 258q169 169 341.5 236t246.5 -7q65 -64 20 -209q-4 -14 -1 -20t10 -7t14.5 0.5t13.5 3.5l6 2q139 59 246 59t153 -61q45 -63 0 -178q-2 -13 -4.5 -20t4.5 -12.5t12 -7.5t17 -6q57 -18 103 -47t80 -81.5t34 -116.5q0 -68 -37 -139.5 t-109 -137t-168.5 -117.5t-226 -83t-270.5 -31t-275 33.5t-240.5 93t-171.5 151t-65 199.5zM181 320q9 -96 89 -170t208.5 -109t274.5 -21q223 23 369.5 141.5t132.5 264.5q-9 96 -89 170t-208.5 109t-274.5 21q-223 -23 -369.5 -141.5t-132.5 -264.5zM413.5 230.5 q-40.5 92.5 6.5 187.5q47 93 151.5 139t210.5 19q111 -29 158.5 -119.5t2.5 -190.5q-45 -102 -158 -150t-224 -12q-107 34 -147.5 126.5zM495 257.5q9 -34.5 43 -50.5t74.5 -2.5t62.5 47.5q21 34 11 69t-45 50q-34 14 -73 1t-60 -46q-22 -34 -13 -68.5zM705 399 q-17 -31 13 -45q14 -5 29 0.5t22 18.5q8 13 3.5 26.5t-17.5 18.5q-14 5 -28.5 -0.5t-21.5 -18.5zM1165 1274q-6 28 9.5 51.5t43.5 29.5q123 26 244 -11.5t208 -134.5q87 -96 112.5 -222.5t-13.5 -241.5q-9 -27 -34 -40t-52 -4t-40 34t-5 52q28 82 10 172t-80 158 q-62 69 -148 95.5t-173 8.5q-28 -6 -52 9.5t-30 43.5zM1224 1047q-5 24 8 44.5t37 25.5q60 13 119 -5.5t101 -65.5t54.5 -108.5t-6.5 -117.5q-8 -23 -29.5 -34t-44.5 -4q-23 8 -34 29.5t-4 44.5q20 63 -24 111t-107 35q-24 -5 -45 8t-25 37z" />
|
||||
<glyph unicode="" d="M0 638q0 187 83.5 349.5t229.5 269.5t325 137v-485q0 -252 -126.5 -459.5t-330.5 -306.5q-181 215 -181 495zM398 -34q138 87 235.5 211t131.5 268q35 -144 132.5 -268t235.5 -211q-171 -94 -368 -94q-196 0 -367 94zM898 909v485q179 -30 325 -137t229.5 -269.5 t83.5 -349.5q0 -280 -181 -495q-204 99 -330.5 306.5t-126.5 459.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 -211q0 19 13 31.5t32 12.5q173 1 322.5 107.5t251.5 294.5q-36 -14 -72 -23t-83 -13t-91 2.5t-93 28.5t-92 59t-84.5 100t-74.5 146q114 47 214 57t167.5 -7.5t124.5 -56.5t88.5 -77t56.5 -82q53 131 79 291q-7 -1 -18 -2.5t-46.5 -2.5t-69.5 0.5t-81.5 10t-88.5 23 t-84 42.5t-75 65t-54.5 94.5t-28.5 127.5q70 28 133.5 36.5t112.5 -1t92 -30t73.5 -50t56 -61t42 -63t27.5 -56t16 -39.5l4 -16q12 122 12 195q-8 6 -21.5 16t-49 44.5t-63.5 71.5t-54 93t-33 112.5t12 127t70 138.5q73 -25 127.5 -61.5t84.5 -76.5t48 -85t20.5 -89 t-0.5 -85.5t-13 -76.5t-19 -62t-17 -42l-7 -15q1 -5 1 -50.5t-1 -71.5q3 7 10 18.5t30.5 43t50.5 58t71 55.5t91.5 44.5t112 14.5t132.5 -24q-2 -78 -21.5 -141.5t-50 -104.5t-69.5 -71.5t-81.5 -45.5t-84.5 -24t-80 -9.5t-67.5 1t-46.5 4.5l-17 3q-23 -147 -73 -283 q6 7 18 18.5t49.5 41t77.5 52.5t99.5 42t117.5 20t129 -23.5t137 -77.5q-32 -80 -76 -138t-91 -88.5t-99 -46.5t-101.5 -14.5t-96.5 8.5t-86.5 22t-69.5 27.5t-46 22.5l-17 10q-113 -228 -289.5 -359.5t-384.5 -132.5q-19 0 -32 13t-13 32z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M21 217v66h1238v-66q0 -85 -57.5 -144.5t-138.5 -59.5h-57l-260 -269v269h-529q-81 0 -138.5 59.5t-57.5 144.5zM21 354v255h1238v-255h-1238zM21 682v255h1238v-255h-1238zM21 1010v67q0 84 57.5 143.5t138.5 59.5h846q81 0 138.5 -59.5t57.5 -143.5v-67h-1238z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 544v192q0 13 9.5 22.5t22.5 9.5h352v192q0 14 9 23t23 9q12 0 24 -10l319 -319q9 -9 9 -23t-9 -23l-320 -320q-9 -9 -23 -9q-13 0 -22.5 9.5t-9.5 22.5v192h-352q-13 0 -22.5 9.5t-9.5 22.5z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM384 640q0 14 9 23l320 320q9 9 23 9q13 0 22.5 -9.5t9.5 -22.5v-192h352q13 0 22.5 -9.5t9.5 -22.5v-192q0 -13 -9.5 -22.5t-22.5 -9.5h-352v-192q0 -14 -9 -23t-23 -9q-12 0 -24 10l-319 319q-9 9 -9 23z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 160q0 -13 9.5 -22.5t22.5 -9.5h960q13 0 22.5 9.5t9.5 22.5v960q0 13 -9.5 22.5t-22.5 9.5h-960 q-13 0 -22.5 -9.5t-9.5 -22.5v-960zM448 640q0 33 27 52l448 320q17 12 37 12q26 0 45 -19t19 -45v-640q0 -26 -19 -45t-45 -19q-20 0 -37 12l-448 320q-27 19 -27 52z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM224 640q0 -148 73 -273t198 -198t273 -73t273 73t198 198t73 273t-73 273t-198 198t-273 73t-273 -73 t-198 -198t-73 -273zM512 640q0 106 75 181t181 75t181 -75t75 -181t-75 -181t-181 -75t-181 75t-75 181z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 320q0 181 104.5 330t274.5 211l17 -131q-122 -54 -195 -165.5t-73 -244.5q0 -185 131.5 -316.5t316.5 -131.5q126 0 232.5 65t165 175.5t49.5 236.5l102 -204q-58 -179 -210 -290t-339 -111q-156 0 -288.5 77.5t-210 210t-77.5 288.5zM416 1348q-2 16 6 42 q14 51 57 82.5t97 31.5q66 0 113 -47t47 -113q0 -69 -52 -117.5t-120 -41.5l37 -289h423v-128h-407l16 -128h455q40 0 57 -35l228 -455l198 99l58 -114l-256 -128q-13 -7 -29 -7q-40 0 -57 35l-239 477h-472q-24 0 -42.5 16.5t-21.5 40.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 806q16 -8 25.5 -26t21.5 -20q21 -3 54.5 8.5t58 10.5t41.5 -30q11 -18 18.5 -38.5t15 -48t12.5 -40.5 q17 -46 53 -187q36 -146 57 -197q42 -99 103 -125q43 -12 85 -1.5t76 31.5q131 77 250 237q104 139 172.5 292.5t82.5 226.5q16 85 -21 132q-52 65 -187 45q-17 -3 -41 -12.5t-57.5 -30.5t-64.5 -48.5t-59.5 -70t-44.5 -91.5q80 7 113.5 -16t26.5 -99q-5 -52 -52 -143 q-43 -78 -71 -99q-44 -32 -87 14q-23 24 -37.5 64.5t-19 73t-10 84t-8.5 71.5q-23 129 -34 164q-12 37 -35.5 69t-50.5 40q-57 16 -127 -25q-54 -32 -136.5 -106t-122.5 -102v-7z" />
|
||||
<glyph unicode="" horiz-adv-x="1152" d="M0 608v128q0 23 23 31l233 71v93l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26v128q0 23 23 31l233 71v250q0 14 9 23t23 9h160q14 0 23 -9t9 -23v-181l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31l-393 -121v-93l375 116q15 5 28 -5t13 -26v-128q0 -23 -23 -31 l-393 -121v-487q188 13 318 151t130 328q0 14 9 23t23 9h160q14 0 23 -9t9 -23q0 -191 -94.5 -353t-256.5 -256.5t-353 -94.5h-160q-14 0 -23 9t-9 23v611l-215 -66q-3 -1 -9 -1q-10 0 -19 6q-13 10 -13 26z" />
|
||||
<glyph unicode="" horiz-adv-x="1408" d="M0 288v832q0 119 84.5 203.5t203.5 84.5h832q119 0 203.5 -84.5t84.5 -203.5v-832q0 -119 -84.5 -203.5t-203.5 -84.5h-832q-119 0 -203.5 84.5t-84.5 203.5zM128 288q0 -66 47 -113t113 -47h832q66 0 113 47t47 113v832q0 66 -47 113t-113 47h-832q-66 0 -113 -47 t-47 -113v-832zM256 672v64q0 14 9 23t23 9h352v352q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-352h352q14 0 23 -9t9 -23v-64q0 -14 -9 -23t-23 -9h-352v-352q0 -14 -9 -23t-23 -9h-64q-14 0 -23 9t-9 23v352h-352q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="2176" d="M0 576q0 12 38.5 20.5t96.5 10.5q-7 25 -7 49q0 33 9.5 56.5t22.5 23.5h64v64h128q158 0 268 -64h1113q42 -7 106.5 -18t80.5 -14q89 -15 150 -40.5t83.5 -47.5t22.5 -40t-22.5 -40t-83.5 -47.5t-150 -40.5q-16 -3 -80.5 -14t-106.5 -18h-1113q-110 -64 -268 -64h-128v64 h-64q-13 0 -22.5 23.5t-9.5 56.5q0 24 7 49q-58 2 -96.5 10.5t-38.5 20.5zM323 336h29q157 0 273 64h1015q-217 -38 -456 -80q-57 0 -113 -24t-83 -48l-28 -24l-288 -288q-26 -26 -70.5 -45t-89.5 -19h-96zM323 816l93 464h96q46 0 90 -19t70 -45l288 -288q4 -4 11 -10.5 t30.5 -23t48.5 -29t61.5 -23t72.5 -10.5l456 -80h-1015q-116 64 -273 64h-29zM1739 484l81 -30q68 48 68 122t-68 122l-81 -30q53 -36 53 -92t-53 -92z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 796q0 47 27.5 85t71.5 53l157 53l-53 159q-8 24 -8 47q0 60 42 102.5t102 42.5q47 0 85 -27t53 -72l54 -160l310 105l-54 160q-8 24 -8 47q0 59 42.5 102t101.5 43q47 0 85.5 -27.5t53.5 -71.5l53 -161l162 55q21 6 43 6q60 0 102.5 -39.5t42.5 -98.5q0 -45 -30 -81.5 t-74 -51.5l-157 -54l105 -316l164 56q24 8 46 8q62 0 103.5 -40.5t41.5 -101.5q0 -97 -93 -130l-172 -59l56 -167q7 -21 7 -47q0 -59 -42 -102t-101 -43q-47 0 -85.5 27t-53.5 72l-55 165l-310 -106l55 -164q8 -24 8 -47q0 -59 -42 -102t-102 -43q-47 0 -85 27t-53 72 l-55 163l-153 -53q-29 -9 -50 -9q-61 0 -101.5 40t-40.5 101q0 47 27.5 85t71.5 53l156 53l-105 313l-156 -54q-26 -8 -48 -8q-60 0 -101 40.5t-41 100.5zM620 811l105 -313l310 105l-105 315z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 352q0 -40 28 -68t68 -28h832q40 0 68 28t28 68v436q-31 -35 -64 -55q-34 -22 -132.5 -85t-151.5 -99 q-98 -69 -164 -69t-164 69q-46 32 -141.5 92.5t-142.5 92.5q-12 8 -33 27t-31 27v-436zM256 928q0 -37 30.5 -76.5t67.5 -64.5q47 -32 137.5 -89t129.5 -83q3 -2 17 -11.5t21 -14t21 -13t23.5 -13t21.5 -9.5t22.5 -7.5t20.5 -2.5t20.5 2.5t22.5 7.5t21.5 9.5t23.5 13t21 13 t21 14t17 11.5l267 174q35 23 66.5 62.5t31.5 73.5q0 41 -27.5 70t-68.5 29h-832q-40 0 -68 -28t-28 -68z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM41 640q0 -173 68 -331.5t182.5 -273t273 -182.5t331.5 -68t331.5 68t273 182.5t182.5 273t68 331.5 t-68 331.5t-182.5 273t-273 182.5t-331.5 68t-331.5 -68t-273 -182.5t-182.5 -273t-68 -331.5zM127 640q0 163 67 313l367 -1005q-196 95 -315 281t-119 411zM254 1062q105 160 274.5 253.5t367.5 93.5q147 0 280.5 -53t238.5 -149h-10q-55 0 -92 -40.5t-37 -95.5 q0 -12 2 -24t4 -21.5t8 -23t9 -21t12 -22.5t12.5 -21t14.5 -24t14 -23q63 -107 63 -212q0 -19 -2.5 -38.5t-10 -49.5t-11.5 -44t-17.5 -59t-17.5 -58l-76 -256l-278 826q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-75 1 -202 10q-12 1 -20.5 -5t-11.5 -15 t-1.5 -18.5t9 -16.5t19.5 -8l80 -8l120 -328l-168 -504l-280 832q46 3 88 8q19 2 26 18.5t-2.5 31t-28.5 13.5l-205 -10q-7 0 -23 0.5t-26 0.5zM679 -97l230 670l237 -647q1 -6 5 -11q-126 -44 -255 -44q-112 0 -217 32zM1282 -24l235 678q59 169 59 276q0 42 -6 79 q95 -174 95 -369q0 -209 -104 -385.5t-279 -278.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 455q0 140 100.5 263.5t275 205.5t391.5 108v-172q-217 -38 -356.5 -150t-139.5 -255q0 -152 154.5 -267t388.5 -145v1360l272 133v-1536l-272 -128q-228 20 -414 102t-293 208.5t-107 272.5zM1134 860v172q277 -33 481 -157l140 79l37 -390l-525 114l147 83 q-119 70 -280 99z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 -128q0 26 20.5 45t48.5 19h1782q28 0 48.5 -19t20.5 -45v-128h-1920v128zM0 1024v128l960 384l960 -384v-128h-128q0 -26 -20.5 -45t-48.5 -19h-1526q-28 0 -48.5 19t-20.5 45h-128zM128 0v64q0 26 20.5 45t48.5 19h59v768h256v-768h128v768h256v-768h128v768h256 v-768h128v768h256v-768h59q28 0 48.5 -19t20.5 -45v-64h-1664z" />
|
||||
<glyph unicode="" horiz-adv-x="2304" d="M0 1024q0 23 22 31l1120 352q4 1 10 1t10 -1l1120 -352q22 -8 22 -31t-22 -31l-1120 -352q-4 -1 -10 -1t-10 1l-652 206q-43 -34 -71 -111.5t-34 -178.5q63 -36 63 -109q0 -69 -58 -107l58 -433q2 -14 -8 -25q-9 -11 -24 -11h-192q-15 0 -24 11q-10 11 -8 25l58 433 q-58 38 -58 107q0 73 65 111q11 207 98 330l-333 104q-22 8 -22 31zM512 384l18 316l574 -181q22 -7 48 -7t48 7l574 181l18 -316q4 -69 -82 -128t-235 -93.5t-323 -34.5t-323 34.5t-235 93.5t-82 128z" />
|
||||
<glyph unicode="" d="M109 1536q58 -15 108 -15q43 0 111 15q63 -111 133.5 -229.5t167 -276.5t138.5 -227q37 61 109.5 177.5t117.5 190t105 176t107 189.5q54 -14 107 -14q56 0 114 14q-28 -39 -60 -88.5t-49.5 -78.5t-56.5 -96t-49 -84q-146 -248 -353 -610l13 -707q-62 11 -105 11 q-41 0 -105 -11l13 707q-40 69 -168.5 295.5t-216.5 374.5t-181 287z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M111 182q0 81 44.5 150t118.5 115q131 82 404 100q-32 41 -47.5 73.5t-15.5 73.5q0 40 21 85q-46 -4 -68 -4q-148 0 -249.5 96.5t-101.5 244.5q0 82 36 159t99 131q76 66 182 98t218 32h417l-137 -88h-132q75 -63 113 -133t38 -160q0 -72 -24.5 -129.5t-59.5 -93 t-69.5 -65t-59 -61.5t-24.5 -66q0 -36 32 -70.5t77 -68t90.5 -73.5t77.5 -104t32 -142q0 -91 -49 -173q-71 -122 -209.5 -179.5t-298.5 -57.5q-132 0 -246.5 41.5t-172.5 137.5q-36 59 -36 131zM297 228q0 -56 23.5 -102t61 -75.5t87 -50t100 -29t101.5 -8.5q58 0 111.5 13 t99 39t73 73t27.5 109q0 25 -7 49t-14.5 42t-27 41.5t-29.5 35t-38.5 34.5t-36.5 29t-41.5 30t-36.5 26q-16 2 -49 2q-53 0 -104.5 -7t-107 -25t-97 -46t-68.5 -74.5t-27 -105.5zM403 1222q0 -46 10 -97.5t31.5 -103t52 -92.5t75 -67t96.5 -26q37 0 77.5 16.5t65.5 43.5 q53 56 53 159q0 59 -17 125.5t-48 129t-84 103.5t-117 41q-42 0 -82.5 -19.5t-66.5 -52.5q-46 -59 -46 -160z" />
|
||||
<glyph unicode="" horiz-adv-x="1984" d="M0 722q0 94 66 160t160 66q83 0 148 -55q248 158 592 164l134 423q4 14 17.5 21.5t28.5 4.5l347 -82q22 50 68.5 81t102.5 31q77 0 131.5 -54.5t54.5 -131.5t-54.5 -132t-131.5 -55q-76 0 -130.5 54t-55.5 131l-315 74l-116 -366q327 -14 560 -166q64 58 151 58 q94 0 160 -66t66 -160q0 -62 -31 -114t-83 -82q5 -33 5 -61q0 -121 -68.5 -230.5t-197.5 -193.5q-125 -82 -285.5 -125.5t-335.5 -43.5q-176 0 -336.5 43.5t-284.5 125.5q-129 84 -197.5 193t-68.5 231q0 29 5 66q-48 31 -77 81.5t-29 109.5zM77 722q0 -67 51 -111 q49 131 180 235q-36 25 -82 25q-62 0 -105.5 -43.5t-43.5 -105.5zM178 465q0 -101 59.5 -194t171.5 -166q116 -75 265.5 -115.5t313.5 -40.5t313.5 40.5t265.5 115.5q112 73 171.5 166t59.5 194t-59.5 193.5t-171.5 165.5q-116 75 -265.5 115.5t-313.5 40.5t-313.5 -40.5 t-265.5 -115.5q-112 -73 -171.5 -165.5t-59.5 -193.5zM555 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM661 209.5q0 16.5 11 27.5t27 11t27 -11q77 -77 265 -77h2q188 0 265 77q11 11 27 11t27 -11t11 -27.5t-11 -27.5 q-99 -99 -319 -99h-2q-220 0 -319 99q-11 11 -11 27.5zM1153 572q0 57 41.5 98t97.5 41t96.5 -41t40.5 -98q0 -56 -40.5 -96t-96.5 -40q-57 0 -98 40t-41 96zM1555 1350q0 -45 32 -77t77 -32t77 32t32 77t-32 77t-77 32t-77 -32t-32 -77zM1672 843q131 -105 178 -238 q57 46 57 117q0 62 -43.5 105.5t-105.5 43.5q-49 0 -86 -28z" />
|
||||
<glyph unicode="" d="M0 193v894q0 133 94 227t226 94h896q132 0 226 -94t94 -227v-894q0 -133 -94 -227t-226 -94h-896q-132 0 -226 94t-94 227zM155 709q0 -37 19.5 -67.5t52.5 -45.5q-7 -25 -7 -54q0 -98 74 -181.5t201.5 -132t278.5 -48.5q150 0 277.5 48.5t201.5 132t74 181.5q0 27 -6 54 q35 14 57 45.5t22 70.5q0 51 -36 87.5t-87 36.5q-60 0 -98 -48q-151 107 -375 115l83 265l206 -49q1 -50 36.5 -85t84.5 -35q50 0 86 35.5t36 85.5t-36 86t-86 36q-36 0 -66 -20.5t-45 -53.5l-227 54q-9 2 -17.5 -2.5t-11.5 -14.5l-95 -302q-224 -4 -381 -113q-36 43 -93 43 q-51 0 -87 -36.5t-36 -87.5zM493 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM560 375q0 11 8 18q7 7 17.5 7t17.5 -7q49 -51 172 -51h1h1q122 0 173 51q7 7 17.5 7t17.5 -7t7 -18t-7 -18q-65 -64 -208 -64h-1h-1q-143 0 -207 64q-8 7 -8 18z M882 613q0 37 26 63t63 26t63 -26t26 -63t-26 -64t-63 -27t-63 27t-26 64zM1143 1120q0 30 21 51t50 21q30 0 51 -21t21 -51q0 -29 -21 -50t-51 -21q-29 0 -50 21t-21 50z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM320 502q0 -82 57.5 -139t139.5 -57q81 0 138.5 56.5t57.5 136.5v280q0 19 13.5 33t33.5 14 q19 0 32.5 -14t13.5 -33v-54l60 -28l90 27v62q0 79 -58 135t-138 56t-138 -55.5t-58 -134.5v-283q0 -20 -14 -33.5t-33 -13.5t-32.5 13.5t-13.5 33.5v120h-151v-122zM806 500q0 -80 58 -137t139 -57t138.5 57t57.5 139v122h-150v-126q0 -20 -13.5 -33.5t-33.5 -13.5 q-19 0 -32.5 14t-13.5 33v123l-90 -26l-60 28v-123z" />
|
||||
<glyph unicode="" horiz-adv-x="1920" d="M0 336v266h328v-262q0 -43 30 -72.5t72 -29.5t72 29.5t30 72.5v620q0 171 126.5 292t301.5 121q176 0 302 -122t126 -294v-136l-195 -58l-131 61v118q0 42 -30 72t-72 30t-72 -30t-30 -72v-612q0 -175 -126 -299t-303 -124q-178 0 -303.5 125.5t-125.5 303.5zM1062 332 v268l131 -61l195 58v-270q0 -42 30 -71.5t72 -29.5t72 29.5t30 71.5v275h328v-266q0 -178 -125.5 -303.5t-303.5 -125.5q-177 0 -303 124.5t-126 300.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM64 640h704v-704h480q93 0 158.5 65.5t65.5 158.5v480h-704v704h-480q-93 0 -158.5 -65.5t-65.5 -158.5v-480z " />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 271v697h328v286h204v-983h-532zM205 435h123v369h-123v-369zM614 271h205v697h-205v-697zM614 1050h205v204h-205v-204zM901 26v163h328v82h-328v697h533v-942h-533zM1106 435h123v369h-123v-369zM1516 26v163h327v82h-327v697h532v-942h-532zM1720 435h123v369h-123 v-369z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM293 388l211 41v206q55 -19 116 -19q125 0 213.5 95t88.5 229t-88.5 229t-213.5 95q-74 0 -141 -36h-186v-840z M504 804v277q28 17 70 17q53 0 91 -45t38 -109t-38 -109.5t-91 -45.5q-43 0 -70 15zM636 -39l211 41v206q51 -19 117 -19q125 0 213 95t88 229t-88 229t-213 95q-20 0 -39 -3q-23 -78 -78 -136q-87 -95 -211 -101v-636zM847 377v277q28 17 70 17q53 0 91 -45.5t38 -109.5 t-38 -109t-91 -45q-43 0 -70 15z" />
|
||||
<glyph unicode="" horiz-adv-x="2038" d="M41 455q0 15 8.5 26.5t22.5 14.5l486 106q-8 14 -8 25t5.5 17.5t16 11.5t20 7t23 4.5t18.5 4.5q4 1 15.5 7.5t17.5 6.5q15 0 28 -16t20 -33q163 37 172 37q17 0 29.5 -11t12.5 -28q0 -15 -8.5 -26t-23.5 -14l-182 -40l-1 -16q-1 -26 81.5 -117.5t104.5 -91.5q47 0 119 80 t72 129q0 36 -23.5 53t-51 18.5t-51 11.5t-23.5 34q0 16 10 34l-68 19q43 44 43 117q0 26 -5 58q82 16 144 16q44 0 71.5 -1.5t48.5 -8.5t31 -13.5t20.5 -24.5t15.5 -33.5t17 -47.5t24 -60l50 25q-3 -40 -23 -60t-42.5 -21t-40 -6.5t-16.5 -20.5l1 -21q75 3 143.5 -20.5 t118 -58.5t101 -94.5t84 -108t75.5 -120.5q33 -56 78.5 -109t75.5 -80.5t99 -88.5q-48 -30 -108.5 -57.5t-138.5 -59t-114 -47.5q-44 37 -74 115t-43.5 164.5t-33 180.5t-42.5 168.5t-72.5 123t-122.5 48.5l-10 -2l-6 -4q4 -5 13 -14q6 -5 28 -23.5t25.5 -22t19 -18 t18 -20.5t11.5 -21t10.5 -27.5t4.5 -31t4 -40.5l1 -33q1 -26 -2.5 -57.5t-7.5 -52t-12.5 -58.5t-11.5 -53q-35 1 -101 -9.5t-98 -10.5q-39 0 -72 10q-2 16 -2 47q0 74 3 96q2 13 31.5 41.5t57 59t26.5 51.5q-24 2 -43 -24q-36 -53 -111.5 -99.5t-136.5 -46.5q-25 0 -75.5 63 t-106.5 139.5t-84 96.5q-6 4 -27 30q-482 -112 -513 -112q-16 0 -28 11t-12 27zM764 676q10 1 32.5 7t34.5 6q19 0 35 -10l-96 -20zM822 568l48 12l109 -177l-73 -48zM859 884q16 30 36 46.5t54 29.5t65.5 36t46 36.5t50 55t43.5 50.5q12 -9 28 -31.5t32 -36.5t38 -13l12 1 v-76l22 -1q247 95 371 190q28 21 50 39t42.5 37.5t33 31t29.5 34t24 31t24.5 37t23 38t27 47.5t29.5 53l7 9q-2 -53 -43 -139q-79 -165 -205 -264t-306 -142q-14 -3 -42 -7.5t-50 -9.5t-39 -14q3 -19 24.5 -46t21.5 -34q0 -11 -26 -30q-5 5 -13.5 15.5t-12 14.5t-10.5 11.5 t-10 10.5l-8 8t-8.5 7.5t-8 5t-8.5 4.5q-7 3 -14.5 5t-20.5 2.5t-22 0.5h-32.5h-37.5q-126 0 -217 -43zM1061 45h31l10 -83l-41 -12v95zM1061 -79q39 26 131.5 47.5t146.5 21.5q9 0 22.5 -15.5t28 -42.5t26 -50t24 -51t14.5 -33q-121 -45 -244 -45q-61 0 -125 11zM1116 29 q21 2 60.5 8.5t72 10t60.5 3.5h14q3 -15 3 -16q0 -7 -17.5 -14.5t-46 -13t-54 -9.5t-53.5 -7.5t-32 -4.5zM1947 1528l1 3l2 4l-1 -5zM1950 1535v1v-1zM1950 1535l1 1z" />
|
||||
<glyph unicode="" d="M0 520q0 89 19.5 172.5t49 145.5t70.5 118.5t78.5 94t78.5 69.5t64.5 46.5t42.5 24.5q14 8 51 26.5t54.5 28.5t48 30t60.5 44q36 28 58 72.5t30 125.5q129 -155 186 -193q44 -29 130 -68t129 -66q21 -13 39 -25t60.5 -46.5t76 -70.5t75 -95t69 -122t47 -148.5 t19.5 -177.5q0 -164 -62 -304.5t-166 -236t-242.5 -149.5t-290.5 -54t-293 57.5t-247.5 157t-170.5 241.5t-64 302zM333 256q-2 -112 74 -164q29 -20 62.5 -28.5t103.5 -8.5q57 0 132 32.5t134 71t120 70.5t93 31q26 -1 65 -31.5t71.5 -67t68 -67.5t55.5 -32q35 -3 58.5 14 t55.5 63q28 41 42.5 101t14.5 106q0 22 -5 44.5t-16.5 45t-34 36.5t-52.5 14q-33 0 -97 -41.5t-129 -83.5t-101 -42q-27 -1 -63.5 19t-76 49t-83.5 58t-100 49t-111 19q-115 -1 -197 -78.5t-84 -178.5zM685.5 -76q-0.5 -10 7.5 -20q34 -32 87.5 -46t102.5 -12.5t99 4.5 q41 4 84.5 20.5t65 30t28.5 20.5q12 12 7 29q-5 19 -24 5q-30 -22 -87 -39t-131 -17q-129 0 -193 49q-5 4 -13 4q-11 0 -26 -12q-7 -6 -7.5 -16zM852 31q9 -8 17.5 -4.5t31.5 23.5q3 2 10.5 8.5t10.5 8.5t10 7t11.5 7t12.5 5t15 4.5t16.5 2.5t20.5 1q27 0 44.5 -7.5 t23 -14.5t13.5 -22q10 -17 12.5 -20t12.5 1q23 12 14 34q-19 47 -39 61q-23 15 -76 15q-47 0 -71 -10q-29 -12 -78 -56q-26 -24 -12 -44z" />
|
||||
<glyph unicode="" d="M0 78q0 72 44.5 128t113.5 72q-22 86 1 173t88 152l12 12l151 -152l-11 -11q-37 -37 -37 -89t37 -90q37 -37 89 -37t89 37l30 30l151 152l161 160l151 -152l-160 -160l-151 -152l-30 -30q-65 -64 -151.5 -87t-171.5 -2q-16 -70 -72 -115t-129 -45q-85 0 -145 60.5 t-60 145.5zM2 1202q0 85 60 145.5t145 60.5q76 0 133.5 -49t69.5 -123q84 20 169.5 -3.5t149.5 -87.5l12 -12l-152 -152l-12 12q-37 37 -89 37t-89 -37t-37 -89.5t37 -89.5l29 -29l152 -152l160 -160l-151 -152l-161 160l-151 152l-30 30q-68 67 -90 159.5t5 179.5 q-70 15 -115 71t-45 129zM446 803l161 160l152 152l29 30q67 67 159 89.5t178 -3.5q11 75 68.5 126t135.5 51q85 0 145 -60.5t60 -145.5q0 -77 -51 -135t-127 -69q26 -85 3 -176.5t-90 -158.5l-12 -12l-151 152l12 12q37 37 37 89t-37 89t-89 37t-89 -37l-30 -30l-152 -152 l-160 -160zM776 793l152 152l160 -160l152 -152l29 -30q64 -64 87.5 -150.5t2.5 -171.5q76 -11 126.5 -68.5t50.5 -134.5q0 -85 -60 -145.5t-145 -60.5q-74 0 -131 47t-71 118q-86 -28 -179.5 -6t-161.5 90l-11 12l151 152l12 -12q37 -37 89 -37t89 37t37 89t-37 89l-30 30 l-152 152z" />
|
||||
<glyph unicode="" d="M0 -16v1078q3 9 4 10q5 6 20 11q106 35 149 50v384l558 -198q2 0 160.5 55t316 108.5t161.5 53.5q20 0 20 -21v-418l147 -47v-1079l-774 246q-14 -6 -375 -127.5t-368 -121.5q-13 0 -18 13q0 1 -1 3zM39 15l694 232v1032l-694 -233v-1031zM147 293q6 4 82 92 q21 24 85.5 115t78.5 118q17 30 51 98.5t36 77.5q-8 1 -110 -33q-8 -2 -27.5 -7.5t-34.5 -9.5t-17 -5q-2 -2 -2 -10.5t-1 -9.5q-5 -10 -31 -15q-23 -7 -47 0q-18 4 -28 21q-4 6 -5 23q6 2 24.5 5t29.5 6q58 16 105 32q100 35 102 35q10 2 43 19.5t44 21.5q9 3 21.5 8 t14.5 5.5t6 -0.5q2 -12 -1 -33q0 -2 -12.5 -27t-26.5 -53.5t-17 -33.5q-25 -50 -77 -131l64 -28q12 -6 74.5 -32t67.5 -28q4 -1 10.5 -25.5t4.5 -30.5q-1 -3 -12.5 0.5t-31.5 11.5l-20 9q-44 20 -87 49q-7 5 -41 31.5t-38 28.5q-67 -103 -134 -181q-81 -95 -105 -110 q-4 -2 -19.5 -4t-18.5 0zM268 933l1 3q3 -3 19.5 -5t26.5 0t58 16q36 12 55 14q17 0 21 -17q3 -15 -4 -28q-12 -23 -50 -38q-30 -12 -60 -12q-26 3 -49 26q-14 15 -18 41zM310 -116q0 8 5 13.5t13 5.5q4 0 18 -7.5t30.5 -16.5t20.5 -11q73 -37 159.5 -61.5t157.5 -24.5 q95 0 167 14.5t157 50.5q15 7 30.5 15.5t34 19t28.5 16.5l-43 73l158 -13l-54 -160l-40 66q-130 -83 -276 -108q-58 -12 -91 -12h-84q-79 0 -199.5 39t-183.5 85q-8 7 -8 16zM777 1294l573 -184v380zM885 453l102 -31l45 110l211 -65l37 -135l102 -31l-181 657l-100 31z M1071 630l76 185l63 -227z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 -96v1088q0 66 47 113t113 47h128q66 0 113 -47t47 -113v-1088q0 -66 -47 -113t-113 -47h-128q-66 0 -113 47t-47 113zM512 -96v1536q0 40 28 68t68 28h672q40 0 88 -20t76 -48l152 -152q28 -28 48 -76t20 -88v-163q58 -34 93 -93t35 -128v-768q0 -106 -75 -181 t-181 -75h-864q-66 0 -113 47t-47 113zM640 896h896v256h-160q-40 0 -68 28t-28 68v160h-640v-512zM736 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM736 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9 h-128q-14 0 -23 -9t-9 -23v-128zM736 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 256q0 -14 9 -23t23 -9h128 q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM992 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 0q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23 v-128zM1248 256q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128zM1248 512q0 -14 9 -23t23 -9h128q14 0 23 9t9 23v128q0 14 -9 23t-23 9h-128q-14 0 -23 -9t-9 -23v-128z" />
|
||||
<glyph unicode="" d="M0 -192v1664q0 26 19 45t45 19h1280q26 0 45 -19t19 -45v-1664q0 -26 -19 -45t-45 -19h-1280q-26 0 -45 19t-19 45zM256 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM256 1184q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 96v-192q0 -14 9 -23t23 -9h320q14 0 23 9t9 23v192q0 14 -9 23t-23 9h-320q-14 0 -23 -9t-9 -23zM512 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM512 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM512 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 928q0 -14 9 -23 t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM768 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 160q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9 t-9 -23v-64zM1024 416q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 672q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 928q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64 q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64zM1024 1184q0 -14 9 -23t23 -9h64q14 0 23 9t9 23v64q0 14 -9 23t-23 9h-64q-14 0 -23 -9t-9 -23v-64z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M64 1056q0 40 28 68t68 28t68 -28l228 -228h368l228 228q28 28 68 28t68 -28t28 -68t-28 -68l-292 -292v-824q0 -46 -33 -79t-79 -33t-79 33t-33 79v384h-64v-384q0 -46 -33 -79t-79 -33t-79 33t-33 79v824l-292 292q-28 28 -28 68zM416 1152q0 93 65.5 158.5t158.5 65.5 t158.5 -65.5t65.5 -158.5t-65.5 -158.5t-158.5 -65.5t-158.5 65.5t-65.5 158.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1664" d="M0 724q0 80 42 139.5t119 59.5q76 0 141.5 -55.5t100.5 -134t35 -152.5q0 -80 -42 -139t-119 -59q-76 0 -141.5 55.5t-100.5 133.5t-35 152zM256 19q0 86 56 191.5t139.5 192.5t187.5 146t193 59q118 0 255 -97.5t229 -237t92 -254.5q0 -46 -17 -76.5t-48.5 -45 t-64.5 -20t-76 -5.5q-68 0 -187.5 45t-182.5 45q-66 0 -192.5 -44.5t-200.5 -44.5q-183 0 -183 146zM333 1163q0 60 19 113.5t63 92.5t105 39q77 0 138.5 -57.5t91.5 -135t30 -151.5q0 -60 -19 -113.5t-63 -92.5t-105 -39q-76 0 -138 57.5t-92 135.5t-30 151zM884 1064 q0 74 30 151.5t91.5 135t138.5 57.5q61 0 105 -39t63 -92.5t19 -113.5q0 -73 -30 -151t-92 -135.5t-138 -57.5q-61 0 -105 39t-63 92.5t-19 113.5zM1226 581q0 74 35 152.5t100.5 134t141.5 55.5q77 0 119 -59.5t42 -139.5q0 -74 -35 -152t-100.5 -133.5t-141.5 -55.5 q-77 0 -119 59t-42 139z" />
|
||||
<glyph unicode="" horiz-adv-x="768" d="M64 1008q0 128 42.5 249.5t117.5 200t160 78.5t160 -78.5t117.5 -200t42.5 -249.5q0 -145 -57 -243.5t-152 -135.5l45 -821q2 -26 -16 -45t-44 -19h-192q-26 0 -44 19t-16 45l45 821q-95 37 -152 135.5t-57 243.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 256v768q0 40 23 73t61 47l704 256q22 8 44 8t44 -8l704 -256q38 -14 61 -47t23 -73v-768q0 -35 -18 -65t-49 -47l-704 -384q-28 -16 -61 -16t-61 16l-704 384q-31 17 -49 47t-18 65zM134 1026l698 -254l698 254l-698 254zM896 -93l640 349v636l-640 -233v-752z" />
|
||||
<glyph unicode="" horiz-adv-x="2304" d="M0 96v416q0 38 21.5 70t56.5 48l434 186v400q0 38 21.5 70t56.5 48l448 192q23 10 50 10t50 -10l448 -192q35 -16 56.5 -48t21.5 -70v-400l434 -186q36 -16 57 -48t21 -70v-416q0 -36 -19 -67t-52 -47l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-5 2 -7 4q-2 -2 -7 -4 l-448 -224q-25 -14 -57 -14t-57 14l-448 224q-33 16 -52 47t-19 67zM172 531l404 -173l404 173l-404 173zM640 -96l384 192v314l-384 -164v-342zM647 1219l441 -189l441 189l-441 189zM1152 651l384 165v266l-384 -164v-267zM1196 531l404 -173l404 173l-404 173zM1664 -96 l384 192v314l-384 -164v-342z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 22v1260h594q87 0 155 -14t126.5 -47.5t90 -96.5t31.5 -154q0 -181 -172 -263q114 -32 172 -115t58 -204q0 -75 -24.5 -136.5t-66 -103.5t-98.5 -71t-121 -42t-134 -13h-611zM277 236h296q205 0 205 167q0 180 -199 180h-302v-347zM277 773h281q78 0 123.5 36.5 t45.5 113.5q0 144 -190 144h-260v-294zM1137 477q0 208 130.5 345.5t336.5 137.5q138 0 240.5 -68t153 -179t50.5 -248q0 -17 -2 -47h-658q0 -111 57.5 -171.5t166.5 -60.5q63 0 122 32t76 87h221q-100 -307 -427 -307q-214 0 -340.5 132t-126.5 347zM1337 1073h511v124 h-511v-124zM1388 576h408q-18 195 -200 195q-90 0 -146 -52.5t-62 -142.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 254h382q117 0 197 57.5t80 170.5q0 158 -143 200q107 52 107 164q0 57 -19.5 96.5t-56.5 60.5t-79 29.5 t-97 8.5h-371v-787zM301 388v217h189q124 0 124 -113q0 -104 -128 -104h-185zM301 723v184h163q119 0 119 -90q0 -94 -106 -94h-176zM838 538q0 -135 79 -217t213 -82q205 0 267 191h-138q-11 -34 -47.5 -54t-75.5 -20q-68 0 -104 38t-36 107h411q1 10 1 30 q0 132 -74.5 220.5t-203.5 88.5q-128 0 -210 -86t-82 -216zM964 911v77h319v-77h-319zM996 600q4 56 39 89t91 33q113 0 124 -122h-254z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 764q0 86 61 146.5t146 60.5q73 0 130 -46t73 -117l783 -315q49 29 106 29q14 0 21 -1l173 248q1 114 82 194.5t195 80.5q115 0 196.5 -81t81.5 -196t-81.5 -196.5t-196.5 -81.5l-265 -194q-8 -80 -67.5 -133.5t-138.5 -53.5q-73 0 -130 46t-73 117l-783 315 q-51 -30 -106 -30q-85 0 -146 61t-61 147zM55 764q0 -64 44.5 -108.5t107.5 -44.5q11 0 33 4l-64 26q-33 14 -52.5 44.5t-19.5 66.5q0 50 35.5 85.5t85.5 35.5q20 0 41 -8v1l76 -31q-20 37 -56.5 59t-78.5 22q-63 0 -107.5 -44.5t-44.5 -107.5zM1164 244q19 -37 55.5 -59 t79.5 -22q63 0 107.5 44.5t44.5 107.5t-44.5 108t-107.5 45q-13 0 -33 -4q2 -1 20 -8t21.5 -8.5t18.5 -8.5t19 -10t16 -11t15.5 -13.5t11 -14.5t10 -18t5 -21t2.5 -25q0 -50 -35.5 -85.5t-85.5 -35.5q-14 0 -31.5 4.5t-29 9t-31.5 13.5t-28 12zM1584 767q0 -77 54.5 -131.5 t131.5 -54.5t132 54.5t55 131.5t-55 131.5t-132 54.5q-76 0 -131 -54.5t-55 -131.5zM1623 767q0 62 43.5 105.5t104.5 43.5t105 -44t44 -105t-43.5 -104.5t-105.5 -43.5q-61 0 -104.5 43.5t-43.5 104.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM128 693q0 -53 38 -91t92 -38q36 0 66 18l489 -197q10 -44 45.5 -73t81.5 -29q50 0 86.5 34t41.5 83l167 122 q71 0 122 50.5t51 122.5t-51 123t-122 51q-72 0 -122.5 -50.5t-51.5 -121.5l-108 -155q-2 0 -6.5 0.5t-6.5 0.5q-35 0 -67 -19l-489 197q-10 44 -45.5 73t-80.5 29q-54 0 -92 -38t-38 -92zM162 693q0 40 28 68t68 28q27 0 49.5 -14t34.5 -37l-48 19q-29 11 -56.5 -2 t-38.5 -41q-12 -29 -0.5 -57t39.5 -40v-1l40 -16q-14 -2 -20 -2q-40 0 -68 27.5t-28 67.5zM855 369q5 -2 47 -19q29 -12 58 0.5t41 41.5q11 29 -1 57.5t-41 40.5l-40 16q14 2 21 2q39 0 67 -27.5t28 -67.5t-28 -67.5t-67 -27.5q-59 0 -85 51zM1118 695q0 48 34 82t83 34 q48 0 82 -34t34 -82t-34 -82t-82 -34q-49 0 -83 34t-34 82zM1142 696q0 -39 27.5 -66t65.5 -27t65.5 27t27.5 66q0 38 -27.5 65.5t-65.5 27.5t-65.5 -27.5t-27.5 -65.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M16 970l433 -17l180 -379l-147 92q-63 -72 -111.5 -144.5t-72.5 -125t-39.5 -94.5t-18.5 -63l-4 -21l-190 357q-17 26 -18 56t6 47l8 18q35 63 114 188zM270.5 158q-3.5 28 4 65t12 55t21.5 64t19 53q78 -12 509 -28l-15 -368l-2 -22l-420 29q-36 3 -67 31.5t-47 65.5 q-11 27 -14.5 55zM294 1124l225 356q20 31 60 45t80 10q24 -2 48.5 -12t42 -21t41.5 -33t36 -34.5t36 -39.5t32 -35q-47 -63 -265 -435l-317 187zM782 1524l405 -1q31 3 58 -10.5t39 -28.5l11 -15q39 -61 112 -190l142 83l-220 -373l-419 20l151 86q-34 89 -75 166 t-75.5 123.5t-64.5 80t-47 46.5zM953 197l211 362l7 -173q170 -16 283 -5t170 33l56 22l-188 -359q-12 -29 -36.5 -46.5t-43.5 -20.5l-18 -4q-71 -7 -219 -12l8 -164zM1218 847l313 195l19 11l212 -363q18 -37 12.5 -76t-27.5 -74q-13 -20 -33 -37t-38 -28t-48.5 -22 t-47 -16t-51.5 -14t-46 -12q-34 72 -265 436z" />
|
||||
<glyph unicode="" horiz-adv-x="1984" d="M0 160v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h704q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-128q0 -80 -56 -136t-136 -56t-136 56t-56 136v128h-928v-128q0 -80 -56 -136 t-136 -56t-136 56t-56 136v128h-96q-14 0 -23 9t-9 23zM160 448q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 768h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 448q0 -66 47 -113t113 -47t113 47t47 113 t-47 113t-113 47t-113 -47t-47 -113z" />
|
||||
<glyph unicode="" horiz-adv-x="1984" d="M0 32v384q0 93 65.5 158.5t158.5 65.5h28l105 419q23 94 104 157.5t179 63.5h128v224q0 14 9 23t23 9h448q14 0 23 -9t9 -23v-224h64q98 0 179 -63.5t104 -157.5l105 -419h28q93 0 158.5 -65.5t65.5 -158.5v-384q0 -14 -9 -23t-23 -9h-128v-64q0 -80 -56 -136t-136 -56 t-136 56t-56 136v64h-928v-64q0 -80 -56 -136t-136 -56t-136 56t-56 136v64h-96q-14 0 -23 9t-9 23zM160 320q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113zM516 640h952l-89 357q-2 8 -14 17.5t-21 9.5h-704q-9 0 -21 -9.5t-14 -17.5zM1472 320 q0 -66 47 -113t113 -47t113 47t47 113t-47 113t-113 47t-113 -47t-47 -113z" />
|
||||
<glyph unicode="" d="M32 64q0 26 19 45l402 403h-229q-26 0 -45 19t-19 45t19 45l402 403h-197q-26 0 -45 19t-19 45t19 45l384 384q19 19 45 19t45 -19l384 -384q19 -19 19 -45t-19 -45t-45 -19h-197l402 -403q19 -19 19 -45t-19 -45t-45 -19h-229l402 -403q19 -19 19 -45t-19 -45t-45 -19 h-462q1 -17 6 -87.5t5 -108.5q0 -25 -18 -42.5t-43 -17.5h-320q-25 0 -43 17.5t-18 42.5q0 38 5 108.5t6 87.5h-462q-26 0 -45 19t-19 45z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM237 886q0 -31 20.5 -52t51.5 -21q11 0 40 8q133 37 307 37q159 0 309.5 -34t253.5 -95q21 -12 40 -12 q29 0 50.5 20.5t21.5 51.5q0 47 -40 70q-126 73 -293 110.5t-343 37.5q-204 0 -364 -47q-23 -7 -38.5 -25.5t-15.5 -48.5zM289 637q0 -25 17.5 -42.5t42.5 -17.5q7 0 37 8q122 33 251 33q279 0 488 -124q24 -13 38 -13q25 0 42.5 17.5t17.5 42.5q0 40 -35 61 q-237 141 -548 141q-153 0 -303 -42q-48 -13 -48 -64zM321 406q0 -20 13.5 -34.5t35.5 -14.5q5 0 37 8q132 27 243 27q226 0 397 -103q19 -11 33 -11q19 0 33 13.5t14 34.5q0 32 -30 51q-193 115 -447 115q-133 0 -287 -34q-42 -9 -42 -52z" />
|
||||
<glyph unicode="" d="M0 11v1258q0 58 40.5 98.5t98.5 40.5h1258q58 0 98.5 -40.5t40.5 -98.5v-1258q0 -58 -40.5 -98.5t-98.5 -40.5h-1258q-58 0 -98.5 40.5t-40.5 98.5zM71 11q0 -28 20 -48t48 -20h1258q28 0 48 20t20 48v1258q0 28 -20 48t-48 20h-1258q-28 0 -48 -20t-20 -48v-1258z M121 11v141l711 195l-212 439q4 1 12 2.5t12 1.5q170 32 303.5 21.5t221 -46t143.5 -94.5q27 -28 -25 -42q-64 -16 -256 -62l-97 198q-111 7 -240 -16l188 -387l533 145v-496q0 -7 -5.5 -12.5t-12.5 -5.5h-1258q-7 0 -12.5 5.5t-5.5 12.5zM121 709v560q0 7 5.5 12.5 t12.5 5.5h1258q7 0 12.5 -5.5t5.5 -12.5v-428q-85 30 -188 52q-294 64 -645 12l-18 -3l-65 134h-233l85 -190q-132 -51 -230 -137zM246 413q-24 203 166 305l129 -270l-255 -61q-14 -3 -26 4.5t-14 21.5z" />
|
||||
<glyph unicode="" horiz-adv-x="2304" d="M0 405l17 128q2 9 9 9t9 -9l20 -128l-20 -126q-2 -9 -9 -9t-9 9zM79 405l23 207q0 9 9 9q8 0 10 -9l26 -207l-26 -203q-2 -9 -10 -9q-9 0 -9 10zM169 405l21 245q2 12 12 12q11 0 11 -12l25 -245l-25 -237q0 -11 -11 -11q-10 0 -12 11zM259 405l21 252q0 13 13 13 q12 0 14 -13l23 -252l-23 -244q-2 -13 -14 -13q-13 0 -13 13zM350 405l20 234q0 6 4.5 10.5t10.5 4.5q14 0 16 -15l21 -234l-21 -246q-2 -16 -16 -16q-6 0 -10.5 4.5t-4.5 11.5zM401 159zM442 405l18 380q2 18 18 18q7 0 12 -5.5t5 -12.5l21 -380l-21 -246q0 -7 -5 -12.5 t-12 -5.5q-16 0 -18 18zM534 403l16 468q2 19 20 19q8 0 13.5 -5.5t5.5 -13.5l19 -468l-19 -244q0 -8 -5.5 -13.5t-13.5 -5.5q-18 0 -20 19zM628 405l16 506q0 9 6.5 15.5t14.5 6.5q9 0 15 -6.5t7 -15.5l18 -506l-18 -242q-2 -21 -22 -21q-19 0 -21 21zM723 405l14 -241 q1 -10 7.5 -16.5t15.5 -6.5q22 0 24 23l16 241l-16 523q-1 10 -7.5 17t-16.5 7q-9 0 -16 -7t-7 -17zM784 164zM817 405l14 510q0 11 7.5 18t17.5 7t17.5 -7t7.5 -18l15 -510l-15 -239q0 -10 -7.5 -17.5t-17.5 -7.5t-17 7t-8 18zM913 404l12 492q1 12 9 20t19 8t18.5 -8 t8.5 -20l14 -492l-14 -236q0 -11 -8 -19t-19 -8t-19 8t-9 19zM1010 405q0 -1 11 -236v-1q0 -10 6 -17q9 -11 23 -11q11 0 20 9q9 7 9 20l1 24l11 211l-12 586q0 16 -13 24q-8 5 -16 5t-16 -5q-13 -8 -13 -24l-1 -6zM1079 169zM1103 404l12 636v3q2 15 12 24q9 7 20 7 q8 0 15 -5q14 -8 16 -26l14 -639l-14 -231q0 -13 -9 -22t-22 -9t-22 9t-10 22l-6 114zM1204 174v899q0 23 28 33q85 34 181 34q195 0 338 -131.5t160 -323.5q53 22 110 22q117 0 200 -83t83 -201q0 -117 -83 -199.5t-200 -82.5h-786q-13 2 -22 11t-9 22z" />
|
||||
<glyph unicode="" d="M0 0v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 384v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 768 v170q119 -84 325 -127t443 -43t443 43t325 127v-170q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5t-103 128zM0 1152v128q0 69 103 128t280 93.5t385 34.5t385 -34.5t280 -93.5t103 -128v-128q0 -69 -103 -128t-280 -93.5t-385 -34.5t-385 34.5t-280 93.5 t-103 128z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM257 60q9 40 56 91.5t132 96.5q14 9 23 -6q2 -2 2 -4 q52 85 107 197q68 136 104 262q-24 82 -30.5 159.5t6.5 127.5q11 40 42 40h21h1q23 0 35 -15q18 -21 9 -68q-2 -6 -4 -8q1 -3 1 -8v-30q-2 -123 -14 -192q55 -164 146 -238q33 -26 84 -56q59 7 117 7q147 0 177 -49q16 -22 2 -52q0 -1 -1 -2l-2 -2v-1q-6 -38 -71 -38 q-48 0 -115 20t-130 53q-221 -24 -392 -83q-153 -262 -242 -262q-15 0 -28 7l-24 12q-1 1 -6 5q-10 10 -6 36zM318 54q52 24 137 158q-51 -40 -87.5 -84t-49.5 -74zM592 313q135 54 284 81q-2 1 -13 9.5t-16 13.5q-76 67 -127 176q-27 -86 -83 -197q-30 -56 -45 -83z M714 842q1 7 7 44q0 3 7 43q1 4 4 8q-1 1 -1 2t-0.5 1.5t-0.5 1.5q-1 22 -13 36q0 -1 -1 -2v-2q-15 -42 -2 -132zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376zM1098 353q76 -28 124 -28q14 0 18 1q0 1 -2 3q-24 24 -140 24z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM233 661h70l164 -661h159l128 485q7 20 10 46q2 16 2 24 h4l3 -24q1 -3 3.5 -20t5.5 -26l128 -485h159l164 661h70v107h-300v-107h90l-99 -438q-5 -20 -7 -46l-2 -21h-4l-3 21q-1 5 -4 21t-5 25l-144 545h-114l-144 -545q-2 -9 -4.5 -24.5t-3.5 -21.5l-4 -21h-4l-2 21q-2 26 -7 46l-99 438h90v107h-300v-107zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM429 0h281v106h-75l103 161q5 7 10 16.5t7.5 13.5t3.5 4 h2q1 -4 5 -10q2 -4 4.5 -7.5t6 -8t6.5 -8.5l107 -161h-76v-106h291v106h-68l-192 273l195 282h67v107h-279v-107h74l-103 -159q-4 -7 -10 -16.5t-9 -13.5l-2 -3h-2q-1 4 -5 10q-6 11 -17 23l-106 159h76v107h-290v-107h68l189 -272l-194 -283h-68v-106zM1024 1024h376 q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM416 0h327v106h-93v167h137q76 0 118 15q67 23 106.5 87 t39.5 146q0 81 -37 141t-100 87q-48 19 -130 19h-368v-107h92v-555h-92v-106zM650 386v268h120q52 0 83 -18q56 -33 56 -115q0 -89 -62 -120q-31 -15 -78 -15h-119zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 0v192l192 192l128 -128l384 384l320 -320v-320 h-1024zM256 704q0 80 56 136t136 56t136 -56t56 -136t-56 -136t-136 -56t-136 56t-56 136zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-128v-128h-128v128h-512v-1536zM384 192q0 25 8 52q21 63 120 396 v128h128v-128h79q22 0 39 -13t23 -34l107 -349q8 -27 8 -52q0 -83 -72.5 -137.5t-183.5 -54.5t-183.5 54.5t-72.5 137.5zM512 192q0 -26 37.5 -45t90.5 -19t90.5 19t37.5 45t-37.5 45t-90.5 19t-90.5 -19t-37.5 -45zM512 896h128v128h-128v-128zM512 1152h128v128h-128v-128 zM640 768h128v128h-128v-128zM640 1024h128v128h-128v-128zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 288v192q0 14 9 23t23 9h131l166 167q16 15 35 7 q20 -8 20 -30v-544q0 -22 -20 -30q-8 -2 -12 -2q-12 0 -23 9l-166 167h-131q-14 0 -23 9t-9 23zM762 206.5q1 -26.5 20 -44.5q20 -17 44 -17q27 0 47 20q87 93 87 219t-87 219q-18 19 -45 20t-46 -17t-20 -44.5t18 -46.5q52 -57 52 -131t-52 -131q-19 -20 -18 -46.5z M973.5 54.5q2.5 -26.5 23.5 -42.5q18 -15 40 -15q31 0 50 24q129 159 129 363t-129 363q-16 21 -43 24t-47 -14q-21 -17 -23.5 -43.5t14.5 -47.5q100 -123 100 -282t-100 -282q-17 -21 -14.5 -47.5zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM256 256v384q0 52 38 90t90 38h384q52 0 90 -38t38 -90 v-384q0 -52 -38 -90t-90 -38h-384q-52 0 -90 38t-38 90zM960 403v90l265 266q9 9 23 9q4 0 12 -2q20 -8 20 -30v-576q0 -22 -20 -30q-8 -2 -12 -2q-14 0 -23 9zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M0 -160v1600q0 40 28 68t68 28h896q40 0 88 -20t76 -48l312 -312q28 -28 48 -76t20 -88v-1152q0 -40 -28 -68t-68 -28h-1344q-40 0 -68 28t-28 68zM128 -128h1280v1024h-416q-40 0 -68 28t-28 68v416h-768v-1536zM254 429q-14 19 0 38l226 301q8 11 21 12.5t24 -6.5 l51 -38q11 -8 12.5 -21t-6.5 -24l-182 -243l182 -243q8 -11 6.5 -24t-12.5 -21l-51 -38q-11 -8 -24 -6.5t-21 12.5zM636 43l138 831q2 13 13 20.5t24 5.5l63 -10q13 -2 20.5 -13t5.5 -24l-138 -831q-2 -13 -13 -20.5t-24 -5.5l-63 10q-13 2 -20.5 13t-5.5 24zM947.5 181 q-1.5 13 6.5 24l182 243l-182 243q-8 11 -6.5 24t12.5 21l51 38q11 8 24 6.5t21 -12.5l226 -301q14 -19 0 -38l-226 -301q-8 -11 -21 -12.5t-24 6.5l-51 38q-11 8 -12.5 21zM1024 1024h376q-10 29 -22 41l-313 313q-12 12 -41 22v-376z" />
|
||||
<glyph unicode="" d="M39 1286h283q26 -218 70 -398.5t104.5 -317t121.5 -235.5t140 -195q169 169 287 406q-142 72 -223 220t-81 333q0 192 104 314.5t284 122.5q178 0 273 -105.5t95 -297.5q0 -159 -58 -286q-7 -1 -19.5 -3t-46 -2t-63 6t-62 25.5t-50.5 51.5q31 103 31 184q0 87 -29 132 t-79 45q-53 0 -85 -49.5t-32 -140.5q0 -186 105 -293.5t267 -107.5q62 0 121 14v-198q-101 -23 -198 -23q-65 -136 -165.5 -271t-181.5 -215.5t-128 -106.5q-80 -45 -162 3q-28 17 -60.5 43.5t-85 83.5t-102.5 128.5t-107.5 184t-105.5 244t-91.5 314.5t-70.5 390z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 367v546q0 41 34 64l819 546q21 13 43 13t43 -13l819 -546q34 -23 34 -64v-546q0 -41 -34 -64l-819 -546q-21 -13 -43 -13t-43 13l-819 546q-34 23 -34 64zM154 511l193 129l-193 129v-258zM216 367l603 -402v359l-334 223zM216 913l269 -180l334 223v359zM624 640 l272 -182l272 182l-272 182zM973 -35l603 402l-269 180l-334 -223v-359zM973 956l334 -223l269 180l-603 402v-359zM1445 640l193 -129v258z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 407q0 110 55 203t147 147q-12 39 -12 82q0 115 82 196t199 81q95 0 172 -58q75 154 222.5 248t326.5 94q166 0 306 -80.5t221.5 -218.5t81.5 -301q0 -6 -0.5 -18t-0.5 -18q111 -46 179.5 -145.5t68.5 -221.5q0 -164 -118 -280.5t-285 -116.5q-4 0 -11.5 0.5t-10.5 0.5 h-1209h-1h-2h-5q-170 10 -288 125.5t-118 280.5zM468 498q0 -122 84 -193t208 -71q137 0 240 99q-16 20 -47.5 56.5t-43.5 50.5q-67 -65 -144 -65q-55 0 -93.5 33.5t-38.5 87.5q0 53 38.5 87t91.5 34q44 0 84.5 -21t73 -55t65 -75t69 -82t77 -75t97 -55t121.5 -21 q121 0 204.5 71.5t83.5 190.5q0 121 -84 192t-207 71q-143 0 -241 -97q14 -16 29.5 -34t34.5 -40t29 -34q66 64 142 64q52 0 92 -33t40 -84q0 -57 -37 -91.5t-94 -34.5q-43 0 -82.5 21t-72 55t-65.5 75t-69.5 82t-77.5 75t-96.5 55t-118.5 21q-122 0 -207 -70.5t-85 -189.5z " />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM128 640q0 -190 90 -361l194 194q-28 82 -28 167t28 167l-194 194q-90 -171 -90 -361zM512 640 q0 -159 112.5 -271.5t271.5 -112.5t271.5 112.5t112.5 271.5t-112.5 271.5t-271.5 112.5t-271.5 -112.5t-112.5 -271.5zM535 -38q171 -90 361 -90t361 90l-194 194q-82 -28 -167 -28t-167 28zM535 1318l194 -194q82 28 167 28t167 -28l194 194q-171 90 -361 90t-361 -90z M1380 473l194 -194q90 171 90 361t-90 361l-194 -194q28 -82 28 -167t-28 -167z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 222 101 414.5t276.5 317t390.5 155.5v-260q-221 -45 -366.5 -221t-145.5 -406q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5q0 230 -145.5 406t-366.5 221v260q215 -31 390.5 -155.5t276.5 -317t101 -414.5 q0 -182 -71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M19 662q8 217 116 406t305 318h5q0 -1 -1 -3q-8 -8 -28 -33.5t-52 -76.5t-60 -110.5t-44.5 -135.5t-14 -150.5t39 -157.5t108.5 -154q50 -50 102 -69.5t90.5 -11.5t69.5 23.5t47 32.5l16 16q39 51 53 116.5t6.5 122.5t-21 107t-26.5 80l-14 29q-10 25 -30.5 49.5t-43 41 t-43.5 29.5t-35 19l-13 6l104 115q39 -17 78 -52t59 -61l19 -27q1 48 -18.5 103.5t-40.5 87.5l-20 31l161 183l160 -181q-33 -46 -52.5 -102.5t-22.5 -90.5l-4 -33q22 37 61.5 72.5t67.5 52.5l28 17l103 -115q-44 -14 -85 -50t-60 -65l-19 -29q-31 -56 -48 -133.5t-7 -170 t57 -156.5q33 -45 77.5 -60.5t85 -5.5t76 26.5t57.5 33.5l21 16q60 53 96.5 115t48.5 121.5t10 121.5t-18 118t-37 107.5t-45.5 93t-45 72t-34.5 47.5l-13 17q-14 13 -7 13l10 -3q40 -29 62.5 -46t62 -50t64 -58t58.5 -65t55.5 -77t45.5 -88t38 -103t23.5 -117t10.5 -136 q3 -259 -108 -465t-312 -321t-456 -115q-185 0 -351 74t-283.5 198t-184 293t-60.5 353z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 640q0 182 71 348t191 286t286 191t348 71t348 -71t286 -191t191 -286t71 -348t-71 -348t-191 -286t-286 -191t-348 -71t-348 71t-286 191t-191 286t-71 348zM44 640q0 -173 67.5 -331t181.5 -272t272 -181.5t331 -67.5t331 67.5t272 181.5t181.5 272t67.5 331 t-67.5 331t-181.5 272t-272 181.5t-331 67.5t-331 -67.5t-272 -181.5t-181.5 -272t-67.5 -331zM87 640q0 205 98 385l57 -33q-30 -56 -49 -112l82 -28q-35 -100 -35 -212q0 -109 36 -212l-83 -28q22 -60 49 -112l-57 -33q-98 180 -98 385zM206 217l58 34q29 -49 73 -99 l65 57q148 -168 368 -212l-17 -86q65 -12 121 -13v-66q-208 6 -385 109.5t-283 275.5zM207 1063q106 172 282 275.5t385 109.5v-66q-65 -2 -121 -13l17 -86q-220 -42 -368 -211l-65 56q-38 -42 -73 -98zM415 805q33 93 99 169l185 -162q59 68 147 86l-48 240q44 10 98 10 t98 -10l-48 -240q88 -18 147 -86l185 162q66 -76 99 -169l-233 -80q14 -42 14 -85t-14 -85l232 -80q-31 -92 -98 -169l-185 162q-57 -67 -147 -85l48 -241q-52 -10 -98 -10t-98 10l48 241q-90 18 -147 85l-185 -162q-67 77 -98 169l232 80q-14 42 -14 85t14 85zM918 -102 q56 1 121 13l-17 86q220 44 368 212l65 -57q44 50 73 99l58 -34q-106 -172 -283 -275.5t-385 -109.5v66zM918 1382v66q209 -6 385 -109.5t282 -275.5l-57 -33q-35 56 -73 98l-65 -56q-148 169 -368 211l17 86q-56 11 -121 13zM1516 428q36 103 36 212q0 112 -35 212l82 28 q-19 56 -49 112l57 33q98 -180 98 -385t-98 -385l-57 33q27 52 49 112z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 218q0 -45 20 -78.5t54 -51t72 -25.5t81 -8q224 0 224 188q0 67 -48 99t-126 46q-27 5 -51.5 20.5 t-24.5 39.5q0 44 49 52q77 15 122 70t45 134q0 24 -10 52q37 9 49 13v125q-78 -29 -135 -29q-50 29 -110 29q-86 0 -145 -57t-59 -143q0 -50 29.5 -102t73.5 -67v-3q-38 -17 -38 -85q0 -53 41 -77v-3q-113 -37 -113 -139zM382 225q0 64 98 64q102 0 102 -61q0 -66 -93 -66 q-107 0 -107 63zM395 693q0 90 77 90q36 0 55 -25.5t19 -63.5q0 -85 -74 -85q-77 0 -77 84zM755 1072q0 -36 25 -62.5t60 -26.5t59.5 27t24.5 62q0 36 -24 63.5t-60 27.5t-60.5 -27t-24.5 -64zM771 350h137q-2 27 -2 82v387q0 46 2 69h-137q3 -23 3 -71v-392q0 -50 -3 -75z M966 771q36 3 37 3q3 0 11 -0.5t12 -0.5v-2h-2v-217q0 -37 2.5 -64t11.5 -56.5t24.5 -48.5t43.5 -31t66 -12q64 0 108 24v121q-30 -21 -68 -21q-53 0 -53 82v225h52q9 0 26.5 -1t26.5 -1v117h-105q0 82 3 102h-140q4 -24 4 -55v-47h-60v-117z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M68 7q0 165 182 225v4q-67 41 -67 126q0 109 63 137v4q-72 24 -119.5 108.5t-47.5 165.5q0 139 95 231.5t235 92.5q96 0 178 -47q98 0 218 47v-202q-36 -12 -79 -22q16 -43 16 -84q0 -127 -73 -216.5t-197 -112.5q-40 -8 -59.5 -27t-19.5 -58q0 -31 22.5 -51.5t58 -32 t78.5 -22t86 -25.5t78.5 -37.5t58 -64t22.5 -98.5q0 -304 -363 -304q-69 0 -130 12.5t-116 41t-87.5 82t-32.5 127.5zM272 18q0 -101 172 -101q151 0 151 105q0 100 -165 100q-158 0 -158 -104zM293 775q0 -135 124 -135q119 0 119 137q0 61 -30 102t-89 41 q-124 0 -124 -145zM875 1389q0 59 39.5 103t98.5 44q58 0 96.5 -44.5t38.5 -102.5t-39 -101.5t-96 -43.5q-58 0 -98 43.5t-40 101.5zM901 220q4 45 4 134v609q0 94 -4 128h222q-4 -33 -4 -124v-613q0 -89 4 -134h-222zM1217 901v190h96v76q0 54 -6 89h227q-6 -41 -6 -165 h171v-190q-15 0 -43.5 2t-42.5 2h-85v-365q0 -131 87 -131q61 0 109 33v-196q-71 -39 -174 -39q-62 0 -107 20t-70 50t-39.5 78t-18.5 92t-4 103v351h2v4q-7 0 -19 1t-18 1q-21 0 -59 -6z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM368 1135l323 -589v-435h134v436l343 588h-150q-21 -39 -63.5 -118.5t-68 -128.5t-59.5 -118.5t-60 -128.5h-3 q-21 48 -44.5 97t-52 105.5t-46.5 92t-54 104.5t-49 95h-150z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M57 953q0 119 46.5 227t124.5 186t186 124t226 46q158 0 292.5 -78t212.5 -212.5t78 -292.5t-78 -292t-212.5 -212t-292.5 -78q-64 0 -131 14q-21 5 -32.5 23.5t-6.5 39.5q5 20 23 31.5t39 7.5q51 -13 108 -13q97 0 186 38t153 102t102 153t38 186t-38 186t-102 153 t-153 102t-186 38t-186 -38t-153 -102t-102 -153t-38 -186q0 -114 52 -218q10 -20 3.5 -40t-25.5 -30t-39.5 -3t-30.5 26q-64 123 -64 265zM113.5 38.5q10.5 121.5 29.5 217t54 186t69 155.5t74 125q61 90 132 165q-16 35 -16 77q0 80 56.5 136.5t136.5 56.5t136.5 -56.5 t56.5 -136.5t-57 -136.5t-136 -56.5q-60 0 -111 35q-62 -67 -115 -146q-247 -371 -202 -859q1 -22 -12.5 -38.5t-34.5 -18.5h-5q-20 0 -35 13.5t-17 33.5q-14 126 -3.5 247.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M18 264q0 275 252 466q-8 19 -8 52q0 20 11 49t24 45q-1 22 7.5 53t22.5 43q0 139 92.5 288.5t217.5 209.5q139 66 324 66q133 0 266 -55q49 -21 90 -48t71 -56t55 -68t42 -74t32.5 -84.5t25.5 -89.5t22 -98l1 -5q55 -83 55 -150q0 -14 -9 -40t-9 -38q0 -1 1.5 -3.5 t3.5 -5t2 -3.5q77 -114 120.5 -214.5t43.5 -208.5q0 -43 -19.5 -100t-55.5 -57q-9 0 -19.5 7.5t-19 17.5t-19 26t-16 26.5t-13.5 26t-9 17.5q-1 1 -3 1l-5 -4q-59 -154 -132 -223q20 -20 61.5 -38.5t69 -41.5t35.5 -65q-2 -4 -4 -16t-7 -18q-64 -97 -302 -97q-53 0 -110.5 9 t-98 20t-104.5 30q-15 5 -23 7q-14 4 -46 4.5t-40 1.5q-41 -45 -127.5 -65t-168.5 -20q-35 0 -69 1.5t-93 9t-101 20.5t-74.5 40t-32.5 64q0 40 10 59.5t41 48.5q11 2 40.5 13t49.5 12q4 0 14 2q2 2 2 4l-2 3q-48 11 -108 105.5t-73 156.5l-5 3q-4 0 -12 -20 q-18 -41 -54.5 -74.5t-77.5 -37.5h-1q-4 0 -6 4.5t-5 5.5q-23 54 -23 100z" />
|
||||
<glyph unicode="" horiz-adv-x="2048" d="M0 858q0 169 97.5 311t264 223.5t363.5 81.5q176 0 332.5 -66t262 -182.5t136.5 -260.5q-31 4 -70 4q-169 0 -311 -77t-223.5 -208.5t-81.5 -287.5q0 -78 23 -152q-35 -3 -68 -3q-26 0 -50 1.5t-55 6.5t-44.5 7t-54.5 10.5t-50 10.5l-253 -127l72 218q-290 203 -290 490z M380 1075q0 -39 33 -64.5t76 -25.5q41 0 66 24.5t25 65.5t-25 66t-66 25q-43 0 -76 -25.5t-33 -65.5zM816 404q0 143 81.5 264t223.5 191.5t311 70.5q161 0 303 -70.5t227.5 -192t85.5 -263.5q0 -117 -68.5 -223.5t-185.5 -193.5l55 -181l-199 109q-150 -37 -218 -37 q-169 0 -311 70.5t-223.5 191.5t-81.5 264zM888 1075q0 -39 33 -64.5t76 -25.5q41 0 65.5 24.5t24.5 65.5t-24.5 66t-65.5 25q-43 0 -76 -25.5t-33 -65.5zM1160 568q0 -28 22.5 -50.5t49.5 -22.5q40 0 65.5 22t25.5 51q0 28 -25.5 50t-65.5 22q-27 0 -49.5 -22.5 t-22.5 -49.5zM1559 568q0 -28 22.5 -50.5t49.5 -22.5q39 0 65 22t26 51q0 28 -26 50t-65 22q-27 0 -49.5 -22.5t-22.5 -49.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 508q-2 40 32 59l1664 960q15 9 32 9q20 0 36 -11q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-453 185l-242 -295q-18 -23 -49 -23q-13 0 -22 4q-19 7 -30.5 23.5t-11.5 36.5v349l864 1059l-1069 -925l-395 162q-37 14 -40 55z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 508q-3 39 32 59l1664 960q35 21 68 -2q33 -24 27 -64l-256 -1536q-5 -29 -32 -45q-14 -8 -31 -8q-11 0 -24 5l-527 215l-298 -327q-18 -21 -47 -21q-14 0 -23 4q-19 7 -30 23.5t-11 36.5v452l-472 193q-37 14 -40 55zM209 522l336 -137l863 639l-478 -797l492 -201 l221 1323z" />
|
||||
<glyph unicode="" d="M0 832v448q0 42 40 59q39 17 69 -14l130 -129q107 101 244.5 156.5t284.5 55.5q156 0 298 -61t245 -164t164 -245t61 -298t-61 -298t-164 -245t-245 -164t-298 -61q-172 0 -327 72.5t-264 204.5q-7 10 -6.5 22.5t8.5 20.5l137 138q10 9 25 9q16 -2 23 -12 q73 -95 179 -147t225 -52q104 0 198.5 40.5t163.5 109.5t109.5 163.5t40.5 198.5t-40.5 198.5t-109.5 163.5t-163.5 109.5t-198.5 40.5q-98 0 -188 -35.5t-160 -101.5l137 -138q31 -30 14 -69q-17 -40 -59 -40h-448q-26 0 -45 19t-19 45zM512 480v64q0 14 9 23t23 9h224v352 q0 14 9 23t23 9h64q14 0 23 -9t9 -23v-448q0 -14 -9 -23t-23 -9h-320q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" d="M0 640q0 209 103 385.5t279.5 279.5t385.5 103t385.5 -103t279.5 -279.5t103 -385.5t-103 -385.5t-279.5 -279.5t-385.5 -103t-385.5 103t-279.5 279.5t-103 385.5zM128 640q0 -130 51 -248.5t136.5 -204t204 -136.5t248.5 -51t248.5 51t204 136.5t136.5 204t51 248.5 t-51 248.5t-136.5 204t-204 136.5t-248.5 51t-248.5 -51t-204 -136.5t-136.5 -204t-51 -248.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M62 1338q0 26 12 48t36 22q46 0 138.5 -3.5t138.5 -3.5q42 0 126.5 3.5t126.5 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17 -43.5t-38.5 -14.5t-49.5 -4t-43 -13q-35 -21 -35 -160l1 -320q0 -21 1 -32q13 -3 39 -3h699q25 0 38 3q1 11 1 32l1 320q0 139 -35 160 q-18 11 -58.5 12.5t-66 13t-25.5 49.5q0 26 12.5 48t37.5 22q44 0 132 -3.5t132 -3.5q43 0 129 3.5t129 3.5q25 0 37.5 -22t12.5 -48q0 -30 -17.5 -44t-40 -14.5t-51.5 -3t-44 -12.5q-35 -23 -35 -161l1 -943q0 -119 34 -140q16 -10 46 -13.5t53.5 -4.5t41.5 -15.5t18 -44.5 q0 -26 -12 -48t-36 -22q-44 0 -132.5 3.5t-133.5 3.5q-44 0 -132 -3.5t-132 -3.5q-24 0 -37 20.5t-13 45.5q0 31 17 46t39 17t51 7t45 15q33 21 33 140l-1 391q0 21 -1 31q-13 4 -50 4h-675q-38 0 -51 -4q-1 -10 -1 -31l-1 -371q0 -142 37 -164q16 -10 48 -13t57 -3.5 t45 -15t20 -45.5q0 -26 -12.5 -48t-36.5 -22q-47 0 -139.5 3.5t-138.5 3.5q-43 0 -128 -3.5t-127 -3.5q-23 0 -35.5 21t-12.5 45q0 30 15.5 45t36 17.5t47.5 7.5t42 15q33 23 33 143l-1 57v813q0 3 0.5 26t0 36.5t-1.5 38.5t-3.5 42t-6.5 36.5t-11 31.5t-16 18 q-15 10 -45 12t-53 2t-41 14t-18 45z" />
|
||||
<glyph unicode="" horiz-adv-x="1280" d="M24 926q0 166 88 286q88 118 209 159q111 37 417 37h479q25 0 43 -18t18 -43v-73q0 -29 -18.5 -61t-42.5 -32q-50 0 -54 -1q-26 -6 -32 -31q-3 -11 -3 -64v-1152q0 -25 -18 -43t-43 -18h-108q-25 0 -43 18t-18 43v1218h-143v-1218q0 -25 -17.5 -43t-43.5 -18h-108 q-26 0 -43.5 18t-17.5 43v496q-147 12 -245 59q-126 58 -192 179q-64 117 -64 259z" />
|
||||
<glyph unicode="" d="M0 736v64q0 40 28 68t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM128 -96v672h256v-672q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM128 960v416q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-416h-256zM512 224v64q0 40 28 68 t68 28h320q40 0 68 -28t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM640 64h256v-160q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23v160zM640 448v928q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-928h-256zM1024 992v64q0 40 28 68t68 28h320q40 0 68 -28 t28 -68v-64q0 -40 -28 -68t-68 -28h-320q-40 0 -68 28t-28 68zM1152 -96v928h256v-928q0 -14 -9 -23t-23 -9h-192q-14 0 -23 9t-9 23zM1152 1216v160q0 14 9 23t23 9h192q14 0 23 -9t9 -23v-160h-256z" />
|
||||
<glyph unicode="" d="M0 640q0 133 93.5 226.5t226.5 93.5q126 0 218 -86l360 180q-2 22 -2 34q0 133 93.5 226.5t226.5 93.5t226.5 -93.5t93.5 -226.5t-93.5 -226.5t-226.5 -93.5q-126 0 -218 86l-360 -180q2 -22 2 -34t-2 -34l360 -180q92 86 218 86q133 0 226.5 -93.5t93.5 -226.5 t-93.5 -226.5t-226.5 -93.5t-226.5 93.5t-93.5 226.5q0 12 2 34l-360 180q-92 -86 -218 -86q-133 0 -226.5 93.5t-93.5 226.5z" />
|
||||
<glyph unicode="" d="M0 160v960q0 119 84.5 203.5t203.5 84.5h960q119 0 203.5 -84.5t84.5 -203.5v-960q0 -119 -84.5 -203.5t-203.5 -84.5h-960q-119 0 -203.5 84.5t-84.5 203.5zM256 640q0 -88 62.5 -150.5t150.5 -62.5q83 0 145 57l241 -120q-2 -16 -2 -23q0 -88 63 -150.5t151 -62.5 t150.5 62.5t62.5 150.5t-62.5 151t-150.5 63q-84 0 -145 -58l-241 120q2 16 2 23t-2 23l241 120q61 -58 145 -58q88 0 150.5 63t62.5 151t-62.5 150.5t-150.5 62.5t-151 -62.5t-63 -150.5q0 -7 2 -23l-241 -120q-62 57 -145 57q-88 0 -150.5 -62.5t-62.5 -150.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" d="M0 448q0 143 55.5 273.5t150 225t225 150t273.5 55.5q182 0 343 -89l64 64q19 19 45.5 19t45.5 -19l68 -68l243 244l46 -46l-244 -243l68 -68q19 -19 19 -45.5t-19 -45.5l-64 -64q89 -161 89 -343q0 -143 -55.5 -273.5t-150 -225t-225 -150t-273.5 -55.5t-273.5 55.5 t-225 150t-150 225t-55.5 273.5zM170 615q10 -24 35 -34q13 -5 24 -5q42 0 60 40q34 84 98.5 148.5t148.5 98.5q25 11 35 35t0 49t-34 35t-49 0q-108 -44 -191 -127t-127 -191q-10 -25 0 -49zM1376 1472q0 13 9 23q10 9 23 9t23 -9l90 -91q10 -9 10 -22.5t-10 -22.5 q-10 -10 -22 -10q-13 0 -23 10l-91 90q-9 10 -9 23zM1536 1408v96q0 14 9 23t23 9t23 -9t9 -23v-96q0 -14 -9 -23t-23 -9t-23 9t-9 23zM1605 1242.5q0 13.5 10 22.5q9 10 22.5 10t22.5 -10l91 -90q9 -10 9 -23t-9 -23q-11 -9 -23 -9t-23 9l-90 91q-10 9 -10 22.5z M1605 1381.5q0 13.5 10 22.5l90 91q10 9 23 9t23 -9q9 -10 9 -23t-9 -23l-91 -90q-10 -10 -22 -10q-13 0 -23 10q-10 9 -10 22.5zM1632 1312q0 14 9 23t23 9h96q14 0 23 -9t9 -23t-9 -23t-23 -9h-96q-14 0 -23 9t-9 23z" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph unicode="" horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
<glyph horiz-adv-x="1792" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 248 KiB |
@ -0,0 +1,229 @@
|
||||
<?xml version="1.0" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||
<svg xmlns="http://www.w3.org/2000/svg">
|
||||
<metadata></metadata>
|
||||
<defs>
|
||||
<font id="glyphicons_halflingsregular" horiz-adv-x="1200" >
|
||||
<font-face units-per-em="1200" ascent="960" descent="-240" />
|
||||
<missing-glyph horiz-adv-x="500" />
|
||||
<glyph />
|
||||
<glyph />
|
||||
<glyph unicode="
" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode="*" d="M100 500v200h259l-183 183l141 141l183 -183v259h200v-259l183 183l141 -141l-183 -183h259v-200h-259l183 -183l-141 -141l-183 183v-259h-200v259l-183 -183l-141 141l183 183h-259z" />
|
||||
<glyph unicode="+" d="M0 400v300h400v400h300v-400h400v-300h-400v-400h-300v400h-400z" />
|
||||
<glyph unicode=" " />
|
||||
<glyph unicode=" " horiz-adv-x="652" />
|
||||
<glyph unicode=" " horiz-adv-x="1304" />
|
||||
<glyph unicode=" " horiz-adv-x="652" />
|
||||
<glyph unicode=" " horiz-adv-x="1304" />
|
||||
<glyph unicode=" " horiz-adv-x="434" />
|
||||
<glyph unicode=" " horiz-adv-x="326" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="217" />
|
||||
<glyph unicode=" " horiz-adv-x="163" />
|
||||
<glyph unicode=" " horiz-adv-x="260" />
|
||||
<glyph unicode=" " horiz-adv-x="72" />
|
||||
<glyph unicode=" " horiz-adv-x="260" />
|
||||
<glyph unicode=" " horiz-adv-x="326" />
|
||||
<glyph unicode="€" d="M100 500l100 100h113q0 47 5 100h-218l100 100h135q37 167 112 257q117 141 297 141q242 0 354 -189q60 -103 66 -209h-181q0 55 -25.5 99t-63.5 68t-75 36.5t-67 12.5q-24 0 -52.5 -10t-62.5 -32t-65.5 -67t-50.5 -107h379l-100 -100h-300q-6 -46 -6 -100h406l-100 -100 h-300q9 -74 33 -132t52.5 -91t62 -54.5t59 -29t46.5 -7.5q29 0 66 13t75 37t63.5 67.5t25.5 96.5h174q-31 -172 -128 -278q-107 -117 -274 -117q-205 0 -324 158q-36 46 -69 131.5t-45 205.5h-217z" />
|
||||
<glyph unicode="−" d="M200 400h900v300h-900v-300z" />
|
||||
<glyph unicode="◼" horiz-adv-x="500" d="M0 0z" />
|
||||
<glyph unicode="☁" d="M-14 494q0 -80 56.5 -137t135.5 -57h750q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5z" />
|
||||
<glyph unicode="✉" d="M0 100l400 400l200 -200l200 200l400 -400h-1200zM0 300v600l300 -300zM0 1100l600 -603l600 603h-1200zM900 600l300 300v-600z" />
|
||||
<glyph unicode="✏" d="M-13 -13l333 112l-223 223zM187 403l214 -214l614 614l-214 214zM887 1103l214 -214l99 92q13 13 13 32.5t-13 33.5l-153 153q-15 13 -33 13t-33 -13z" />
|
||||
<glyph unicode="" d="M0 1200h1200l-500 -550v-550h300v-100h-800v100h300v550z" />
|
||||
<glyph unicode="" d="M14 84q18 -55 86 -75.5t147 5.5q65 21 109 69t44 90v606l600 155v-521q-64 16 -138 -7q-79 -26 -122.5 -83t-25.5 -111q18 -55 86 -75.5t147 4.5q70 23 111.5 63.5t41.5 95.5v881q0 10 -7 15.5t-17 2.5l-752 -193q-10 -3 -17 -12.5t-7 -19.5v-689q-64 17 -138 -7 q-79 -25 -122.5 -82t-25.5 -112z" />
|
||||
<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233z" />
|
||||
<glyph unicode="" d="M100 784q0 64 28 123t73 100.5t104.5 64t119 20.5t120 -38.5t104.5 -104.5q48 69 109.5 105t121.5 38t118.5 -20.5t102.5 -64t71 -100.5t27 -123q0 -57 -33.5 -117.5t-94 -124.5t-126.5 -127.5t-150 -152.5t-146 -174q-62 85 -145.5 174t-149.5 152.5t-126.5 127.5 t-94 124.5t-33.5 117.5z" />
|
||||
<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1z" />
|
||||
<glyph unicode="" d="M-72 800h479l146 400h2l146 -400h472l-382 -278l145 -449l-384 275l-382 -275l146 447zM168 71l2 1zM237 700l196 -142l-73 -226l192 140l195 -141l-74 229l193 140h-235l-77 211l-78 -211h-239z" />
|
||||
<glyph unicode="" d="M0 0v143l400 257v100q-37 0 -68.5 74.5t-31.5 125.5v200q0 124 88 212t212 88t212 -88t88 -212v-200q0 -51 -31.5 -125.5t-68.5 -74.5v-100l400 -257v-143h-1200z" />
|
||||
<glyph unicode="" d="M0 0v1100h1200v-1100h-1200zM100 100h100v100h-100v-100zM100 300h100v100h-100v-100zM100 500h100v100h-100v-100zM100 700h100v100h-100v-100zM100 900h100v100h-100v-100zM300 100h600v400h-600v-400zM300 600h600v400h-600v-400zM1000 100h100v100h-100v-100z M1000 300h100v100h-100v-100zM1000 500h100v100h-100v-100zM1000 700h100v100h-100v-100zM1000 900h100v100h-100v-100z" />
|
||||
<glyph unicode="" d="M0 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM0 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400 q-21 0 -35.5 14.5t-14.5 35.5zM600 50v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5zM600 650v400q0 21 14.5 35.5t35.5 14.5h400q21 0 35.5 -14.5t14.5 -35.5v-400 q0 -21 -14.5 -35.5t-35.5 -14.5h-400q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200 q-21 0 -35.5 14.5t-14.5 35.5zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 450v200q0 21 14.5 35.5t35.5 14.5h200 q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM800 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M0 50v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM0 450q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v200q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5 t-14.5 -35.5v-200zM0 850v200q0 21 14.5 35.5t35.5 14.5h200q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5zM400 50v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5 t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 450v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5zM400 850v200q0 21 14.5 35.5t35.5 14.5h700q21 0 35.5 -14.5t14.5 -35.5 v-200q0 -21 -14.5 -35.5t-35.5 -14.5h-700q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M29 454l419 -420l818 820l-212 212l-607 -607l-206 207z" />
|
||||
<glyph unicode="" d="M106 318l282 282l-282 282l212 212l282 -282l282 282l212 -212l-282 -282l282 -282l-212 -212l-282 282l-282 -282z" />
|
||||
<glyph unicode="" d="M23 693q0 200 142 342t342 142t342 -142t142 -342q0 -142 -78 -261l300 -300q7 -8 7 -18t-7 -18l-109 -109q-8 -7 -18 -7t-18 7l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 693q0 -136 97 -233t234 -97t233.5 96.5t96.5 233.5t-96.5 233.5t-233.5 96.5 t-234 -97t-97 -233zM300 600v200h100v100h200v-100h100v-200h-100v-100h-200v100h-100z" />
|
||||
<glyph unicode="" d="M23 694q0 200 142 342t342 142t342 -142t142 -342q0 -141 -78 -262l300 -299q7 -7 7 -18t-7 -18l-109 -109q-8 -8 -18 -8t-18 8l-300 300q-119 -78 -261 -78q-200 0 -342 142t-142 342zM176 694q0 -136 97 -233t234 -97t233.5 97t96.5 233t-96.5 233t-233.5 97t-234 -97 t-97 -233zM300 601h400v200h-400v-200z" />
|
||||
<glyph unicode="" d="M23 600q0 183 105 331t272 210v-166q-103 -55 -165 -155t-62 -220q0 -177 125 -302t302 -125t302 125t125 302q0 120 -62 220t-165 155v166q167 -62 272 -210t105 -331q0 -118 -45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5 zM500 750q0 -21 14.5 -35.5t35.5 -14.5h100q21 0 35.5 14.5t14.5 35.5v400q0 21 -14.5 35.5t-35.5 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-400z" />
|
||||
<glyph unicode="" d="M100 1h200v300h-200v-300zM400 1v500h200v-500h-200zM700 1v800h200v-800h-200zM1000 1v1200h200v-1200h-200z" />
|
||||
<glyph unicode="" d="M26 601q0 -33 6 -74l151 -38l2 -6q14 -49 38 -93l3 -5l-80 -134q45 -59 105 -105l133 81l5 -3q45 -26 94 -39l5 -2l38 -151q40 -5 74 -5q27 0 74 5l38 151l6 2q46 13 93 39l5 3l134 -81q56 44 104 105l-80 134l3 5q24 44 39 93l1 6l152 38q5 40 5 74q0 28 -5 73l-152 38 l-1 6q-16 51 -39 93l-3 5l80 134q-44 58 -104 105l-134 -81l-5 3q-45 25 -93 39l-6 1l-38 152q-40 5 -74 5q-27 0 -74 -5l-38 -152l-5 -1q-50 -14 -94 -39l-5 -3l-133 81q-59 -47 -105 -105l80 -134l-3 -5q-25 -47 -38 -93l-2 -6l-151 -38q-6 -48 -6 -73zM385 601 q0 88 63 151t152 63t152 -63t63 -151q0 -89 -63 -152t-152 -63t-152 63t-63 152z" />
|
||||
<glyph unicode="" d="M100 1025v50q0 10 7.5 17.5t17.5 7.5h275v100q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5v-100h275q10 0 17.5 -7.5t7.5 -17.5v-50q0 -11 -7 -18t-18 -7h-1050q-11 0 -18 7t-7 18zM200 100v800h900v-800q0 -41 -29.5 -71t-70.5 -30h-700q-41 0 -70.5 30 t-29.5 71zM300 100h100v700h-100v-700zM500 100h100v700h-100v-700zM500 1100h300v100h-300v-100zM700 100h100v700h-100v-700zM900 100h100v700h-100v-700z" />
|
||||
<glyph unicode="" d="M1 601l656 644l644 -644h-200v-600h-300v400h-300v-400h-300v600h-200z" />
|
||||
<glyph unicode="" d="M100 25v1150q0 11 7 18t18 7h475v-500h400v-675q0 -11 -7 -18t-18 -7h-850q-11 0 -18 7t-7 18zM700 800v300l300 -300h-300z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 500v400h100 v-300h200v-100h-300z" />
|
||||
<glyph unicode="" d="M-100 0l431 1200h209l-21 -300h162l-20 300h208l431 -1200h-538l-41 400h-242l-40 -400h-539zM488 500h224l-27 300h-170z" />
|
||||
<glyph unicode="" d="M0 0v400h490l-290 300h200v500h300v-500h200l-290 -300h490v-400h-1100zM813 200h175v100h-175v-100z" />
|
||||
<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM188 600q0 -170 121 -291t291 -121t291 121t121 291t-121 291t-291 121 t-291 -121t-121 -291zM350 600h150v300h200v-300h150l-250 -300z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM350 600l250 300 l250 -300h-150v-300h-200v300h-150z" />
|
||||
<glyph unicode="" d="M0 25v475l200 700h800l199 -700l1 -475q0 -11 -7 -18t-18 -7h-1150q-11 0 -18 7t-7 18zM200 500h200l50 -200h300l50 200h200l-97 500h-606z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM500 397v401 l297 -200z" />
|
||||
<glyph unicode="" d="M23 600q0 -118 45.5 -224.5t123 -184t184 -123t224.5 -45.5t224.5 45.5t184 123t123 184t45.5 224.5h-150q0 -177 -125 -302t-302 -125t-302 125t-125 302t125 302t302 125q136 0 246 -81l-146 -146h400v400l-145 -145q-157 122 -355 122q-118 0 -224.5 -45.5t-184 -123 t-123 -184t-45.5 -224.5z" />
|
||||
<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5q198 0 355 -122l145 145v-400h-400l147 147q-112 80 -247 80q-177 0 -302 -125t-125 -302h-150zM100 0v400h400l-147 -147q112 -80 247 -80q177 0 302 125t125 302h150q0 -118 -45.5 -224.5t-123 -184t-184 -123 t-224.5 -45.5q-198 0 -355 122z" />
|
||||
<glyph unicode="" d="M100 0h1100v1200h-1100v-1200zM200 100v900h900v-900h-900zM300 200v100h100v-100h-100zM300 400v100h100v-100h-100zM300 600v100h100v-100h-100zM300 800v100h100v-100h-100zM500 200h500v100h-500v-100zM500 400v100h500v-100h-500zM500 600v100h500v-100h-500z M500 800v100h500v-100h-500z" />
|
||||
<glyph unicode="" d="M0 100v600q0 41 29.5 70.5t70.5 29.5h100v200q0 82 59 141t141 59h300q82 0 141 -59t59 -141v-200h100q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-900q-41 0 -70.5 29.5t-29.5 70.5zM400 800h300v150q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-150z" />
|
||||
<glyph unicode="" d="M100 0v1100h100v-1100h-100zM300 400q60 60 127.5 84t127.5 17.5t122 -23t119 -30t110 -11t103 42t91 120.5v500q-40 -81 -101.5 -115.5t-127.5 -29.5t-138 25t-139.5 40t-125.5 25t-103 -29.5t-65 -115.5v-500z" />
|
||||
<glyph unicode="" d="M0 275q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 127 70.5 231.5t184.5 161.5t245 57t245 -57t184.5 -161.5t70.5 -231.5v-300q0 -11 7 -18t18 -7h50q11 0 18 7t7 18v300q0 116 -49.5 227t-131 192.5t-192.5 131t-227 49.5t-227 -49.5t-192.5 -131t-131 -192.5 t-49.5 -227v-300zM200 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14zM800 20v460q0 8 6 14t14 6h160q8 0 14 -6t6 -14v-460q0 -8 -6 -14t-14 -6h-160q-8 0 -14 6t-6 14z" />
|
||||
<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM688 459l141 141l-141 141l71 71l141 -141l141 141l71 -71l-141 -141l141 -141l-71 -71l-141 141l-141 -141z" />
|
||||
<glyph unicode="" d="M0 400h300l300 -200v800l-300 -200h-300v-400zM700 857l69 53q111 -135 111 -310q0 -169 -106 -302l-67 54q86 110 86 248q0 146 -93 257z" />
|
||||
<glyph unicode="" d="M0 401v400h300l300 200v-800l-300 200h-300zM702 858l69 53q111 -135 111 -310q0 -170 -106 -303l-67 55q86 110 86 248q0 145 -93 257zM889 951l7 -8q123 -151 123 -344q0 -189 -119 -339l-7 -8l81 -66l6 8q142 178 142 405q0 230 -144 408l-6 8z" />
|
||||
<glyph unicode="" d="M0 0h500v500h-200v100h-100v-100h-200v-500zM0 600h100v100h400v100h100v100h-100v300h-500v-600zM100 100v300h300v-300h-300zM100 800v300h300v-300h-300zM200 200v100h100v-100h-100zM200 900h100v100h-100v-100zM500 500v100h300v-300h200v-100h-100v-100h-200v100 h-100v100h100v200h-200zM600 0v100h100v-100h-100zM600 1000h100v-300h200v-300h300v200h-200v100h200v500h-600v-200zM800 800v300h300v-300h-300zM900 0v100h300v-100h-300zM900 900v100h100v-100h-100zM1100 200v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M0 200h100v1000h-100v-1000zM100 0v100h300v-100h-300zM200 200v1000h100v-1000h-100zM500 0v91h100v-91h-100zM500 200v1000h200v-1000h-200zM700 0v91h100v-91h-100zM800 200v1000h100v-1000h-100zM900 0v91h200v-91h-200zM1000 200v1000h200v-1000h-200z" />
|
||||
<glyph unicode="" d="M0 700l1 475q0 10 7.5 17.5t17.5 7.5h474l700 -700l-500 -500zM148 953q0 -42 29 -71q30 -30 71.5 -30t71.5 30q29 29 29 71t-29 71q-30 30 -71.5 30t-71.5 -30q-29 -29 -29 -71z" />
|
||||
<glyph unicode="" d="M1 700l1 475q0 11 7 18t18 7h474l700 -700l-500 -500zM148 953q0 -42 30 -71q29 -30 71 -30t71 30q30 29 30 71t-30 71q-29 30 -71 30t-71 -30q-30 -29 -30 -71zM701 1200h100l700 -700l-500 -500l-50 50l450 450z" />
|
||||
<glyph unicode="" d="M100 0v1025l175 175h925v-1000l-100 -100v1000h-750l-100 -100h750v-1000h-900z" />
|
||||
<glyph unicode="" d="M200 0l450 444l450 -443v1150q0 20 -14.5 35t-35.5 15h-800q-21 0 -35.5 -15t-14.5 -35v-1151z" />
|
||||
<glyph unicode="" d="M0 100v700h200l100 -200h600l100 200h200v-700h-200v200h-800v-200h-200zM253 829l40 -124h592l62 124l-94 346q-2 11 -10 18t-18 7h-450q-10 0 -18 -7t-10 -18zM281 24l38 152q2 10 11.5 17t19.5 7h500q10 0 19.5 -7t11.5 -17l38 -152q2 -10 -3.5 -17t-15.5 -7h-600 q-10 0 -15.5 7t-3.5 17z" />
|
||||
<glyph unicode="" d="M0 200q0 -41 29.5 -70.5t70.5 -29.5h1000q41 0 70.5 29.5t29.5 70.5v600q0 41 -29.5 70.5t-70.5 29.5h-150q-4 8 -11.5 21.5t-33 48t-53 61t-69 48t-83.5 21.5h-200q-41 0 -82 -20.5t-70 -50t-52 -59t-34 -50.5l-12 -20h-150q-41 0 -70.5 -29.5t-29.5 -70.5v-600z M356 500q0 100 72 172t172 72t172 -72t72 -172t-72 -172t-172 -72t-172 72t-72 172zM494 500q0 -44 31 -75t75 -31t75 31t31 75t-31 75t-75 31t-75 -31t-31 -75zM900 700v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M53 0h365v66q-41 0 -72 11t-49 38t1 71l92 234h391l82 -222q16 -45 -5.5 -88.5t-74.5 -43.5v-66h417v66q-34 1 -74 43q-18 19 -33 42t-21 37l-6 13l-385 998h-93l-399 -1006q-24 -48 -52 -75q-12 -12 -33 -25t-36 -20l-15 -7v-66zM416 521l178 457l46 -140l116 -317h-340 z" />
|
||||
<glyph unicode="" d="M100 0v89q41 7 70.5 32.5t29.5 65.5v827q0 28 -1 39.5t-5.5 26t-15.5 21t-29 14t-49 14.5v71l471 -1q120 0 213 -88t93 -228q0 -55 -11.5 -101.5t-28 -74t-33.5 -47.5t-28 -28l-12 -7q8 -3 21.5 -9t48 -31.5t60.5 -58t47.5 -91.5t21.5 -129q0 -84 -59 -156.5t-142 -111 t-162 -38.5h-500zM400 200h161q89 0 153 48.5t64 132.5q0 90 -62.5 154.5t-156.5 64.5h-159v-400zM400 700h139q76 0 130 61.5t54 138.5q0 82 -84 130.5t-239 48.5v-379z" />
|
||||
<glyph unicode="" d="M200 0v57q77 7 134.5 40.5t65.5 80.5l173 849q10 56 -10 74t-91 37q-6 1 -10.5 2.5t-9.5 2.5v57h425l2 -57q-33 -8 -62 -25.5t-46 -37t-29.5 -38t-17.5 -30.5l-5 -12l-128 -825q-10 -52 14 -82t95 -36v-57h-500z" />
|
||||
<glyph unicode="" d="M-75 200h75v800h-75l125 167l125 -167h-75v-800h75l-125 -167zM300 900v300h150h700h150v-300h-50q0 29 -8 48.5t-18.5 30t-33.5 15t-39.5 5.5t-50.5 1h-200v-850l100 -50v-100h-400v100l100 50v850h-200q-34 0 -50.5 -1t-40 -5.5t-33.5 -15t-18.5 -30t-8.5 -48.5h-49z " />
|
||||
<glyph unicode="" d="M33 51l167 125v-75h800v75l167 -125l-167 -125v75h-800v-75zM100 901v300h150h700h150v-300h-50q0 29 -8 48.5t-18 30t-33.5 15t-40 5.5t-50.5 1h-200v-650l100 -50v-100h-400v100l100 50v650h-200q-34 0 -50.5 -1t-39.5 -5.5t-33.5 -15t-18.5 -30t-8 -48.5h-50z" />
|
||||
<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 350q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM0 650q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1000q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 950q0 -20 14.5 -35t35.5 -15h600q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-600q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
|
||||
<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM0 650q0 -20 14.5 -35t35.5 -15h1100q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5 v-100zM200 350q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM200 950q0 -20 14.5 -35t35.5 -15h700q21 0 35.5 15t14.5 35v100q0 21 -14.5 35.5t-35.5 14.5h-700q-21 0 -35.5 -14.5 t-14.5 -35.5v-100z" />
|
||||
<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM100 650v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1000q-21 0 -35.5 15 t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM500 950v100q0 21 14.5 35.5t35.5 14.5h600q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-600 q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h1100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-1100 q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M0 50v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 350v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM0 650v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15t-14.5 35zM0 950v100q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-100q-21 0 -35.5 15 t-14.5 35zM300 50v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 350v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800 q-21 0 -35.5 15t-14.5 35zM300 650v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15h-800q-21 0 -35.5 15t-14.5 35zM300 950v100q0 21 14.5 35.5t35.5 14.5h800q21 0 35.5 -14.5t14.5 -35.5v-100q0 -20 -14.5 -35t-35.5 -15 h-800q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M-101 500v100h201v75l166 -125l-166 -125v75h-201zM300 0h100v1100h-100v-1100zM500 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35 v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 650q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM500 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100 q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100z" />
|
||||
<glyph unicode="" d="M1 50q0 -20 14.5 -35t35.5 -15h600q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-600q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 350q0 -20 14.5 -35t35.5 -15h300q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-300q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 650 q0 -20 14.5 -35t35.5 -15h500q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-500q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM1 950q0 -20 14.5 -35t35.5 -15h100q20 0 35 15t15 35v100q0 21 -15 35.5t-35 14.5h-100q-21 0 -35.5 -14.5t-14.5 -35.5v-100zM801 0v1100h100v-1100 h-100zM934 550l167 -125v75h200v100h-200v75z" />
|
||||
<glyph unicode="" d="M0 275v650q0 31 22 53t53 22h750q31 0 53 -22t22 -53v-650q0 -31 -22 -53t-53 -22h-750q-31 0 -53 22t-22 53zM900 600l300 300v-600z" />
|
||||
<glyph unicode="" d="M0 44v1012q0 18 13 31t31 13h1112q19 0 31.5 -13t12.5 -31v-1012q0 -18 -12.5 -31t-31.5 -13h-1112q-18 0 -31 13t-13 31zM100 263l247 182l298 -131l-74 156l293 318l236 -288v500h-1000v-737zM208 750q0 56 39 95t95 39t95 -39t39 -95t-39 -95t-95 -39t-95 39t-39 95z " />
|
||||
<glyph unicode="" d="M148 745q0 124 60.5 231.5t165 172t226.5 64.5q123 0 227 -63t164.5 -169.5t60.5 -229.5t-73 -272q-73 -114 -166.5 -237t-150.5 -189l-57 -66q-10 9 -27 26t-66.5 70.5t-96 109t-104 135.5t-100.5 155q-63 139 -63 262zM342 772q0 -107 75.5 -182.5t181.5 -75.5 q107 0 182.5 75.5t75.5 182.5t-75.5 182t-182.5 75t-182 -75.5t-75 -181.5z" />
|
||||
<glyph unicode="" d="M1 600q0 122 47.5 233t127.5 191t191 127.5t233 47.5t233 -47.5t191 -127.5t127.5 -191t47.5 -233t-47.5 -233t-127.5 -191t-191 -127.5t-233 -47.5t-233 47.5t-191 127.5t-127.5 191t-47.5 233zM173 600q0 -177 125.5 -302t301.5 -125v854q-176 0 -301.5 -125 t-125.5 -302z" />
|
||||
<glyph unicode="" d="M117 406q0 94 34 186t88.5 172.5t112 159t115 177t87.5 194.5q21 -71 57.5 -142.5t76 -130.5t83 -118.5t82 -117t70 -116t50 -125.5t18.5 -136q0 -89 -39 -165.5t-102 -126.5t-140 -79.5t-156 -33.5q-114 6 -211.5 53t-161.5 139t-64 210zM243 414q14 -82 59.5 -136 t136.5 -80l16 98q-7 6 -18 17t-34 48t-33 77q-15 73 -14 143.5t10 122.5l9 51q-92 -110 -119.5 -185t-12.5 -156z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5q366 -6 397 -14l-186 -186h-311q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v125l200 200v-225q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM436 341l161 50l412 412l-114 113l-405 -405zM995 1015l113 -113l113 113l-21 85l-92 28z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h261l2 -80q-133 -32 -218 -120h-145q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5l200 153v-53q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5 zM423 524q30 38 81.5 64t103 35.5t99 14t77.5 3.5l29 -1v-209l360 324l-359 318v-216q-7 0 -19 -1t-48 -8t-69.5 -18.5t-76.5 -37t-76.5 -59t-62 -88t-39.5 -121.5z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q61 0 127 -23l-178 -177h-349q-41 0 -70.5 -29.5t-29.5 -70.5v-500q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v69l200 200v-169q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5 t-117.5 282.5zM342 632l283 -284l567 567l-137 137l-430 -431l-146 147z" />
|
||||
<glyph unicode="" d="M0 603l300 296v-198h200v200h-200l300 300l295 -300h-195v-200h200v198l300 -296l-300 -300v198h-200v-200h195l-295 -300l-300 300h200v200h-200v-198z" />
|
||||
<glyph unicode="" d="M200 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-1100l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M0 50v1000q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-437l500 487v-487l500 487v-1100l-500 488v-488l-500 488v-438q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5z" />
|
||||
<glyph unicode="" d="M136 550l564 550v-487l500 487v-1100l-500 488v-488z" />
|
||||
<glyph unicode="" d="M200 0l900 550l-900 550v-1100z" />
|
||||
<glyph unicode="" d="M200 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200q-21 0 -35.5 -14.5t-14.5 -35.5v-800zM600 150q0 -21 14.5 -35.5t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v800q0 21 -14.5 35.5t-35.5 14.5h-200 q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
|
||||
<glyph unicode="" d="M200 150q0 -20 14.5 -35t35.5 -15h800q21 0 35.5 15t14.5 35v800q0 21 -14.5 35.5t-35.5 14.5h-800q-21 0 -35.5 -14.5t-14.5 -35.5v-800z" />
|
||||
<glyph unicode="" d="M0 0v1100l500 -487v487l564 -550l-564 -550v488z" />
|
||||
<glyph unicode="" d="M0 0v1100l500 -487v487l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438l-500 -488v488z" />
|
||||
<glyph unicode="" d="M300 0v1100l500 -487v437q0 21 14.5 35.5t35.5 14.5h100q21 0 35.5 -14.5t14.5 -35.5v-1000q0 -21 -14.5 -35.5t-35.5 -14.5h-100q-21 0 -35.5 14.5t-14.5 35.5v438z" />
|
||||
<glyph unicode="" d="M100 250v100q0 21 14.5 35.5t35.5 14.5h1000q21 0 35.5 -14.5t14.5 -35.5v-100q0 -21 -14.5 -35.5t-35.5 -14.5h-1000q-21 0 -35.5 14.5t-14.5 35.5zM100 500h1100l-550 564z" />
|
||||
<glyph unicode="" d="M185 599l592 -592l240 240l-353 353l353 353l-240 240z" />
|
||||
<glyph unicode="" d="M272 194l353 353l-353 353l241 240l572 -571l21 -22l-1 -1v-1l-592 -591z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h200v-200h200v200h200v200h-200v200h-200v-200h-200v-200z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM300 500h600v200h-600v-200z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM246 459l213 -213l141 142l141 -142l213 213l-142 141l142 141l-213 212l-141 -141l-141 142l-212 -213l141 -141 z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM270 551l276 -277l411 411l-175 174l-236 -236l-102 102z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM364 700h143q4 0 11.5 -1t11 -1t6.5 3t3 9t1 11t3.5 8.5t3.5 6t5.5 4t6.5 2.5t9 1.5t9 0.5h11.5h12.5 q19 0 30 -10t11 -26q0 -22 -4 -28t-27 -22q-5 -1 -12.5 -3t-27 -13.5t-34 -27t-26.5 -46t-11 -68.5h200q5 3 14 8t31.5 25.5t39.5 45.5t31 69t14 94q0 51 -17.5 89t-42 58t-58.5 32t-58.5 15t-51.5 3q-50 0 -90.5 -12t-75 -38.5t-53.5 -74.5t-19 -114zM500 300h200v100h-200 v-100z" />
|
||||
<glyph unicode="" d="M3 600q0 162 80 299.5t217.5 217.5t299.5 80t299.5 -80t217.5 -217.5t80 -299.5t-80 -299.5t-217.5 -217.5t-299.5 -80t-299.5 80t-217.5 217.5t-80 299.5zM400 300h400v100h-100v300h-300v-100h100v-200h-100v-100zM500 800h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M0 500v200h195q31 125 98.5 199.5t206.5 100.5v200h200v-200q54 -20 113 -60t112.5 -105.5t71.5 -134.5h203v-200h-203q-25 -102 -116.5 -186t-180.5 -117v-197h-200v197q-140 27 -208 102.5t-98 200.5h-194zM290 500q24 -73 79.5 -127.5t130.5 -78.5v206h200v-206 q149 48 201 206h-201v200h200q-25 74 -75.5 127t-124.5 77v-204h-200v203q-75 -23 -130 -77t-79 -126h209v-200h-210z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM356 465l135 135 l-135 135l109 109l135 -135l135 135l109 -109l-135 -135l135 -135l-109 -109l-135 135l-135 -135z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM322 537l141 141 l87 -87l204 205l142 -142l-346 -345z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -115 62 -215l568 567q-100 62 -216 62q-171 0 -292.5 -121.5t-121.5 -292.5zM391 245q97 -59 209 -59q171 0 292.5 121.5t121.5 292.5 q0 112 -59 209z" />
|
||||
<glyph unicode="" d="M0 547l600 453v-300h600v-300h-600v-301z" />
|
||||
<glyph unicode="" d="M0 400v300h600v300l600 -453l-600 -448v301h-600z" />
|
||||
<glyph unicode="" d="M204 600l450 600l444 -600h-298v-600h-300v600h-296z" />
|
||||
<glyph unicode="" d="M104 600h296v600h300v-600h298l-449 -600z" />
|
||||
<glyph unicode="" d="M0 200q6 132 41 238.5t103.5 193t184 138t271.5 59.5v271l600 -453l-600 -448v301q-95 -2 -183 -20t-170 -52t-147 -92.5t-100 -135.5z" />
|
||||
<glyph unicode="" d="M0 0v400l129 -129l294 294l142 -142l-294 -294l129 -129h-400zM635 777l142 -142l294 294l129 -129v400h-400l129 -129z" />
|
||||
<glyph unicode="" d="M34 176l295 295l-129 129h400v-400l-129 130l-295 -295zM600 600v400l129 -129l295 295l142 -141l-295 -295l129 -130h-400z" />
|
||||
<glyph unicode="" d="M23 600q0 118 45.5 224.5t123 184t184 123t224.5 45.5t224.5 -45.5t184 -123t123 -184t45.5 -224.5t-45.5 -224.5t-123 -184t-184 -123t-224.5 -45.5t-224.5 45.5t-184 123t-123 184t-45.5 224.5zM456 851l58 -302q4 -20 21.5 -34.5t37.5 -14.5h54q20 0 37.5 14.5 t21.5 34.5l58 302q4 20 -8 34.5t-32 14.5h-207q-21 0 -33 -14.5t-8 -34.5zM500 300h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M0 800h100v-200h400v300h200v-300h400v200h100v100h-111q1 1 1 6.5t-1.5 15t-3.5 17.5l-34 172q-11 39 -41.5 63t-69.5 24q-32 0 -61 -17l-239 -144q-22 -13 -40 -35q-19 24 -40 36l-238 144q-33 18 -62 18q-39 0 -69.5 -23t-40.5 -61l-35 -177q-2 -8 -3 -18t-1 -15v-6 h-111v-100zM100 0h400v400h-400v-400zM200 900q-3 0 14 48t36 96l18 47l213 -191h-281zM700 0v400h400v-400h-400zM731 900l202 197q5 -12 12 -32.5t23 -64t25 -72t7 -28.5h-269z" />
|
||||
<glyph unicode="" d="M0 -22v143l216 193q-9 53 -13 83t-5.5 94t9 113t38.5 114t74 124q47 60 99.5 102.5t103 68t127.5 48t145.5 37.5t184.5 43.5t220 58.5q0 -189 -22 -343t-59 -258t-89 -181.5t-108.5 -120t-122 -68t-125.5 -30t-121.5 -1.5t-107.5 12.5t-87.5 17t-56.5 7.5l-99 -55z M238.5 300.5q19.5 -6.5 86.5 76.5q55 66 367 234q70 38 118.5 69.5t102 79t99 111.5t86.5 148q22 50 24 60t-6 19q-7 5 -17 5t-26.5 -14.5t-33.5 -39.5q-35 -51 -113.5 -108.5t-139.5 -89.5l-61 -32q-369 -197 -458 -401q-48 -111 -28.5 -117.5z" />
|
||||
<glyph unicode="" d="M111 408q0 -33 5 -63q9 -56 44 -119.5t105 -108.5q31 -21 64 -16t62 23.5t57 49.5t48 61.5t35 60.5q32 66 39 184.5t-13 157.5q79 -80 122 -164t26 -184q-5 -33 -20.5 -69.5t-37.5 -80.5q-10 -19 -14.5 -29t-12 -26t-9 -23.5t-3 -19t2.5 -15.5t11 -9.5t19.5 -5t30.5 2.5 t42 8q57 20 91 34t87.5 44.5t87 64t65.5 88.5t47 122q38 172 -44.5 341.5t-246.5 278.5q22 -44 43 -129q39 -159 -32 -154q-15 2 -33 9q-79 33 -120.5 100t-44 175.5t48.5 257.5q-13 -8 -34 -23.5t-72.5 -66.5t-88.5 -105.5t-60 -138t-8 -166.5q2 -12 8 -41.5t8 -43t6 -39.5 t3.5 -39.5t-1 -33.5t-6 -31.5t-13.5 -24t-21 -20.5t-31 -12q-38 -10 -67 13t-40.5 61.5t-15 81.5t10.5 75q-52 -46 -83.5 -101t-39 -107t-7.5 -85z" />
|
||||
<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5t145.5 -23.5t132.5 -59t116.5 -83.5t97 -90t74.5 -85.5t49 -63.5t20 -30l26 -40l-26 -40q-6 -10 -20 -30t-49 -63.5t-74.5 -85.5t-97 -90t-116.5 -83.5t-132.5 -59t-145.5 -23.5 t-145.5 23.5t-132.5 59t-116.5 83.5t-97 90t-74.5 85.5t-49 63.5t-20 30zM120 600q7 -10 40.5 -58t56 -78.5t68 -77.5t87.5 -75t103 -49.5t125 -21.5t123.5 20t100.5 45.5t85.5 71.5t66.5 75.5t58 81.5t47 66q-1 1 -28.5 37.5t-42 55t-43.5 53t-57.5 63.5t-58.5 54 q49 -74 49 -163q0 -124 -88 -212t-212 -88t-212 88t-88 212q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l105 105q-37 24 -75 72t-57 84l-20 36z" />
|
||||
<glyph unicode="" d="M-61 600l26 40q6 10 20 30t49 63.5t74.5 85.5t97 90t116.5 83.5t132.5 59t145.5 23.5q61 0 121 -17l37 142h148l-314 -1200h-148l37 143q-82 21 -165 71.5t-140 102t-109.5 112t-72 88.5t-29.5 43zM120 600q210 -282 393 -336l37 141q-107 18 -178.5 101.5t-71.5 193.5 q0 85 46 158q-102 -87 -226 -258zM377 656q49 -124 154 -191l47 47l23 87q-30 28 -59 69t-44 68l-14 26zM780 161l38 145q22 15 44.5 34t46 44t40.5 44t41 50.5t33.5 43.5t33 44t24.5 34q-97 127 -140 175l39 146q67 -54 131.5 -125.5t87.5 -103.5t36 -52l26 -40l-26 -40 q-7 -12 -25.5 -38t-63.5 -79.5t-95.5 -102.5t-124 -100t-146.5 -79z" />
|
||||
<glyph unicode="" d="M-97.5 34q13.5 -34 50.5 -34h1294q37 0 50.5 35.5t-7.5 67.5l-642 1056q-20 34 -48 36.5t-48 -29.5l-642 -1066q-21 -32 -7.5 -66zM155 200l445 723l445 -723h-345v100h-200v-100h-345zM500 600l100 -300l100 300v100h-200v-100z" />
|
||||
<glyph unicode="" d="M100 262v41q0 20 11 44.5t26 38.5l363 325v339q0 62 44 106t106 44t106 -44t44 -106v-339l363 -325q15 -14 26 -38.5t11 -44.5v-41q0 -20 -12 -26.5t-29 5.5l-359 249v-263q100 -91 100 -113v-64q0 -20 -13 -28.5t-32 0.5l-94 78h-222l-94 -78q-19 -9 -32 -0.5t-13 28.5 v64q0 22 100 113v263l-359 -249q-17 -12 -29 -5.5t-12 26.5z" />
|
||||
<glyph unicode="" d="M0 50q0 -20 14.5 -35t35.5 -15h1000q21 0 35.5 15t14.5 35v750h-1100v-750zM0 900h1100v150q0 21 -14.5 35.5t-35.5 14.5h-150v100h-100v-100h-500v100h-100v-100h-150q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 100v100h100v-100h-100zM100 300v100h100v-100h-100z M100 500v100h100v-100h-100zM300 100v100h100v-100h-100zM300 300v100h100v-100h-100zM300 500v100h100v-100h-100zM500 100v100h100v-100h-100zM500 300v100h100v-100h-100zM500 500v100h100v-100h-100zM700 100v100h100v-100h-100zM700 300v100h100v-100h-100zM700 500 v100h100v-100h-100zM900 100v100h100v-100h-100zM900 300v100h100v-100h-100zM900 500v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M0 200v200h259l600 600h241v198l300 -295l-300 -300v197h-159l-600 -600h-341zM0 800h259l122 -122l141 142l-181 180h-341v-200zM678 381l141 142l122 -123h159v198l300 -295l-300 -300v197h-241z" />
|
||||
<glyph unicode="" d="M0 400v600q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-600q0 -41 -29.5 -70.5t-70.5 -29.5h-596l-304 -300v300h-100q-41 0 -70.5 29.5t-29.5 70.5z" />
|
||||
<glyph unicode="" d="M100 600v200h300v-250q0 -113 6 -145q17 -92 102 -117q39 -11 92 -11q37 0 66.5 5.5t50 15.5t36 24t24 31.5t14 37.5t7 42t2.5 45t0 47v25v250h300v-200q0 -42 -3 -83t-15 -104t-31.5 -116t-58 -109.5t-89 -96.5t-129 -65.5t-174.5 -25.5t-174.5 25.5t-129 65.5t-89 96.5 t-58 109.5t-31.5 116t-15 104t-3 83zM100 900v300h300v-300h-300zM800 900v300h300v-300h-300z" />
|
||||
<glyph unicode="" d="M-30 411l227 -227l352 353l353 -353l226 227l-578 579z" />
|
||||
<glyph unicode="" d="M70 797l580 -579l578 579l-226 227l-353 -353l-352 353z" />
|
||||
<glyph unicode="" d="M-198 700l299 283l300 -283h-203v-400h385l215 -200h-800v600h-196zM402 1000l215 -200h381v-400h-198l299 -283l299 283h-200v600h-796z" />
|
||||
<glyph unicode="" d="M18 939q-5 24 10 42q14 19 39 19h896l38 162q5 17 18.5 27.5t30.5 10.5h94q20 0 35 -14.5t15 -35.5t-15 -35.5t-35 -14.5h-54l-201 -961q-2 -4 -6 -10.5t-19 -17.5t-33 -11h-31v-50q0 -20 -14.5 -35t-35.5 -15t-35.5 15t-14.5 35v50h-300v-50q0 -20 -14.5 -35t-35.5 -15 t-35.5 15t-14.5 35v50h-50q-21 0 -35.5 15t-14.5 35q0 21 14.5 35.5t35.5 14.5h535l48 200h-633q-32 0 -54.5 21t-27.5 43z" />
|
||||
<glyph unicode="" d="M0 0v800h1200v-800h-1200zM0 900v100h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-100h-1200z" />
|
||||
<glyph unicode="" d="M1 0l300 700h1200l-300 -700h-1200zM1 400v600h200q0 41 29.5 70.5t70.5 29.5h300q41 0 70.5 -29.5t29.5 -70.5h500v-200h-1000z" />
|
||||
<glyph unicode="" d="M302 300h198v600h-198l298 300l298 -300h-198v-600h198l-298 -300z" />
|
||||
<glyph unicode="" d="M0 600l300 298v-198h600v198l300 -298l-300 -297v197h-600v-197z" />
|
||||
<glyph unicode="" d="M0 100v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM31 400l172 739q5 22 23 41.5t38 19.5h672q19 0 37.5 -22.5t23.5 -45.5l172 -732h-1138zM800 100h100v100h-100v-100z M1000 100h100v100h-100v-100z" />
|
||||
<glyph unicode="" d="M-101 600v50q0 24 25 49t50 38l25 13v-250l-11 5.5t-24 14t-30 21.5t-24 27.5t-11 31.5zM100 500v250v8v8v7t0.5 7t1.5 5.5t2 5t3 4t4.5 3.5t6 1.5t7.5 0.5h200l675 250v-850l-675 200h-38l47 -276q2 -12 -3 -17.5t-11 -6t-21 -0.5h-8h-83q-20 0 -34.5 14t-18.5 35 q-55 337 -55 351zM1100 200v850q0 21 14.5 35.5t35.5 14.5q20 0 35 -14.5t15 -35.5v-850q0 -20 -15 -35t-35 -15q-21 0 -35.5 15t-14.5 35z" />
|
||||
<glyph unicode="" d="M74 350q0 21 13.5 35.5t33.5 14.5h18l117 173l63 327q15 77 76 140t144 83l-18 32q-6 19 3 32t29 13h94q20 0 29 -10.5t3 -29.5q-18 -36 -18 -37q83 -19 144 -82.5t76 -140.5l63 -327l118 -173h17q20 0 33.5 -14.5t13.5 -35.5q0 -20 -13 -40t-31 -27q-8 -3 -23 -8.5 t-65 -20t-103 -25t-132.5 -19.5t-158.5 -9q-125 0 -245.5 20.5t-178.5 40.5l-58 20q-18 7 -31 27.5t-13 40.5zM497 110q12 -49 40 -79.5t63 -30.5t63 30.5t39 79.5q-48 -6 -102 -6t-103 6z" />
|
||||
<glyph unicode="" d="M21 445l233 -45l-78 -224l224 78l45 -233l155 179l155 -179l45 233l224 -78l-78 224l234 45l-180 155l180 156l-234 44l78 225l-224 -78l-45 233l-155 -180l-155 180l-45 -233l-224 78l78 -225l-233 -44l179 -156z" />
|
||||
<glyph unicode="" d="M0 200h200v600h-200v-600zM300 275q0 -75 100 -75h61q124 -100 139 -100h250q46 0 83 57l238 344q29 31 29 74v100q0 44 -30.5 84.5t-69.5 40.5h-328q28 118 28 125v150q0 44 -30.5 84.5t-69.5 40.5h-50q-27 0 -51 -20t-38 -48l-96 -198l-145 -196q-20 -26 -20 -63v-400z M400 300v375l150 213l100 212h50v-175l-50 -225h450v-125l-250 -375h-214l-136 100h-100z" />
|
||||
<glyph unicode="" d="M0 400v600h200v-600h-200zM300 525v400q0 75 100 75h61q124 100 139 100h250q46 0 83 -57l238 -344q29 -31 29 -74v-100q0 -44 -30.5 -84.5t-69.5 -40.5h-328q28 -118 28 -125v-150q0 -44 -30.5 -84.5t-69.5 -40.5h-50q-27 0 -51 20t-38 48l-96 198l-145 196 q-20 26 -20 63zM400 525l150 -212l100 -213h50v175l-50 225h450v125l-250 375h-214l-136 -100h-100v-375z" />
|
||||
<glyph unicode="" d="M8 200v600h200v-600h-200zM308 275v525q0 17 14 35.5t28 28.5l14 9l362 230q14 6 25 6q17 0 29 -12l109 -112q14 -14 14 -34q0 -18 -11 -32l-85 -121h302q85 0 138.5 -38t53.5 -110t-54.5 -111t-138.5 -39h-107l-130 -339q-7 -22 -20.5 -41.5t-28.5 -19.5h-341 q-7 0 -90 81t-83 94zM408 289l100 -89h293l131 339q6 21 19.5 41t28.5 20h203q16 0 25 15t9 36q0 20 -9 34.5t-25 14.5h-457h-6.5h-7.5t-6.5 0.5t-6 1t-5 1.5t-5.5 2.5t-4 4t-4 5.5q-5 12 -5 20q0 14 10 27l147 183l-86 83l-339 -236v-503z" />
|
||||
<glyph unicode="" d="M-101 651q0 72 54 110t139 38l302 -1l-85 121q-11 16 -11 32q0 21 14 34l109 113q13 12 29 12q11 0 25 -6l365 -230q7 -4 17 -10.5t26.5 -26t16.5 -36.5v-526q0 -13 -86 -93.5t-94 -80.5h-341q-16 0 -29.5 20t-19.5 41l-130 339h-107q-84 0 -139 39t-55 111zM-1 601h222 q15 0 28.5 -20.5t19.5 -40.5l131 -339h293l107 89v502l-343 237l-87 -83l145 -184q10 -11 10 -26q0 -11 -5 -20q-1 -3 -3.5 -5.5l-4 -4t-5 -2.5t-5.5 -1.5t-6.5 -1t-6.5 -0.5h-7.5h-6.5h-476v-100zM1000 201v600h200v-600h-200z" />
|
||||
<glyph unicode="" d="M97 719l230 -363q4 -6 10.5 -15.5t26 -25t36.5 -15.5h525q13 0 94 83t81 90v342q0 15 -20 28.5t-41 19.5l-339 131v106q0 84 -39 139t-111 55t-110 -53.5t-38 -138.5v-302l-121 84q-15 12 -33.5 11.5t-32.5 -13.5l-112 -110q-22 -22 -6 -53zM172 739l83 86l183 -146 q22 -18 47 -5q3 1 5.5 3.5l4 4t2.5 5t1.5 5.5t1 6.5t0.5 6.5v7.5v6.5v456q0 22 25 31t50 -0.5t25 -30.5v-202q0 -16 20 -29.5t41 -19.5l339 -130v-294l-89 -100h-503zM400 0v200h600v-200h-600z" />
|
||||
<glyph unicode="" d="M2 585q-16 -31 6 -53l112 -110q13 -13 32 -13.5t34 10.5l121 85q0 -51 -0.5 -153.5t-0.5 -148.5q0 -84 38.5 -138t110.5 -54t111 55t39 139v106l339 131q20 6 40.5 19.5t20.5 28.5v342q0 7 -81 90t-94 83h-525q-17 0 -35.5 -14t-28.5 -28l-10 -15zM77 565l236 339h503 l89 -100v-294l-340 -130q-20 -6 -40 -20t-20 -29v-202q0 -22 -25 -31t-50 0t-25 31v456v14.5t-1.5 11.5t-5 12t-9.5 7q-24 13 -46 -5l-184 -146zM305 1104v200h600v-200h-600z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM298 701l2 -201h300l-2 -194l402 294l-402 298v-197h-300z" />
|
||||
<glyph unicode="" d="M0 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t231.5 47.5q122 0 232.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-218 -217.5t-300 -80t-299.5 80t-217.5 217.5t-80 299.5zM200 600l402 -294l-2 194h300l2 201h-300v197z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600h200v-300h200v300h200l-300 400z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q162 0 299.5 -80t217.5 -218t80 -300t-80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM300 600l300 -400l300 400h-200v300h-200v-300h-200z" />
|
||||
<glyph unicode="" d="M5 597q0 122 47.5 232.5t127.5 190.5t190.5 127.5t232.5 47.5q121 0 231.5 -47.5t190.5 -127.5t127.5 -190.5t47.5 -232.5q0 -162 -80 -299.5t-217.5 -217.5t-299.5 -80t-300 80t-218 217.5t-80 299.5zM254 780q-8 -33 5.5 -92.5t7.5 -87.5q0 -9 17 -44t16 -60 q12 0 23 -5.5t23 -15t20 -13.5q24 -12 108 -42q22 -8 53 -31.5t59.5 -38.5t57.5 -11q8 -18 -15 -55t-20 -57q42 -71 87 -80q0 -6 -3 -15.5t-3.5 -14.5t4.5 -17q104 -3 221 112q30 29 47 47t34.5 49t20.5 62q-14 9 -37 9.5t-36 7.5q-14 7 -49 15t-52 19q-9 0 -39.5 -0.5 t-46.5 -1.5t-39 -6.5t-39 -16.5q-50 -35 -66 -12q-4 2 -3.5 25.5t0.5 25.5q-6 13 -26.5 17t-24.5 7q2 22 -2 41t-16.5 28t-38.5 -20q-23 -25 -42 4q-19 28 -8 58q6 16 22 22q6 -1 26 -1.5t33.5 -4t19.5 -13.5q12 -19 32 -37.5t34 -27.5l14 -8q0 3 9.5 39.5t5.5 57.5 q-4 23 14.5 44.5t22.5 31.5q5 14 10 35t8.5 31t15.5 22.5t34 21.5q-6 18 10 37q8 0 23.5 -1.5t24.5 -1.5t20.5 4.5t20.5 15.5q-10 23 -30.5 42.5t-38 30t-49 26.5t-43.5 23q11 39 2 44q31 -13 58 -14.5t39 3.5l11 4q7 36 -16.5 53.5t-64.5 28.5t-56 23q-19 -3 -37 0 q-15 -12 -36.5 -21t-34.5 -12t-44 -8t-39 -6q-15 -3 -45.5 0.5t-45.5 -2.5q-21 -7 -52 -26.5t-34 -34.5q-3 -11 6.5 -22.5t8.5 -18.5q-3 -34 -27.5 -90.5t-29.5 -79.5zM518 916q3 12 16 30t16 25q10 -10 18.5 -10t14 6t14.5 14.5t16 12.5q0 -24 17 -66.5t17 -43.5 q-9 2 -31 5t-36 5t-32 8t-30 14zM692 1003h1h-1z" />
|
||||
<glyph unicode="" d="M0 164.5q0 21.5 15 37.5l600 599q-33 101 6 201.5t135 154.5q164 92 306 -9l-259 -138l145 -232l251 126q13 -175 -151 -267q-123 -70 -253 -23l-596 -596q-15 -16 -36.5 -16t-36.5 16l-111 110q-15 15 -15 36.5z" />
|
||||
<glyph unicode="" horiz-adv-x="1220" d="M0 196v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 596v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000 q-41 0 -70.5 29.5t-29.5 70.5zM0 996v100q0 41 29.5 70.5t70.5 29.5h1000q41 0 70.5 -29.5t29.5 -70.5v-100q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM600 596h500v100h-500v-100zM800 196h300v100h-300v-100zM900 996h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M100 1100v100h1000v-100h-1000zM150 1000h900l-350 -500v-300l-200 -200v500z" />
|
||||
<glyph unicode="" d="M0 200v200h1200v-200q0 -41 -29.5 -70.5t-70.5 -29.5h-1000q-41 0 -70.5 29.5t-29.5 70.5zM0 500v400q0 41 29.5 70.5t70.5 29.5h300v100q0 41 29.5 70.5t70.5 29.5h200q41 0 70.5 -29.5t29.5 -70.5v-100h300q41 0 70.5 -29.5t29.5 -70.5v-400h-500v100h-200v-100h-500z M500 1000h200v100h-200v-100z" />
|
||||
<glyph unicode="" d="M0 0v400l129 -129l200 200l142 -142l-200 -200l129 -129h-400zM0 800l129 129l200 -200l142 142l-200 200l129 129h-400v-400zM729 329l142 142l200 -200l129 129v-400h-400l129 129zM729 871l200 200l-129 129h400v-400l-129 129l-200 -200z" />
|
||||
<glyph unicode="" d="M0 596q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 596q0 -172 121.5 -293t292.5 -121t292.5 121t121.5 293q0 171 -121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM291 655 q0 23 15.5 38.5t38.5 15.5t39 -16t16 -38q0 -23 -16 -39t-39 -16q-22 0 -38 16t-16 39zM400 850q0 22 16 38.5t39 16.5q22 0 38 -16t16 -39t-16 -39t-38 -16q-23 0 -39 16.5t-16 38.5zM514 609q0 32 20.5 56.5t51.5 29.5l122 126l1 1q-9 14 -9 28q0 22 16 38.5t39 16.5 q22 0 38 -16t16 -39t-16 -39t-38 -16q-14 0 -29 10l-55 -145q17 -22 17 -51q0 -36 -25.5 -61.5t-61.5 -25.5t-61.5 25.5t-25.5 61.5zM800 655q0 22 16 38t39 16t38.5 -15.5t15.5 -38.5t-16 -39t-38 -16q-23 0 -39 16t-16 39z" />
|
||||
<glyph unicode="" d="M-40 375q-13 -95 35 -173q35 -57 94 -89t129 -32q63 0 119 28q33 16 65 40.5t52.5 45.5t59.5 64q40 44 57 61l394 394q35 35 47 84t-3 96q-27 87 -117 104q-20 2 -29 2q-46 0 -78.5 -16.5t-67.5 -51.5l-389 -396l-7 -7l69 -67l377 373q20 22 39 38q23 23 50 23 q38 0 53 -36q16 -39 -20 -75l-547 -547q-52 -52 -125 -52q-55 0 -100 33t-54 96q-5 35 2.5 66t31.5 63t42 50t56 54q24 21 44 41l348 348q52 52 82.5 79.5t84 54t107.5 26.5q25 0 48 -4q95 -17 154 -94.5t51 -175.5q-7 -101 -98 -192l-252 -249l-253 -256l7 -7l69 -60 l517 511q67 67 95 157t11 183q-16 87 -67 154t-130 103q-69 33 -152 33q-107 0 -197 -55q-40 -24 -111 -95l-512 -512q-68 -68 -81 -163z" />
|
||||
<glyph unicode="" d="M80 784q0 131 98.5 229.5t230.5 98.5q143 0 241 -129q103 129 246 129q129 0 226 -98.5t97 -229.5q0 -46 -17.5 -91t-61 -99t-77 -89.5t-104.5 -105.5q-197 -191 -293 -322l-17 -23l-16 23q-43 58 -100 122.5t-92 99.5t-101 100q-71 70 -104.5 105.5t-77 89.5t-61 99 t-17.5 91zM250 784q0 -27 30.5 -70t61.5 -75.5t95 -94.5l22 -22q93 -90 190 -201q82 92 195 203l12 12q64 62 97.5 97t64.5 79t31 72q0 71 -48 119.5t-105 48.5q-74 0 -132 -83l-118 -171l-114 174q-51 80 -123 80q-60 0 -109.5 -49.5t-49.5 -118.5z" />
|
||||
<glyph unicode="" d="M57 353q0 -95 66 -159l141 -142q68 -66 159 -66q93 0 159 66l283 283q66 66 66 159t-66 159l-141 141q-8 9 -19 17l-105 -105l212 -212l-389 -389l-247 248l95 95l-18 18q-46 45 -75 101l-55 -55q-66 -66 -66 -159zM269 706q0 -93 66 -159l141 -141q7 -7 19 -17l105 105 l-212 212l389 389l247 -247l-95 -96l18 -17q47 -49 77 -100l29 29q35 35 62.5 88t27.5 96q0 93 -66 159l-141 141q-66 66 -159 66q-95 0 -159 -66l-283 -283q-66 -64 -66 -159z" />
|
||||
<glyph unicode="" d="M200 100v953q0 21 30 46t81 48t129 38t163 15t162 -15t127 -38t79 -48t29 -46v-953q0 -41 -29.5 -70.5t-70.5 -29.5h-600q-41 0 -70.5 29.5t-29.5 70.5zM300 300h600v700h-600v-700zM496 150q0 -43 30.5 -73.5t73.5 -30.5t73.5 30.5t30.5 73.5t-30.5 73.5t-73.5 30.5 t-73.5 -30.5t-30.5 -73.5z" />
|
||||
<glyph unicode="" d="M0 0l303 380l207 208l-210 212h300l267 279l-35 36q-15 14 -15 35t15 35q14 15 35 15t35 -15l283 -282q15 -15 15 -36t-15 -35q-14 -15 -35 -15t-35 15l-36 35l-279 -267v-300l-212 210l-208 -207z" />
|
||||
<glyph unicode="" d="M295 433h139q5 -77 48.5 -126.5t117.5 -64.5v335q-6 1 -15.5 4t-11.5 3q-46 14 -79 26.5t-72 36t-62.5 52t-40 72.5t-16.5 99q0 92 44 159.5t109 101t144 40.5v78h100v-79q38 -4 72.5 -13.5t75.5 -31.5t71 -53.5t51.5 -84t24.5 -118.5h-159q-8 72 -35 109.5t-101 50.5 v-307l64 -14q34 -7 64 -16.5t70 -31.5t67.5 -52t47.5 -80.5t20 -112.5q0 -139 -89 -224t-244 -96v-77h-100v78q-152 17 -237 104q-40 40 -52.5 93.5t-15.5 139.5zM466 889q0 -29 8 -51t16.5 -34t29.5 -22.5t31 -13.5t38 -10q7 -2 11 -3v274q-61 -8 -97.5 -37.5t-36.5 -102.5 zM700 237q170 18 170 151q0 64 -44 99.5t-126 60.5v-311z" />
|
||||
<glyph unicode="" d="M100 600v100h166q-24 49 -44 104q-10 26 -14.5 55.5t-3 72.5t25 90t68.5 87q97 88 263 88q129 0 230 -89t101 -208h-153q0 52 -34 89.5t-74 51.5t-76 14q-37 0 -79 -14.5t-62 -35.5q-41 -44 -41 -101q0 -28 16.5 -69.5t28 -62.5t41.5 -72h241v-100h-197q8 -50 -2.5 -115 t-31.5 -94q-41 -59 -99 -113q35 11 84 18t70 7q33 1 103 -16t103 -17q76 0 136 30l50 -147q-41 -25 -80.5 -36.5t-59 -13t-61.5 -1.5q-23 0 -128 33t-155 29q-39 -4 -82 -17t-66 -25l-24 -11l-55 145l16.5 11t15.5 10t13.5 9.5t14.5 12t14.5 14t17.5 18.5q48 55 54 126.5 t-30 142.5h-221z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM602 900l298 300l298 -300h-198v-900h-200v900h-198z" />
|
||||
<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v200h100v-100h200v-100h-300zM700 400v100h300v-200h-99v-100h-100v100h99v100h-200zM700 700v500h300v-500h-100v100h-100v-100h-100zM801 900h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300h198v900h200v-900h198l-298 -300zM700 0v500h300v-500h-100v100h-100v-100h-100zM700 700v200h100v-100h200v-100h-300zM700 1100v100h300v-200h-99v-100h-100v100h99v100h-200zM801 200h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 100v400h300v-500h-100v100h-200zM800 1100v100h200v-500h-100v400h-100zM901 200h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM800 400v100h200v-500h-100v400h-100zM800 800v400h300v-500h-100v100h-200zM901 900h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h500v-200h-500zM700 400v200h400v-200h-400zM700 700v200h300v-200h-300zM700 1000v200h200v-200h-200z" />
|
||||
<glyph unicode="" d="M2 300l298 -300l298 300h-198v900h-200v-900h-198zM700 100v200h200v-200h-200zM700 400v200h300v-200h-300zM700 700v200h400v-200h-400zM700 1000v200h500v-200h-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q162 0 281 -118.5t119 -281.5v-300q0 -165 -118.5 -282.5t-281.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 163 119 281.5t281 118.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-163 0 -281.5 117.5t-118.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM400 300l333 250l-333 250v-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 163 117.5 281.5t282.5 118.5h300q163 0 281.5 -119t118.5 -281v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-300q-165 0 -282.5 117.5t-117.5 282.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 700l250 -333l250 333h-500z" />
|
||||
<glyph unicode="" d="M0 400v300q0 165 117.5 282.5t282.5 117.5h300q165 0 282.5 -117.5t117.5 -282.5v-300q0 -162 -118.5 -281t-281.5 -119h-300q-165 0 -282.5 118.5t-117.5 281.5zM200 300q0 -41 29.5 -70.5t70.5 -29.5h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5 h-500q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM300 400h500l-250 333z" />
|
||||
<glyph unicode="" d="M0 400v300h300v200l400 -350l-400 -350v200h-300zM500 0v200h500q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-500v200h400q165 0 282.5 -117.5t117.5 -282.5v-300q0 -165 -117.5 -282.5t-282.5 -117.5h-400z" />
|
||||
<glyph unicode="" d="M217 519q8 -19 31 -19h302q-155 -438 -160 -458q-5 -21 4 -32l9 -8h9q14 0 26 15q11 13 274.5 321.5t264.5 308.5q14 19 5 36q-8 17 -31 17l-301 -1q1 4 78 219.5t79 227.5q2 15 -5 27l-9 9h-9q-15 0 -25 -16q-4 -6 -98 -111.5t-228.5 -257t-209.5 -237.5q-16 -19 -6 -41 z" />
|
||||
<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q47 0 100 15v185h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h500v185q-14 4 -114 7.5t-193 5.5l-93 2q-165 0 -282.5 -117.5t-117.5 -282.5v-300zM600 400v300h300v200l400 -350l-400 -350v200h-300z " />
|
||||
<glyph unicode="" d="M0 400q0 -165 117.5 -282.5t282.5 -117.5h300q163 0 281.5 117.5t118.5 282.5v98l-78 73l-122 -123v-148q0 -41 -29.5 -70.5t-70.5 -29.5h-500q-41 0 -70.5 29.5t-29.5 70.5v500q0 41 29.5 70.5t70.5 29.5h156l118 122l-74 78h-100q-165 0 -282.5 -117.5t-117.5 -282.5 v-300zM496 709l353 342l-149 149h500v-500l-149 149l-342 -353z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM406 600 q0 80 57 137t137 57t137 -57t57 -137t-57 -137t-137 -57t-137 57t-57 137z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 800l445 -500l450 500h-295v400h-300v-400h-300zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 700h300v-300h300v300h295l-445 500zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 705l305 -305l596 596l-154 155l-442 -442l-150 151zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM100 988l97 -98l212 213l-97 97zM200 400l697 1l3 699l-250 -239l-149 149l-212 -212l149 -149zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M0 0v275q0 11 7 18t18 7h1048q11 0 19 -7.5t8 -17.5v-275h-1100zM200 612l212 -212l98 97l-213 212zM300 1200l239 -250l-149 -149l212 -212l149 148l249 -237l-1 697zM900 150h100v50h-100v-50z" />
|
||||
<glyph unicode="" d="M23 415l1177 784v-1079l-475 272l-310 -393v416h-392zM494 210l672 938l-672 -712v-226z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-850q0 -21 -15 -35.5t-35 -14.5h-150v400h-700v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-218l-276 -275l-120 120l-126 -127h-378v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM581 306l123 123l120 -120l353 352l123 -123l-475 -476zM600 1000h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-269l-103 -103l-170 170l-298 -298h-329v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 1000h100v200h-100v-200zM700 133l170 170l-170 170l127 127l170 -170l170 170l127 -128l-170 -169l170 -170 l-127 -127l-170 170l-170 -170z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-300h-400v-200h-500v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300l300 -300l300 300h-200v300h-200v-300h-200zM600 1000v200h100v-200h-100z" />
|
||||
<glyph unicode="" d="M0 150v1000q0 20 14.5 35t35.5 15h250v-300h500v300h100l200 -200v-402l-200 200l-298 -298h-402v-400h-150q-21 0 -35.5 14.5t-14.5 35.5zM600 300h200v-300h200v300h200l-300 300zM600 1000v200h100v-200h-100z" />
|
||||
<glyph unicode="" d="M0 250q0 -21 14.5 -35.5t35.5 -14.5h1100q21 0 35.5 14.5t14.5 35.5v550h-1200v-550zM0 900h1200v150q0 21 -14.5 35.5t-35.5 14.5h-1100q-21 0 -35.5 -14.5t-14.5 -35.5v-150zM100 300v200h400v-200h-400z" />
|
||||
<glyph unicode="" d="M0 400l300 298v-198h400v-200h-400v-198zM100 800v200h100v-200h-100zM300 800v200h100v-200h-100zM500 800v200h400v198l300 -298l-300 -298v198h-400zM800 300v200h100v-200h-100zM1000 300h100v200h-100v-200z" />
|
||||
<glyph unicode="" d="M100 700v400l50 100l50 -100v-300h100v300l50 100l50 -100v-300h100v300l50 100l50 -100v-400l-100 -203v-447q0 -21 -14.5 -35.5t-35.5 -14.5h-200q-21 0 -35.5 14.5t-14.5 35.5v447zM800 597q0 -29 10.5 -55.5t25 -43t29 -28.5t25.5 -18l10 -5v-397q0 -21 14.5 -35.5 t35.5 -14.5h200q21 0 35.5 14.5t14.5 35.5v1106q0 31 -18 40.5t-44 -7.5l-276 -116q-25 -17 -43.5 -51.5t-18.5 -65.5v-359z" />
|
||||
<glyph unicode="" d="M100 0h400v56q-75 0 -87.5 6t-12.5 44v394h500v-394q0 -38 -12.5 -44t-87.5 -6v-56h400v56q-4 0 -11 0.5t-24 3t-30 7t-24 15t-11 24.5v888q0 22 25 34.5t50 13.5l25 2v56h-400v-56q75 0 87.5 -6t12.5 -44v-394h-500v394q0 38 12.5 44t87.5 6v56h-400v-56q4 0 11 -0.5 t24 -3t30 -7t24 -15t11 -24.5v-888q0 -22 -25 -34.5t-50 -13.5l-25 -2v-56z" />
|
||||
<glyph unicode="" d="M0 300q0 -41 29.5 -70.5t70.5 -29.5h300q41 0 70.5 29.5t29.5 70.5v500q0 41 -29.5 70.5t-70.5 29.5h-300q-41 0 -70.5 -29.5t-29.5 -70.5v-500zM100 100h400l200 200h105l295 98v-298h-425l-100 -100h-375zM100 300v200h300v-200h-300zM100 600v200h300v-200h-300z M100 1000h400l200 -200v-98l295 98h105v200h-425l-100 100h-375zM700 402v163l400 133v-163z" />
|
||||
<glyph unicode="" d="M16.5 974.5q0.5 -21.5 16 -90t46.5 -140t104 -177.5t175 -208q103 -103 207.5 -176t180 -103.5t137 -47t92.5 -16.5l31 1l163 162q17 18 13.5 41t-22.5 37l-192 136q-19 14 -45 12t-42 -19l-118 -118q-142 101 -268 227t-227 268l118 118q17 17 20 41.5t-11 44.5 l-139 194q-14 19 -36.5 22t-40.5 -14l-162 -162q-1 -11 -0.5 -32.5z" />
|
||||
<glyph unicode="" d="M0 50v212q0 20 10.5 45.5t24.5 39.5l365 303v50q0 4 1 10.5t12 22.5t30 28.5t60 23t97 10.5t97 -10t60 -23.5t30 -27.5t12 -24l1 -10v-50l365 -303q14 -14 24.5 -39.5t10.5 -45.5v-212q0 -21 -14.5 -35.5t-35.5 -14.5h-1100q-20 0 -35 14.5t-15 35.5zM0 712 q0 -21 14.5 -33.5t34.5 -8.5l202 33q20 4 34.5 21t14.5 38v146q141 24 300 24t300 -24v-146q0 -21 14.5 -38t34.5 -21l202 -33q20 -4 34.5 8.5t14.5 33.5v200q-6 8 -19 20.5t-63 45t-112 57t-171 45t-235 20.5q-92 0 -175 -10.5t-141.5 -27t-108.5 -36.5t-81.5 -40 t-53.5 -36.5t-31 -27.5l-9 -10v-200z" />
|
||||
<glyph unicode="" d="M100 0v100h1100v-100h-1100zM175 200h950l-125 150v250l100 100v400h-100v-200h-100v200h-200v-200h-100v200h-200v-200h-100v200h-100v-400l100 -100v-250z" />
|
||||
<glyph unicode="" d="M100 0h300v400q0 41 -29.5 70.5t-70.5 29.5h-100q-41 0 -70.5 -29.5t-29.5 -70.5v-400zM500 0v1000q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-1000h-300zM900 0v700q0 41 29.5 70.5t70.5 29.5h100q41 0 70.5 -29.5t29.5 -70.5v-700h-300z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h100v200h100v-200h100v500h-100v-200h-100v200h-100v-500zM600 300h200v100h100v300h-100v100h-200v-500 zM700 400v300h100v-300h-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v100h-200v300h200v100h-300v-500zM600 300h300v100h-200v300h200v100h-300v-500z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 550l300 -150v300zM600 400l300 150l-300 150v-300z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300v500h700v-500h-700zM300 400h130q41 0 68 42t27 107t-28.5 108t-66.5 43h-130v-300zM575 549 q0 -65 27 -107t68 -42h130v300h-130q-38 0 -66.5 -43t-28.5 -108z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v300h-200v100h200v100h-300v-300h200v-100h-200v-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 300h300v400h-200v100h-100v-500zM301 400v200h100v-200h-100zM601 300h100v100h-100v-100zM700 700h100 v-400h100v500h-200v-100z" />
|
||||
<glyph unicode="" d="M-100 300v500q0 124 88 212t212 88h700q124 0 212 -88t88 -212v-500q0 -124 -88 -212t-212 -88h-700q-124 0 -212 88t-88 212zM100 200h900v700h-900v-700zM200 700v100h300v-300h-99v-100h-100v100h99v200h-200zM201 300v100h100v-100h-100zM601 300v100h100v-100h-100z M700 700v100h200v-500h-100v400h-100z" />
|
||||
<glyph unicode="" d="M4 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM186 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 500v200 l100 100h300v-100h-300v-200h300v-100h-300z" />
|
||||
<glyph unicode="" d="M0 600q0 162 80 299t217 217t299 80t299 -80t217 -217t80 -299t-80 -299t-217 -217t-299 -80t-299 80t-217 217t-80 299zM182 600q0 -171 121.5 -292.5t292.5 -121.5t292.5 121.5t121.5 292.5t-121.5 292.5t-292.5 121.5t-292.5 -121.5t-121.5 -292.5zM400 400v400h300 l100 -100v-100h-100v100h-200v-100h200v-100h-200v-100h-100zM700 400v100h100v-100h-100z" />
|
||||
<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h222v300h400v-300h128q120 0 205 86.5t85 207.5t-85 207t-205 86q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200h200v300h200v-300h200 l-300 -300z" />
|
||||
<glyph unicode="" d="M-14 494q0 -80 56.5 -137t135.5 -57h8l414 414l403 -403q94 26 154.5 104.5t60.5 178.5q0 120 -85 206.5t-205 86.5q-46 0 -90 -14q-44 97 -134.5 156.5t-200.5 59.5q-152 0 -260 -107.5t-108 -260.5q0 -25 2 -37q-66 -14 -108.5 -67.5t-42.5 -122.5zM300 200l300 300 l300 -300h-200v-300h-200v300h-200z" />
|
||||
<glyph unicode="" d="M100 200h400v-155l-75 -45h350l-75 45v155h400l-270 300h170l-270 300h170l-300 333l-300 -333h170l-270 -300h170z" />
|
||||
<glyph unicode="" d="M121 700q0 -53 28.5 -97t75.5 -65q-4 -16 -4 -38q0 -74 52.5 -126.5t126.5 -52.5q56 0 100 30v-306l-75 -45h350l-75 45v306q46 -30 100 -30q74 0 126.5 52.5t52.5 126.5q0 24 -9 55q50 32 79.5 83t29.5 112q0 90 -61.5 155.5t-150.5 71.5q-26 89 -99.5 145.5 t-167.5 56.5q-116 0 -197.5 -81.5t-81.5 -197.5q0 -4 1 -11.5t1 -11.5q-14 2 -23 2q-74 0 -126.5 -52.5t-52.5 -126.5z" />
|
||||
</font>
|
||||
</defs></svg>
|
||||
|
After Width: | Height: | Size: 62 KiB |
|
After Width: | Height: | Size: 2.2 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 1.8 KiB |
|
After Width: | Height: | Size: 4.3 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 4.5 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 5.9 KiB |
|
After Width: | Height: | Size: 7.9 KiB |