diff --git a/data.json b/data.json index 24ffc961..d183b79c 100644 --- a/data.json +++ b/data.json @@ -54,6 +54,11 @@ "url":"/lib/tools/geopattern/", "type":"图像处理" }, + { + "name":"在线 PS 编辑图像", + "url":"/lib/tools/Open-Photopea/", + "type":"图像处理" + }, { "name":"字符图像编辑", "url":"/lib/tools/PP/", diff --git a/js/api.js b/js/api.js index dae74afc..3fedf7a4 100644 --- a/js/api.js +++ b/js/api.js @@ -31,6 +31,11 @@ var classify = [{ "id": 2, "name": "图像处理", "list": [{ + "name": "在线 PS 编辑图像", + "url": "/incert/?link=/lib/tools/Open-Photopea/", + "hot": 1, + "img": "" + }, { "name": "在线思维导图编辑器", "url": "/incert/?link=/lib/tools/mind-map/", "hot": 1, diff --git a/tools/Open-Photopea/README.md b/tools/Open-Photopea/README.md new file mode 100644 index 00000000..55179a6c --- /dev/null +++ b/tools/Open-Photopea/README.md @@ -0,0 +1,4 @@ +# Open Photopea +Photopea is the best Photoshop alternative. Their program runs as a web app. Photopea is capable of running **PSD, XCF and Sketch** files. + +Photopea is a closed source software. So I decide to extract the code and Open Source it, but if they ask me to remove it I will be 100% fine with their decition. diff --git a/tools/Open-Photopea/_downloads.html b/tools/Open-Photopea/_downloads.html new file mode 100644 index 00000000..b2419b04 --- /dev/null +++ b/tools/Open-Photopea/_downloads.html @@ -0,0 +1,13 @@ + + + + + Downloads + + +

Downloads

+ + + diff --git a/tools/Open-Photopea/api/accounts.html b/tools/Open-Photopea/api/accounts.html new file mode 100644 index 00000000..c9dad9d9 --- /dev/null +++ b/tools/Open-Photopea/api/accounts.html @@ -0,0 +1,118 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+ + + +

Accounts

+ +

Photopea allows you to log-in through a third-party service (Google, Facebook ...). + Once you do it, Photopea can identify you and store your settings online (theme, language, colors, tool options). + Then, settings can be synchronized across all devices, where you use Photopea.

+ +

Photopea offers two types of accounts: Free and Premium. The Free account is available to anybody + for free at Photopea.com. The Premium account lets you use Photopea without advertisement and may have other benefits.

+ +

You can manage your account through the Account window (the button in the menu at the top). + Here you can order the Premium account or see, how many days of Premium you have left. Logging in is necessary for having Premium accounts. + The basic option is a Premium account for a single user.

+ +

Teams

+ +

You can order a Premium account for the whole team of users. It has three main benefits:

+ +
    +
  • Just a single person pays for the whole team (more comfortable)
  • +
  • You can change team members at any time
  • +
  • You can save money (less expensive per user)
  • +
+ +

Creating teams is extremely simple. There are no emails, registrations, synchronizations etc. + All can be done inside the Account window. + A team leader (the one who pays for the account) simply ticks "Create a team" and fills in email addresses of all members of a team. + Each team member ticks "Join a team" and fills in the email address of a team leader.

+ +

To be a member of a team, you have to "choose a leader" and the leader has to "choose you" as one of members. + The leader can add or remove members at any time, and the member can change the leader at any time.

+ + + +

Distributors

+ +

Photopea API allows you to have the editor at your own website (using so-called iframe), and configure it as you wish. + But sometimes, you may want to hide advertisement, social media buttons, branding ... let's call it a whitelabel mode.

+ +

Photopea has an internal list of whitelabel domains. When you place the editor into your website and your domain is in the list, + Photopea runs in a whitelabel mode, and it runs in a regular mode otherwise. Distributor account allows you to add your domain into that list.

+ +

First, you must order a distributor account for the expected number of visitors per month. + If you exceed that number, just order the higher number of visitors the next time. + If you exceed the number twice in a row, you may receive a ban.

+ +

After you pay for the Distributor account, enter the name of your domain and click Save. You can change your domain at any time.

+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/api/demo.html b/tools/Open-Photopea/api/demo.html new file mode 100644 index 00000000..688740b4 --- /dev/null +++ b/tools/Open-Photopea/api/demo.html @@ -0,0 +1,128 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+ + + + + + + +

Editing local images with Photopea

+

Click "Edit" to open an image in Photopea. Click "File" - "Save (to Server)" in Photopea to save it back.

+
+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/api/environment.html b/tools/Open-Photopea/api/environment.html new file mode 100644 index 00000000..0926dbaa --- /dev/null +++ b/tools/Open-Photopea/api/environment.html @@ -0,0 +1,146 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+

Environment

+ +

The look of the editor can be customized by the environment property of the JSON.

+ +
{
+	...
+	"environment" : {          
+		"theme"     : 2,         "lang"     : "es",    
+		"vmode"     : 0,         "intro"    : true,
+		"eparams"   : { "guides" :true, "grid" : true, "gsize": 8,   
+		                                "paths": true, "pgrid": true },
+		
+		"localsave" : false,     "autosave" : 120,    
+		"showtools" : [0,5,9],   "menus"    : [ [1,1,0,1], 1, 0, 1, [0] ],
+		"showpanels": [0, [1]],
+		
+		"phrases"   : [ [1,0], "Open Design", [1,2], "Save Design" ],
+		
+		"topt"  : {  "t0": ...,  "t1": ...,  ... },
+		"tmnu"  : {  "t0": ...,  "t1": ...,  ... },
+		"icons" : {  "tools/crop": "https://www.me.com/img/crop.png",  ... },
+		"plugins":[ ... ]
+	}
+}
+

Each parameter is optional. They have the following meaning:

+
    + +
  • theme - theme (0, 1, 2, ...)
  • +
  • lang - language
  • +
  • vmode - view mode. 0: regular, 1: panels are collapsed, 2: hide all panels
  • +
  • intro - when no documents are open, show introduction panel (with buttons etc.)
  • +
  • eparams - extras: enable or disable guides, grid, paths, pixel grid ...
  • + +
  • localsave - enable / disable "Save as PSD", "Save for Web" and "Publish Online"
  • +
  • autosave - with a value X, Photopea will execute "File - Save" each X seconds
  • +
  • showtools - show only following tools (see tool IDs below)
  • +
  • menus - specify the structure of File, Edit, Image ... menus with 0/1 flags. + Each element of an array is either 0: hide the item, 1: show the item with a standard content, + or an array of flags for sub-items (works recursively). If your array is shorter than required, zeros will be added to the end. + See the current menu structure of Photopea to find the right values. + E.g. [1,1] as the first element means, that the "File" menu will be shown with "New" and "Open" items only.
  • +
  • showpanels - allows you to hide elements on the right side. + There are two columns, which contain panel blocks, which contain one or more panels. + Each element of an array is either 0: hide the column, 1: show the column with all standard items, + or an array of indices of panel blocks, that should be displayed.
  • +
  • phrases - allows you to replace any phrase inside Photopea with your own. + The aray has the form [ ID1, W1, ID2, W2, ... ], where IDx is the ID of some phrase and Wx is a new phrase, that should be used instead.
    + Some useful IDs: [1,2]: Save (File menu), [2,0]: Step Forward, [2,1]: Step Backward. + To discover IDs of other phrases, get familiar with OpenWord table structure and find + your phrase in a current phrase database, or just write us an email to support@photopea.com.
  • +
  • topt - tool options. Lets you change the settings of each tool. + Keys are "tXY", where XY is the tool ID. Each tool has its own format (see below).
  • +
  • tmnu - tool menu. Lets you specify the structure of the top menu for each tool. + Keys are "tXY", where XY is the tool ID. Each tool has its own format (see below).
  • +
  • icons - custom icons. Each icon has an icon ID (key) and the image URL (value). + You can find icon IDs here. + E.g. the Crop Tool has an ID "tools/crop". The background of the introduction panel as an ID "intro".
  • +
  • plugins - described here
  • +
+ +

Tool options and menus

+ +

Move Tool

+

Options: [1,0,null]. Three values mean Auto-Select, Transformation controls and Distances. + 1 means enabled, 0: disabled, null: not specified.

+

Menu: [1,1,1,1,1,1]. Six flags to show / hide six items: Auto-Select, Transformation controls, Distances, + Quick Save (Get PNG...), Vertical Align, Horizontal Align.

+ +

Tool IDs

+ +
    +
  • 0: Move Tool
  • 1: Rectangle Select
  • 2: Ellipse Select
  • 5: Lasso Select
  • 6: Polygonal Lasso Select
  • 7: Magnetic Lasso Select
  • 8: Quick Selection
  • 9: Magic Wand
  • 10: Crop Tool
  • 14: Eyedropper
  • 16: Ruler
  • 18: Spot Healing Brush Tool
  • 19: Healing Brush Tool
  • 20: Patch Tool
  • 23: Brush Tool
  • 24: Pencil Tool
  • 27: Clone Tool
  • 31: Eraser Tool
  • 34: Gradient Tool
  • 35: Paint Bucket Tool
  • 36: Blur Tool
  • 37: Sharpen Tool
  • 38: Smudge Tool
  • 39: Dodge Tool
  • 40: Burn Tool
  • 41: Sponge Tool
  • 47: Type Tool
  • 42: Pen
  • 43: Free Pen
  • 51: Path Select
  • 52: Direct Select
  • 54: Rectangle
  • 55: Ellipse
  • 57: Line
  • 56: Parametric Shape
  • 58: Custom Shape
  • 59: Hand Tool
  • 61: Zoom Tool
  • + +
+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/api/index.html b/tools/Open-Photopea/api/index.html new file mode 100644 index 00000000..4de578e5 --- /dev/null +++ b/tools/Open-Photopea/api/index.html @@ -0,0 +1,180 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+

Passing data to Photopea

+ + + +

Photopea can be configured using a parameter after a hash sign.

+ +
https://www.photopea.com#STRING_VALUE
+ +

String value is encoded into the URL using classic encoding of query parameters (space as %20 etc.). + It corresponds to encodeURI() in Javascript or urlencode() in PHP. + This string contains a JSON object.

+ + +

JSON configuration object

+

JSON object must have the following structure:

+ +
{
+	"files" : [
+		"https://www.mysite.com/images/design.psd",
+		"https://www.mysite.com/images/button.png",
+		"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAA\
+		AAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg=="
+	],
+	"resources" : [
+		"https://www.xyz.com/brushes/Nature.ABR",
+		"https://www.xyz.com/grads/Gradients.GRD",
+		"https://www.xyz.com/fonts/NewFont.otf"
+	],
+	"server" : {
+		"url" : "https://www.myserver.com/saveImage.php",
+		"formats" : [ "psd:true", "png", "jpg:0.5" ]
+	},
+	"environment" : {...},
+	"script" : "app.activeDocument.resizeCanvas(90,80,AnchorPosition.TOPLEFT);"
+}
+

+ Data URIs can be used - file can be passed inside request (test). + All parameters are optional. +

+

Parameters

+
    +
  • files - array of files, that are loaded when Photopea starts
  • +
  • resources - array of resources (gradients, brushes, fonts ...)
  • +
  • + server - parameters for saving documents back to a server +
      +
    • url - URL address of a server
    • +
    • formats - formats, in which a document should be sent to a server. + The string format corresponds to saveToOE.
    • +
    +
  • +
  • + environment - parameters of the environment, see Environment +
  • +
  • + script - the script, that should be executed after loading each file (can be long) +
  • +
+ +

Saving to server

+ +

When server parameter is specified in a request to Photopea.com, every document opened in Photopea will have File - Save option. + After a user clicks it, document data are sent to your server in HTTP request using POST method. + It will contain a single string parameter p. The string contains a JSON object with the following structure:

+ +
{
+	"source" : "https://www.mysite.com/images/button.png",
+	"versions" : [
+		{"format":"psd", "data": "..."},
+		{"format":"jpg", "data": "..."},
+		...
+	]
+}
+

Parameters

+
    +
  • source - if the file was loaded from your server, the value is the URL of this document. + Otherwise (opening a local file, creating an empty file), it contains "local,X,NAME", + where X is the integer ID of the document, and NAME is the name of the document
  • +
  • + versions different versions of your document +
      +
    • format - format of the file, exported from Photopea
    • +
    • data - binary data, encoded into a string using Base64 encoding
    • +
    +
  • +
+ +

Here is a short PHP example, which accepts files from Photopea.

+ +
$p = json_decode( $_POST["p"] );	// parse JSON
+// getting file name from "source";
+$fname = substr ($p->source, strrpos($p->source,"/")+1);	
+file_put_contents("images/".$fname, base64_decode( $p->versions[0]->data ));
+ + +

Cross-Origin Resource Sharing

+ +

For security reasons, webapps can access only files from the same domain. + In order to let Photopea load your file, the response of your server must contain the following header:

+ +

Access-Control-Allow-Origin: *
+ +

Find out more at CORS specification or at enable-cors.org.

+ +

Prices

+ +

Usage of Photopea API is completely free. Keep in mind, that PP is in early stages of development and there may be critical bugs. + We do not take any responsibility for documents edited or generated by Photopea.

+ +

Please, let us know in advance (support@photopea.com), when you expect to have a large regular traffic (thousands of visitors per day).

+
+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/api/live.html b/tools/Open-Photopea/api/live.html new file mode 100644 index 00000000..0c5ea5bc --- /dev/null +++ b/tools/Open-Photopea/api/live.html @@ -0,0 +1,116 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+

Live Messaging

+ +

You can insert Photopea into a webpage (using a frame). Let's call such webpage the Outer Environment (OE). + OE can communicate with Photopea through Web Messaging. +

+ +
window.addEventListener("message", function(e) { alert(e.data); });
+var wnd = document.getElementById("pp").contentWindow;
+wnd.postMessage(msg, "*");
+ + +

OE can send two kinds of data to Photopea:

+ +
    +
  • String - contains a script, which will be executed by Photopea
  • +
  • ArrayBuffer - a binary file: psd, svg, jpg, ... fonts, brushes, ...
  • +
+ +

When Photopea is initialized and ready to accept commands, it sends the message "done". + After your message is processed, Photopea also sends back the message "done".

+ + + +

Retrieving data from Photopea

+ +

Photopea can send the current image to OE using the following command (inside a script):

+ +
app.activeDocument.saveToOE("gif");
+ +

The full description at /learn/scripts. The image will be sent as ArrayBuffer.

+ +

After you run the script above, PP will send a message with an ArrayBuffer of a GIF image, + followed by a message with a String "done" (processing the script has finished).

+ +

Examples of usage

+ +

This API can replace the main API. Instad of letting Photopea communicate with your server directly, + you can load files inside your progrm and transfer them to and from Photopea in a clients device. +

+ +

You can use Photopea as a "module", hide its UI and use only the messaging. + You can create a batch-processor of images (resizing images, adding watermarks, converting between formats). + You can make scripts, that would export each layer of the document as a PNG. + You can make scripts, that would replace the text in each text layer by data from your user (to create a generator of business cards, etc.).

+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/api/playground.html b/tools/Open-Photopea/api/playground.html new file mode 100644 index 00000000..8682c74c --- /dev/null +++ b/tools/Open-Photopea/api/playground.html @@ -0,0 +1,115 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+ + + +

Playground

+

Enter the JSON configuration file, which will be encoded into the URL:

+ +
+ + URL: + + + + +

Run a script

+ +
+
+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/api/plugins.html b/tools/Open-Photopea/api/plugins.html new file mode 100644 index 00000000..ea4f91cd --- /dev/null +++ b/tools/Open-Photopea/api/plugins.html @@ -0,0 +1,117 @@ + + + + + + + + + + Photopea API + + + + + +
+ + +
+ +
+ +
+ + +

Plugins

+

Create Plugins for Photopea and provide them to your users through a configuration JSON.

+
{ "environment": {
+	"plugins" : [ 
+		{
+			"name"  : "Wikipedia",
+			"url"   : "https://en.wikipedia.org",
+			"width" : 400,
+			"height": 300,
+			"icon"  : "https://en.wikipedia.org/static/favicon/wikipedia.ico"
+		}
+	]
+} }
+
    +
  • name - plugin name
  • +
  • url - plugin URL
  • +
  • width - panel width
  • +
  • height - panel height
  • +
  • icon - plugin icon (optional)
  • +
+

For each plugin, the button will be added to the right side, below the current buttons.

+ +

After the user clicks the plugin button, the panel is opened with a website url, having the size of width and height.

+ +

Users can drag-and-drop images from your website to Photopea (as Photopea supports dropping images from any website, opened by a browser).

+ +

Your website can connect with Photopea using Live Messaging (your website acts as the OE). + It allows your plugin to execute scripts (e.g. to change foreground color, to move a layer, etc.).

+ +

The plugin can give files to Photopea (images: psd, jpg, svg ... or resources: brushes, patterns, fonts ...), + or request the current file in a specific format. + All this can be controlled e.g. by buttons in your plugin (website).

+ +
window.parent.postMessage("...script...", "*");
+window.parent.postMessage(ArrayBuffer, "*");
+ +

Examples of usage

+ +

Photo Store. Let users browse your database of images. They can search the database by a keyword. + You can add a button "Open" next to each image, which would open that image in Photopea.

+ +

Font Gallery. Let users browse your database of fonts. The font will be loaded after clicking the button. + You can integrate a payment gateway into the plugin, too (as it is your website, you have full control over it).

+ +

You can make your plugin "commercial" - let users pay for them monthly. The sign-in and the payment interface could still be + in the same "iframe" of your plugin, inside Photopea (or you could open a new window and then, come back to Photopea).

+
+
+ +
+ + +
+ + diff --git a/tools/Open-Photopea/code/FNTS.js b/tools/Open-Photopea/code/FNTS.js new file mode 100644 index 00000000..7af2ac58 --- /dev/null +++ b/tools/Open-Photopea/code/FNTS.js @@ -0,0 +1,34300 @@ +var FNTS = { + "subsetNames": [ + "Latin-1", + "Latin Ext. A", + "Greek", + "Cyrillic", + "Hebrew", + "Arabic", + "Hangul", + "Chi-Jap-Kor", + "Tibetan", + "Devanagari" + ], + "cats": [ + "Blackletter", + "Calligraphic", + "Comic", + "Dingbat", + "Display", + "Grunge", + "Handdrawn", + "Monospaced", + "Novelty", + "Pixel", + "Programming", + "Retro", + "Sans Serif", + "Script", + "Serif", + "Slab Serif", + "Stencil", + "Typewriter" + ], + "list": [ + [ + "!Paul Maul", + "Regular", + "!PaulMaul", + 1, + 6, + "fs/PaulMaul/0" + ], + [ + "!Paul Maul", + "Bold", + "!PaulMaul-Bold", + 1, + 6, + "fs/PaulMaul/1" + ], + [ + "1942 report", + "1942 report", + "1942report", + 0, + 17, + "fs/1942-report/0" + ], + [ + "20 db", + "Regular", + "20db", + 8, + 4, + "fs/20-db/0" + ], + [ + "2Dumb", + "Regular", + "2Dumb", + 1, + 8, + "fs/3dumb/1" + ], + [ + "3Dumb", + "Regular", + "3dumb", + 0, + 8, + "fs/3dumb/0" + ], + [ + "ABeeZee", + "Italic", + "ABeeZee-Italic", + 1, + 12, + "fs/abeezee/1" + ], + [ + "ABeeZee", + "Regular", + "ABeeZee-Regular", + 1, + 12, + "fs/abeezee/0" + ], + [ + "Aaargh", + "Normal", + "AaarghNormal", + 0, + 12, + "fs/Aaargh/0" + ], + [ + "Aganè", + "Regular", + "Aan55", + 1, + 12, + "fs/agane/1" + ], + [ + "Abel", + "Regular", + "Abel-Regular", + 1, + 12, + "fs/abel/0" + ], + [ + "Abhaya Libre", + "Bold", + "AbhayaLibre-Bold", + 1, + 14, + "fs/abhaya-libre/3" + ], + [ + "Abhaya Libre", + "ExtraBold", + "AbhayaLibre-ExtraBold", + 1, + 14, + "fs/abhaya-libre/4" + ], + [ + "Abhaya Libre", + "Medium", + "AbhayaLibre-Medium", + 1, + 14, + "fs/abhaya-libre/1" + ], + [ + "Abhaya Libre", + "Regular", + "AbhayaLibre-Regular", + 1, + 14, + "fs/abhaya-libre/0" + ], + [ + "Abhaya Libre", + "SemiBold", + "AbhayaLibre-SemiBold", + 1, + 14, + "fs/abhaya-libre/2" + ], + [ + "Abril Fatface", + "Regular", + "AbrilFatface-Regular", + 3, + 4, + "fs/abril-fatface/0" + ], + [ + "Acknowledgement", + "Medium", + "Acknowledgement", + 1, + 4, + "fs/Acknowledgement/0" + ], + [ + "Aclonica", + "Regular", + "Aclonica-Regular", + 3, + 12, + "gf/Aclonica/0" + ], + [ + "Acme", + "Regular", + "Acme-Regular", + 1, + 12, + "fs/acme/0" + ], + [ + "Action Man", + "Regular", + "ActionMan", + 1, + 2, + "fs/Action-Man/0" + ], + [ + "Action Man", + "Bold", + "ActionMan-Bold", + 1, + 2, + "fs/Action-Man/2" + ], + [ + "Action Man", + "Bold Italic", + "ActionMan-BoldItalic", + 1, + 2, + "fs/Action-Man/3" + ], + [ + "Action Man", + "Italic", + "ActionMan-Italic", + 1, + 2, + "fs/Action-Man/1" + ], + [ + "Action Man Extended", + "Regular", + "ActionManExtended", + 1, + 2, + "fs/Action-Man/6" + ], + [ + "Action Man Extended", + "Bold", + "ActionManExtended-Bold", + 1, + 2, + "fs/Action-Man/8" + ], + [ + "Action Man Extended", + "Bold Italic", + "ActionManExtended-BoldItalic", + 1, + 2, + "fs/Action-Man/9" + ], + [ + "Action Man Extended", + "Italic", + "ActionManExtended-Italic", + 1, + 2, + "fs/Action-Man/7" + ], + [ + "Action Man Shaded", + "Regular", + "ActionManShaded", + 1, + 2, + "fs/Action-Man/4" + ], + [ + "Action Man Shaded", + "Italic", + "ActionManShaded-Italic", + 1, + 2, + "fs/Action-Man/5" + ], + [ + "Actor", + "Regular", + "Actor-Regular", + 1, + 12, + "gf/Actor/0" + ], + [ + "Adamina", + "Regular", + "Adamina-Regular", + 1, + 14, + "gf/Adamina/0" + ], + [ + "Adhesive Nr. Seven", + "Regular", + "AdhesiveNrSevenBanners", + 0, + 3, + "fs/Adhesive-Nr.-Seven/0" + ], + [ + "Advent Pro", + "Bold", + "AdventPro-Bold", + 7, + 12, + "fs/advent-pro/6" + ], + [ + "Advent Pro", + "ExtraLight", + "AdventPro-ExtraLight", + 7, + 12, + "fs/advent-pro/1" + ], + [ + "Advent Pro", + "Light", + "AdventPro-Light", + 7, + 12, + "fs/advent-pro/2" + ], + [ + "Advent Pro", + "Medium", + "AdventPro-Medium", + 7, + 12, + "fs/advent-pro/4" + ], + [ + "Advent Pro", + "Regular", + "AdventPro-Regular", + 7, + 12, + "fs/advent-pro/3" + ], + [ + "Advent Pro", + "SemiBold", + "AdventPro-SemiBold", + 7, + 12, + "fs/advent-pro/5" + ], + [ + "Advent Pro", + "Thin", + "AdventPro-Thin", + 7, + 12, + "fs/advent-pro/0" + ], + [ + "Afta sans", + "Regular", + "Aftasans", + 1, + 12, + "fs/afta-sans/1" + ], + [ + "Afta sans", + "Italic", + "Aftasans-Italic", + 1, + 12, + "fs/afta-sans/0" + ], + [ + "Afta serif", + "Regular", + "Aftaserif", + 1, + 14, + "fs/afta-serif/0" + ], + [ + "Afta serif", + "Italic", + "Aftaserif-Italic", + 1, + 14, + "fs/afta-serif/1" + ], + [ + "After Shok", + "Regular", + "AfterShok", + 0, + 4, + "fs/After-Shok/0" + ], + [ + "Aganè", + "Light", + "Agan45", + 1, + 12, + "fs/agane/0" + ], + [ + "Aganè", + "Bold", + "Agan65", + 1, + 12, + "fs/agane/2" + ], + [ + "Aganè", + "Extra Bold", + "Agan75", + 1, + 12, + "fs/agane/3" + ], + [ + "Aganè S", + "Regular", + "AganS55", + 1, + 12, + "fs/agane/4" + ], + [ + "Aganè S", + "Bold", + "AganS65", + 1, + 12, + "fs/agane/5" + ], + [ + "Aganè S", + "Extra Bold", + "AganS75", + 1, + 12, + "fs/agane/6" + ], + [ + "Aguafina Script", + "Regular", + "AguafinaScript-Regular", + 1, + 13, + "fs/aguafina-script/0" + ], + [ + "Aileron", + "Black", + "Aileron-Black", + 3, + 12, + "fs/aileron/14" + ], + [ + "Aileron", + "Black Italic", + "Aileron-BlackItalic", + 3, + 12, + "fs/aileron/15" + ], + [ + "Aileron", + "Bold", + "Aileron-Bold", + 3, + 12, + "fs/aileron/10" + ], + [ + "Aileron", + "Bold Italic", + "Aileron-BoldItalic", + 3, + 12, + "fs/aileron/11" + ], + [ + "Aileron", + "Heavy", + "Aileron-Heavy", + 3, + 12, + "fs/aileron/12" + ], + [ + "Aileron", + "Heavy Italic", + "Aileron-HeavyItalic", + 3, + 12, + "fs/aileron/13" + ], + [ + "Aileron", + "Italic", + "Aileron-Italic", + 3, + 12, + "fs/aileron/7" + ], + [ + "Aileron", + "Light", + "Aileron-Light", + 3, + 12, + "fs/aileron/4" + ], + [ + "Aileron", + "Light Italic", + "Aileron-LightItalic", + 3, + 12, + "fs/aileron/5" + ], + [ + "Aileron", + "Regular", + "Aileron-Regular", + 3, + 12, + "fs/aileron/6" + ], + [ + "Aileron", + "SemiBold", + "Aileron-SemiBold", + 3, + 12, + "fs/aileron/8" + ], + [ + "Aileron", + "SemiBold Italic", + "Aileron-SemiBoldItalic", + 3, + 12, + "fs/aileron/9" + ], + [ + "Aileron", + "Thin", + "Aileron-Thin", + 3, + 12, + "fs/aileron/2" + ], + [ + "Aileron", + "Thin Italic", + "Aileron-ThinItalic", + 3, + 12, + "fs/aileron/3" + ], + [ + "Aileron", + "UltraLight", + "Aileron-UltraLight", + 3, + 12, + "fs/aileron/0" + ], + [ + "Aileron", + "UltraLight Italic", + "Aileron-UltraLightItalic", + 3, + 12, + "fs/aileron/1" + ], + [ + "Air America", + "Regular", + "AirAmerica-Regular", + 1, + 4, + "fs/air-america/0" + ], + [ + "Airstream", + "Regular", + "Airstream", + 1, + 11, + "fs/Airstream/0" + ], + [ + "Akronim", + "Regular", + "Akronim-Regular", + 1, + 4, + "gf/Akronim/0" + ], + [ + "Aladin", + "Regular", + "Aladin-Regular", + 1, + 6, + "gf/Aladin/0" + ], + [ + "Aldrich", + "Regular", + "Aldrich-Regular", + 1, + 12, + "gf/Aldrich/0" + ], + [ + "Alef", + "Bold", + "Alef-Bold", + 19, + 12, + "fs/alef/1" + ], + [ + "Alef", + "Regular", + "Alef-Regular", + 19, + 12, + "fs/alef/0" + ], + [ + "Alegreya", + "Black", + "Alegreya-Black", + 3, + 14, + "fs/alegreya/4" + ], + [ + "Alegreya", + "Black Italic", + "Alegreya-BlackItalic", + 3, + 14, + "fs/alegreya/5" + ], + [ + "Alegreya", + "Bold", + "Alegreya-Bold", + 3, + 14, + "fs/alegreya/2" + ], + [ + "Alegreya", + "Bold Italic", + "Alegreya-BoldItalic", + 3, + 14, + "fs/alegreya/3" + ], + [ + "Alegreya", + "ExtraBold", + "Alegreya-ExtraBold", + 15, + 14, + "gf/Alegreya/2" + ], + [ + "Alegreya", + "ExtraBold Italic", + "Alegreya-ExtraBoldItalic", + 15, + 14, + "gf/Alegreya/8" + ], + [ + "Alegreya", + "Italic", + "Alegreya-Italic", + 3, + 14, + "fs/alegreya/1" + ], + [ + "Alegreya", + "Medium", + "Alegreya-Medium", + 15, + 14, + "gf/Alegreya/0" + ], + [ + "Alegreya", + "Medium Italic", + "Alegreya-MediumItalic", + 15, + 14, + "gf/Alegreya/6" + ], + [ + "Alegreya", + "Regular", + "Alegreya-Regular", + 3, + 14, + "fs/alegreya/0" + ], + [ + "Alegreya SC", + "Black", + "AlegreyaSC-Black", + 3, + 14, + "fs/alegreya/10" + ], + [ + "Alegreya SC", + "Black Italic", + "AlegreyaSC-BlackItalic", + 3, + 14, + "fs/alegreya/11" + ], + [ + "Alegreya SC", + "Bold", + "AlegreyaSC-Bold", + 3, + 14, + "fs/alegreya/8" + ], + [ + "Alegreya SC", + "Bold Italic", + "AlegreyaSC-BoldItalic", + 3, + 14, + "fs/alegreya/9" + ], + [ + "Alegreya SC", + "ExtraBold", + "AlegreyaSC-ExtraBold", + 15, + 14, + "gf/Alegreya SC/2" + ], + [ + "Alegreya SC", + "ExtraBold Italic", + "AlegreyaSC-ExtraBoldItalic", + 15, + 14, + "gf/Alegreya SC/8" + ], + [ + "Alegreya SC", + "Italic", + "AlegreyaSC-Italic", + 3, + 14, + "fs/alegreya/7" + ], + [ + "Alegreya SC", + "Medium", + "AlegreyaSC-Medium", + 15, + 14, + "gf/Alegreya SC/0" + ], + [ + "Alegreya SC", + "Medium Italic", + "AlegreyaSC-MediumItalic", + 15, + 14, + "gf/Alegreya SC/6" + ], + [ + "Alegreya SC", + "Regular", + "AlegreyaSC-Regular", + 3, + 14, + "fs/alegreya/6" + ], + [ + "Alegreya Sans", + "Black", + "AlegreyaSans-Black", + 3, + 12, + "fs/alegreya-sans/12" + ], + [ + "Alegreya Sans", + "Black Italic", + "AlegreyaSans-BlackItalic", + 3, + 12, + "fs/alegreya-sans/13" + ], + [ + "Alegreya Sans", + "Bold", + "AlegreyaSans-Bold", + 3, + 12, + "fs/alegreya-sans/8" + ], + [ + "Alegreya Sans", + "Bold Italic", + "AlegreyaSans-BoldItalic", + 3, + 12, + "fs/alegreya-sans/9" + ], + [ + "Alegreya Sans", + "ExtraBold", + "AlegreyaSans-ExtraBold", + 3, + 12, + "fs/alegreya-sans/10" + ], + [ + "Alegreya Sans", + "ExtraBold Italic", + "AlegreyaSans-ExtraBoldItalic", + 3, + 12, + "fs/alegreya-sans/11" + ], + [ + "Alegreya Sans", + "Italic", + "AlegreyaSans-Italic", + 3, + 12, + "fs/alegreya-sans/5" + ], + [ + "Alegreya Sans", + "Light", + "AlegreyaSans-Light", + 3, + 12, + "fs/alegreya-sans/2" + ], + [ + "Alegreya Sans", + "Light Italic", + "AlegreyaSans-LightItalic", + 3, + 12, + "fs/alegreya-sans/3" + ], + [ + "Alegreya Sans", + "Medium", + "AlegreyaSans-Medium", + 3, + 12, + "fs/alegreya-sans/6" + ], + [ + "Alegreya Sans", + "Medium Italic", + "AlegreyaSans-MediumItalic", + 3, + 12, + "fs/alegreya-sans/7" + ], + [ + "Alegreya Sans", + "Regular", + "AlegreyaSans-Regular", + 3, + 12, + "fs/alegreya-sans/4" + ], + [ + "Alegreya Sans", + "Thin", + "AlegreyaSans-Thin", + 3, + 12, + "fs/alegreya-sans/0" + ], + [ + "Alegreya Sans", + "Thin Italic", + "AlegreyaSans-ThinItalic", + 3, + 12, + "fs/alegreya-sans/1" + ], + [ + "Alegreya Sans SC", + "Black", + "AlegreyaSansSC-Black", + 3, + 12, + "fs/alegreya-sans/26" + ], + [ + "Alegreya Sans SC", + "Black Italic", + "AlegreyaSansSC-BlackItalic", + 3, + 12, + "fs/alegreya-sans/27" + ], + [ + "Alegreya Sans SC", + "Bold", + "AlegreyaSansSC-Bold", + 3, + 12, + "fs/alegreya-sans/22" + ], + [ + "Alegreya Sans SC", + "Bold Italic", + "AlegreyaSansSC-BoldItalic", + 3, + 12, + "fs/alegreya-sans/23" + ], + [ + "Alegreya Sans SC", + "ExtraBold", + "AlegreyaSansSC-ExtraBold", + 3, + 12, + "fs/alegreya-sans/24" + ], + [ + "Alegreya Sans SC", + "ExtraBold Italic", + "AlegreyaSansSC-ExtraBoldItalic", + 3, + 12, + "fs/alegreya-sans/25" + ], + [ + "Alegreya Sans SC", + "Italic", + "AlegreyaSansSC-Italic", + 3, + 12, + "fs/alegreya-sans/19" + ], + [ + "Alegreya Sans SC", + "Light", + "AlegreyaSansSC-Light", + 3, + 12, + "fs/alegreya-sans/16" + ], + [ + "Alegreya Sans SC", + "Light Italic", + "AlegreyaSansSC-LightItalic", + 3, + 12, + "fs/alegreya-sans/17" + ], + [ + "Alegreya Sans SC", + "Medium", + "AlegreyaSansSC-Medium", + 3, + 12, + "fs/alegreya-sans/20" + ], + [ + "Alegreya Sans SC", + "Medium Italic", + "AlegreyaSansSC-MediumItalic", + 3, + 12, + "fs/alegreya-sans/21" + ], + [ + "Alegreya Sans SC", + "Regular", + "AlegreyaSansSC-Regular", + 3, + 12, + "fs/alegreya-sans/18" + ], + [ + "Alegreya Sans SC", + "Thin", + "AlegreyaSansSC-Thin", + 3, + 12, + "fs/alegreya-sans/14" + ], + [ + "Alegreya Sans SC", + "Thin Italic", + "AlegreyaSansSC-ThinItalic", + 3, + 12, + "fs/alegreya-sans/15" + ], + [ + "Aleo", + "Bold", + "Aleo-Bold", + 1, + 15, + "fs/aleo/4" + ], + [ + "Aleo", + "BoldItalic", + "Aleo-BoldItalic", + 1, + 15, + "fs/aleo/5" + ], + [ + "Aleo", + "Italic", + "Aleo-Italic", + 1, + 15, + "fs/aleo/3" + ], + [ + "Aleo", + "Light", + "Aleo-Light", + 1, + 15, + "fs/aleo/0" + ], + [ + "Aleo", + "LightItalic", + "Aleo-LightItalic", + 1, + 15, + "fs/aleo/1" + ], + [ + "Aleo", + "Regular", + "Aleo-Regular", + 1, + 15, + "fs/aleo/2" + ], + [ + "Alex Brush", + "Regular", + "AlexBrush-Regular", + 1, + 13, + "fs/alex-brush/0" + ], + [ + "Alfa Slab One", + "Regular", + "AlfaSlabOne-Regular", + 1, + 4, + "fs/alfa-slab/0" + ], + [ + "Alice", + "Regular", + "Alice-Regular", + 9, + 14, + "fs/alice/0" + ], + [ + "Alike", + "Regular", + "Alike-Regular", + 1, + 14, + "gf/Alike/0" + ], + [ + "Alike Angular", + "Regular", + "AlikeAngular-Regular", + 1, + 14, + "gf/Alike Angular/0" + ], + [ + "Allan", + "Bold", + "Allan-Bold", + 1, + 4, + "gf/Allan/0" + ], + [ + "Allan", + "Regular", + "Allan-Regular", + 1, + 4, + "gf/Allan/1" + ], + [ + "Allerta", + "Regular", + "Allerta-Regular", + 1, + 12, + "gf/Allerta/0" + ], + [ + "Allerta Stencil", + "Regular", + "AllertaStencil-Regular", + 1, + 12, + "gf/Allerta Stencil/0" + ], + [ + "Allura", + "Regular", + "Allura-Regular", + 3, + 13, + "fs/allura/0" + ], + [ + "Almendra", + "Bold", + "Almendra-Bold", + 1, + 4, + "fs/almendra/2" + ], + [ + "Almendra", + "Bold Italic", + "Almendra-BoldItalic", + 1, + 4, + "fs/almendra/3" + ], + [ + "Almendra", + "Italic", + "Almendra-Italic", + 1, + 4, + "fs/almendra/1" + ], + [ + "Almendra", + "Regular", + "Almendra-Regular", + 3, + 4, + "fs/almendra/0" + ], + [ + "Almendra Display", + "Regular", + "AlmendraDisplay-Regular", + 1, + 4, + "fs/almendra/8" + ], + [ + "Almendra SC", + "Bold", + "AlmendraSC-Bold", + 1, + 4, + "fs/almendra/6" + ], + [ + "Almendra SC", + "Bold Italic", + "AlmendraSC-BoldItalic", + 1, + 4, + "fs/almendra/7" + ], + [ + "Almendra SC", + "Italic", + "AlmendraSC-Italic", + 1, + 4, + "fs/almendra/5" + ], + [ + "Almendra SC", + "Regular", + "AlmendraSC-Regular", + 1, + 4, + "fs/almendra/4" + ], + [ + "Alpha Echo", + "Regular", + "AlphaEcho", + 0, + 4, + "fs/Alpha-Echo/0" + ], + [ + "Amadeus Regular", + "Amadeus Regular", + "Amadeus-Regular", + 1, + 4, + "fs/Amadeus/0" + ], + [ + "Amarante", + "Regular", + "Amarante-Regular", + 3, + 4, + "gf/Amarante/0" + ], + [ + "Amaranth", + "Bold", + "Amaranth-Bold", + 1, + 12, + "fs/amaranth/2" + ], + [ + "Amaranth", + "Bold Italic", + "Amaranth-BoldItalic", + 1, + 12, + "fs/amaranth/3" + ], + [ + "Amaranth", + "Italic", + "Amaranth-Italic", + 1, + 12, + "fs/amaranth/1" + ], + [ + "Amaranth", + "Regular", + "Amaranth-Regular", + 1, + 12, + "fs/amaranth/0" + ], + [ + "Amatic", + "Bold", + "Amatic-Bold", + 3, + 6, + "fs/amatic/1" + ], + [ + "Amatic SC", + "Bold", + "AmaticSC-Bold", + 27, + 6, + "gf/Amatic SC/0" + ], + [ + "Amatic SC", + "Regular", + "AmaticSC-Regular", + 3, + 6, + "fs/amatic/0" + ], + [ + "Amble", + "Bold", + "Amble-Bold", + 3, + 12, + "fs/amble/4" + ], + [ + "Amble", + "Bold Italic", + "Amble-BoldItalic", + 3, + 12, + "fs/amble/5" + ], + [ + "Amble", + "Italic", + "Amble-Italic", + 3, + 12, + "fs/amble/3" + ], + [ + "Amble", + "Light", + "Amble-Light", + 3, + 12, + "fs/amble/0" + ], + [ + "Amble", + "Light Condensed", + "Amble-LightCondensed", + 3, + 12, + "fs/amble/6" + ], + [ + "Amble", + "Light Condensed Italic", + "Amble-LightCondensedItalic", + 3, + 12, + "fs/amble/7" + ], + [ + "Amble", + "Light Italic", + "Amble-LightItalic", + 3, + 12, + "fs/amble/1" + ], + [ + "Amble", + "Regular", + "Amble-Regular", + 3, + 12, + "fs/amble/2" + ], + [ + "Amerika", + "Regular", + "Amerika", + 13, + 4, + "fs/Amerika/0" + ], + [ + "Amerika Alternates", + "Regular", + "AmerikaAlternates", + 0, + 4, + "fs/Amerika/1" + ], + [ + "Amerika Sans", + "Regular", + "AmerikaSans", + 1, + 4, + "fs/Amerika/2" + ], + [ + "Amethysta", + "Regular", + "Amethysta-Regular", + 1, + 14, + "gf/Amethysta/0" + ], + [ + "Amiko", + "Bold", + "Amiko-Bold", + 515, + 12, + "fs/amiko/2" + ], + [ + "Amiko", + "Regular", + "Amiko-Regular", + 515, + 12, + "fs/amiko/0" + ], + [ + "Amiko", + "SemiBold", + "Amiko-SemiBold", + 515, + 12, + "fs/amiko/1" + ], + [ + "Amiri", + "Bold", + "Amiri-Bold", + 35, + 14, + "gf/Amiri/0" + ], + [ + "Amiri", + "Bold Italic", + "Amiri-BoldItalic", + 35, + 14, + "gf/Amiri/3" + ], + [ + "Amiri", + "Italic", + "Amiri-Italic", + 35, + 14, + "gf/Amiri/2" + ], + [ + "Amiri", + "Regular", + "Amiri-Regular", + 35, + 14, + "gf/Amiri/1" + ], + [ + "Amita", + "Bold", + "Amita-Bold", + 515, + 13, + "fs/amita/1" + ], + [ + "Amita", + "Regular", + "Amita-Regular", + 515, + 13, + "fs/amita/0" + ], + [ + "Anagram", + "Regular", + "Anagram", + 1, + 11, + "fs/Anagram/0" + ], + [ + "Anaheim", + "Regular", + "Anaheim-Regular", + 3, + 12, + "gf/Anaheim/0" + ], + [ + "Andada", + "Bold", + "Andada-Bold", + 3, + 14, + "fs/andada/2" + ], + [ + "Andada", + "Bold Italic", + "Andada-BoldItalic", + 3, + 14, + "fs/andada/3" + ], + [ + "Andada", + "Italic", + "Andada-Italic", + 3, + 14, + "fs/andada/1" + ], + [ + "Andada", + "Regular", + "Andada-Regular", + 3, + 14, + "fs/andada/0" + ], + [ + "Andada SC", + "Bold", + "AndadaSC-Bold", + 3, + 14, + "fs/andada/6" + ], + [ + "Andada SC", + "Bold Italic", + "AndadaSC-BoldItalic", + 3, + 14, + "fs/andada/7" + ], + [ + "Andada SC", + "Italic", + "AndadaSC-Italic", + 3, + 14, + "fs/andada/5" + ], + [ + "Andada SC", + "Regular", + "AndadaSC-Regular", + 3, + 14, + "fs/andada/4" + ], + [ + "Andika", + "Regular", + "Andika-Regular", + 11, + 12, + "gf/Andika/0" + ], + [ + "Andika New Basic", + "Bold", + "AndikaNewBasic-Bold", + 3, + 12, + "fs/andika-basic/2" + ], + [ + "Andika New Basic", + "Bold Italic", + "AndikaNewBasic-BoldItalic", + 3, + 12, + "fs/andika-basic/3" + ], + [ + "Andika New Basic", + "Italic", + "AndikaNewBasic-Italic", + 3, + 12, + "fs/andika-basic/1" + ], + [ + "Andika New Basic", + "Regular", + "AndikaNewBasic-Regular", + 3, + 12, + "fs/andika-basic/0" + ], + [ + "Angkor", + "Regular", + "Angkor-Regular", + 0, + 4, + "gf/Angkor/0" + ], + [ + "Annie Use Your Telescope", + "Regular", + "AnnieUseYourTelescope-Regular", + 3, + 6, + "gf/Annie Use Your Telescope/0" + ], + [ + "Anonymous", + "Regular", + "Anonymous", + 1, + 7, + "fs/Anonymous/0" + ], + [ + "Anonymous Pro", + "Regular", + "AnonymousPro", + 15, + 7, + "fs/Anonymous-Pro/0" + ], + [ + "Anonymous Pro", + "Bold", + "AnonymousPro-Bold", + 15, + 7, + "fs/Anonymous-Pro/2" + ], + [ + "Anonymous Pro", + "Bold Italic", + "AnonymousPro-BoldItalic", + 15, + 7, + "fs/Anonymous-Pro/3" + ], + [ + "Anonymous Pro", + "Italic", + "AnonymousPro-Italic", + 15, + 7, + "fs/Anonymous-Pro/1" + ], + [ + "Anonymous Pro", + "Regular", + "AnonymousPro-Regular", + 15, + 7, + "gf/Anonymous Pro/1" + ], + [ + "Antic", + "Regular", + "Antic-Regular", + 1, + 12, + "gf/Antic/0" + ], + [ + "Antic Didone", + "Regular", + "AnticDidone-Regular", + 1, + 14, + "fs/antic/0" + ], + [ + "Antic Sans", + "Regular", + "AnticSans", + 1, + 14, + "fs/antic/1" + ], + [ + "Antic Slab", + "Regular", + "AnticSlab", + 1, + 14, + "fs/antic/2" + ], + [ + "Antic Slab", + "Regular", + "AnticSlab-Regular", + 1, + 14, + "gf/Antic Slab/0" + ], + [ + "Anton", + "Regular", + "Anton-Regular", + 3, + 12, + "gf/Anton/0" + ], + [ + "Antonio", + "Bold", + "Antonio-Bold", + 3, + 4, + "fs/antonio/2" + ], + [ + "Antonio", + "Light", + "Antonio-Light", + 3, + 4, + "fs/antonio/0" + ], + [ + "Antonio", + "Regular", + "Antonio-Regular", + 3, + 4, + "fs/antonio/1" + ], + [ + "AnuDaw", + "Regular", + "AnuDaw", + 0, + 4, + "fs/AnuDaw/0" + ], + [ + "AnuDaw", + "Italic", + "AnuDawItalic", + 0, + 4, + "fs/AnuDaw/1" + ], + [ + "AquilineTwo", + "Regular", + "AquilineTwo", + 1, + 4, + "fs/Aquiline-two/0" + ], + [ + "Arapey", + "Italic", + "Arapey-Italic", + 1, + 14, + "fs/arapey/1" + ], + [ + "Arapey", + "Regular", + "Arapey-Regular", + 1, + 14, + "fs/arapey/0" + ], + [ + "Arbutus", + "Regular", + "Arbutus", + 3, + 4, + "fs/arbutus/0" + ], + [ + "Arbutus", + "Regular", + "Arbutus-Regular", + 3, + 4, + "gf/Arbutus/0" + ], + [ + "Arbutus Slab", + "Regular", + "ArbutusSlab-Regular", + 3, + 15, + "fs/arbutus-slab/0" + ], + [ + "Archistico", + "Bold", + "Archistico-Bold", + 0, + 4, + "fs/archistico/1" + ], + [ + "Archistico", + "Normal", + "Archistico-Normal", + 0, + 4, + "fs/archistico/0" + ], + [ + "Architects Daughter", + "Regular", + "ArchitectsDaughter", + 3, + 6, + "fs/architects-daughter/0" + ], + [ + "Architects Daughter", + "Regular", + "ArchitectsDaughter-Regular", + 3, + 6, + "gf/Architects Daughter/0" + ], + [ + "Archivo", + "Bold", + "Archivo-Bold", + 3, + 12, + "fs/archivo/6" + ], + [ + "Archivo", + "Bold Italic", + "Archivo-BoldItalic", + 3, + 12, + "fs/archivo/7" + ], + [ + "Archivo", + "Italic", + "Archivo-Italic", + 3, + 12, + "fs/archivo/1" + ], + [ + "Archivo", + "Medium", + "Archivo-Medium", + 3, + 12, + "fs/archivo/2" + ], + [ + "Archivo", + "Medium Italic", + "Archivo-MediumItalic", + 3, + 12, + "fs/archivo/3" + ], + [ + "Archivo", + "Regular", + "Archivo-Regular", + 3, + 12, + "fs/archivo/0" + ], + [ + "Archivo", + "SemiBold", + "Archivo-SemiBold", + 3, + 12, + "fs/archivo/4" + ], + [ + "Archivo", + "SemiBold Italic", + "Archivo-SemiBoldItalic", + 3, + 12, + "fs/archivo/5" + ], + [ + "Archivo Black", + "Regular", + "ArchivoBlack-Regular", + 3, + 4, + "fs/archivo-black/0" + ], + [ + "Archivo Narrow", + "Bold", + "ArchivoNarrow-Bold", + 3, + 4, + "fs/archivo-narrow/2" + ], + [ + "Archivo Narrow", + "Bold Italic", + "ArchivoNarrow-BoldItalic", + 3, + 4, + "fs/archivo-narrow/3" + ], + [ + "Archivo Narrow", + "Italic", + "ArchivoNarrow-Italic", + 3, + 4, + "fs/archivo-narrow/1" + ], + [ + "Archivo Narrow", + "Medium", + "ArchivoNarrow-Medium", + 3, + 12, + "gf/Archivo Narrow/0" + ], + [ + "Archivo Narrow", + "Medium Italic", + "ArchivoNarrow-MediumItalic", + 3, + 12, + "gf/Archivo Narrow/5" + ], + [ + "Archivo Narrow", + "Regular", + "ArchivoNarrow-Regular", + 3, + 4, + "fs/archivo-narrow/0" + ], + [ + "Archivo Narrow", + "SemiBold", + "ArchivoNarrow-SemiBold", + 3, + 12, + "gf/Archivo Narrow/1" + ], + [ + "Archivo Narrow", + "SemiBold Italic", + "ArchivoNarrow-SemiBoldItalic", + 3, + 12, + "gf/Archivo Narrow/6" + ], + [ + "Arcon", + "Regular", + "Arcon-Regular", + 3, + 12, + "fs/arcon/0" + ], + [ + "Arcon", + "Rounded-Regular", + "Arcon-Rounded-Regular", + 3, + 12, + "fs/arcon/1" + ], + [ + "Aref Ruqaa", + "Bold", + "ArefRuqaa-Bold", + 1, + 14, + "gf/Aref Ruqaa/0" + ], + [ + "Aref Ruqaa", + "Regular", + "ArefRuqaa-Regular", + 1, + 14, + "gf/Aref Ruqaa/1" + ], + [ + "Arima Koshi", + "Black", + "ArimaKoshi-Black", + 3, + 12, + "fs/arima/7" + ], + [ + "Arima Koshi", + "Bold", + "ArimaKoshi-Bold", + 3, + 12, + "fs/arima/6" + ], + [ + "Arima Koshi", + "ExtraLight", + "ArimaKoshi-ExtraLight", + 3, + 12, + "fs/arima/1" + ], + [ + "Arima Koshi", + "Light", + "ArimaKoshi-Light", + 3, + 12, + "fs/arima/2" + ], + [ + "Arima Koshi", + "Medium", + "ArimaKoshi-Medium", + 3, + 12, + "fs/arima/4" + ], + [ + "Arima Koshi", + "Regular", + "ArimaKoshi-Regular", + 3, + 12, + "fs/arima/3" + ], + [ + "Arima Koshi", + "Semi Bold", + "ArimaKoshi-SemiBold", + 3, + 12, + "fs/arima/5" + ], + [ + "Arima Koshi", + "Thin", + "ArimaKoshi-Thin", + 3, + 12, + "fs/arima/0" + ], + [ + "Arima Madurai", + "Black", + "ArimaMadurai-Black", + 3, + 12, + "fs/arima/15" + ], + [ + "Arima Madurai", + "Bold", + "ArimaMadurai-Bold", + 3, + 12, + "fs/arima/14" + ], + [ + "Arima Madurai", + "ExtraBold", + "ArimaMadurai-ExtraBold", + 3, + 4, + "gf/Arima Madurai/5" + ], + [ + "Arima Madurai", + "ExtraLight", + "ArimaMadurai-ExtraLight", + 3, + 12, + "fs/arima/9" + ], + [ + "Arima Madurai", + "Light", + "ArimaMadurai-Light", + 3, + 12, + "fs/arima/10" + ], + [ + "Arima Madurai", + "Medium", + "ArimaMadurai-Medium", + 3, + 12, + "fs/arima/12" + ], + [ + "Arima Madurai", + "Regular", + "ArimaMadurai-Regular", + 3, + 12, + "fs/arima/11" + ], + [ + "Arima Madurai", + "Semi Bold", + "ArimaMadurai-SemiBold", + 3, + 12, + "fs/arima/13" + ], + [ + "Arima Madurai", + "Thin", + "ArimaMadurai-Thin", + 3, + 12, + "fs/arima/8" + ], + [ + "Arimo", + "Regular", + "Arimo", + 31, + 12, + "fs/arimo/0" + ], + [ + "Arimo", + "Bold", + "Arimo-Bold", + 31, + 12, + "fs/arimo/2" + ], + [ + "Arimo", + "Bold Italic", + "Arimo-BoldItalic", + 31, + 12, + "fs/arimo/3" + ], + [ + "Arimo", + "Italic", + "Arimo-Italic", + 31, + 12, + "fs/arimo/1" + ], + [ + "Arimo", + "Regular", + "Arimo-Regular", + 31, + 12, + "gf/Arimo/1" + ], + [ + "Arizonia", + "Regular", + "Arizonia-Regular", + 1, + 13, + "fs/arizonia/0" + ], + [ + "ArmWrestler", + "Bold", + "ArmWrestler-Bold", + 1, + 4, + "fs/ArmWrestler/0" + ], + [ + "Armalite Rifle", + "Regular", + "ArmaliteRifle", + 0, + 16, + "fs/Armalite-Rifle/0" + ], + [ + "Armata", + "Regular", + "Armata-Regular", + 3, + 12, + "fs/armata/0" + ], + [ + "Arsenal", + "Bold", + "Arsenal-Bold", + 9, + 12, + "fs/arsenal/2" + ], + [ + "Arsenal", + "Bold Italic", + "Arsenal-BoldItalic", + 9, + 12, + "fs/arsenal/3" + ], + [ + "Arsenal", + "Italic", + "Arsenal-Italic", + 9, + 12, + "fs/arsenal/1" + ], + [ + "Arsenal", + "Regular", + "Arsenal-Regular", + 9, + 12, + "fs/arsenal/0" + ], + [ + "Artifika", + "Medium", + "Artifika-Medium", + 1, + 14, + "fs/artifika/0" + ], + [ + "Artifika", + "Regular", + "Artifika-Regular", + 1, + 14, + "gf/Artifika/0" + ], + [ + "Arvo", + "Regular", + "Arvo", + 1, + 15, + "fs/arvo/0" + ], + [ + "Arvo", + "Bold", + "Arvo-Bold", + 1, + 15, + "fs/arvo/2" + ], + [ + "Arvo", + "Bold Italic", + "Arvo-BoldItalic", + 1, + 15, + "fs/arvo/3" + ], + [ + "Arvo", + "Italic", + "Arvo-Italic", + 1, + 15, + "fs/arvo/1" + ], + [ + "Arya", + "Bold", + "Arya-Bold", + 515, + 12, + "gf/Arya/0" + ], + [ + "Arya", + "Regular", + "Arya-Regular", + 515, + 12, + "gf/Arya/1" + ], + [ + "Asap", + "Bold", + "Asap-Bold", + 3, + 12, + "fs/asap/4" + ], + [ + "Asap", + "BoldItalic", + "Asap-BoldItalic", + 3, + 12, + "fs/asap/5" + ], + [ + "Asap", + "Italic", + "Asap-Italic", + 3, + 12, + "fs/asap/1" + ], + [ + "Asap", + "Medium", + "Asap-Medium", + 3, + 12, + "fs/asap/2" + ], + [ + "Asap", + "MediumItalic", + "Asap-MediumItalic", + 3, + 12, + "fs/asap/3" + ], + [ + "Asap", + "Regular", + "Asap-Regular", + 3, + 12, + "fs/asap/0" + ], + [ + "Asap", + "SemiBold", + "Asap-SemiBold", + 3, + 12, + "gf/Asap/1" + ], + [ + "Asap", + "SemiBold Italic", + "Asap-SemiBoldItalic", + 3, + 12, + "gf/Asap/6" + ], + [ + "Asap", + "Symbol", + "Asap-Symbol", + 1, + 12, + "fs/asap/6" + ], + [ + "Asap Condensed", + "Bold", + "AsapCondensed-Bold", + 3, + 12, + "fs/asap-condensed/6" + ], + [ + "Asap Condensed", + "Bold Italic", + "AsapCondensed-BoldItalic", + 3, + 12, + "fs/asap-condensed/7" + ], + [ + "Asap Condensed", + "Italic", + "AsapCondensed-Italic", + 3, + 12, + "fs/asap-condensed/1" + ], + [ + "Asap Condensed", + "Medium", + "AsapCondensed-Medium", + 3, + 12, + "fs/asap-condensed/4" + ], + [ + "Asap Condensed", + "Medium Italic", + "AsapCondensed-MediumItalic", + 3, + 12, + "fs/asap-condensed/5" + ], + [ + "Asap Condensed", + "Regular", + "AsapCondensed-Regular", + 3, + 12, + "fs/asap-condensed/0" + ], + [ + "Asap Condensed", + "SemiBold", + "AsapCondensed-SemiBold", + 3, + 12, + "fs/asap-condensed/3" + ], + [ + "Asap Condensed", + "SemiBold Italic", + "AsapCondensed-SemiBoldItalic", + 3, + 12, + "fs/asap-condensed/2" + ], + [ + "Asar", + "Regular", + "Asar-Regular", + 515, + 14, + "gf/Asar/0" + ], + [ + "Asset", + "Regular", + "Asset-Regular", + 1, + 14, + "fs/asset/0" + ], + [ + "Assistant", + "Bold", + "Assistant-Bold", + 17, + 12, + "fs/assistant/4" + ], + [ + "Assistant", + "ExtraBold", + "Assistant-ExtraBold", + 17, + 12, + "fs/assistant/5" + ], + [ + "Assistant", + "ExtraLight", + "Assistant-ExtraLight", + 17, + 12, + "fs/assistant/0" + ], + [ + "Assistant", + "Light", + "Assistant-Light", + 17, + 12, + "fs/assistant/1" + ], + [ + "Assistant", + "Regular", + "Assistant-Regular", + 17, + 12, + "fs/assistant/2" + ], + [ + "Assistant", + "SemiBold", + "Assistant-SemiBold", + 17, + 12, + "fs/assistant/3" + ], + [ + "Astloch", + "Bold", + "Astloch-Bold", + 1, + 4, + "gf/Astloch/0" + ], + [ + "Astloch", + "Regular", + "Astloch-Regular", + 1, + 4, + "gf/Astloch/1" + ], + [ + "Asul", + "Bold", + "Asul-Bold", + 1, + 12, + "gf/Asul/0" + ], + [ + "Asul", + "Regular", + "Asul-Regular", + 1, + 12, + "gf/Asul/1" + ], + [ + "Athiti", + "Bold", + "Athiti-Bold", + 3, + 12, + "gf/Athiti/4" + ], + [ + "Athiti", + "ExtraLight", + "Athiti-ExtraLight", + 3, + 12, + "gf/Athiti/0" + ], + [ + "Athiti", + "Light", + "Athiti-Light", + 3, + 12, + "gf/Athiti/1" + ], + [ + "Athiti", + "Medium", + "Athiti-Medium", + 3, + 12, + "gf/Athiti/2" + ], + [ + "Athiti", + "Regular", + "Athiti-Regular", + 3, + 12, + "gf/Athiti/5" + ], + [ + "Athiti", + "SemiBold", + "Athiti-SemiBold", + 3, + 12, + "gf/Athiti/3" + ], + [ + "Atma", + "Bold", + "Atma-Bold", + 1, + 4, + "gf/Atma/3" + ], + [ + "Atma", + "Light", + "Atma-Light", + 1, + 4, + "gf/Atma/0" + ], + [ + "Atma", + "Medium", + "Atma-Medium", + 1, + 4, + "gf/Atma/1" + ], + [ + "Atma", + "Regular", + "Atma-Regular", + 1, + 4, + "gf/Atma/4" + ], + [ + "Atma", + "SemiBold", + "Atma-SemiBold", + 1, + 4, + "gf/Atma/2" + ], + [ + "Atomic Age", + "Regular", + "AtomicAge-Regular", + 3, + 4, + "fs/atomic-age/0" + ], + [ + "Aubrey", + "Regular", + "Aubrey-Regular", + 1, + 4, + "gf/Aubrey/0" + ], + [ + "Audiowide", + "Regular", + "Audiowide-Regular", + 3, + 4, + "gf/Audiowide/0" + ], + [ + "Aurulent Sans", + "Bold", + "AurulentSans-Bold", + 0, + 12, + "fs/Aurulent-Sans/2" + ], + [ + "Aurulent Sans", + "BoldItalic", + "AurulentSans-BoldItalic", + 0, + 12, + "fs/Aurulent-Sans/3" + ], + [ + "Aurulent Sans", + "Italic", + "AurulentSans-Italic", + 0, + 12, + "fs/Aurulent-Sans/1" + ], + [ + "Aurulent Sans", + "Regular", + "AurulentSans-Regular", + 0, + 12, + "fs/Aurulent-Sans/0" + ], + [ + "Aurulent Sans Mono", + "Regular", + "AurulentSansMono-Regular", + 0, + 12, + "fs/Aurulent-Sans-Mono/0" + ], + [ + "Autour One", + "Regular", + "AutourOne-Regular", + 3, + 4, + "fs/autour-one/0" + ], + [ + "Average", + "Regular", + "Average-Regular", + 1, + 14, + "gf/Average/0" + ], + [ + "Average Sans", + "Regular", + "AverageSans-Regular", + 3, + 12, + "gf/Average Sans/0" + ], + [ + "Averia Gruesa Libre", + "Regular", + "AveriaGruesaLibre-Regular", + 1, + 4, + "gf/Averia Gruesa Libre/0" + ], + [ + "Averia Libre", + "Bold", + "AveriaLibre-Bold", + 1, + 4, + "gf/Averia Libre/1" + ], + [ + "Averia Libre", + "Bold Italic", + "AveriaLibre-BoldItalic", + 1, + 4, + "gf/Averia Libre/5" + ], + [ + "Averia Libre", + "Italic", + "AveriaLibre-Italic", + 1, + 4, + "gf/Averia Libre/4" + ], + [ + "Averia Libre", + "Light", + "AveriaLibre-Light", + 1, + 4, + "gf/Averia Libre/0" + ], + [ + "Averia Libre", + "Light Italic", + "AveriaLibre-LightItalic", + 1, + 4, + "gf/Averia Libre/2" + ], + [ + "Averia Libre", + "Regular", + "AveriaLibre-Regular", + 1, + 4, + "gf/Averia Libre/3" + ], + [ + "Averia Sans Libre", + "Bold", + "AveriaSansLibre-Bold", + 1, + 4, + "gf/Averia Sans Libre/1" + ], + [ + "Averia Sans Libre", + "Bold Italic", + "AveriaSansLibre-BoldItalic", + 1, + 4, + "gf/Averia Sans Libre/5" + ], + [ + "Averia Sans Libre", + "Italic", + "AveriaSansLibre-Italic", + 1, + 4, + "gf/Averia Sans Libre/4" + ], + [ + "Averia Sans Libre", + "Light", + "AveriaSansLibre-Light", + 1, + 4, + "gf/Averia Sans Libre/0" + ], + [ + "Averia Sans Libre", + "Light Italic", + "AveriaSansLibre-LightItalic", + 1, + 4, + "gf/Averia Sans Libre/2" + ], + [ + "Averia Sans Libre", + "Regular", + "AveriaSansLibre-Regular", + 1, + 4, + "gf/Averia Sans Libre/3" + ], + [ + "Averia Serif Libre", + "Bold", + "AveriaSerifLibre-Bold", + 1, + 4, + "gf/Averia Serif Libre/1" + ], + [ + "Averia Serif Libre", + "Bold Italic", + "AveriaSerifLibre-BoldItalic", + 1, + 4, + "gf/Averia Serif Libre/5" + ], + [ + "Averia Serif Libre", + "Italic", + "AveriaSerifLibre-Italic", + 1, + 4, + "gf/Averia Serif Libre/4" + ], + [ + "Averia Serif Libre", + "Light", + "AveriaSerifLibre-Light", + 1, + 4, + "gf/Averia Serif Libre/0" + ], + [ + "Averia Serif Libre", + "Light Italic", + "AveriaSerifLibre-LightItalic", + 1, + 4, + "gf/Averia Serif Libre/2" + ], + [ + "Averia Serif Libre", + "Regular", + "AveriaSerifLibre-Regular", + 1, + 4, + "gf/Averia Serif Libre/3" + ], + [ + "Azoft Sans", + "Regular", + "AzoftSans", + 11, + 4, + "fs/azoft-sans/0" + ], + [ + "Azoft Sans", + "Bold", + "AzoftSans-Bold", + 11, + 4, + "fs/azoft-sans/2" + ], + [ + "Azoft Sans", + "Bold Italic", + "AzoftSans-BoldItalic", + 11, + 4, + "fs/azoft-sans/3" + ], + [ + "Azoft Sans", + "Italic", + "AzoftSans-Italic", + 11, + 4, + "fs/azoft-sans/1" + ], + [ + "BP Diet", + "UltraBlack", + "BPDiet-UltraBlack", + 4, + 4, + "fs/BP-Diet/0" + ], + [ + "BP Diet", + "UltraBlack Italic", + "BPDiet-UltraBlackItalic", + 4, + 4, + "fs/BP-Diet/1" + ], + [ + "BPdots", + "Regular", + "BPdots", + 5, + 4, + "fs/BPdots/1" + ], + [ + "BPdots", + "Bold", + "BPdots-Bold", + 5, + 4, + "fs/BPdots/2" + ], + [ + "BPdots", + "Light", + "BPdots-Light", + 5, + 4, + "fs/BPdots/0" + ], + [ + "BPdotsCondensed", + "Regular", + "BPdotsCondensed", + 5, + 4, + "fs/BPdotsCondensed/0" + ], + [ + "BPdotsCondensedDiamond", + "Regular", + "BPdotsCondensedDiamond", + 5, + 4, + "fs/BPdotsCondensed/2" + ], + [ + "BPdotsCondensedSquare", + "Regular", + "BPdotsCondensedSquare", + 5, + 4, + "fs/BPdotsCondensed/1" + ], + [ + "BPdotsDiamond", + "Regular", + "BPdotsDiamond", + 5, + 4, + "fs/BPdots/7" + ], + [ + "BPdotsDiamond", + "Bold", + "BPdotsDiamond-Bold", + 5, + 4, + "fs/BPdots/8" + ], + [ + "BPdotsDiamond", + "Light", + "BPdotsDiamond-Light", + 5, + 4, + "fs/BPdots/6" + ], + [ + "BPdotsMinus", + "Regular", + "BPdotsMinus", + 5, + 4, + "fs/BPdots/11" + ], + [ + "BPdotsMinus", + "Bold", + "BPdotsMinus-Bold", + 5, + 4, + "fs/BPdots/12" + ], + [ + "BPdotsPlus", + "Regular", + "BPdotsPlus", + 5, + 4, + "fs/BPdots/9" + ], + [ + "BPdotsPlus", + "Bold", + "BPdotsPlus-Bold", + 5, + 4, + "fs/BPdots/10" + ], + [ + "BPdotsSquares", + "Regular", + "BPdotsSquares", + 5, + 4, + "fs/BPdots/4" + ], + [ + "BPdotsSquares", + "Bold", + "BPdotsSquares-Bold", + 5, + 4, + "fs/BPdots/5" + ], + [ + "BPdotsSquares", + "Light", + "BPdotsSquares-Light", + 5, + 4, + "fs/BPdots/3" + ], + [ + "BPdotsUnicase", + "Regular", + "BPdotsUnicase", + 5, + 4, + "fs/BPdotsUnicase/1" + ], + [ + "BPdotsUnicase", + "Bold", + "BPdotsUnicase-Bold", + 5, + 4, + "fs/BPdotsUnicase/2" + ], + [ + "BPdotsUnicase", + "Light", + "BPdotsUnicase-Light", + 5, + 4, + "fs/BPdotsUnicase/0" + ], + [ + "BPdotsUnicaseDiamond", + "Regular", + "BPdotsUnicaseDiamond", + 5, + 4, + "fs/BPdotsUnicase/7" + ], + [ + "BPdotsUnicaseDiamond", + "Bold", + "BPdotsUnicaseDiamond-Bold", + 5, + 4, + "fs/BPdotsUnicase/8" + ], + [ + "BPdotsUnicaseDiamond", + "Light", + "BPdotsUnicaseDiamond-Light", + 5, + 4, + "fs/BPdotsUnicase/6" + ], + [ + "BPdotsUnicaseMinus", + "Regular", + "BPdotsUnicaseMinus", + 5, + 4, + "fs/BPdotsUnicase/11" + ], + [ + "BPdotsUnicaseMinus", + "Bold", + "BPdotsUnicaseMinus-Bold", + 5, + 4, + "fs/BPdotsUnicase/12" + ], + [ + "BPdotsUnicasePlus", + "Regular", + "BPdotsUnicasePlus", + 5, + 4, + "fs/BPdotsUnicase/9" + ], + [ + "BPdotsUnicasePlus", + "Bold", + "BPdotsUnicasePlus-Bold", + 5, + 4, + "fs/BPdotsUnicase/10" + ], + [ + "BPdotsUnicaseSquare", + "Regular", + "BPdotsUnicaseSquare", + 5, + 4, + "fs/BPdotsUnicase/4" + ], + [ + "BPdotsUnicaseSquare", + "Bold", + "BPdotsUnicaseSquare-Bold", + 5, + 4, + "fs/BPdotsUnicase/5" + ], + [ + "BPdotsUnicaseSquare", + "Light", + "BPdotsUnicaseSquare-Light", + 5, + 4, + "fs/BPdotsUnicase/3" + ], + [ + "BPdotsUnicaseVertical", + "Regular", + "BPdotsUnicaseVertical", + 5, + 4, + "fs/BPdotsUnicase/13" + ], + [ + "BPdotsUnicaseVertical", + "Bold", + "BPdotsUnicaseVertical-Bold", + 5, + 4, + "fs/BPdotsUnicase/14" + ], + [ + "BPdotsVertical", + "Regular", + "BPdotsVertical", + 5, + 4, + "fs/BPdots/13" + ], + [ + "BPdotsVertical", + "Bold", + "BPdotsVertical-Bold", + 5, + 4, + "fs/BPdots/14" + ], + [ + "BPmono", + "Regular", + "BPmono", + 4, + 7, + "fs/BPmono/0" + ], + [ + "BPmono", + "Bold", + "BPmono-Bold", + 4, + 7, + "fs/BPmono/2" + ], + [ + "BPmono", + "Italic", + "BPmono-Italic", + 4, + 7, + "fs/BPmono/1" + ], + [ + "BPreplay", + "Regular", + "BPreplay", + 4, + 12, + "fs/BPreplay/0" + ], + [ + "BPreplay", + "Bold", + "BPreplay-Bold", + 4, + 12, + "fs/BPreplay/2" + ], + [ + "BPreplay", + "Bold Italic", + "BPreplay-BoldItalic", + 4, + 12, + "fs/BPreplay/3" + ], + [ + "BPreplay", + "Italic", + "BPreplay-Italic", + 4, + 12, + "fs/BPreplay/1" + ], + [ + "BPscript", + "Regular", + "BPscript", + 4, + 11, + "fs/BPscript/0" + ], + [ + "Bad Script", + "Regular", + "BadScript-Regular", + 9, + 6, + "gf/Bad Script/0" + ], + [ + "Bahiana", + "Regular", + "Bahiana-Regular", + 3, + 4, + "fs/bahiana/0" + ], + [ + "Bai Jamjuree", + "Bold", + "BaiJamjuree-Bold", + 3, + 12, + "gf/Bai Jamjuree/4" + ], + [ + "Bai Jamjuree", + "Bold Italic", + "BaiJamjuree-BoldItalic", + 3, + 12, + "gf/Bai Jamjuree/11" + ], + [ + "Bai Jamjuree", + "ExtraLight", + "BaiJamjuree-ExtraLight", + 3, + 12, + "gf/Bai Jamjuree/0" + ], + [ + "Bai Jamjuree", + "ExtraLight Italic", + "BaiJamjuree-ExtraLightItalic", + 3, + 12, + "gf/Bai Jamjuree/5" + ], + [ + "Bai Jamjuree", + "Italic", + "BaiJamjuree-Italic", + 3, + 12, + "gf/Bai Jamjuree/8" + ], + [ + "Bai Jamjuree", + "Light", + "BaiJamjuree-Light", + 3, + 12, + "gf/Bai Jamjuree/1" + ], + [ + "Bai Jamjuree", + "Light Italic", + "BaiJamjuree-LightItalic", + 3, + 12, + "gf/Bai Jamjuree/6" + ], + [ + "Bai Jamjuree", + "Medium", + "BaiJamjuree-Medium", + 3, + 12, + "gf/Bai Jamjuree/2" + ], + [ + "Bai Jamjuree", + "Medium Italic", + "BaiJamjuree-MediumItalic", + 3, + 12, + "gf/Bai Jamjuree/9" + ], + [ + "Bai Jamjuree", + "Regular", + "BaiJamjuree-Regular", + 3, + 12, + "gf/Bai Jamjuree/7" + ], + [ + "Bai Jamjuree", + "SemiBold", + "BaiJamjuree-SemiBold", + 3, + 12, + "gf/Bai Jamjuree/3" + ], + [ + "Bai Jamjuree", + "SemiBold Italic", + "BaiJamjuree-SemiBoldItalic", + 3, + 12, + "gf/Bai Jamjuree/10" + ], + [ + "Baloo", + "Regular", + "Baloo", + 515, + 4, + "fs/baloo/0" + ], + [ + "Baloo", + "Regular", + "Baloo-Regular", + 515, + 4, + "gf/Baloo/0" + ], + [ + "Baloo Bhai", + "Regular", + "BalooBhai-Regular", + 3, + 4, + "gf/Baloo Bhai/0" + ], + [ + "Baloo Bhaijaan", + "Regular", + "BalooBhaijaan-Regular", + 3, + 4, + "gf/Baloo Bhaijaan/0" + ], + [ + "Baloo Bhaina", + "Regular", + "BalooBhaina-Regular", + 3, + 4, + "gf/Baloo Bhaina/0" + ], + [ + "Baloo Chettan", + "Regular", + "BalooChettan-Regular", + 3, + 4, + "gf/Baloo Chettan/0" + ], + [ + "Baloo Da", + "Regular", + "BalooDa-Regular", + 3, + 4, + "gf/Baloo Da/0" + ], + [ + "Baloo Paaji", + "Regular", + "BalooPaaji-Regular", + 3, + 4, + "gf/Baloo Paaji/0" + ], + [ + "Baloo Tamma", + "Regular", + "BalooTamma-Regular", + 3, + 4, + "gf/Baloo Tamma/0" + ], + [ + "Baloo Tammudu", + "Regular", + "BalooTammudu-Regular", + 3, + 4, + "gf/Baloo Tammudu/0" + ], + [ + "Baloo Thambi", + "Regular", + "BalooThambi-Regular", + 3, + 4, + "gf/Baloo Thambi/0" + ], + [ + "Balthazar", + "Regular", + "Balthazar-Regular", + 1, + 14, + "gf/Balthazar/0" + ], + [ + "Bangers", + "Regular", + "Bangers-Regular", + 3, + 4, + "gf/Bangers/0" + ], + [ + "Banksia", + "Regular", + "Banksia", + 1, + 4, + "fs/Banksia/0" + ], + [ + "Banksia", + " Black", + "BanksiaBlack", + 1, + 4, + "fs/Banksia/2" + ], + [ + "Banksia", + " Bold", + "BanksiaBold", + 1, + 4, + "fs/Banksia/1" + ], + [ + "Barlow", + "Black", + "Barlow-Black", + 3, + 12, + "fs/barlow/16" + ], + [ + "Barlow", + "Black Italic", + "Barlow-BlackItalic", + 3, + 12, + "fs/barlow/17" + ], + [ + "Barlow", + "Bold", + "Barlow-Bold", + 3, + 12, + "fs/barlow/12" + ], + [ + "Barlow", + "Bold Italic", + "Barlow-BoldItalic", + 3, + 12, + "fs/barlow/13" + ], + [ + "Barlow", + "ExtraBold", + "Barlow-ExtraBold", + 3, + 12, + "gf/Barlow/6" + ], + [ + "Barlow", + "ExtraBold Italic", + "Barlow-ExtraBoldItalic", + 3, + 12, + "fs/barlow/14" + ], + [ + "Barlow", + "ExtraLight", + "Barlow-ExtraLight", + 3, + 12, + "fs/barlow/2" + ], + [ + "Barlow", + "ExtraLight Italic", + "Barlow-ExtraLightItalic", + 3, + 12, + "fs/barlow/3" + ], + [ + "Barlow", + "Italic", + "Barlow-Italic", + 3, + 12, + "fs/barlow/7" + ], + [ + "Barlow", + "Light", + "Barlow-Light", + 3, + 12, + "fs/barlow/4" + ], + [ + "Barlow", + "Light Italic", + "Barlow-LightItalic", + 3, + 12, + "fs/barlow/5" + ], + [ + "Barlow", + "Medium", + "Barlow-Medium", + 3, + 12, + "fs/barlow/8" + ], + [ + "Barlow", + "Medium Italic", + "Barlow-MediumItalic", + 3, + 12, + "fs/barlow/9" + ], + [ + "Barlow", + "Regular", + "Barlow-Regular", + 3, + 12, + "fs/barlow/6" + ], + [ + "Barlow", + "SemiBold", + "Barlow-SemiBold", + 3, + 12, + "fs/barlow/10" + ], + [ + "Barlow", + "SemiBold Italic", + "Barlow-SemiBoldItalic", + 3, + 12, + "fs/barlow/11" + ], + [ + "Barlow", + "Thin", + "Barlow-Thin", + 3, + 12, + "fs/barlow/0" + ], + [ + "Barlow", + "Thin Italic", + "Barlow-ThinItalic", + 3, + 12, + "fs/barlow/1" + ], + [ + "Barlow Condensed", + "Black", + "BarlowCondensed-Black", + 3, + 12, + "fs/barlow/34" + ], + [ + "Barlow Condensed", + "Black Italic", + "BarlowCondensed-BlackItalic", + 3, + 12, + "fs/barlow/35" + ], + [ + "Barlow Condensed", + "Bold", + "BarlowCondensed-Bold", + 3, + 12, + "fs/barlow/30" + ], + [ + "Barlow Condensed", + "Bold Italic", + "BarlowCondensed-BoldItalic", + 3, + 12, + "fs/barlow/31" + ], + [ + "Barlow Condensed", + "ExtraBold", + "BarlowCondensed-ExtraBold", + 3, + 12, + "fs/barlow/32" + ], + [ + "Barlow Condensed", + "ExtraBold Italic", + "BarlowCondensed-ExtraBoldItalic", + 3, + 12, + "fs/barlow/33" + ], + [ + "Barlow Condensed", + "ExtraLight", + "BarlowCondensed-ExtraLight", + 3, + 12, + "fs/barlow/20" + ], + [ + "Barlow Condensed", + "ExtraLight Italic", + "BarlowCondensed-ExtraLightItalic", + 3, + 12, + "fs/barlow/21" + ], + [ + "Barlow Condensed", + "Italic", + "BarlowCondensed-Italic", + 3, + 12, + "fs/barlow/25" + ], + [ + "Barlow Condensed", + "Light", + "BarlowCondensed-Light", + 3, + 12, + "fs/barlow/22" + ], + [ + "Barlow Condensed", + "Light Italic", + "BarlowCondensed-LightItalic", + 3, + 12, + "fs/barlow/23" + ], + [ + "Barlow Condensed", + "Medium", + "BarlowCondensed-Medium", + 3, + 12, + "fs/barlow/26" + ], + [ + "Barlow Condensed", + "Medium Italic", + "BarlowCondensed-MediumItalic", + 3, + 12, + "fs/barlow/27" + ], + [ + "Barlow Condensed", + "Regular", + "BarlowCondensed-Regular", + 3, + 12, + "fs/barlow/24" + ], + [ + "Barlow Condensed", + "SemiBold", + "BarlowCondensed-SemiBold", + 3, + 12, + "fs/barlow/28" + ], + [ + "Barlow Condensed", + "SemiBold Italic", + "BarlowCondensed-SemiBoldItalic", + 3, + 12, + "fs/barlow/29" + ], + [ + "Barlow Condensed", + "Thin", + "BarlowCondensed-Thin", + 3, + 12, + "fs/barlow/18" + ], + [ + "Barlow Condensed", + "Thin Italic", + "BarlowCondensed-ThinItalic", + 3, + 12, + "fs/barlow/19" + ], + [ + "Barlow Semi Condensed", + "Black", + "BarlowSemiCondensed-Black", + 3, + 12, + "fs/barlow/52" + ], + [ + "Barlow Semi Condensed", + "Black Italic", + "BarlowSemiCondensed-BlackItalic", + 3, + 12, + "fs/barlow/53" + ], + [ + "Barlow Semi Condensed", + "Bold", + "BarlowSemiCondensed-Bold", + 3, + 12, + "fs/barlow/48" + ], + [ + "Barlow Semi Condensed", + "Bold Italic", + "BarlowSemiCondensed-BoldItalic", + 3, + 12, + "fs/barlow/49" + ], + [ + "Barlow Semi Condensed", + "ExtraBold", + "BarlowSemiCondensed-ExtraBold", + 3, + 12, + "fs/barlow/50" + ], + [ + "Barlow Semi Condensed", + "ExtraBold Italic", + "BarlowSemiCondensed-ExtraBoldItalic", + 3, + 12, + "fs/barlow/51" + ], + [ + "Barlow Semi Condensed", + "ExtraLight", + "BarlowSemiCondensed-ExtraLight", + 3, + 12, + "fs/barlow/38" + ], + [ + "Barlow Semi Condensed", + "ExtraLight Italic", + "BarlowSemiCondensed-ExtraLightItalic", + 3, + 12, + "fs/barlow/39" + ], + [ + "Barlow Semi Condensed", + "Italic", + "BarlowSemiCondensed-Italic", + 3, + 12, + "fs/barlow/43" + ], + [ + "Barlow Semi Condensed", + "Light", + "BarlowSemiCondensed-Light", + 3, + 12, + "fs/barlow/40" + ], + [ + "Barlow Semi Condensed", + "Light Italic", + "BarlowSemiCondensed-LightItalic", + 3, + 12, + "fs/barlow/41" + ], + [ + "Barlow Semi Condensed", + "Medium", + "BarlowSemiCondensed-Medium", + 3, + 12, + "fs/barlow/44" + ], + [ + "Barlow Semi Condensed", + "Medium Italic", + "BarlowSemiCondensed-MediumItalic", + 3, + 12, + "fs/barlow/45" + ], + [ + "Barlow Semi Condensed", + "Regular", + "BarlowSemiCondensed-Regular", + 3, + 12, + "fs/barlow/42" + ], + [ + "Barlow Semi Condensed", + "SemiBold", + "BarlowSemiCondensed-SemiBold", + 3, + 12, + "fs/barlow/46" + ], + [ + "Barlow Semi Condensed", + "SemiBold Italic", + "BarlowSemiCondensed-SemiBoldItalic", + 3, + 12, + "fs/barlow/47" + ], + [ + "Barlow Semi Condensed", + "Thin", + "BarlowSemiCondensed-Thin", + 3, + 12, + "fs/barlow/36" + ], + [ + "Barlow Semi Condensed", + "Thin Italic", + "BarlowSemiCondensed-ThinItalic", + 3, + 12, + "fs/barlow/37" + ], + [ + "Barrio", + "Regular", + "Barrio-Regular", + 3, + 4, + "fs/barrio/0" + ], + [ + "Basic", + "Regular", + "Basic-Regular", + 3, + 12, + "gf/Basic/0" + ], + [ + "Battambang", + "Bold", + "Battambang-Bold", + 0, + 4, + "gf/Battambang/0" + ], + [ + "Battambang", + "Regular", + "Battambang-Regular", + 0, + 4, + "gf/Battambang/1" + ], + [ + "Baumans", + "Regular", + "Baumans-Regular", + 1, + 4, + "gf/Baumans/0" + ], + [ + "Bayon", + "Regular", + "Bayon-Regular", + 0, + 4, + "gf/Bayon/0" + ], + [ + "Bearpaw", + "Regular", + "Bearpaw", + 0, + 4, + "fs/Bearpaw/0" + ], + [ + "Bebas", + "Regular", + "Bebas", + 0, + 4, + "fs/Bebas/0" + ], + [ + "Bebas Kai", + "Regular", + "BebasKai", + 3, + 12, + "fs/bebas-kai/0" + ], + [ + "Belgrano", + "Regular", + "Belgrano-Regular", + 1, + 14, + "gf/Belgrano/0" + ], + [ + "Bellefair", + "Regular", + "Bellefair-Regular", + 19, + 14, + "fs/bellefair/0" + ], + [ + "Belleza", + "Regular", + "Belleza-Regular", + 1, + 12, + "gf/Belleza/0" + ], + [ + "Belligerent Madness", + "Regular", + "BelligerentMadness", + 0, + 6, + "fs/Belligerent-Madness/0" + ], + [ + "Bellota", + "Bold", + "Bellota-Bold", + 3, + 4, + "fs/bellota/4" + ], + [ + "Bellota", + "Bold Italic", + "Bellota-BoldItalic", + 3, + 4, + "fs/bellota/5" + ], + [ + "Bellota", + "Italic", + "Bellota-Italic", + 3, + 4, + "fs/bellota/3" + ], + [ + "Bellota", + "Light", + "Bellota-Light", + 3, + 4, + "fs/bellota/0" + ], + [ + "Bellota", + "Light Italic", + "Bellota-LightItalic", + 3, + 4, + "fs/bellota/1" + ], + [ + "Bellota", + "Regular", + "Bellota-Regular", + 3, + 4, + "fs/bellota/2" + ], + [ + "BenchNine", + "Bold", + "BenchNine-Bold", + 3, + 4, + "fs/benchnine/2" + ], + [ + "BenchNine", + "Light", + "BenchNine-Light", + 3, + 4, + "fs/benchnine/0" + ], + [ + "BenchNine", + "Regular", + "BenchNine-Regular", + 3, + 4, + "fs/benchnine/1" + ], + [ + "Benne", + "Regular", + "Benne-Regular", + 3, + 14, + "fs/benne/0" + ], + [ + "Bentham", + "Regular", + "Bentham-Regular", + 3, + 14, + "gf/Bentham/0" + ], + [ + "Bentham", + "Regular", + "BenthamRegular", + 3, + 14, + "fs/Bentham/0" + ], + [ + "Berkshire Swash", + "Regular", + "BerkshireSwash-Regular", + 3, + 13, + "fs/berkshire-swash/0" + ], + [ + "Beth Ellen", + "Regular", + "BethEllenRegular", + 0, + 6, + "fs/beth-ellen/0" + ], + [ + "Bevan", + "Regular", + "Bevan", + 3, + 4, + "fs/bevan/0" + ], + [ + "Bevan", + "Regular", + "Bevan-Regular", + 3, + 4, + "gf/Bevan/0" + ], + [ + "Bigelow Rules", + "Regular", + "BigelowRules-Regular", + 3, + 4, + "fs/bigelow-rules/0" + ], + [ + "Bigshot One", + "Regular", + "BigshotOne-Regular", + 1, + 4, + "gf/Bigshot One/0" + ], + [ + "Bilbo", + "Regular", + "Bilbo-Regular", + 1, + 13, + "fs/bilbo/0" + ], + [ + "Bilbo Swash Caps", + "Regular", + "BilboSwashCaps-Regular", + 1, + 13, + "fs/bilbo/1" + ], + [ + "BioRhyme", + "Bold", + "BioRhyme-Bold", + 3, + 15, + "fs/biorhyme/3" + ], + [ + "BioRhyme", + "ExtraBold", + "BioRhyme-ExtraBold", + 3, + 15, + "fs/biorhyme/4" + ], + [ + "BioRhyme", + "ExtraLight", + "BioRhyme-ExtraLight", + 3, + 15, + "fs/biorhyme/0" + ], + [ + "BioRhyme", + "Light", + "BioRhyme-Light", + 3, + 15, + "fs/biorhyme/1" + ], + [ + "BioRhyme", + "Regular", + "BioRhyme-Regular", + 3, + 15, + "fs/biorhyme/2" + ], + [ + "BioRhyme Expanded", + "Bold", + "BioRhymeExpanded-Bold", + 3, + 15, + "fs/biorhyme-expanded/3" + ], + [ + "BioRhyme Expanded", + "ExtraBold", + "BioRhymeExpanded-ExtraBold", + 3, + 15, + "fs/biorhyme-expanded/4" + ], + [ + "BioRhyme Expanded", + "ExtraLight", + "BioRhymeExpanded-ExtraLight", + 3, + 15, + "fs/biorhyme-expanded/0" + ], + [ + "BioRhyme Expanded", + "Light", + "BioRhymeExpanded-Light", + 3, + 15, + "fs/biorhyme-expanded/1" + ], + [ + "BioRhyme Expanded", + "Regular", + "BioRhymeExpanded-Regular", + 3, + 15, + "fs/biorhyme-expanded/2" + ], + [ + "Biryani", + "Black", + "Biryani-Black", + 515, + 12, + "gf/Biryani/5" + ], + [ + "Biryani", + "Bold", + "Biryani-Bold", + 515, + 12, + "fs/biryani/4" + ], + [ + "Biryani", + "DemiBold", + "Biryani-DemiBold", + 515, + 12, + "fs/biryani/3" + ], + [ + "Biryani", + "ExtraBold", + "Biryani-ExtraBold", + 515, + 12, + "fs/biryani/5" + ], + [ + "Biryani", + "ExtraLight", + "Biryani-ExtraLight", + 515, + 12, + "gf/Biryani/0" + ], + [ + "Biryani", + "Heavy", + "Biryani-Heavy", + 515, + 12, + "fs/biryani/6" + ], + [ + "Biryani", + "Light", + "Biryani-Light", + 515, + 12, + "fs/biryani/1" + ], + [ + "Biryani", + "Regular", + "Biryani-Regular", + 515, + 12, + "fs/biryani/2" + ], + [ + "Biryani", + "SemiBold", + "Biryani-SemiBold", + 515, + 12, + "gf/Biryani/2" + ], + [ + "Biryani", + "UltraLight", + "Biryani-UltraLight", + 515, + 12, + "fs/biryani/0" + ], + [ + "Bitstream Vera Sans", + "Bold", + "BitstreamVeraSans-Bold", + 1, + 12, + "fs/Bitstream-Vera-Sans/2" + ], + [ + "Bitstream Vera Sans", + "Bold Oblique", + "BitstreamVeraSans-BoldOblique", + 1, + 12, + "fs/Bitstream-Vera-Sans/3" + ], + [ + "Bitstream Vera Sans", + "Oblique", + "BitstreamVeraSans-Oblique", + 1, + 12, + "fs/Bitstream-Vera-Sans/1" + ], + [ + "Bitstream Vera Sans", + "Roman", + "BitstreamVeraSans-Roman", + 1, + 12, + "fs/Bitstream-Vera-Sans/0" + ], + [ + "Bitstream Vera Sans Mono", + "Bold", + "BitstreamVeraSansMono-Bold", + 1, + 7, + "fs/Bitstream-Vera-Sans-Mono/2" + ], + [ + "Bitstream Vera Sans Mono", + "Bold Oblique", + "BitstreamVeraSansMono-BoldOb", + 1, + 7, + "fs/Bitstream-Vera-Sans-Mono/3" + ], + [ + "Bitstream Vera Sans Mono", + "Oblique", + "BitstreamVeraSansMono-Oblique", + 1, + 7, + "fs/Bitstream-Vera-Sans-Mono/1" + ], + [ + "Bitstream Vera Sans Mono", + "Roman", + "BitstreamVeraSansMono-Roman", + 1, + 7, + "fs/Bitstream-Vera-Sans-Mono/0" + ], + [ + "Bitstream Vera Serif", + "Bold", + "BitstreamVeraSerif-Bold", + 1, + 15, + "fs/Bitstream-Vera-Serif/1" + ], + [ + "Bitstream Vera Serif", + "Roman", + "BitstreamVeraSerif-Roman", + 1, + 15, + "fs/Bitstream-Vera-Serif/0" + ], + [ + "Bitter", + "Bold", + "Bitter-Bold", + 11, + 15, + "fs/bitter/2" + ], + [ + "Bitter", + "Bold Italic", + "Bitter-BoldItalic", + 11, + 15, + "fs/bitter/3" + ], + [ + "Bitter", + "Italic", + "Bitter-Italic", + 11, + 15, + "fs/bitter/1" + ], + [ + "Bitter", + "Regular", + "Bitter-Regular", + 11, + 15, + "fs/bitter/0" + ], + [ + "Black And White Picture", + "Regular", + "BlackAndWhitePicture-Regular", + 64, + 12, + "gf/Black And White Picture/0" + ], + [ + "Black Han Sans", + "Regular", + "BlackHanSans-Regular", + 0, + 12, + "gf/Black Han Sans/0" + ], + [ + "Black Jack", + "Regular", + "BlackJack", + 1, + 13, + "fs/blackjack/0" + ], + [ + "Black Ops One", + "Regular", + "BlackOpsOne-Regular", + 3, + 16, + "fs/black-ops-one/0" + ], + [ + "Black Rose", + "Regular", + "BlackRose", + 1, + 4, + "fs/Black-Rose/0" + ], + [ + "Blackout", + "2 AM", + "Blackout-2AM", + 0, + 4, + "fs/Blackout/1" + ], + [ + "Blackout", + "Midnight", + "Blackout-Midnight", + 0, + 4, + "fs/Blackout/0" + ], + [ + "Blazium", + "Regular", + "Blazium", + 3, + 8, + "fs/blazium/0" + ], + [ + "Blogger Sans", + "Regular", + "BloggerSans", + 11, + 12, + "fs/blogger-sans/2" + ], + [ + "Blogger Sans", + "Bold", + "BloggerSans-Bold", + 11, + 12, + "fs/blogger-sans/6" + ], + [ + "Blogger Sans", + "Bold Italic", + "BloggerSans-BoldItalic", + 11, + 12, + "fs/blogger-sans/7" + ], + [ + "Blogger Sans", + "Italic", + "BloggerSans-Italic", + 11, + 12, + "fs/blogger-sans/3" + ], + [ + "Blogger Sans", + "Light", + "BloggerSans-Light", + 11, + 12, + "fs/blogger-sans/0" + ], + [ + "Blogger Sans", + "Light Italic", + "BloggerSans-LightItalic", + 11, + 12, + "fs/blogger-sans/1" + ], + [ + "Blogger Sans", + "Medium", + "BloggerSans-Medium", + 11, + 12, + "fs/blogger-sans/4" + ], + [ + "Blogger Sans", + "Medium Italic", + "BloggerSans-MediumItalic", + 11, + 12, + "fs/blogger-sans/5" + ], + [ + "Blokletters Balpen", + "Balpen", + "Blokletters-Balpen", + 1, + 6, + "fs/Blokletters-Potlood/1" + ], + [ + "Blokletters Potlood", + "Potlood", + "Blokletters-Potlood", + 1, + 6, + "fs/Blokletters-Potlood/0" + ], + [ + "Blokletters Viltstift", + "Viltstift", + "Blokletters-Viltstift", + 1, + 6, + "fs/Blokletters-Potlood/2" + ], + [ + "Bloody", + "Normal", + "Bloody", + 0, + 8, + "fs/Bloody/0" + ], + [ + "BodoniXT", + "Regular", + "BodoniXT", + 1, + 14, + "fs/BodoniXT/0" + ], + [ + "Bodonitown", + "Regular", + "Bodonitown", + 1, + 15, + "fs/Bodonitown/0" + ], + [ + "Bokor", + "Regular", + "Bokor-Regular", + 0, + 4, + "gf/Bokor/0" + ], + [ + "Bonbon", + "Regular", + "Bonbon-Regular", + 1, + 6, + "gf/Bonbon/0" + ], + [ + "BonvenoCF", + "Light", + "BonvenoCF-Light", + 2, + 12, + "fs/BonvenoCF/0" + ], + [ + "Boogaloo", + "Regular", + "Boogaloo-Regular", + 1, + 4, + "fs/boogaloo/0" + ], + [ + "Boston Traffic", + "Regular", + "BostonTraffic", + 0, + 16, + "fs/Boston-Traffic/0" + ], + [ + "Bowlby One", + "Regular", + "BowlbyOne", + 1, + 4, + "fs/bowlby-one/0" + ], + [ + "Bowlby One", + "Regular", + "BowlbyOne-Regular", + 1, + 4, + "gf/Bowlby One/0" + ], + [ + "Bowlby One SC", + "Regular", + "BowlbyOneSC-Regular", + 1, + 4, + "fs/bowlby-one/1" + ], + [ + "Boycott", + "Regular", + "Boycott", + 0, + 4, + "fs/Boycott/0" + ], + [ + "Brawler", + "Regular", + "Brawler", + 1, + 14, + "fs/brawler/0" + ], + [ + "Brawler", + "Regular", + "Brawler-Regular", + 1, + 14, + "gf/Brawler/0" + ], + [ + "Bree Serif", + "Regular", + "BreeSerif-Regular", + 3, + 15, + "fs/bree-serif/0" + ], + [ + "Brizel", + "Regular", + "Brizel", + 3, + 6, + "fs/brizel/0" + ], + [ + "Brushstroke Plain", + "Plain", + "Brushstroke-Plain", + 0, + 4, + "fs/Brushstroke-Plain/0" + ], + [ + "Bubblegum Sans", + "Regular", + "BubblegumSans-Regular", + 1, + 4, + "fs/bubblegum-sans/0" + ], + [ + "Bubbler One", + "Regular", + "BubblerOne", + 1, + 12, + "fs/bubbler-one/0" + ], + [ + "Bubbler One", + "Regular", + "BubblerOne-Regular", + 1, + 12, + "gf/Bubbler One/0" + ], + [ + "Buda", + "Light", + "Buda-Light", + 1, + 4, + "gf/Buda/0" + ], + [ + "Buenard", + "Bold", + "Buenard-Bold", + 3, + 14, + "gf/Buenard/0" + ], + [ + "Buenard", + "Regular", + "Buenard-Regular", + 3, + 14, + "gf/Buenard/1" + ], + [ + "Bungee", + "Hairline", + "Bungee-Hairline", + 3, + 12, + "fs/bungee/2" + ], + [ + "Bungee", + "Inline", + "Bungee-Inline", + 3, + 12, + "fs/bungee/1" + ], + [ + "Bungee", + "Outline", + "Bungee-Outline", + 3, + 12, + "fs/bungee/3" + ], + [ + "Bungee", + "Regular", + "Bungee-Regular", + 3, + 4, + "gf/Bungee/0" + ], + [ + "Bungee", + "Shade", + "Bungee-Shade", + 3, + 12, + "fs/bungee/4" + ], + [ + "Bungee Hairline", + "Regular", + "BungeeHairline-Regular", + 3, + 4, + "gf/Bungee Hairline/0" + ], + [ + "Bungee Inline", + "Regular", + "BungeeInline-Regular", + 3, + 4, + "gf/Bungee Inline/0" + ], + [ + "Bungee Layers", + "Inline", + "BungeeLayers-Inline", + 3, + 12, + "fs/bungee/6" + ], + [ + "Bungee Layers", + "Outline", + "BungeeLayers-Outline", + 3, + 12, + "fs/bungee/7" + ], + [ + "Bungee Layers", + "Regular", + "BungeeLayers-Regular", + 3, + 12, + "fs/bungee/5" + ], + [ + "Bungee Layers", + "Shade", + "BungeeLayers-Shade", + 3, + 12, + "fs/bungee/8" + ], + [ + "Bungee Layers Rotated", + "Inline", + "BungeeLayersRotated-Inline", + 3, + 12, + "fs/bungee/10" + ], + [ + "Bungee Layers Rotated", + "Outline", + "BungeeLayersRotated-Outline", + 3, + 12, + "fs/bungee/11" + ], + [ + "Bungee Layers Rotated", + "Regular", + "BungeeLayersRotated-Regular", + 3, + 12, + "fs/bungee/9" + ], + [ + "Bungee Layers Rotated", + "Shade", + "BungeeLayersRotated-Shade", + 3, + 12, + "fs/bungee/12" + ], + [ + "Bungee Outline", + "Regular", + "BungeeOutline-Regular", + 3, + 4, + "gf/Bungee Outline/0" + ], + [ + "Bungee Shade", + "Regular", + "BungeeShade-Regular", + 3, + 4, + "gf/Bungee Shade/0" + ], + [ + "Butcherman", + "Regular", + "Butcherman-Regular", + 3, + 4, + "gf/Butcherman/0" + ], + [ + "Butterfly Kids", + "Regular", + "ButterflyKids-Regular", + 1, + 6, + "gf/Butterfly Kids/0" + ], + [ + "CAC Champagne", + "Regular", + "CACChampagne", + 1, + 13, + "fs/CAC-Champagne/0" + ], + [ + "CMU Bright", + "Oblique", + "CMUBright-Oblique", + 13, + 12, + "fs/computer-modern/22" + ], + [ + "CMU Bright", + "Roman", + "CMUBright-Roman", + 13, + 12, + "fs/computer-modern/21" + ], + [ + "CMU Bright", + "SemiBold", + "CMUBright-SemiBold", + 13, + 12, + "fs/computer-modern/23" + ], + [ + "CMU Bright", + "SemiBoldOblique", + "CMUBright-SemiBoldOblique", + 13, + 12, + "fs/computer-modern/24" + ], + [ + "CMU Classical Serif", + "Italic", + "CMUClassicalSerif-Italic", + 13, + 12, + "fs/computer-modern/12" + ], + [ + "CMU Concrete", + "Bold", + "CMUConcrete-Bold", + 13, + 12, + "fs/computer-modern/27" + ], + [ + "CMU Concrete", + "BoldItalic", + "CMUConcrete-BoldItalic", + 13, + 12, + "fs/computer-modern/28" + ], + [ + "CMU Concrete", + "Italic", + "CMUConcrete-Italic", + 13, + 12, + "fs/computer-modern/26" + ], + [ + "CMU Concrete", + "Roman", + "CMUConcrete-Roman", + 13, + 12, + "fs/computer-modern/25" + ], + [ + "CMU Sans Serif", + "Medium", + "CMUSansSerif", + 13, + 12, + "fs/computer-modern/0" + ], + [ + "CMU Sans Serif", + "Bold", + "CMUSansSerif-Bold", + 13, + 12, + "fs/computer-modern/2" + ], + [ + "CMU Sans Serif", + "BoldOblique", + "CMUSansSerif-BoldOblique", + 13, + 12, + "fs/computer-modern/3" + ], + [ + "CMU Sans Serif Demi Condensed", + "DemiCondensed", + "CMUSansSerif-DemiCondensed", + 13, + 12, + "fs/computer-modern/4" + ], + [ + "CMU Sans Serif", + "Oblique", + "CMUSansSerif-Oblique", + 13, + 12, + "fs/computer-modern/1" + ], + [ + "CMU Serif", + "Bold", + "CMUSerif-Bold", + 13, + 12, + "fs/computer-modern/7" + ], + [ + "CMU Serif", + "BoldItalic", + "CMUSerif-BoldItalic", + 13, + 12, + "fs/computer-modern/8" + ], + [ + "CMU Serif Extra", + "BoldSlanted", + "CMUSerif-BoldSlanted", + 13, + 12, + "fs/computer-modern/11" + ], + [ + "CMU Serif", + "Italic", + "CMUSerif-Italic", + 13, + 12, + "fs/computer-modern/6" + ], + [ + "CMU Serif", + "Roman", + "CMUSerif-Roman", + 15, + 12, + "fs/computer-modern/5" + ], + [ + "CMU Serif Extra", + "RomanSlanted", + "CMUSerif-RomanSlanted", + 13, + 12, + "fs/computer-modern/10" + ], + [ + "CMU Serif Upright Italic", + "UprightItalic", + "CMUSerif-UprightItalic", + 13, + 12, + "fs/computer-modern/9" + ], + [ + "CMU Typewriter Text", + "Bold", + "CMUTypewriter-Bold", + 13, + 12, + "fs/computer-modern/17" + ], + [ + "CMU Typewriter Text", + "BoldItalic", + "CMUTypewriter-BoldItalic", + 13, + 12, + "fs/computer-modern/18" + ], + [ + "CMU Typewriter Text", + "Italic", + "CMUTypewriter-Italic", + 13, + 12, + "fs/computer-modern/16" + ], + [ + "CMU Typewriter Text", + "Light", + "CMUTypewriter-Light", + 13, + 12, + "fs/computer-modern/13" + ], + [ + "CMU Typewriter Text", + "LightOblique", + "CMUTypewriter-LightOblique", + 13, + 12, + "fs/computer-modern/14" + ], + [ + "CMU Typewriter Text", + "Regular", + "CMUTypewriter-Regular", + 13, + 12, + "fs/computer-modern/15" + ], + [ + "CMU Typewriter Text Variable Width", + "Medium", + "CMUTypewriterVariable", + 9, + 12, + "fs/computer-modern/19" + ], + [ + "CMU Typewriter Text Variable Width", + "Italic", + "CMUTypewriterVariable-Italic", + 9, + 12, + "fs/computer-modern/20" + ], + [ + "Cabin", + "Bold", + "Cabin-Bold", + 1, + 12, + "fs/cabin/6" + ], + [ + "Cabin", + "Bold Italic", + "Cabin-BoldItalic", + 1, + 12, + "fs/cabin/7" + ], + [ + "Cabin", + "Italic", + "Cabin-Italic", + 1, + 12, + "fs/cabin/1" + ], + [ + "Cabin", + "Medium", + "Cabin-Medium", + 1, + 12, + "fs/cabin/2" + ], + [ + "Cabin", + "Medium Italic", + "Cabin-MediumItalic", + 1, + 12, + "fs/cabin/3" + ], + [ + "Cabin", + "Regular", + "Cabin-Regular", + 1, + 12, + "fs/cabin/0" + ], + [ + "Cabin", + "SemiBold", + "Cabin-SemiBold", + 1, + 12, + "fs/cabin/4" + ], + [ + "Cabin", + "SemiBold Italic", + "Cabin-SemiBoldItalic", + 1, + 12, + "fs/cabin/5" + ], + [ + "Cabin Condensed", + "Bold", + "CabinCondensed-Bold", + 3, + 12, + "gf/Cabin Condensed/2" + ], + [ + "Cabin Condensed", + "Medium", + "CabinCondensed-Medium", + 3, + 12, + "gf/Cabin Condensed/0" + ], + [ + "Cabin Condensed", + "Regular", + "CabinCondensed-Regular", + 3, + 12, + "gf/Cabin Condensed/3" + ], + [ + "Cabin Condensed", + "SemiBold", + "CabinCondensed-SemiBold", + 3, + 12, + "gf/Cabin Condensed/1" + ], + [ + "CabinSketch", + "Regular", + "CabinSketch", + 1, + 4, + "fs/cabinsketch/0" + ], + [ + "CabinSketch", + "Bold", + "CabinSketch-Bold", + 1, + 4, + "fs/cabinsketch/1" + ], + [ + "Cabin Sketch", + "Regular", + "CabinSketch-Regular", + 1, + 4, + "gf/Cabin Sketch/1" + ], + [ + "Cadman", + "Regular", + "Cadman", + 7, + 12, + "fs/cadman/0" + ], + [ + "Cadman", + "Bold", + "Cadman-Bold", + 7, + 12, + "fs/cadman/2" + ], + [ + "Cadman", + "Bold Italic", + "Cadman-BoldItalic", + 7, + 12, + "fs/cadman/3" + ], + [ + "Cadman", + "Italic", + "Cadman-Italic", + 7, + 12, + "fs/cadman/1" + ], + [ + "Caesar Dressing", + "Regular", + "CaesarDressing", + 1, + 4, + "gf/Caesar Dressing/0" + ], + [ + "Cagliostro", + "Regular", + "Cagliostro-Regular", + 1, + 4, + "fs/cagliostro/0" + ], + [ + "Cairo", + "Black", + "Cairo-Black", + 3, + 12, + "gf/Cairo/4" + ], + [ + "Cairo", + "Bold", + "Cairo-Bold", + 3, + 12, + "gf/Cairo/3" + ], + [ + "Cairo", + "ExtraLight", + "Cairo-ExtraLight", + 3, + 12, + "gf/Cairo/0" + ], + [ + "Cairo", + "Light", + "Cairo-Light", + 3, + 12, + "gf/Cairo/1" + ], + [ + "Cairo", + "Regular", + "Cairo-Regular", + 3, + 12, + "gf/Cairo/5" + ], + [ + "Cairo", + "SemiBold", + "Cairo-SemiBold", + 3, + 12, + "gf/Cairo/2" + ], + [ + "Calligraffiti", + "Regular", + "Calligraffiti", + 1, + 1, + "fs/calligraffiti/0" + ], + [ + "Calligraffitti", + "Regular", + "Calligraffitti-Regular", + 1, + 6, + "gf/Calligraffitti/0" + ], + [ + "Cambay", + "Bold", + "Cambay-Bold", + 515, + 12, + "gf/Cambay/0" + ], + [ + "Cambay", + "Bold Italic", + "Cambay-BoldItalic", + 515, + 12, + "gf/Cambay/3" + ], + [ + "Cambay", + "Italic", + "Cambay-Italic", + 515, + 12, + "gf/Cambay/2" + ], + [ + "Cambay", + "Regular", + "Cambay-Regular", + 515, + 12, + "gf/Cambay/1" + ], + [ + "Cambo", + "Regular", + "Cambo-Regular", + 1, + 14, + "fs/cambo/0" + ], + [ + "CamingoCode", + "Bold", + "CamingoCode-Bold", + 3, + 7, + "fs/camingocode/2" + ], + [ + "CamingoCode", + "Bold Italic", + "CamingoCode-BoldItalic", + 3, + 7, + "fs/camingocode/3" + ], + [ + "CamingoCode", + "Italic", + "CamingoCode-Italic", + 3, + 7, + "fs/camingocode/1" + ], + [ + "CamingoCode", + "Regular", + "CamingoCode-Regular", + 3, + 7, + "fs/camingocode/0" + ], + [ + "Candal", + "Regular", + "Candal", + 1, + 4, + "fs/candal/0" + ], + [ + "Candela", + "Bold", + "Candela-Bold", + 1, + 12, + "fs/Candela/2" + ], + [ + "Candela", + "Bold Italic", + "Candela-Bold-Italic", + 1, + 12, + "fs/Candela/3" + ], + [ + "Candela", + "Book", + "Candela-Book", + 1, + 12, + "fs/Candela/0" + ], + [ + "Candela", + "Book Italic", + "Candela-Book-Italic", + 1, + 12, + "fs/Candela/1" + ], + [ + "Cantarell", + "Bold", + "Cantarell-Bold", + 3, + 12, + "fs/cantarell/2" + ], + [ + "Cantarell", + "BoldOblique", + "Cantarell-BoldOblique", + 3, + 12, + "fs/cantarell/3" + ], + [ + "Cantarell", + "Oblique", + "Cantarell-Oblique", + 3, + 12, + "fs/cantarell/1" + ], + [ + "Cantarell", + "Regular", + "Cantarell-Regular", + 3, + 12, + "fs/cantarell/0" + ], + [ + "Cantata One", + "Regular", + "CantataOne-Regular", + 3, + 14, + "gf/Cantata One/0" + ], + [ + "CantoraOne", + "Regular", + "CantoraOne-Regular", + 3, + 12, + "gf/Cantora One/0" + ], + [ + "Capriola", + "Regular", + "Capriola-Regular", + 3, + 12, + "gf/Capriola/0" + ], + [ + "Capsuula", + "Regular", + "Capsuula", + 3, + 12, + "fs/capsuula/0" + ], + [ + "Capture it", + "Regular", + "Captureit", + 12, + 16, + "fs/Capture-it/0" + ], + [ + "Capture it 2", + "Regular", + "Captureit2", + 0, + 16, + "fs/Capture-it/1" + ], + [ + "CarbonType", + "Regular", + "CarbonType", + 0, + 17, + "fs/CarbonType/0" + ], + [ + "Cardo", + "Bold", + "Cardo-Bold", + 23, + 14, + "fs/cardo/2" + ], + [ + "Cardo", + "Italic", + "Cardo-Italic", + 23, + 14, + "fs/cardo/1" + ], + [ + "Cardo", + "Regular", + "Cardo-Regular", + 23, + 14, + "fs/cardo/0" + ], + [ + "Carme", + "Regular", + "Carme", + 1, + 12, + "gf/Carme/0" + ], + [ + "Caroni", + "Regular", + "Caroni-Regular", + 3, + 6, + "fs/caroni/0" + ], + [ + "Carousel", + "Regular", + "Carousel", + 1, + 4, + "fs/Carousel/0" + ], + [ + "Carrington", + "Regular", + "Carrington", + 1, + 13, + "fs/Carrington/0" + ], + [ + "Carrois Gothic", + "Regular", + "CarroisGothic-Regular", + 1, + 12, + "fs/carrois-gothic/0" + ], + [ + "Carrois Gothic SC", + "Regular", + "CarroisGothicSC-Regular", + 1, + 12, + "fs/carrois-gothic/1" + ], + [ + "Carter One", + "Regular", + "CarterOne", + 1, + 4, + "gf/Carter One/0" + ], + [ + "Caslon Calligraphic Initials", + "Regular", + "CaslonCalligraphicInitials", + 0, + 4, + "fs/Caslon-Initials/1" + ], + [ + "Caslon Initials", + "Regular", + "CaslonInitials", + 0, + 4, + "fs/Caslon-Initials/0" + ], + [ + "Catamaran", + "Black", + "Catamaran-Black", + 1, + 12, + "fs/catamaran/8" + ], + [ + "Catamaran", + "Bold", + "Catamaran-Bold", + 1, + 12, + "fs/catamaran/6" + ], + [ + "Catamaran", + "ExtraBold", + "Catamaran-ExtraBold", + 1, + 12, + "fs/catamaran/7" + ], + [ + "Catamaran", + "ExtraLight", + "Catamaran-ExtraLight", + 1, + 12, + "fs/catamaran/1" + ], + [ + "Catamaran", + "Light", + "Catamaran-Light", + 1, + 12, + "fs/catamaran/2" + ], + [ + "Catamaran", + "Medium", + "Catamaran-Medium", + 1, + 12, + "fs/catamaran/4" + ], + [ + "Catamaran", + "Regular", + "Catamaran-Regular", + 1, + 12, + "fs/catamaran/3" + ], + [ + "Catamaran", + "SemiBold", + "Catamaran-SemiBold", + 1, + 12, + "fs/catamaran/5" + ], + [ + "Catamaran", + "Thin", + "Catamaran-Thin", + 1, + 12, + "fs/catamaran/0" + ], + [ + "Caudex", + "Regular", + "Caudex", + 7, + 14, + "gf/Caudex/1" + ], + [ + "Caudex", + "Bold", + "Caudex-Bold", + 7, + 14, + "fs/caudex/2" + ], + [ + "Caudex", + "Bold", + "Caudex-BoldItalic", + 7, + 14, + "fs/caudex/3" + ], + [ + "Caudex", + "Italic", + "Caudex-Italic", + 7, + 14, + "fs/caudex/1" + ], + [ + "Caudex", + "Regular", + "Caudex-Regular", + 7, + 14, + "fs/caudex/0" + ], + [ + "Caveat", + "Bold", + "Caveat-Bold", + 3, + 13, + "fs/caveat/1" + ], + [ + "Caveat", + "Regular", + "Caveat-Regular", + 3, + 13, + "fs/caveat/0" + ], + [ + "Caveat Brush", + "Regular", + "CaveatBrush-Regular", + 3, + 13, + "fs/caveat/2" + ], + [ + "Caviar Dreams", + "Regular", + "CaviarDreams", + 15, + 12, + "fs/Caviar-Dreams/2" + ], + [ + "Caviar Dreams", + "Bold", + "CaviarDreams-Bold", + 15, + 12, + "fs/Caviar-Dreams/3" + ], + [ + "Caviar Dreams", + "Bold Italic", + "CaviarDreams-BoldItalic", + 15, + 12, + "fs/Caviar-Dreams/1" + ], + [ + "Caviar Dreams", + "Italic", + "CaviarDreams-Italic", + 15, + 12, + "fs/Caviar-Dreams/0" + ], + [ + "Cedarville Cursive", + "Regular", + "Cedarville-Cursive", + 3, + 6, + "gf/Cedarville Cursive/0" + ], + [ + "Ceviche One", + "Regular", + "CevicheOne-Regular", + 1, + 4, + "fs/ceviche-one/0" + ], + [ + "Chakra Petch", + "Bold", + "ChakraPetch-Bold", + 3, + 12, + "gf/Chakra Petch/3" + ], + [ + "Chakra Petch", + "Bold Italic", + "ChakraPetch-BoldItalic", + 3, + 12, + "gf/Chakra Petch/9" + ], + [ + "Chakra Petch", + "Italic", + "ChakraPetch-Italic", + 3, + 12, + "gf/Chakra Petch/6" + ], + [ + "Chakra Petch", + "Light", + "ChakraPetch-Light", + 3, + 12, + "gf/Chakra Petch/0" + ], + [ + "Chakra Petch", + "Light Italic", + "ChakraPetch-LightItalic", + 3, + 12, + "gf/Chakra Petch/4" + ], + [ + "Chakra Petch", + "Medium", + "ChakraPetch-Medium", + 3, + 12, + "gf/Chakra Petch/1" + ], + [ + "Chakra Petch", + "Medium Italic", + "ChakraPetch-MediumItalic", + 3, + 12, + "gf/Chakra Petch/7" + ], + [ + "Chakra Petch", + "Regular", + "ChakraPetch-Regular", + 3, + 12, + "gf/Chakra Petch/5" + ], + [ + "Chakra Petch", + "SemiBold", + "ChakraPetch-SemiBold", + 3, + 12, + "gf/Chakra Petch/2" + ], + [ + "Chakra Petch", + "SemiBold Italic", + "ChakraPetch-SemiBoldItalic", + 3, + 12, + "gf/Chakra Petch/8" + ], + [ + "Changa", + "Bold", + "Changa-Bold", + 3, + 12, + "gf/Changa/4" + ], + [ + "Changa ExtraBold", + "Regular", + "Changa-ExtraBold", + 3, + 12, + "gf/Changa/5" + ], + [ + "Changa ExtraLight", + "Regular", + "Changa-ExtraLight", + 3, + 12, + "gf/Changa/0" + ], + [ + "Changa Light", + "Regular", + "Changa-Light", + 3, + 12, + "gf/Changa/1" + ], + [ + "Changa Medium", + "Regular", + "Changa-Medium", + 3, + 12, + "gf/Changa/2" + ], + [ + "Changa", + "Regular", + "Changa-Regular", + 3, + 12, + "gf/Changa/6" + ], + [ + "Changa SemiBold", + "Regular", + "Changa-SemiBold", + 3, + 12, + "gf/Changa/3" + ], + [ + "Changa One", + "Regular", + "ChangaOne", + 1, + 4, + "gf/Changa One/0" + ], + [ + "Changa One", + "Italic", + "ChangaOne-Italic", + 1, + 4, + "gf/Changa One/1" + ], + [ + "Chango", + "Regular", + "Chango-Regular", + 1, + 4, + "gf/Chango/0" + ], + [ + "Chantelli Antiqua", + "Regular", + "Chantelli-Antiqua", + 0, + 1, + "fs/Chantelli-Antiqua/0" + ], + [ + "ChanticleerRoman", + "Regular", + "ChanticleerRoman", + 1, + 14, + "fs/ChanticleerRoman/0" + ], + [ + "Charis SIL", + "Regular", + "CharisSIL", + 11, + 14, + "fs/Charis-SIL/0" + ], + [ + "Charis SIL", + "Bold", + "CharisSIL-Bold", + 11, + 14, + "fs/Charis-SIL/2" + ], + [ + "Charis SIL", + "Bold Italic", + "CharisSIL-BoldItalic", + 11, + 14, + "fs/Charis-SIL/3" + ], + [ + "Charis SIL", + "Italic", + "CharisSIL-Italic", + 11, + 14, + "fs/Charis-SIL/1" + ], + [ + "Charmonman", + "Bold", + "Charmonman-Bold", + 3, + 6, + "gf/Charmonman/0" + ], + [ + "Charmonman", + "Regular", + "Charmonman-Regular", + 3, + 6, + "gf/Charmonman/1" + ], + [ + "Chathura", + "Bold", + "Chathura-Bold", + 0, + 12, + "fs/chathura/3" + ], + [ + "Chathura", + "ExtraBold", + "Chathura-ExtraBold", + 0, + 12, + "fs/chathura/4" + ], + [ + "Chathura", + "Light", + "Chathura-Light", + 0, + 12, + "fs/chathura/1" + ], + [ + "Chathura", + "Regular", + "Chathura-Regular", + 0, + 12, + "fs/chathura/2" + ], + [ + "Chathura", + "Thin", + "Chathura-Thin", + 0, + 12, + "fs/chathura/0" + ], + [ + "Chau Philomene One", + "Italic", + "ChauPhilomeneOne-Italic", + 1, + 12, + "gf/Chau Philomene One/1" + ], + [ + "Chau Philomene One", + "Regular", + "ChauPhilomeneOne-Regular", + 1, + 12, + "gf/Chau Philomene One/0" + ], + [ + "Chela One", + "Regular", + "ChelaOne-Regular", + 1, + 4, + "fs/chela-one/0" + ], + [ + "Chelsea Market", + "Regular", + "ChelseaMarket-Regular", + 1, + 4, + "gf/Chelsea Market/0" + ], + [ + "Chenla", + "Regular", + "Chenla", + 0, + 4, + "gf/Chenla/0" + ], + [ + "Cherry Cream Soda", + "Regular", + "CherryCreamSoda-Regular", + 1, + 4, + "gf/Cherry Cream Soda/0" + ], + [ + "Cherry Swash", + "Bold", + "CherrySwash-Bold", + 1, + 4, + "fs/cherry-swash/1" + ], + [ + "Cherry Swash", + "Regular", + "CherrySwash-Regular", + 1, + 4, + "fs/cherry-swash/0" + ], + [ + "Chewy", + "Regular", + "Chewy-Regular", + 1, + 4, + "gf/Chewy/0" + ], + [ + "Chicle", + "Regular", + "Chicle-Regular", + 1, + 4, + "gf/Chicle/0" + ], + [ + "Chivo", + "Black", + "Chivo-Black", + 1, + 12, + "fs/chivo/6" + ], + [ + "Chivo", + "Black Italic", + "Chivo-BlackItalic", + 1, + 12, + "fs/chivo/7" + ], + [ + "Chivo", + "Bold", + "Chivo-Bold", + 1, + 12, + "fs/chivo/4" + ], + [ + "Chivo", + "Bold Italic", + "Chivo-BoldItalic", + 1, + 12, + "fs/chivo/5" + ], + [ + "Chivo", + "Italic", + "Chivo-Italic", + 1, + 12, + "fs/chivo/3" + ], + [ + "Chivo", + "Light", + "Chivo-Light", + 1, + 12, + "fs/chivo/0" + ], + [ + "Chivo", + "Light Italic", + "Chivo-LightItalic", + 1, + 12, + "fs/chivo/1" + ], + [ + "Chivo", + "Regular", + "Chivo-Regular", + 1, + 12, + "fs/chivo/2" + ], + [ + "Chonburi", + "Regular", + "Chonburi-Regular", + 3, + 4, + "gf/Chonburi/0" + ], + [ + "ChunkFive", + "Roman", + "ChunkFive-Roman", + 0, + 4, + "fs/ChunkFive/0" + ], + [ + "Cicle", + "Fina", + "CicleFina", + 1, + 12, + "fs/Cicle/0" + ], + [ + "Cicle", + "Fina Italic", + "CicleFinaItalic", + 1, + 12, + "fs/Cicle/1" + ], + [ + "Cicle", + "Gordita", + "CicleGordita", + 1, + 12, + "fs/Cicle/2" + ], + [ + "Cicle", + "Gordita Italic", + "CicleGorditaItalic", + 1, + 12, + "fs/Cicle/3" + ], + [ + "Cicle", + "Semi", + "CicleSemi", + 1, + 12, + "fs/Cicle/4" + ], + [ + "Cicle", + "Semi Italic", + "CicleSemiItalic", + 1, + 12, + "fs/Cicle/5" + ], + [ + "Cicle", + "Shadow", + "CicleShadow", + 1, + 12, + "fs/Cicle/6" + ], + [ + "Cinzel", + "Black", + "Cinzel-Black", + 3, + 14, + "gf/Cinzel/1" + ], + [ + "Cinzel", + "Bold", + "Cinzel-Bold", + 3, + 14, + "gf/Cinzel/0" + ], + [ + "Cinzel", + "Regular", + "Cinzel-Regular", + 3, + 14, + "gf/Cinzel/2" + ], + [ + "Cinzel Decorative", + "Black", + "CinzelDecorative-Black", + 3, + 4, + "gf/Cinzel Decorative/1" + ], + [ + "Cinzel Decorative", + "Bold", + "CinzelDecorative-Bold", + 3, + 4, + "gf/Cinzel Decorative/0" + ], + [ + "Cinzel Decorative", + "Regular", + "CinzelDecorative-Regular", + 3, + 4, + "gf/Cinzel Decorative/2" + ], + [ + "Clear Sans", + "Regular", + "ClearSans", + 15, + 12, + "fs/clear-sans/2" + ], + [ + "Clear Sans", + "Bold", + "ClearSans-Bold", + 15, + 12, + "fs/clear-sans/6" + ], + [ + "Clear Sans", + "Bold Italic", + "ClearSans-BoldItalic", + 15, + 12, + "fs/clear-sans/7" + ], + [ + "Clear Sans", + "Italic", + "ClearSans-Italic", + 15, + 12, + "fs/clear-sans/3" + ], + [ + "Clear Sans", + "Light", + "ClearSans-Light", + 15, + 12, + "fs/clear-sans/1" + ], + [ + "Clear Sans", + "Medium", + "ClearSans-Medium", + 15, + 12, + "fs/clear-sans/4" + ], + [ + "Clear Sans", + "Medium Italic", + "ClearSans-MediumItalic", + 15, + 12, + "fs/clear-sans/5" + ], + [ + "Clear Sans", + "Thin", + "ClearSans-Thin", + 15, + 12, + "fs/clear-sans/0" + ], + [ + "Clicker Script", + "Regular", + "ClickerScript-Regular", + 3, + 6, + "gf/Clicker Script/0" + ], + [ + "Clutchee", + "Regular", + "Clutchee", + 0, + 4, + "fs/Clutchee/0" + ], + [ + "Coda", + "ExtraBold", + "Coda-ExtraBold", + 3, + 4, + "gf/Coda/0" + ], + [ + "Coda", + "Heavy", + "Coda-Heavy", + 1, + 4, + "fs/coda/0" + ], + [ + "Coda", + "Regular", + "Coda-Regular", + 3, + 4, + "gf/Coda/1" + ], + [ + "Coda Caption", + "ExtraBold", + "CodaCaption-ExtraBold", + 3, + 12, + "gf/Coda Caption/0" + ], + [ + "Codystar", + "Regular", + "Codystar", + 1, + 8, + "fs/codystar/1" + ], + [ + "Codystar", + "Light", + "Codystar-Light", + 1, + 8, + "fs/codystar/0" + ], + [ + "Coiny", + "Regular", + "Coiny-Regular", + 3, + 4, + "fs/coiny/0" + ], + [ + "Colaborate", + "Bold", + "Colaborate-Bold", + 1, + 12, + "fs/Colaborate/4" + ], + [ + "Colaborate", + "Light", + "Colaborate-Light", + 1, + 12, + "fs/Colaborate/1" + ], + [ + "Colaborate", + "Medium", + "Colaborate-Medium", + 1, + 12, + "fs/Colaborate/3" + ], + [ + "Colaborate", + "Regular", + "Colaborate-Regular", + 1, + 12, + "fs/Colaborate/2" + ], + [ + "Colaborate", + "Thin", + "Colaborate-Thin", + 1, + 12, + "fs/Colaborate/0" + ], + [ + "College", + "Regular", + "College", + 0, + 4, + "fs/College/0" + ], + [ + "College", + "Bold", + "CollegeBold", + 0, + 4, + "fs/College/1" + ], + [ + "College Condensed", + "Regular", + "CollegeCondensed", + 0, + 4, + "fs/College/3" + ], + [ + "College Semi-condensed", + "Regular", + "CollegeSemiCondensed", + 0, + 4, + "fs/College/2" + ], + [ + "CombiNumerals Ltd", + "Regular", + "CombiNumeralsLtd", + 0, + 3, + "fs/CombiNumerals-Ltd/0" + ], + [ + "Combo", + "Regular", + "Combo-Regular", + 3, + 4, + "gf/Combo/0" + ], + [ + "Comfortaa", + "Regular", + "Comfortaa", + 7, + 12, + "fs/Comfortaa/1" + ], + [ + "Comfortaa", + "Bold", + "Comfortaa-Bold", + 7, + 12, + "fs/Comfortaa/2" + ], + [ + "Comfortaa", + "Light", + "Comfortaa-Light", + 15, + 4, + "gf/Comfortaa/0" + ], + [ + "Comfortaa", + "Regular", + "Comfortaa-Regular", + 15, + 4, + "gf/Comfortaa/2" + ], + [ + "Comfortaa", + "Thin", + "Comfortaa-Thin", + 7, + 12, + "fs/Comfortaa/0" + ], + [ + "Comic Relief", + "Regular", + "ComicRelief", + 15, + 2, + "fs/comic-relief/0" + ], + [ + "Comic Zine OT", + "Regular", + "ComicZineOT", + 1, + 8, + "fs/Comic-Zine-OT/0" + ], + [ + "Coming Soon", + "Regular", + "ComingSoon-Regular", + 1, + 6, + "gf/Coming Soon/0" + ], + [ + "Commando", + "Commando", + "Commando", + 0, + 4, + "fs/Commando/0" + ], + [ + "Comme", + "Bold", + "Comme-Bold", + 3, + 12, + "fs/comme/6" + ], + [ + "Comme", + "ExtraBold", + "Comme-ExtraBold", + 3, + 12, + "fs/comme/7" + ], + [ + "Comme", + "ExtraLight", + "Comme-ExtraLight", + 3, + 12, + "fs/comme/1" + ], + [ + "Comme", + "Heavy", + "Comme-Heavy", + 3, + 12, + "fs/comme/8" + ], + [ + "Comme", + "Light", + "Comme-Light", + 3, + 12, + "fs/comme/2" + ], + [ + "Comme", + "Medium", + "Comme-Medium", + 3, + 12, + "fs/comme/4" + ], + [ + "Comme", + "Regular", + "Comme-Regular", + 3, + 12, + "fs/comme/3" + ], + [ + "Comme", + "SemiBold", + "Comme-SemiBold", + 3, + 12, + "fs/comme/5" + ], + [ + "Comme", + "Thin", + "Comme-Thin", + 3, + 12, + "fs/comme/0" + ], + [ + "Communist", + "Regular", + "Communist", + 0, + 14, + "fs/Communist/0" + ], + [ + "Communist", + "Italic", + "CommunistItalic", + 0, + 14, + "fs/Communist/1" + ], + [ + "Communist", + "Sans", + "CommunistSans", + 0, + 14, + "fs/Communist/3" + ], + [ + "Communist", + "SansBold", + "CommunistSansBold", + 0, + 14, + "fs/Communist/2" + ], + [ + "Comprehension", + "SemiBold", + "Comprehension-SemiBold", + 1, + 14, + "fs/comprehension/0" + ], + [ + "Concert One", + "Regular", + "ConcertOne-Regular", + 1, + 12, + "fs/concert-one/0" + ], + [ + "Condiment", + "Regular", + "Condiment-Regular", + 1, + 13, + "fs/condiment/0" + ], + [ + "Content", + "Regular", + "Content", + 0, + 4, + "gf/Content/1" + ], + [ + "Content", + "Bold", + "Content-Bold", + 0, + 4, + "gf/Content/0" + ], + [ + "Contra", + "Regular", + "Contra", + 1, + 14, + "fs/Contra/0" + ], + [ + "Contra", + "Italic", + "Contra-Italic", + 1, + 14, + "fs/Contra/1" + ], + [ + "Contrail One", + "Regular", + "ContrailOne-Regular", + 1, + 4, + "gf/Contrail One/0" + ], + [ + "Convergence", + "Regular", + "Convergence-Regular", + 1, + 12, + "gf/Convergence/0" + ], + [ + "Cookie", + "Regular", + "Cookie-Regular", + 1, + 13, + "fs/cookie/0" + ], + [ + "Cooper Hewitt", + "Bold", + "CooperHewitt-Bold", + 3, + 12, + "fs/cooper-hewitt/10" + ], + [ + "Cooper Hewitt", + "Bold Italic", + "CooperHewitt-BoldItalic", + 3, + 12, + "fs/cooper-hewitt/11" + ], + [ + "Cooper Hewitt", + "Book", + "CooperHewitt-Book", + 3, + 12, + "fs/cooper-hewitt/4" + ], + [ + "Cooper Hewitt", + "Book Italic", + "CooperHewitt-BookItalic", + 3, + 12, + "fs/cooper-hewitt/5" + ], + [ + "Cooper Hewitt", + "Heavy", + "CooperHewitt-Heavy", + 3, + 12, + "fs/cooper-hewitt/12" + ], + [ + "Cooper Hewitt", + "Heavy Italic", + "CooperHewitt-HeavyItalic", + 3, + 12, + "fs/cooper-hewitt/13" + ], + [ + "Cooper Hewitt", + "Light", + "CooperHewitt-Light", + 3, + 12, + "fs/cooper-hewitt/2" + ], + [ + "Cooper Hewitt", + "Light Italic", + "CooperHewitt-LightItalic", + 3, + 12, + "fs/cooper-hewitt/3" + ], + [ + "Cooper Hewitt", + "Medium", + "CooperHewitt-Medium", + 3, + 12, + "fs/cooper-hewitt/6" + ], + [ + "Cooper Hewitt", + "Medium Italic", + "CooperHewitt-MediumItalic", + 3, + 12, + "fs/cooper-hewitt/7" + ], + [ + "Cooper Hewitt", + "Semibold", + "CooperHewitt-Semibold", + 3, + 12, + "fs/cooper-hewitt/8" + ], + [ + "Cooper Hewitt", + "Semibold Italic", + "CooperHewitt-SemiboldItalic", + 3, + 12, + "fs/cooper-hewitt/9" + ], + [ + "Cooper Hewitt", + "Thin", + "CooperHewitt-Thin", + 3, + 12, + "fs/cooper-hewitt/0" + ], + [ + "Cooper Hewitt", + "Thin Italic", + "CooperHewitt-ThinItalic", + 3, + 12, + "fs/cooper-hewitt/1" + ], + [ + "Copse", + "Regular", + "Copse", + 1, + 15, + "fs/copse/0" + ], + [ + "Copystruct", + "Bold", + "CopystructBold", + 0, + 4, + "fs/Copystruct/1" + ], + [ + "Copystruct", + "Normal", + "CopystructNormal", + 0, + 4, + "fs/Copystruct/0" + ], + [ + "Corben", + "Bold", + "Corben-Bold", + 3, + 4, + "gf/Corben/0" + ], + [ + "Corben", + "Regular", + "Corben-Regular", + 3, + 4, + "gf/Corben/1" + ], + [ + "Cormorant", + "Bold", + "Cormorant-Bold", + 11, + 14, + "fs/cormorant/8" + ], + [ + "Cormorant", + "Bold Italic", + "Cormorant-BoldItalic", + 11, + 14, + "fs/cormorant/9" + ], + [ + "Cormorant", + "Italic", + "Cormorant-Italic", + 11, + 14, + "fs/cormorant/3" + ], + [ + "Cormorant", + "Light", + "Cormorant-Light", + 11, + 14, + "fs/cormorant/0" + ], + [ + "Cormorant", + "Light Italic", + "Cormorant-LightItalic", + 11, + 14, + "fs/cormorant/1" + ], + [ + "Cormorant", + "Medium", + "Cormorant-Medium", + 11, + 14, + "fs/cormorant/4" + ], + [ + "Cormorant", + "Medium Italic", + "Cormorant-MediumItalic", + 11, + 14, + "fs/cormorant/5" + ], + [ + "Cormorant", + "Regular", + "Cormorant-Regular", + 11, + 14, + "fs/cormorant/2" + ], + [ + "Cormorant", + "SemiBold", + "Cormorant-SemiBold", + 11, + 14, + "fs/cormorant/6" + ], + [ + "Cormorant", + "SemiBold Italic", + "Cormorant-SemiBoldItalic", + 11, + 14, + "fs/cormorant/7" + ], + [ + "Cormorant Garamond", + "Bold", + "CormorantGaramond-Bold", + 11, + 14, + "fs/cormorant/18" + ], + [ + "Cormorant Garamond", + "Bold Italic", + "CormorantGaramond-BoldItalic", + 11, + 14, + "fs/cormorant/19" + ], + [ + "Cormorant Garamond", + "Italic", + "CormorantGaramond-Italic", + 11, + 14, + "fs/cormorant/13" + ], + [ + "Cormorant Garamond", + "Light", + "CormorantGaramond-Light", + 11, + 14, + "fs/cormorant/10" + ], + [ + "Cormorant Garamond", + "Light Italic", + "CormorantGaramond-LightItalic", + 11, + 14, + "fs/cormorant/11" + ], + [ + "Cormorant Garamond", + "Medium", + "CormorantGaramond-Medium", + 11, + 14, + "fs/cormorant/14" + ], + [ + "Cormorant Garamond", + "Medium Italic", + "CormorantGaramond-MediumItalic", + 11, + 14, + "fs/cormorant/15" + ], + [ + "Cormorant Garamond", + "Regular", + "CormorantGaramond-Regular", + 11, + 14, + "fs/cormorant/12" + ], + [ + "Cormorant Garamond", + "SemiBold", + "CormorantGaramond-SemiBold", + 11, + 14, + "fs/cormorant/16" + ], + [ + "Cormorant Garamond", + "SemiBold Italic", + "CormorantGaramond-SemiBoldItalic", + 11, + 14, + "fs/cormorant/17" + ], + [ + "Cormorant Infant", + "Bold", + "CormorantInfant-Bold", + 11, + 14, + "fs/cormorant/28" + ], + [ + "Cormorant Infant", + "Bold Italic", + "CormorantInfant-BoldItalic", + 11, + 14, + "fs/cormorant/29" + ], + [ + "Cormorant Infant", + "Italic", + "CormorantInfant-Italic", + 11, + 14, + "fs/cormorant/23" + ], + [ + "Cormorant Infant", + "Light", + "CormorantInfant-Light", + 11, + 14, + "fs/cormorant/20" + ], + [ + "Cormorant Infant", + "Light Italic", + "CormorantInfant-LightItalic", + 11, + 14, + "fs/cormorant/21" + ], + [ + "Cormorant Infant", + "Medium", + "CormorantInfant-Medium", + 11, + 14, + "fs/cormorant/24" + ], + [ + "Cormorant Infant", + "Medium Italic", + "CormorantInfant-MediumItalic", + 11, + 14, + "fs/cormorant/25" + ], + [ + "Cormorant Infant", + "Regular", + "CormorantInfant-Regular", + 11, + 14, + "fs/cormorant/22" + ], + [ + "Cormorant Infant", + "SemiBold", + "CormorantInfant-SemiBold", + 11, + 14, + "fs/cormorant/26" + ], + [ + "Cormorant Infant", + "SemiBold Italic", + "CormorantInfant-SemiBoldItalic", + 11, + 14, + "fs/cormorant/27" + ], + [ + "Cormorant SC", + "Bold", + "CormorantSC-Bold", + 11, + 14, + "fs/cormorant/34" + ], + [ + "Cormorant SC", + "Light", + "CormorantSC-Light", + 11, + 14, + "fs/cormorant/30" + ], + [ + "Cormorant SC", + "Medium", + "CormorantSC-Medium", + 11, + 14, + "fs/cormorant/32" + ], + [ + "Cormorant SC", + "Regular", + "CormorantSC-Regular", + 11, + 14, + "fs/cormorant/31" + ], + [ + "Cormorant SC", + "SemiBold", + "CormorantSC-SemiBold", + 11, + 14, + "fs/cormorant/33" + ], + [ + "Cormorant Unicase", + "Bold", + "CormorantUnicase-Bold", + 11, + 14, + "fs/cormorant/39" + ], + [ + "Cormorant Unicase", + "Light", + "CormorantUnicase-Light", + 11, + 14, + "fs/cormorant/35" + ], + [ + "Cormorant Unicase", + "Medium", + "CormorantUnicase-Medium", + 11, + 14, + "fs/cormorant/37" + ], + [ + "Cormorant Unicase", + "Regular", + "CormorantUnicase-Regular", + 11, + 14, + "fs/cormorant/36" + ], + [ + "Cormorant Unicase", + "SemiBold", + "CormorantUnicase-SemiBold", + 11, + 14, + "gf/Cormorant Unicase/2" + ], + [ + "Cormorant Unicase", + "Semibold", + "CormorantUnicase-Semibold", + 11, + 14, + "fs/cormorant/38" + ], + [ + "Cormorant Upright", + "Bold", + "CormorantUpright-Bold", + 3, + 14, + "fs/cormorant/44" + ], + [ + "Cormorant Upright", + "Light", + "CormorantUpright-Light", + 3, + 14, + "fs/cormorant/40" + ], + [ + "Cormorant Upright", + "Medium", + "CormorantUpright-Medium", + 3, + 14, + "fs/cormorant/42" + ], + [ + "Cormorant Upright", + "Regular", + "CormorantUpright-Regular", + 3, + 14, + "fs/cormorant/41" + ], + [ + "Cormorant Upright", + "SemiBold", + "CormorantUpright-SemiBold", + 3, + 14, + "fs/cormorant/43" + ], + [ + "Costura", + "Bold", + "Costura-Bold", + 0, + 8, + "fs/Costura/2" + ], + [ + "Costura", + "DemiBold", + "Costura-DemiBold", + 0, + 8, + "fs/Costura/1" + ], + [ + "Costura", + "Regular", + "Costura-Light", + 0, + 8, + "fs/Costura/0" + ], + [ + "Courgette", + "Regular", + "Courgette-Regular", + 3, + 13, + "fs/courgette/0" + ], + [ + "Courier Prime", + "Regular", + "CourierPrime", + 3, + 17, + "fs/courier-prime/0" + ], + [ + "Courier Prime", + "Bold", + "CourierPrime-Bold", + 3, + 17, + "fs/courier-prime/2" + ], + [ + "Courier Prime", + "Bold Italic", + "CourierPrime-BoldItalic", + 3, + 17, + "fs/courier-prime/3" + ], + [ + "Courier Prime", + "Italic", + "CourierPrime-Italic", + 3, + 17, + "fs/courier-prime/1" + ], + [ + "Courier Prime Code", + "Italic", + "CourierPrimeCode-Italic", + 3, + 12, + "fs/courier-prime-code/1" + ], + [ + "Courier Prime Code", + "Regular", + "CourierPrimeCode-Regular", + 3, + 12, + "fs/courier-prime-code/0" + ], + [ + "Courier Prime Sans", + "Bold", + "CourierPrimeSans-Bold", + 3, + 12, + "fs/courier-prime-sans/2" + ], + [ + "Courier Prime Sans", + "Bold Italic", + "CourierPrimeSans-BoldItalic", + 3, + 12, + "fs/courier-prime-sans/3" + ], + [ + "Courier Prime Sans", + "Italic", + "CourierPrimeSans-Italic", + 3, + 12, + "fs/courier-prime-sans/1" + ], + [ + "Courier Prime Sans", + "Regular", + "CourierPrimeSans-Regular", + 3, + 12, + "fs/courier-prime-sans/0" + ], + [ + "Cousine", + "Regular", + "Cousine", + 31, + 7, + "fs/cousine/0" + ], + [ + "Cousine", + "Bold", + "Cousine-Bold", + 31, + 7, + "fs/cousine/2" + ], + [ + "Cousine", + "Bold Italic", + "Cousine-BoldItalic", + 31, + 7, + "fs/cousine/3" + ], + [ + "Cousine", + "Italic", + "Cousine-Italic", + 31, + 7, + "fs/cousine/1" + ], + [ + "Cousine", + "Regular", + "Cousine-Regular", + 31, + 7, + "gf/Cousine/1" + ], + [ + "Coustard", + "Black", + "Coustard-Black", + 3, + 14, + "gf/Coustard/0" + ], + [ + "Coustard", + "Regular", + "Coustard-Regular", + 3, + 14, + "gf/Coustard/1" + ], + [ + "Covered By Your Grace", + "Regular", + "CoveredByYourGrace", + 3, + 6, + "gf/Covered By Your Grace/0" + ], + [ + "Cowboy Hippie Pro", + "Regular", + "CowboyHippiePro", + 3, + 4, + "fs/cowboy-hippie-pro/0" + ], + [ + "Crafty Girls", + "Regular", + "CraftyGirls-Regular", + 1, + 6, + "gf/Crafty Girls/0" + ], + [ + "Creepster", + "Regular", + "Creepster-Regular", + 1, + 4, + "gf/Creepster/0" + ], + [ + "Crete Round", + "Italic", + "CreteRound-Italic", + 3, + 15, + "fs/crete-round/0" + ], + [ + "Crete Round", + "Regular", + "CreteRound-Regular", + 3, + 15, + "fs/crete-round/1" + ], + [ + "Crimson", + "Bold", + "Crimson-Bold", + 7, + 14, + "fs/crimson/4" + ], + [ + "Crimson", + "BoldItalic", + "Crimson-BoldItalic", + 3, + 14, + "fs/crimson/5" + ], + [ + "Crimson", + "Italic", + "Crimson-Italic", + 15, + 14, + "fs/crimson/1" + ], + [ + "Crimson", + "Roman", + "Crimson-Roman", + 15, + 14, + "fs/crimson/0" + ], + [ + "Crimson", + "Semibold", + "Crimson-Semibold", + 3, + 14, + "fs/crimson/2" + ], + [ + "Crimson", + "SemiboldItalic", + "Crimson-SemiboldItalic", + 3, + 14, + "fs/crimson/3" + ], + [ + "Crimson Text", + "Bold", + "CrimsonText-Bold", + 3, + 14, + "gf/Crimson Text/1" + ], + [ + "Crimson Text", + "Bold Italic", + "CrimsonText-BoldItalic", + 3, + 14, + "gf/Crimson Text/5" + ], + [ + "Crimson Text", + "Italic", + "CrimsonText-Italic", + 3, + 14, + "gf/Crimson Text/3" + ], + [ + "Crimson Text", + "Regular", + "CrimsonText-Regular", + 15, + 14, + "gf/Crimson Text/2" + ], + [ + "Crimson Text", + "SemiBold", + "CrimsonText-SemiBold", + 3, + 14, + "gf/Crimson Text/0" + ], + [ + "Crimson Text", + "SemiBold Italic", + "CrimsonText-SemiBoldItalic", + 3, + 14, + "gf/Crimson Text/4" + ], + [ + "Croissant One", + "Regular", + "CroissantOne-Regular", + 3, + 4, + "fs/croissant-one/0" + ], + [ + "Crushed", + "Regular", + "Crushed-Regular", + 3, + 4, + "gf/Crushed/0" + ], + [ + "Cuprum", + "Bold", + "Cuprum-Bold", + 9, + 12, + "fs/cuprum/2" + ], + [ + "Cuprum", + "Bold Italic", + "Cuprum-BoldItalic", + 9, + 12, + "fs/cuprum/3" + ], + [ + "Cuprum", + "Italic", + "Cuprum-Italic", + 9, + 12, + "fs/cuprum/1" + ], + [ + "Cuprum", + "Regular", + "Cuprum-Regular", + 9, + 12, + "fs/cuprum/0" + ], + [ + "Cute Font", + "Regular", + "CuteFont-Regular", + 0, + 4, + "gf/Cute Font/0" + ], + [ + "Cutive", + "Regular", + "Cutive-Regular", + 3, + 14, + "gf/Cutive/0" + ], + [ + "Cutive Mono", + "Regular", + "CutiveMono-Regular", + 3, + 7, + "gf/Cutive Mono/0" + ], + [ + "D-DIN", + "Regular", + "D-DIN", + 1, + 12, + "fs/d-din/0" + ], + [ + "D-DIN", + "DIN-Bold", + "D-DIN-Bold", + 1, + 12, + "fs/d-din/2" + ], + [ + "D-DIN", + "DIN-Italic", + "D-DIN-Italic", + 1, + 12, + "fs/d-din/1" + ], + [ + "D-DIN Condensed", + "Regular", + "D-DINCondensed", + 1, + 12, + "fs/d-din/3" + ], + [ + "D-DIN Condensed", + "DINCondensed-Bold", + "D-DINCondensed-Bold", + 1, + 12, + "fs/d-din/4" + ], + [ + "D-DIN Exp", + "Regular", + "D-DINExp", + 1, + 12, + "fs/d-din/5" + ], + [ + "D-DIN Exp", + "DINExp-Bold", + "D-DINExp-Bold", + 1, + 12, + "fs/d-din/7" + ], + [ + "D-DIN Exp", + "DINExp-Italic", + "D-DINExp-Italic", + 1, + 12, + "fs/d-din/6" + ], + [ + "DISCO", + "Regular", + "DISCO", + 0, + 12, + "fs/disco/0" + ], + [ + "DJ Gross", + "Normal", + "DJ-Gross", + 0, + 6, + "fs/DJ-Gross/0" + ], + [ + "DPSDbeyond", + "Regular", + "DPSDbeyond", + 4, + 4, + "fs/dpsdbeyond/0" + ], + [ + "DX아기사랑B", + "Bold", + "DXLBaB-KSCpc-EUC-H", + 76, + 11, + "ex/DXLBaB-KSCpc-EUC-H.ttf" + ], + [ + "Daela", + "Bold", + "Daela-Bold", + 1, + 4, + "fs/Daela/2" + ], + [ + "Daela", + "Book", + "Daela-Book", + 1, + 4, + "fs/Daela/0" + ], + [ + "Daela", + "Italic", + "Daela-Italic", + 1, + 4, + "fs/Daela/1" + ], + [ + "Damion", + "Regular", + "Damion", + 1, + 6, + "gf/Damion/0" + ], + [ + "Dancing Script", + "Bold", + "DancingScript-Bold", + 3, + 6, + "gf/Dancing Script/0" + ], + [ + "Dancing Script", + "Regular", + "DancingScript-Regular", + 3, + 6, + "gf/Dancing Script/1" + ], + [ + "Dancing Script OT", + "Regular", + "DancingScriptOT", + 1, + 13, + "fs/dancing-script-ot/0" + ], + [ + "Dangrek", + "Regular", + "Dangrek", + 0, + 4, + "gf/Dangrek/0" + ], + [ + "Daniel", + "Black", + "Daniel-Black", + 1, + 6, + "fs/daniel/2" + ], + [ + "Daniel", + "Bold", + "Daniel-Bold", + 1, + 6, + "fs/daniel/1" + ], + [ + "Daniel", + "Regular", + "Daniel-Regular", + 1, + 6, + "fs/daniel/0" + ], + [ + "Datalegreya", + "Dot", + "Datalegreya-Dot", + 3, + 12, + "fs/datalegreya/2" + ], + [ + "Datalegreya", + "Gradient", + "Datalegreya-Gradient", + 3, + 12, + "fs/datalegreya/1" + ], + [ + "Datalegreya", + "Thin", + "Datalegreya-Thin", + 3, + 12, + "fs/datalegreya/0" + ], + [ + "David Libre", + "Bold", + "DavidLibre-Bold", + 19, + 14, + "gf/David Libre/1" + ], + [ + "David Libre", + "Medium", + "DavidLibre-Medium", + 19, + 14, + "gf/David Libre/0" + ], + [ + "David Libre", + "Regular", + "DavidLibre-Regular", + 19, + 14, + "gf/David Libre/2" + ], + [ + "Davys", + "Regular", + "Davys-Regular", + 0, + 3, + "fs/Davys/0" + ], + [ + "Dawning of a New Day", + "Regular", + "DawningofaNewDay", + 1, + 6, + "gf/Dawning of a New Day/0" + ], + [ + "DayPosterBlack", + "Regular", + "DayPosterBlack", + 1, + 11, + "fs/DayPosterBlack/0" + ], + [ + "Days", + "Regular", + "Days", + 8, + 4, + "fs/Days/0" + ], + [ + "Days One", + "Regular", + "DaysOne-Regular", + 9, + 12, + "gf/Days One/0" + ], + [ + "DeStencilNF", + "Regular", + "DeStencilNF", + 1, + 16, + "fs/DeStencilNF/0" + ], + [ + "De Valencia", + "Regular", + "DeValencia-Regular", + 0, + 7, + "fs/de-valencia/0" + ], + [ + "Dearest", + "Regular", + "Dearest", + 1, + 0, + "fs/Dearest/0" + ], + [ + "Dearest Open", + "Regular", + "DearestOpen", + 1, + 0, + "fs/Dearest/1" + ], + [ + "Dearest Outline", + "Regular", + "DearestOutline", + 1, + 0, + "fs/Dearest/2" + ], + [ + "Dehuti", + "Bold", + "Dehuti-Bold", + 15, + 14, + "fs/dehuti/2" + ], + [ + "Dehuti", + "Bold-Italic", + "Dehuti-Bold-Italic", + 15, + 14, + "fs/dehuti/3" + ], + [ + "Dehuti", + "Book", + "Dehuti-Book", + 15, + 14, + "fs/dehuti/0" + ], + [ + "Dehuti", + "Italic", + "Dehuti-Italic", + 15, + 14, + "fs/dehuti/1" + ], + [ + "Dehuti Alt", + "Bold", + "DehutiAlt-Bold", + 15, + 14, + "fs/dehuti/6" + ], + [ + "Dehuti Alt", + "Bold-Italic", + "DehutiAlt-Bold-Italic", + 15, + 14, + "fs/dehuti/7" + ], + [ + "Dehuti Alt", + "Book", + "DehutiAlt-Book", + 15, + 14, + "fs/dehuti/4" + ], + [ + "Dehuti Alt", + "Italic", + "DehutiAlt-Italic", + 15, + 14, + "fs/dehuti/5" + ], + [ + "DejaVu Sans", + "Book", + "DejaVuSans", + 63, + 12, + "fs/dejavu-sans/1" + ], + [ + "DejaVu Sans", + "Bold", + "DejaVuSans-Bold", + 63, + 12, + "fs/dejavu-sans/3" + ], + [ + "DejaVu Sans", + "Bold Oblique", + "DejaVuSans-BoldOblique", + 31, + 12, + "fs/dejavu-sans/4" + ], + [ + "DejaVu Sans", + "ExtraLight", + "DejaVuSans-ExtraLight", + 15, + 12, + "fs/dejavu-sans/0" + ], + [ + "DejaVu Sans", + "Oblique", + "DejaVuSans-Oblique", + 31, + 12, + "fs/dejavu-sans/2" + ], + [ + "DejaVu Sans", + "Condensed", + "DejaVuSansCondensed", + 63, + 12, + "fs/dejavu-sans/5" + ], + [ + "DejaVu Sans", + "Condensed Bold", + "DejaVuSansCondensed-Bold", + 63, + 12, + "fs/dejavu-sans/7" + ], + [ + "DejaVu Sans", + "Condensed Bold Oblique", + "DejaVuSansCondensed-BoldOblique", + 31, + 12, + "fs/dejavu-sans/8" + ], + [ + "DejaVu Sans", + "Condensed Oblique", + "DejaVuSansCondensed-Oblique", + 31, + 12, + "fs/dejavu-sans/6" + ], + [ + "DejaVu Sans Mono", + "Book", + "DejaVuSansMono", + 15, + 12, + "fs/dejavu-sans-mono/0" + ], + [ + "DejaVu Sans Mono", + "Bold", + "DejaVuSansMono-Bold", + 15, + 12, + "fs/dejavu-sans-mono/2" + ], + [ + "DejaVu Sans Mono", + "Bold Oblique", + "DejaVuSansMono-BoldOblique", + 15, + 12, + "fs/dejavu-sans-mono/3" + ], + [ + "DejaVu Sans Mono", + "Oblique", + "DejaVuSansMono-Oblique", + 15, + 12, + "fs/dejavu-sans-mono/1" + ], + [ + "DejaVu Serif", + "Book", + "DejaVuSerif", + 15, + 14, + "fs/dejavu-serif/0" + ], + [ + "DejaVu Serif", + "Bold", + "DejaVuSerif-Bold", + 15, + 14, + "fs/dejavu-serif/2" + ], + [ + "DejaVu Serif", + "Bold Italic", + "DejaVuSerif-BoldItalic", + 15, + 14, + "fs/dejavu-serif/3" + ], + [ + "DejaVu Serif", + "Italic", + "DejaVuSerif-Italic", + 15, + 14, + "fs/dejavu-serif/1" + ], + [ + "DejaVu Serif", + "Condensed", + "DejaVuSerifCondensed", + 15, + 14, + "fs/dejavu-serif/4" + ], + [ + "DejaVu Serif", + "Condensed Bold", + "DejaVuSerifCondensed-Bold", + 15, + 14, + "fs/dejavu-serif/6" + ], + [ + "DejaVu Serif", + "Condensed Bold Italic", + "DejaVuSerifCondensed-BoldItalic", + 15, + 14, + "fs/dejavu-serif/7" + ], + [ + "DejaVu Serif", + "Condensed Italic", + "DejaVuSerifCondensed-Italic", + 15, + 14, + "fs/dejavu-serif/5" + ], + [ + "Dekko", + "Regular", + "Dekko", + 515, + 6, + "gf/Dekko/0" + ], + [ + "Delius", + "Regular", + "Delius-Regular", + 1, + 2, + "fs/delius/0" + ], + [ + "Delius Swash Caps", + "Regular", + "DeliusSwashCaps-Regular", + 1, + 2, + "fs/delius-swash-caps/0" + ], + [ + "Delius Unicase", + "Bold", + "DeliusUnicase-Bold", + 1, + 2, + "fs/delius-unicase/1" + ], + [ + "Delius Unicase", + "Regular", + "DeliusUnicase-Regular", + 1, + 2, + "fs/delius-unicase/0" + ], + [ + "Della Respira", + "Regular", + "DellaRespira-Regular", + 1, + 14, + "gf/Della Respira/0" + ], + [ + "Denk One", + "Regular", + "DenkOne-Regular", + 1, + 12, + "gf/Denk One/0" + ], + [ + "Destroy", + "Regular", + "Destroy", + 0, + 4, + "fs/Destroy/0" + ], + [ + "Desyrel", + "Regular", + "Desyrel", + 1, + 6, + "fs/Desyrel/0" + ], + [ + "Deutsch Gothic", + "Normal", + "Deutsch-Gothic", + 0, + 0, + "fs/Deutsch-Gothic/0" + ], + [ + "Devonshire", + "Regular", + "Devonshire-Regular", + 3, + 6, + "gf/Devonshire/0" + ], + [ + "Devroye", + "Regular", + "Devroye", + 1, + 14, + "fs/Devroye/0" + ], + [ + "Devroye Extra", + "Regular", + "DevroyeExtra", + 0, + 14, + "fs/Devroye/1" + ], + [ + "Devroye", + "Regular", + "DevroyeSCOSF", + 1, + 14, + "fs/Devroye/2" + ], + [ + "Devroye", + "Regular", + "DevroyeUnicode", + 15, + 14, + "fs/Devroye/3" + ], + [ + "Dhurjati", + "Regular", + "Dhurjati", + 0, + 12, + "gf/Dhurjati/0" + ], + [ + "Didact Gothic", + "Regular", + "DidactGothic-Regular", + 15, + 12, + "fs/didact-gothic/0" + ], + [ + "Digory Doodles", + "Regular", + "Digory_Doodles_PS", + 0, + 13, + "fs/digory-doodles/0" + ], + [ + "Diner", + "Fatt", + "Diner-Fatt", + 0, + 11, + "fs/Diner-Skinny/2" + ], + [ + "Diner", + "Obese", + "Diner-Obese", + 0, + 11, + "fs/Diner-Skinny/3" + ], + [ + "Diner", + "Regular", + "Diner-Regular", + 0, + 11, + "fs/Diner-Skinny/1" + ], + [ + "Diner", + "Skinny", + "Diner-Skinny", + 0, + 11, + "fs/Diner-Skinny/0" + ], + [ + "Diplomata", + "Regular", + "Diplomata-Regular", + 1, + 4, + "fs/diplomata/0" + ], + [ + "Diplomata SC", + "Regular", + "DiplomataSC-Regular", + 1, + 4, + "gf/Diplomata SC/0" + ], + [ + "Distant Galaxy", + "Regular", + "DistantGalaxy", + 0, + 8, + "fs/Distant-Galaxy/0" + ], + [ + "District", + "Regular", + "District", + 0, + 4, + "fs/District/0" + ], + [ + "Dited", + "Regular", + "Dited", + 8, + 4, + "fs/Dited/0" + ], + [ + "Do Hyeon", + "Regular", + "DoHyeon-Regular", + 64, + 12, + "gf/Do Hyeon/0" + ], + [ + "Dobkin", + "Plain", + "Dobkin-Plain", + 0, + 13, + "fs/Dobkin/0" + ], + [ + "Dokdo", + "Regular", + "Dokdo-Regular", + 0, + 6, + "gf/Dokdo/0" + ], + [ + "Domine", + "Bold", + "Domine-Bold", + 3, + 14, + "fs/domine/1" + ], + [ + "Domine", + "Regular", + "Domine-Regular", + 3, + 14, + "fs/domine/0" + ], + [ + "Donegal One", + "Regular", + "DonegalOne-Regular", + 3, + 14, + "gf/Donegal One/0" + ], + [ + "Doppio One", + "Regular", + "DoppioOne-Regular", + 3, + 12, + "gf/Doppio One/0" + ], + [ + "Dorsa", + "Regular", + "Dorsa-Regular", + 1, + 12, + "gf/Dorsa/0" + ], + [ + "Dosis", + "Bold", + "Dosis-Bold", + 3, + 12, + "fs/dosis/5" + ], + [ + "Dosis", + "ExtraBold", + "Dosis-ExtraBold", + 3, + 12, + "fs/dosis/6" + ], + [ + "Dosis", + "ExtraLight", + "Dosis-ExtraLight", + 3, + 12, + "fs/dosis/0" + ], + [ + "Dosis", + "Light", + "Dosis-Light", + 3, + 12, + "fs/dosis/1" + ], + [ + "Dosis", + "Medium", + "Dosis-Medium", + 3, + 12, + "fs/dosis/3" + ], + [ + "Dosis", + "Regular", + "Dosis-Regular", + 3, + 12, + "fs/dosis/2" + ], + [ + "Dosis", + "SemiBold", + "Dosis-SemiBold", + 3, + 12, + "fs/dosis/4" + ], + [ + "Dr Sugiyama", + "Regular", + "DrSugiyama-Regular", + 1, + 6, + "gf/Dr Sugiyama/0" + ], + [ + "DrawveticaMini", + "Medium", + "DrawveticaMini", + 1, + 6, + "fs/drawveticamini/0" + ], + [ + "Droid Sans", + "Regular", + "DroidSans", + 15, + 12, + "fs/droid-sans/0" + ], + [ + "Droid Sans", + "Bold", + "DroidSans-Bold", + 15, + 12, + "fs/droid-sans/1" + ], + [ + "Droid Sans Fallback", + "Regular", + "DroidSansFallback", + 192, + 10, + "ex/DroidSansFallback.ttf" + ], + [ + "Droid Sans Mono", + "Regular", + "DroidSansMono", + 15, + 7, + "fs/droid-sans-mono/0" + ], + [ + "Droid Serif", + "Regular", + "DroidSerif", + 15, + 14, + "fs/droid-serif/0" + ], + [ + "Droid Serif", + "Bold", + "DroidSerif-Bold", + 15, + 14, + "fs/droid-serif/2" + ], + [ + "Droid Serif", + "Bold Italic", + "DroidSerif-BoldItalic", + 15, + 14, + "fs/droid-serif/3" + ], + [ + "Droid Serif", + "Italic", + "DroidSerif-Italic", + 15, + 14, + "fs/droid-serif/1" + ], + [ + "Dubiel", + "Italic", + "Dubiel-Italic", + 1, + 14, + "fs/DubielPlain/1" + ], + [ + "DubielPlain", + "Regular", + "DubielPlain", + 1, + 14, + "fs/DubielPlain/0" + ], + [ + "Dubtronic", + "Solid", + "Dubtronic-Solid", + 0, + 4, + "fs/Dubtronic/0" + ], + [ + "Dubtronic Inline", + "Regular", + "DubtronicInline", + 0, + 4, + "fs/Dubtronic/1" + ], + [ + "Duplexide", + "Regular", + "Duplexide", + 0, + 4, + "fs/Origicide/1" + ], + [ + "Duru Sans", + "Regular", + "DuruSans-Regular", + 3, + 12, + "fs/duru-sans/0" + ], + [ + "Dustismo", + "Regular", + "Dustismo", + 3, + 12, + "fs/Dustismo/0" + ], + [ + "Dustismo", + " Bold", + "DustismoBold", + 3, + 12, + "fs/Dustismo/2" + ], + [ + "Dustismo", + " Bold Italic", + "DustismoBoldItalic", + 3, + 12, + "fs/Dustismo/3" + ], + [ + "Dustismo", + " Italic", + "DustismoItalic", + 3, + 12, + "fs/Dustismo/1" + ], + [ + "Dustismo Roman", + "Regular", + "DustismoRoman", + 7, + 14, + "fs/Dustismo-Roman/0" + ], + [ + "Dustismo Roman", + "Bold", + "DustismoRoman-Bold", + 7, + 14, + "fs/Dustismo-Roman/2" + ], + [ + "Dustismo Roman", + "Bold Italic", + "DustismoRoman-BoldItalic", + 7, + 14, + "fs/Dustismo-Roman/3" + ], + [ + "Dustismo Roman", + "Italic", + "DustismoRoman-Italic", + 7, + 14, + "fs/Dustismo-Roman/1" + ], + [ + "Dutch Initials", + "normal", + "DutchInitials", + 0, + 4, + "fs/Dutch-Initials/0" + ], + [ + "DymaxionScript", + "Regular", + "DymaxionScript", + 1, + 11, + "fs/DymaxionScript/0" + ], + [ + "Dynalight", + "Regular", + "Dynalight-Regular", + 3, + 13, + "fs/dynalight/0" + ], + [ + "EB Garamond", + "Bold", + "EBGaramond-Bold", + 15, + 14, + "gf/EB Garamond/2" + ], + [ + "EB Garamond", + "Bold Italic", + "EBGaramond-BoldItalic", + 15, + 14, + "gf/EB Garamond/8" + ], + [ + "EB Garamond", + "ExtraBold", + "EBGaramond-ExtraBold", + 15, + 14, + "gf/EB Garamond/3" + ], + [ + "EB Garamond", + "ExtraBold Italic", + "EBGaramond-ExtraBoldItalic", + 15, + 14, + "gf/EB Garamond/9" + ], + [ + "EB Garamond", + "Italic", + "EBGaramond-Italic", + 15, + 14, + "gf/EB Garamond/5" + ], + [ + "EB Garamond", + "Medium", + "EBGaramond-Medium", + 15, + 14, + "gf/EB Garamond/0" + ], + [ + "EB Garamond", + "Medium Italic", + "EBGaramond-MediumItalic", + 15, + 14, + "gf/EB Garamond/6" + ], + [ + "EB Garamond", + "Regular", + "EBGaramond-Regular", + 15, + 14, + "gf/EB Garamond/4" + ], + [ + "EB Garamond", + "SemiBold", + "EBGaramond-SemiBold", + 15, + 14, + "gf/EB Garamond/1" + ], + [ + "EB Garamond", + "SemiBold Italic", + "EBGaramond-SemiBoldItalic", + 15, + 14, + "gf/EB Garamond/7" + ], + [ + "EB Garamond", + "08 Italic", + "EBGaramond08-Italic", + 3, + 14, + "fs/eb-garamond/1" + ], + [ + "EB Garamond", + "08 Regular", + "EBGaramond08-Regular", + 15, + 14, + "fs/eb-garamond/0" + ], + [ + "EB Garamond 12 All SC", + "AllSC", + "EBGaramond12-AllSC", + 11, + 14, + "fs/eb-garamond/6" + ], + [ + "EB Garamond", + "12 Italic", + "EBGaramond12-Italic", + 15, + 14, + "fs/eb-garamond/3" + ], + [ + "EB Garamond", + "12 Regular", + "EBGaramond12-Regular", + 15, + 14, + "fs/eb-garamond/2" + ], + [ + "EB Garamond SC", + "08 Regular", + "EBGaramondSC08-Regular", + 15, + 14, + "fs/eb-garamond/4" + ], + [ + "EB Garamond SC", + "12 Regular", + "EBGaramondSC12-Regular", + 15, + 14, + "fs/eb-garamond/5" + ], + [ + "Eagle Lake", + "Regular", + "EagleLake-Regular", + 3, + 6, + "gf/Eagle Lake/0" + ], + [ + "EastMarket", + "Regular", + "EastMarket", + 1, + 11, + "fs/EastMarket/0" + ], + [ + "East Sea Dokdo", + "Regular", + "EastSeaDokdo-Regular", + 64, + 6, + "gf/East Sea Dokdo/0" + ], + [ + "Eater", + "Regular", + "Eater-Regular", + 3, + 4, + "gf/Eater/0" + ], + [ + "Economica", + "Bold", + "Economica-Bold", + 1, + 12, + "fs/economica/2" + ], + [ + "Economica", + "Bold Italic", + "Economica-BoldItalic", + 1, + 12, + "fs/economica/3" + ], + [ + "Economica", + "Italic", + "Economica-Italic", + 1, + 12, + "fs/economica/1" + ], + [ + "Economica", + "Regular", + "Economica-Regular", + 1, + 12, + "fs/economica/0" + ], + [ + "Eczar", + "Bold", + "Eczar-Bold", + 513, + 14, + "fs/eczar/3" + ], + [ + "Eczar", + "ExtraBold", + "Eczar-ExtraBold", + 513, + 14, + "fs/eczar/4" + ], + [ + "Eczar", + "Medium", + "Eczar-Medium", + 513, + 14, + "fs/eczar/1" + ], + [ + "Eczar", + "Regular", + "Eczar-Regular", + 513, + 14, + "fs/eczar/0" + ], + [ + "Eczar", + "SemiBold", + "Eczar-SemiBold", + 513, + 14, + "fs/eczar/2" + ], + [ + "Edo", + "Regular", + "Edo", + 0, + 4, + "fs/Edo/0" + ], + [ + "El Messiri", + "Bold", + "ElMessiri-Bold", + 9, + 4, + "fs/el-messiri/3" + ], + [ + "El Messiri", + "Medium", + "ElMessiri-Medium", + 9, + 4, + "fs/el-messiri/1" + ], + [ + "El Messiri", + "Regular", + "ElMessiri-Regular", + 9, + 4, + "fs/el-messiri/0" + ], + [ + "El Messiri", + "SemiBold", + "ElMessiri-SemiBold", + 9, + 4, + "fs/el-messiri/2" + ], + [ + "Electrolize", + "Regular", + "Electrolize-Regular", + 1, + 12, + "gf/Electrolize/0" + ], + [ + "ElliotSix", + "Regular", + "ElliotSix", + 0, + 6, + "fs/ElliotSix/0" + ], + [ + "Elsie", + "Black", + "Elsie-Black", + 1, + 4, + "gf/Elsie/0" + ], + [ + "Elsie", + "Regular", + "Elsie-Regular", + 1, + 14, + "fs/elsie/0" + ], + [ + "Elsie", + "Black", + "ElsieBlack-Regular", + 1, + 14, + "fs/elsie/2" + ], + [ + "Elsie Swash Caps", + "Black", + "ElsieSwashCaps-Black", + 1, + 4, + "gf/Elsie Swash Caps/0" + ], + [ + "Elsie Swash Caps", + "Regular", + "ElsieSwashCaps-Regular", + 1, + 14, + "fs/elsie/1" + ], + [ + "Elsie Swash Caps", + "Black", + "ElsieSwashCapsBlack-Regular", + 1, + 14, + "fs/elsie/3" + ], + [ + "Emblema One", + "Regular", + "EmblemaOne-Regular", + 3, + 4, + "gf/Emblema One/0" + ], + [ + "EmbossedBlack", + "Normal", + "EmbossedBlack-Normal", + 0, + 0, + "fs/PlainBlack/4" + ], + [ + "EmbossedBlackWide", + "Normal", + "EmbossedBlackWide-Normal", + 0, + 0, + "fs/PlainBlack/5" + ], + [ + "Emilys Candy", + "Regular", + "EmilysCandy-Regular", + 1, + 4, + "gf/Emilys Candy/0" + ], + [ + "Encode Sans", + "Black", + "EncodeSans-Black", + 3, + 12, + "fs/encode-sans/8" + ], + [ + "Encode Sans", + "Bold", + "EncodeSans-Bold", + 3, + 12, + "fs/encode-sans/6" + ], + [ + "Encode Sans", + "ExtraBold", + "EncodeSans-ExtraBold", + 3, + 12, + "fs/encode-sans/7" + ], + [ + "Encode Sans", + "ExtraLight", + "EncodeSans-ExtraLight", + 3, + 12, + "fs/encode-sans/1" + ], + [ + "Encode Sans", + "Light", + "EncodeSans-Light", + 3, + 12, + "fs/encode-sans/2" + ], + [ + "Encode Sans", + "Medium", + "EncodeSans-Medium", + 3, + 12, + "fs/encode-sans/4" + ], + [ + "Encode Sans", + "Regular", + "EncodeSans-Regular", + 3, + 12, + "fs/encode-sans/3" + ], + [ + "Encode Sans", + "SemiBold", + "EncodeSans-SemiBold", + 3, + 12, + "fs/encode-sans/5" + ], + [ + "Encode Sans", + "Thin", + "EncodeSans-Thin", + 3, + 12, + "fs/encode-sans/0" + ], + [ + "Encode Sans Condensed", + "Black", + "EncodeSansCondensed-Black", + 3, + 12, + "fs/encode-sans/17" + ], + [ + "Encode Sans Condensed", + "Bold", + "EncodeSansCondensed-Bold", + 3, + 12, + "fs/encode-sans/15" + ], + [ + "Encode Sans Condensed", + "ExtraBold", + "EncodeSansCondensed-ExtraBold", + 3, + 12, + "fs/encode-sans/16" + ], + [ + "Encode Sans Condensed", + "ExtraLight", + "EncodeSansCondensed-ExtraLight", + 3, + 12, + "fs/encode-sans/10" + ], + [ + "Encode Sans Condensed", + "Light", + "EncodeSansCondensed-Light", + 3, + 12, + "fs/encode-sans/11" + ], + [ + "Encode Sans Condensed", + "Medium", + "EncodeSansCondensed-Medium", + 3, + 12, + "fs/encode-sans/13" + ], + [ + "Encode Sans Condensed", + "Regular", + "EncodeSansCondensed-Regular", + 3, + 12, + "fs/encode-sans/12" + ], + [ + "Encode Sans Condensed", + "SemiBold", + "EncodeSansCondensed-SemiBold", + 3, + 12, + "fs/encode-sans/14" + ], + [ + "Encode Sans Condensed", + "Thin", + "EncodeSansCondensed-Thin", + 3, + 12, + "fs/encode-sans/9" + ], + [ + "Encode Sans Expanded", + "Black", + "EncodeSansExpanded-Black", + 3, + 12, + "fs/encode-sans/26" + ], + [ + "Encode Sans Expanded", + "Bold", + "EncodeSansExpanded-Bold", + 3, + 12, + "fs/encode-sans/24" + ], + [ + "Encode Sans Expanded", + "ExtraBold", + "EncodeSansExpanded-ExtraBold", + 3, + 12, + "fs/encode-sans/25" + ], + [ + "Encode Sans Expanded", + "ExtraLight", + "EncodeSansExpanded-ExtraLight", + 3, + 12, + "fs/encode-sans/19" + ], + [ + "Encode Sans Expanded", + "Light", + "EncodeSansExpanded-Light", + 3, + 12, + "fs/encode-sans/20" + ], + [ + "Encode Sans Expanded", + "Medium", + "EncodeSansExpanded-Medium", + 3, + 12, + "fs/encode-sans/22" + ], + [ + "Encode Sans Expanded", + "Regular", + "EncodeSansExpanded-Regular", + 3, + 12, + "fs/encode-sans/21" + ], + [ + "Encode Sans Expanded", + "SemiBold", + "EncodeSansExpanded-SemiBold", + 3, + 12, + "fs/encode-sans/23" + ], + [ + "Encode Sans Expanded", + "Thin", + "EncodeSansExpanded-Thin", + 3, + 12, + "fs/encode-sans/18" + ], + [ + "Encode Sans SemiCondensed", + "Black", + "EncodeSansSemiCondensed-Black", + 3, + 12, + "fs/encode-sans/35" + ], + [ + "Encode Sans SemiCondensed", + "Bold", + "EncodeSansSemiCondensed-Bold", + 3, + 12, + "fs/encode-sans/33" + ], + [ + "Encode Sans SemiCondensed", + "ExtraBold", + "EncodeSansSemiCondensed-ExtraBold", + 3, + 12, + "fs/encode-sans/34" + ], + [ + "Encode Sans SemiCondensed", + "ExtraLight", + "EncodeSansSemiCondensed-ExtraLight", + 3, + 12, + "fs/encode-sans/28" + ], + [ + "Encode Sans SemiCondensed", + "Light", + "EncodeSansSemiCondensed-Light", + 3, + 12, + "fs/encode-sans/29" + ], + [ + "Encode Sans SemiCondensed", + "Medium", + "EncodeSansSemiCondensed-Medium", + 3, + 12, + "fs/encode-sans/31" + ], + [ + "Encode Sans SemiCondensed", + "Regular", + "EncodeSansSemiCondensed-Regular", + 3, + 12, + "fs/encode-sans/30" + ], + [ + "Encode Sans SemiCondensed", + "SemiBold", + "EncodeSansSemiCondensed-SemiBold", + 3, + 12, + "fs/encode-sans/32" + ], + [ + "Encode Sans SemiCondensed", + "Thin", + "EncodeSansSemiCondensed-Thin", + 3, + 12, + "fs/encode-sans/27" + ], + [ + "Encode Sans SemiExpanded", + "Black", + "EncodeSansSemiExpanded-Black", + 3, + 12, + "fs/encode-sans/44" + ], + [ + "Encode Sans SemiExpanded", + "Bold", + "EncodeSansSemiExpanded-Bold", + 3, + 12, + "fs/encode-sans/42" + ], + [ + "Encode Sans SemiExpanded", + "ExtraBold", + "EncodeSansSemiExpanded-ExtraBold", + 3, + 12, + "fs/encode-sans/43" + ], + [ + "Encode Sans SemiExpanded", + "ExtraLight", + "EncodeSansSemiExpanded-ExtraLight", + 3, + 12, + "fs/encode-sans/37" + ], + [ + "Encode Sans SemiExpanded", + "Light", + "EncodeSansSemiExpanded-Light", + 3, + 12, + "fs/encode-sans/38" + ], + [ + "Encode Sans SemiExpanded", + "Medium", + "EncodeSansSemiExpanded-Medium", + 3, + 12, + "fs/encode-sans/40" + ], + [ + "Encode Sans SemiExpanded", + "Regular", + "EncodeSansSemiExpanded-Regular", + 3, + 12, + "fs/encode-sans/39" + ], + [ + "Encode Sans SemiExpanded", + "SemiBold", + "EncodeSansSemiExpanded-SemiBold", + 3, + 12, + "fs/encode-sans/41" + ], + [ + "Encode Sans SemiExpanded", + "Thin", + "EncodeSansSemiExpanded-Thin", + 3, + 12, + "fs/encode-sans/36" + ], + [ + "Engagement", + "Regular", + "Engagement-Regular", + 3, + 6, + "gf/Engagement/0" + ], + [ + "England Hand DB", + "Regular", + "EnglandHandDB", + 1, + 13, + "fs/England-Hand-DB/0" + ], + [ + "Englebert", + "Regular", + "Englebert-Regular", + 3, + 12, + "gf/Englebert/0" + ], + [ + "Engry", + "Regular", + "Engry", + 8, + 14, + "fs/engry/0" + ], + [ + "Enigmatic", + "Regular", + "Enigmatic", + 1, + 12, + "fs/Enigmatic/0" + ], + [ + "Enigmatic", + "Bold", + "EnigmaticBold", + 1, + 12, + "fs/Enigmatic/2" + ], + [ + "Enigmatic", + "Italic", + "EnigmaticItalic", + 1, + 12, + "fs/Enigmatic/1" + ], + [ + "Enriqueta", + "Bold", + "Enriqueta-Bold", + 3, + 15, + "fs/enriqueta/1" + ], + [ + "Enriqueta", + "Regular", + "Enriqueta-Regular", + 3, + 15, + "fs/enriqueta/0" + ], + [ + "Entypo", + "Regular", + "Entypo", + 0, + 3, + "fs/entypo/0" + ], + [ + "Eraser", + "Regular", + "Eraser-Regular", + 0, + 6, + "fs/Eraser/0" + ], + [ + "Erica One", + "Regular", + "EricaOne-Regular", + 1, + 4, + "gf/Erica One/0" + ], + [ + "Esteban", + "Regular", + "Esteban", + 1, + 14, + "gf/Esteban/0" + ], + [ + "Euphoria Script", + "Regular", + "EuphoriaScript-Regular", + 1, + 13, + "fs/euphoria-script/0" + ], + [ + "Ewert", + "Regular", + "Ewert-Regular", + 1, + 4, + "gf/Ewert/0" + ], + [ + "Existence", + "Light", + "Existence-Light", + 3, + 12, + "fs/Existence-Light/0" + ], + [ + "Existence", + "Stencil Light", + "Existence-StencilLight", + 3, + 12, + "fs/Existence-Light/2" + ], + [ + "Existence", + "Unicase Light", + "Existence-UnicaseLight", + 3, + 12, + "fs/Existence-Light/1" + ], + [ + "Exo", + "Black", + "Exo-Black", + 3, + 12, + "gf/Exo/7" + ], + [ + "Exo", + "Black Italic", + "Exo-BlackItalic", + 3, + 12, + "gf/Exo/17" + ], + [ + "Exo", + "Bold", + "Exo-Bold", + 3, + 12, + "gf/Exo/5" + ], + [ + "Exo", + "Bold Italic", + "Exo-BoldItalic", + 3, + 12, + "gf/Exo/15" + ], + [ + "Exo", + "ExtraBold", + "Exo-ExtraBold", + 3, + 12, + "gf/Exo/6" + ], + [ + "Exo", + "ExtraBold Italic", + "Exo-ExtraBoldItalic", + 3, + 12, + "gf/Exo/16" + ], + [ + "Exo", + "ExtraLight", + "Exo-ExtraLight", + 3, + 12, + "gf/Exo/1" + ], + [ + "Exo", + "ExtraLight Italic", + "Exo-ExtraLightItalic", + 3, + 12, + "gf/Exo/9" + ], + [ + "Exo", + "Italic", + "Exo-Italic", + 3, + 12, + "gf/Exo/12" + ], + [ + "Exo", + "Light", + "Exo-Light", + 3, + 12, + "gf/Exo/2" + ], + [ + "Exo", + "Light Italic", + "Exo-LightItalic", + 3, + 12, + "gf/Exo/10" + ], + [ + "Exo", + "Medium", + "Exo-Medium", + 3, + 12, + "gf/Exo/3" + ], + [ + "Exo", + "Medium Italic", + "Exo-MediumItalic", + 3, + 12, + "gf/Exo/13" + ], + [ + "Exo", + "Regular", + "Exo-Regular", + 3, + 12, + "gf/Exo/11" + ], + [ + "Exo", + "SemiBold", + "Exo-SemiBold", + 3, + 12, + "gf/Exo/4" + ], + [ + "Exo", + "SemiBold Italic", + "Exo-SemiBoldItalic", + 3, + 12, + "gf/Exo/14" + ], + [ + "Exo", + "Thin", + "Exo-Thin", + 3, + 12, + "gf/Exo/0" + ], + [ + "Exo", + "Thin Italic", + "Exo-ThinItalic", + 3, + 12, + "gf/Exo/8" + ], + [ + "Exo 2", + "Black", + "Exo2-Black", + 11, + 12, + "gf/Exo 2/7" + ], + [ + "Exo 2", + "Black Italic", + "Exo2-BlackItalic", + 11, + 12, + "gf/Exo 2/17" + ], + [ + "Exo 2", + "Bold", + "Exo2-Bold", + 11, + 12, + "gf/Exo 2/5" + ], + [ + "Exo 2", + "Bold Italic", + "Exo2-BoldItalic", + 11, + 12, + "gf/Exo 2/15" + ], + [ + "Exo 2", + "Extra Bold", + "Exo2-ExtraBold", + 11, + 12, + "gf/Exo 2/6" + ], + [ + "Exo 2", + "Extra Bold Italic", + "Exo2-ExtraBoldItalic", + 11, + 12, + "gf/Exo 2/16" + ], + [ + "Exo 2", + "Extra Light", + "Exo2-ExtraLight", + 11, + 12, + "gf/Exo 2/1" + ], + [ + "Exo 2", + "Extra Light Italic", + "Exo2-ExtraLightItalic", + 11, + 12, + "gf/Exo 2/9" + ], + [ + "Exo 2", + "Regular Italic", + "Exo2-Italic", + 11, + 12, + "gf/Exo 2/12" + ], + [ + "Exo 2", + "Light", + "Exo2-Light", + 11, + 12, + "gf/Exo 2/2" + ], + [ + "Exo 2", + "Light Italic", + "Exo2-LightItalic", + 11, + 12, + "gf/Exo 2/10" + ], + [ + "Exo 2", + "Medium", + "Exo2-Medium", + 11, + 12, + "gf/Exo 2/3" + ], + [ + "Exo 2", + "Medium Italic", + "Exo2-MediumItalic", + 11, + 12, + "gf/Exo 2/13" + ], + [ + "Exo 2", + "Regular", + "Exo2-Regular", + 11, + 12, + "gf/Exo 2/11" + ], + [ + "Exo 2", + "Semi Bold", + "Exo2-SemiBold", + 11, + 12, + "gf/Exo 2/4" + ], + [ + "Exo 2", + "Semi Bold Italic", + "Exo2-SemiBoldItalic", + 11, + 12, + "gf/Exo 2/14" + ], + [ + "Exo 2", + "Thin", + "Exo2-Thin", + 11, + 12, + "gf/Exo 2/0" + ], + [ + "Exo 2", + "Thin Italic", + "Exo2-ThinItalic", + 11, + 12, + "gf/Exo 2/8" + ], + [ + "Expletus Sans", + "Regular", + "ExpletusSans", + 1, + 12, + "fs/expletus-sans/0" + ], + [ + "Expletus Sans", + "Bold", + "ExpletusSans-Bold", + 1, + 12, + "fs/expletus-sans/6" + ], + [ + "Expletus Sans", + "Bold Italic", + "ExpletusSans-BoldItalic", + 1, + 12, + "fs/expletus-sans/7" + ], + [ + "Expletus Sans", + "Italic", + "ExpletusSans-Italic", + 1, + 12, + "fs/expletus-sans/1" + ], + [ + "Expletus Sans", + "Medium", + "ExpletusSans-Medium", + 1, + 12, + "fs/expletus-sans/2" + ], + [ + "Expletus Sans", + "Medium Italic", + "ExpletusSans-MediumItalic", + 1, + 12, + "fs/expletus-sans/3" + ], + [ + "Expletus Sans", + "SemiBold", + "ExpletusSans-SemiBold", + 1, + 12, + "fs/expletus-sans/4" + ], + [ + "Expletus Sans", + "SemiBold Italic", + "ExpletusSans-SemiBoldItalic", + 1, + 12, + "fs/expletus-sans/5" + ], + [ + "FFF Tusj", + "Bold", + "FFFTusj-Bold", + 1, + 4, + "fs/FFF-Tusj/0" + ], + [ + "FORQUE", + "Regular", + "FORQUE", + 0, + 11, + "fs/forque/0" + ], + [ + "Fahkwang", + "Bold", + "Fahkwang-Bold", + 3, + 12, + "gf/Fahkwang/4" + ], + [ + "Fahkwang", + "Bold Italic", + "Fahkwang-BoldItalic", + 3, + 12, + "gf/Fahkwang/11" + ], + [ + "Fahkwang", + "ExtraLight", + "Fahkwang-ExtraLight", + 3, + 12, + "gf/Fahkwang/0" + ], + [ + "Fahkwang", + "ExtraLight Italic", + "Fahkwang-ExtraLightItalic", + 3, + 12, + "gf/Fahkwang/5" + ], + [ + "Fahkwang", + "Italic", + "Fahkwang-Italic", + 3, + 12, + "gf/Fahkwang/8" + ], + [ + "Fahkwang", + "Light", + "Fahkwang-Light", + 3, + 12, + "gf/Fahkwang/1" + ], + [ + "Fahkwang", + "Light Italic", + "Fahkwang-LightItalic", + 3, + 12, + "gf/Fahkwang/6" + ], + [ + "Fahkwang", + "Medium", + "Fahkwang-Medium", + 3, + 12, + "gf/Fahkwang/2" + ], + [ + "Fahkwang", + "Medium Italic", + "Fahkwang-MediumItalic", + 3, + 12, + "gf/Fahkwang/9" + ], + [ + "Fahkwang", + "Regular", + "Fahkwang-Regular", + 3, + 12, + "gf/Fahkwang/7" + ], + [ + "Fahkwang", + "SemiBold", + "Fahkwang-SemiBold", + 3, + 12, + "gf/Fahkwang/3" + ], + [ + "Fahkwang", + "SemiBold Italic", + "Fahkwang-SemiBoldItalic", + 3, + 12, + "gf/Fahkwang/10" + ], + [ + "Familiar Pro", + "Bold", + "FamiliarPro-Bold", + 3, + 12, + "fs/familiar-pro/0" + ], + [ + "FancyPants", + "Regular", + "FancyPants", + 0, + 11, + "fs/FancyPants/0" + ], + [ + "Fantasque Sans Mono", + "Bold", + "FantasqueSansMono-Bold", + 15, + 7, + "fs/fantasque-sans-mono/2" + ], + [ + "Fantasque Sans Mono", + "Bold Italic", + "FantasqueSansMono-BoldItalic", + 15, + 7, + "fs/fantasque-sans-mono/3" + ], + [ + "Fantasque Sans Mono", + "Italic", + "FantasqueSansMono-Italic", + 15, + 7, + "fs/fantasque-sans-mono/1" + ], + [ + "Fantasque Sans Mono", + "Regular", + "FantasqueSansMono-Regular", + 15, + 7, + "fs/fantasque-sans-mono/0" + ], + [ + "Fanwood", + "Regular", + "Fanwood", + 3, + 14, + "fs/fanwood/0" + ], + [ + "Fanwood", + "Italic", + "Fanwood-Italic", + 3, + 14, + "fs/fanwood/1" + ], + [ + "Fanwood Text", + "Italic", + "FanwoodText-Italic", + 3, + 14, + "gf/Fanwood Text/1" + ], + [ + "Fanwood Text", + "Regular", + "FanwoodText-Regular", + 3, + 14, + "gf/Fanwood Text/0" + ], + [ + "Farro", + "Bold", + "Farro-Bold", + 3, + 12, + "fs/farro/3" + ], + [ + "Farro", + "Light", + "Farro-Light", + 3, + 12, + "fs/farro/0" + ], + [ + "Farro", + "Medium", + "Farro-Medium", + 3, + 12, + "fs/farro/2" + ], + [ + "Farro", + "Regular", + "Farro-Regular", + 3, + 12, + "fs/farro/1" + ], + [ + "Farsan", + "Regular", + "Farsan-Regular", + 3, + 4, + "gf/Farsan/0" + ], + [ + "Fascinate", + "Regular", + "Fascinate-Regular", + 3, + 4, + "fs/fascinate/0" + ], + [ + "Fascinate Inline", + "Regular", + "FascinateInline-Regular", + 3, + 4, + "fs/fascinate/1" + ], + [ + "Faster One", + "Regular", + "FasterOne-Regular", + 1, + 4, + "gf/Faster One/0" + ], + [ + "Fasthand", + "Regular", + "Fasthand-Regular", + 0, + 14, + "gf/Fasthand/0" + ], + [ + "Fauna One", + "Regular", + "FaunaOne", + 1, + 14, + "gf/Fauna One/0" + ], + [ + "Faustina", + "Bold", + "Faustina-Bold", + 3, + 15, + "fs/faustina/6" + ], + [ + "Faustina", + "Bold Italic", + "Faustina-BoldItalic", + 3, + 15, + "fs/faustina/7" + ], + [ + "Faustina", + "Italic", + "Faustina-Italic", + 3, + 15, + "fs/faustina/1" + ], + [ + "Faustina", + "Medium", + "Faustina-Medium", + 3, + 15, + "fs/faustina/2" + ], + [ + "Faustina", + "Medium Italic", + "Faustina-MediumItalic", + 3, + 15, + "fs/faustina/3" + ], + [ + "Faustina", + "Regular", + "Faustina-Regular", + 3, + 15, + "fs/faustina/0" + ], + [ + "Faustina", + "SemiBold", + "Faustina-SemiBold", + 3, + 15, + "fs/faustina/4" + ], + [ + "Faustina", + "SemiBold Italic", + "Faustina-SemiBoldItalic", + 3, + 15, + "fs/faustina/5" + ], + [ + "Faux Snow BRK", + "Regular", + "FauxSnowBRK", + 0, + 3, + "fs/Faux-Snow-BRK/0" + ], + [ + "Federant", + "Regular", + "Federant-Regular", + 1, + 4, + "gf/Federant/0" + ], + [ + "Federo", + "Regular", + "Federo-Regular", + 1, + 12, + "gf/Federo/0" + ], + [ + "Felipa", + "Regular", + "Felipa-Regular", + 1, + 1, + "fs/felipa/0" + ], + [ + "Fengardo Neue", + "Regular", + "FengardoNeue", + 1, + 12, + "fs/fengardo-neue/0" + ], + [ + "Fengardo Neue", + "Black", + "FengardoNeue-Black", + 1, + 12, + "fs/fengardo-neue/1" + ], + [ + "Fenix", + "Regular", + "Fenix", + 1, + 14, + "gf/Fenix/0" + ], + [ + "Finger Paint", + "Regular", + "FingerPaint-Regular", + 1, + 4, + "fs/finger-paint/0" + ], + [ + "Fira Code", + "Bold", + "FiraCode-Bold", + 15, + 12, + "fs/fira-code/2" + ], + [ + "Fira Code", + "Medium", + "FiraCode-Medium", + 15, + 12, + "fs/fira-code/1" + ], + [ + "Fira Code", + "Regular", + "FiraCode-Regular", + 15, + 12, + "fs/fira-code/0" + ], + [ + "Fira Mono", + "Bold", + "FiraMono-Bold", + 15, + 7, + "fs/fira-mono/2" + ], + [ + "Fira Mono", + "Medium", + "FiraMono-Medium", + 15, + 7, + "fs/fira-mono/1" + ], + [ + "Fira Mono", + "Regular", + "FiraMono-Regular", + 15, + 7, + "fs/fira-mono/0" + ], + [ + "Fira Sans", + "Black", + "FiraSans-Black", + 15, + 12, + "gf/Fira Sans/7" + ], + [ + "Fira Sans", + "Black Italic", + "FiraSans-BlackItalic", + 15, + 12, + "gf/Fira Sans/17" + ], + [ + "Fira Sans", + "Bold", + "FiraSans-Bold", + 15, + 12, + "fs/fira-sans/24" + ], + [ + "Fira Sans", + "Bold Italic", + "FiraSans-BoldItalic", + 15, + 12, + "fs/fira-sans/25" + ], + [ + "Fira Sans", + "Book", + "FiraSans-Book", + 15, + 12, + "fs/fira-sans/16" + ], + [ + "Fira Sans", + "Book Italic", + "FiraSans-BookItalic", + 15, + 12, + "fs/fira-sans/17" + ], + [ + "Fira Sans", + "Eight", + "FiraSans-Eight", + 15, + 12, + "fs/fira-sans/4" + ], + [ + "Fira Sans", + "Eight Italic", + "FiraSans-EightItalic", + 15, + 12, + "fs/fira-sans/5" + ], + [ + "Fira Sans", + "ExtraBold", + "FiraSans-ExtraBold", + 15, + 12, + "fs/fira-sans/26" + ], + [ + "Fira Sans", + "ExtraBold Italic", + "FiraSans-ExtraBoldItalic", + 15, + 12, + "fs/fira-sans/27" + ], + [ + "Fira Sans", + "ExtraLight", + "FiraSans-ExtraLight", + 15, + 12, + "fs/fira-sans/12" + ], + [ + "Fira Sans", + "ExtraLight Italic", + "FiraSans-ExtraLightItalic", + 15, + 12, + "fs/fira-sans/13" + ], + [ + "Fira Sans", + "Four", + "FiraSans-Four", + 15, + 12, + "fs/fira-sans/2" + ], + [ + "Fira Sans", + "Four Italic", + "FiraSans-FourItalic", + 15, + 12, + "fs/fira-sans/3" + ], + [ + "Fira Sans", + "Hair", + "FiraSans-Hair", + 15, + 12, + "fs/fira-sans/6" + ], + [ + "Fira Sans", + "Hair Italic", + "FiraSans-HairItalic", + 15, + 12, + "fs/fira-sans/7" + ], + [ + "Fira Sans", + "Heavy", + "FiraSans-Heavy", + 15, + 12, + "fs/fira-sans/28" + ], + [ + "Fira Sans", + "Heavy Italic", + "FiraSans-HeavyItalic", + 15, + 12, + "fs/fira-sans/29" + ], + [ + "Fira Sans", + "Italic", + "FiraSans-Italic", + 15, + 12, + "fs/fira-sans/19" + ], + [ + "Fira Sans", + "Light", + "FiraSans-Light", + 15, + 12, + "fs/fira-sans/14" + ], + [ + "Fira Sans", + "Light Italic", + "FiraSans-LightItalic", + 15, + 12, + "fs/fira-sans/15" + ], + [ + "Fira Sans", + "Medium", + "FiraSans-Medium", + 15, + 12, + "fs/fira-sans/20" + ], + [ + "Fira Sans", + "Medium Italic", + "FiraSans-MediumItalic", + 15, + 12, + "fs/fira-sans/21" + ], + [ + "Fira Sans", + "Regular", + "FiraSans-Regular", + 15, + 12, + "fs/fira-sans/18" + ], + [ + "Fira Sans", + "SemiBold", + "FiraSans-SemiBold", + 15, + 12, + "fs/fira-sans/22" + ], + [ + "Fira Sans", + "SemiBold Italic", + "FiraSans-SemiBoldItalic", + 15, + 12, + "fs/fira-sans/23" + ], + [ + "Fira Sans", + "Thin", + "FiraSans-Thin", + 15, + 12, + "fs/fira-sans/8" + ], + [ + "Fira Sans", + "Thin Italic", + "FiraSans-ThinItalic", + 15, + 12, + "fs/fira-sans/9" + ], + [ + "Fira Sans", + "Two", + "FiraSans-Two", + 15, + 12, + "fs/fira-sans/0" + ], + [ + "Fira Sans", + "Two Italic", + "FiraSans-TwoItalic", + 15, + 12, + "fs/fira-sans/1" + ], + [ + "Fira Sans", + "Ultra", + "FiraSans-Ultra", + 15, + 12, + "fs/fira-sans/30" + ], + [ + "Fira Sans", + "Ultra Italic", + "FiraSans-UltraItalic", + 15, + 12, + "fs/fira-sans/31" + ], + [ + "Fira Sans", + "UltraLight", + "FiraSans-UltraLight", + 15, + 12, + "fs/fira-sans/10" + ], + [ + "Fira Sans", + "UltraLight Italic", + "FiraSans-UltraLightItalic", + 15, + 12, + "fs/fira-sans/11" + ], + [ + "Fira Sans Compressed", + "Bold", + "FiraSansCompressed-Bold", + 15, + 12, + "fs/fira-sans-compressed/24" + ], + [ + "Fira Sans Compressed", + "Bold Italic", + "FiraSansCompressed-BoldItalic", + 15, + 12, + "fs/fira-sans-compressed/25" + ], + [ + "Fira Sans Compressed", + "Book", + "FiraSansCompressed-Book", + 15, + 12, + "fs/fira-sans-compressed/16" + ], + [ + "Fira Sans Compressed", + "Book Italic", + "FiraSansCompressed-BookItalic", + 15, + 12, + "fs/fira-sans-compressed/17" + ], + [ + "Fira Sans Compressed", + "Eight", + "FiraSansCompressed-Eight", + 15, + 12, + "fs/fira-sans-compressed/4" + ], + [ + "Fira Sans Compressed", + "Eight Italic", + "FiraSansCompressed-EightItalic", + 15, + 12, + "fs/fira-sans-compressed/5" + ], + [ + "Fira Sans Compressed", + "ExtraBold", + "FiraSansCompressed-ExtraBold", + 15, + 12, + "fs/fira-sans-compressed/26" + ], + [ + "Fira Sans Compressed", + "ExtraBold Italic", + "FiraSansCompressed-ExtraBoldItalic", + 15, + 12, + "fs/fira-sans-compressed/27" + ], + [ + "Fira Sans Compressed", + "ExtraLight", + "FiraSansCompressed-ExtraLight", + 15, + 12, + "fs/fira-sans-compressed/12" + ], + [ + "Fira Sans Compressed", + "ExtraLight Italic", + "FiraSansCompressed-ExtraLightItalic", + 15, + 12, + "fs/fira-sans-compressed/13" + ], + [ + "Fira Sans Compressed", + "Four", + "FiraSansCompressed-Four", + 15, + 12, + "fs/fira-sans-compressed/2" + ], + [ + "Fira Sans Compressed", + "Four Italic", + "FiraSansCompressed-FourItalic", + 15, + 12, + "fs/fira-sans-compressed/3" + ], + [ + "Fira Sans Compressed", + "Hair", + "FiraSansCompressed-Hair", + 15, + 12, + "fs/fira-sans-compressed/6" + ], + [ + "Fira Sans Compressed", + "Hair Italic", + "FiraSansCompressed-HairItalic", + 15, + 12, + "fs/fira-sans-compressed/7" + ], + [ + "Fira Sans Compressed", + "Heavy", + "FiraSansCompressed-Heavy", + 15, + 12, + "fs/fira-sans-compressed/28" + ], + [ + "Fira Sans Compressed", + "Heavy Italic", + "FiraSansCompressed-HeavyItalic", + 15, + 12, + "fs/fira-sans-compressed/29" + ], + [ + "Fira Sans Compressed", + "Italic", + "FiraSansCompressed-Italic", + 15, + 12, + "fs/fira-sans-compressed/19" + ], + [ + "Fira Sans Compressed", + "Light", + "FiraSansCompressed-Light", + 15, + 12, + "fs/fira-sans-compressed/14" + ], + [ + "Fira Sans Compressed", + "Light Italic", + "FiraSansCompressed-LightItalic", + 15, + 12, + "fs/fira-sans-compressed/15" + ], + [ + "Fira Sans Compressed", + "Medium", + "FiraSansCompressed-Medium", + 15, + 12, + "fs/fira-sans-compressed/20" + ], + [ + "Fira Sans Compressed", + "Medium Italic", + "FiraSansCompressed-MediumItalic", + 15, + 12, + "fs/fira-sans-compressed/21" + ], + [ + "Fira Sans Compressed", + "Regular", + "FiraSansCompressed-Regular", + 15, + 12, + "fs/fira-sans-compressed/18" + ], + [ + "Fira Sans Compressed", + "SemiBold", + "FiraSansCompressed-SemiBold", + 15, + 12, + "fs/fira-sans-compressed/22" + ], + [ + "Fira Sans Compressed", + "SemiBold Italic", + "FiraSansCompressed-SemiBoldItalic", + 15, + 12, + "fs/fira-sans-compressed/23" + ], + [ + "Fira Sans Compressed", + "Thin", + "FiraSansCompressed-Thin", + 15, + 12, + "fs/fira-sans-compressed/8" + ], + [ + "Fira Sans Compressed", + "Thin Italic", + "FiraSansCompressed-ThinItalic", + 15, + 12, + "fs/fira-sans-compressed/9" + ], + [ + "Fira Sans Compressed", + "Two", + "FiraSansCompressed-Two", + 15, + 12, + "fs/fira-sans-compressed/0" + ], + [ + "Fira Sans Compressed", + "Two Italic", + "FiraSansCompressed-TwoItalic", + 15, + 12, + "fs/fira-sans-compressed/1" + ], + [ + "Fira Sans Compressed", + "UltraLight", + "FiraSansCompressed-UltraLight", + 15, + 12, + "fs/fira-sans-compressed/10" + ], + [ + "Fira Sans Compressed", + "UltraLight Italic", + "FiraSansCompressed-UltraLightItalic", + 15, + 12, + "fs/fira-sans-compressed/11" + ], + [ + "Fira Sans Condensed", + "Black", + "FiraSansCondensed-Black", + 15, + 12, + "gf/Fira Sans Condensed/7" + ], + [ + "Fira Sans Condensed", + "Black Italic", + "FiraSansCondensed-BlackItalic", + 15, + 12, + "gf/Fira Sans Condensed/17" + ], + [ + "Fira Sans Condensed", + "Bold", + "FiraSansCondensed-Bold", + 3, + 12, + "fs/fira-sans-condensed/24" + ], + [ + "Fira Sans Condensed", + "Bold Italic", + "FiraSansCondensed-BoldItalic", + 3, + 12, + "fs/fira-sans-condensed/25" + ], + [ + "Fira Sans Condensed", + "Book", + "FiraSansCondensed-Book", + 3, + 12, + "fs/fira-sans-condensed/16" + ], + [ + "Fira Sans Condensed", + "Book Italic", + "FiraSansCondensed-BookItalic", + 3, + 12, + "fs/fira-sans-condensed/17" + ], + [ + "Fira Sans Condensed", + "Eight", + "FiraSansCondensed-Eight", + 3, + 12, + "fs/fira-sans-condensed/4" + ], + [ + "Fira Sans Condensed", + "Eight Italic", + "FiraSansCondensed-EightItalic", + 3, + 12, + "fs/fira-sans-condensed/5" + ], + [ + "Fira Sans Condensed", + "ExtraBold", + "FiraSansCondensed-ExtraBold", + 3, + 12, + "fs/fira-sans-condensed/26" + ], + [ + "Fira Sans Condensed", + "ExtraBold Italic", + "FiraSansCondensed-ExtraBoldItalic", + 15, + 12, + "gf/Fira Sans Condensed/16" + ], + [ + "Fira Sans Condensed", + "ExtraLight", + "FiraSansCondensed-ExtraLight", + 3, + 12, + "fs/fira-sans-condensed/12" + ], + [ + "Fira Sans Condensed", + "ExtraLight Italic", + "FiraSansCondensed-ExtraLightItalic", + 3, + 12, + "fs/fira-sans-condensed/13" + ], + [ + "Fira Sans Condensed", + "Extrabold Italic", + "FiraSansCondensed-ExtraboldItalic", + 3, + 12, + "fs/fira-sans-condensed/27" + ], + [ + "Fira Sans Condensed", + "Four", + "FiraSansCondensed-Four", + 3, + 12, + "fs/fira-sans-condensed/2" + ], + [ + "Fira Sans Condensed", + "Four Italic", + "FiraSansCondensed-FourItalic", + 3, + 12, + "fs/fira-sans-condensed/3" + ], + [ + "Fira Sans Condensed", + "Hair", + "FiraSansCondensed-Hair", + 3, + 12, + "fs/fira-sans-condensed/6" + ], + [ + "Fira Sans Condensed", + "Hair Italic", + "FiraSansCondensed-HairItalic", + 3, + 12, + "fs/fira-sans-condensed/7" + ], + [ + "Fira Sans Condensed", + "Heavy", + "FiraSansCondensed-Heavy", + 3, + 12, + "fs/fira-sans-condensed/28" + ], + [ + "Fira Sans Condensed", + "Heavy Italic", + "FiraSansCondensed-HeavyItalic", + 3, + 12, + "fs/fira-sans-condensed/29" + ], + [ + "Fira Sans Condensed", + "Italic", + "FiraSansCondensed-Italic", + 3, + 12, + "fs/fira-sans-condensed/19" + ], + [ + "Fira Sans Condensed", + "Light", + "FiraSansCondensed-Light", + 3, + 12, + "fs/fira-sans-condensed/14" + ], + [ + "Fira Sans Condensed", + "Light Italic", + "FiraSansCondensed-LightItalic", + 3, + 12, + "fs/fira-sans-condensed/15" + ], + [ + "Fira Sans Condensed", + "Medium", + "FiraSansCondensed-Medium", + 3, + 12, + "fs/fira-sans-condensed/20" + ], + [ + "Fira Sans Condensed", + "Medium Italic", + "FiraSansCondensed-MediumItalic", + 3, + 12, + "fs/fira-sans-condensed/21" + ], + [ + "Fira Sans Condensed", + "Regular", + "FiraSansCondensed-Regular", + 3, + 12, + "fs/fira-sans-condensed/18" + ], + [ + "Fira Sans Condensed", + "SemiBold", + "FiraSansCondensed-SemiBold", + 3, + 12, + "fs/fira-sans-condensed/22" + ], + [ + "Fira Sans Condensed", + "SemiBold Italic", + "FiraSansCondensed-SemiBoldItalic", + 15, + 12, + "gf/Fira Sans Condensed/14" + ], + [ + "Fira Sans Condensed", + "Semibold Italic", + "FiraSansCondensed-SemiboldItalic", + 3, + 12, + "fs/fira-sans-condensed/23" + ], + [ + "Fira Sans Condensed", + "Thin", + "FiraSansCondensed-Thin", + 3, + 12, + "fs/fira-sans-condensed/8" + ], + [ + "Fira Sans Condensed", + "Thin Italic", + "FiraSansCondensed-ThinItalic", + 3, + 12, + "fs/fira-sans-condensed/9" + ], + [ + "Fira Sans Condensed", + "Two", + "FiraSansCondensed-Two", + 3, + 12, + "fs/fira-sans-condensed/0" + ], + [ + "Fira Sans Condensed", + "Two Italic", + "FiraSansCondensed-TwoItalic", + 3, + 12, + "fs/fira-sans-condensed/1" + ], + [ + "Fira Sans Condensed", + "Ultra", + "FiraSansCondensed-Ultra", + 3, + 12, + "fs/fira-sans-condensed/30" + ], + [ + "Fira Sans Condensed", + "Ultra Italic", + "FiraSansCondensed-UltraItalic", + 3, + 12, + "fs/fira-sans-condensed/31" + ], + [ + "Fira Sans Condensed", + "UltraLight", + "FiraSansCondensed-UltraLight", + 3, + 12, + "fs/fira-sans-condensed/10" + ], + [ + "Fira Sans Condensed", + "UltraLight Italic", + "FiraSansCondensed-UltraLightItalic", + 3, + 12, + "fs/fira-sans-condensed/11" + ], + [ + "Fira Sans Extra Condensed", + "Black", + "FiraSansExtraCondensed-Black", + 15, + 12, + "gf/Fira Sans Extra Condensed/7" + ], + [ + "Fira Sans Extra Condensed", + "Black Italic", + "FiraSansExtraCondensed-BlackItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/17" + ], + [ + "Fira Sans Extra Condensed", + "Bold", + "FiraSansExtraCondensed-Bold", + 15, + 12, + "gf/Fira Sans Extra Condensed/5" + ], + [ + "Fira Sans Extra Condensed", + "Bold Italic", + "FiraSansExtraCondensed-BoldItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/15" + ], + [ + "Fira Sans Extra Condensed", + "ExtraBold", + "FiraSansExtraCondensed-ExtraBold", + 15, + 12, + "gf/Fira Sans Extra Condensed/6" + ], + [ + "Fira Sans Extra Condensed", + "ExtraBold Italic", + "FiraSansExtraCondensed-ExtraBoldItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/16" + ], + [ + "Fira Sans Extra Condensed", + "ExtraLight", + "FiraSansExtraCondensed-ExtraLight", + 15, + 12, + "gf/Fira Sans Extra Condensed/1" + ], + [ + "Fira Sans Extra Condensed", + "ExtraLight Italic", + "FiraSansExtraCondensed-ExtraLightItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/9" + ], + [ + "Fira Sans Extra Condensed", + "Italic", + "FiraSansExtraCondensed-Italic", + 15, + 12, + "gf/Fira Sans Extra Condensed/12" + ], + [ + "Fira Sans Extra Condensed", + "Light", + "FiraSansExtraCondensed-Light", + 15, + 12, + "gf/Fira Sans Extra Condensed/2" + ], + [ + "Fira Sans Extra Condensed", + "Light Italic", + "FiraSansExtraCondensed-LightItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/10" + ], + [ + "Fira Sans Extra Condensed", + "Medium", + "FiraSansExtraCondensed-Medium", + 15, + 12, + "gf/Fira Sans Extra Condensed/3" + ], + [ + "Fira Sans Extra Condensed", + "Medium Italic", + "FiraSansExtraCondensed-MediumItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/13" + ], + [ + "Fira Sans Extra Condensed", + "Regular", + "FiraSansExtraCondensed-Regular", + 15, + 12, + "gf/Fira Sans Extra Condensed/11" + ], + [ + "Fira Sans Extra Condensed", + "SemiBold", + "FiraSansExtraCondensed-SemiBold", + 15, + 12, + "gf/Fira Sans Extra Condensed/4" + ], + [ + "Fira Sans Extra Condensed", + "SemiBold Italic", + "FiraSansExtraCondensed-SemiBoldItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/14" + ], + [ + "Fira Sans Extra Condensed", + "Thin", + "FiraSansExtraCondensed-Thin", + 15, + 12, + "gf/Fira Sans Extra Condensed/0" + ], + [ + "Fira Sans Extra Condensed", + "Thin Italic", + "FiraSansExtraCondensed-ThinItalic", + 15, + 12, + "gf/Fira Sans Extra Condensed/8" + ], + [ + "Firecat", + "Medium", + "FirecatMedium", + 0, + 8, + "fs/Firecat/0" + ], + [ + "FjallaOne", + "Regular", + "FjallaOne", + 1, + 4, + "fs/fjalla/0" + ], + [ + "Fjalla One", + "Regular", + "FjallaOne-Regular", + 1, + 12, + "gf/Fjalla One/0" + ], + [ + "Fjord", + "One", + "Fjord-One", + 1, + 14, + "fs/fjord/0" + ], + [ + "Flamenco", + "Light", + "Flamenco-Light", + 1, + 4, + "gf/Flamenco/0" + ], + [ + "Flamenco", + "Regular", + "Flamenco-Regular", + 1, + 4, + "gf/Flamenco/1" + ], + [ + "Flavors", + "Regular", + "Flavors", + 1, + 8, + "fs/flavors/0" + ], + [ + "Floralia", + "Regular", + "Floralia", + 0, + 3, + "fs/Floralia/0" + ], + [ + "Florante at Laura", + "Regular", + "FloranteatLaura", + 0, + 1, + "fs/Florante-at-Laura/0" + ], + [ + "Florante at Laura", + "Italic", + "FloranteatLauraItalic", + 0, + 1, + "fs/Florante-at-Laura/1" + ], + [ + "Flux Architect", + "Regular", + "Flux-Architect", + 0, + 6, + "fs/Flux/0" + ], + [ + "Flux Architect", + "Bold", + "Flux-Architect-Bold", + 0, + 6, + "fs/Flux/2" + ], + [ + "Flux Architect", + "Bold Italic", + "Flux-Architect-BoldItalic", + 0, + 6, + "fs/Flux/3" + ], + [ + "Flux Architect", + "Italic", + "Flux-Architect-Italic", + 0, + 6, + "fs/Flux/1" + ], + [ + "Foglihten", + "Regular", + "Foglihten", + 3, + 4, + "fs/foglihten/0" + ], + [ + "FoglihtenBlackPcs", + "BlackPcs", + "FoglihtenBlackPcs", + 11, + 4, + "fs/foglihten/1" + ], + [ + "FoglihtenNo01", + "Regular", + "FoglihtenNo01", + 3, + 4, + "fs/foglihten/2" + ], + [ + "FoglihtenNo03", + "Regular", + "FoglihtenNo03", + 3, + 4, + "fs/foglihten/3" + ], + [ + "FoglihtenNo07", + "Regular", + "FoglihtenNo07", + 3, + 4, + "fs/foglihtenno07/0" + ], + [ + "Folks", + "Bold", + "Folks-Bold", + 1, + 12, + "fs/Folks-Light/2" + ], + [ + "Folks-Heavy", + "Regular", + "Folks-Heavy", + 1, + 12, + "fs/Folks-Light/3" + ], + [ + "Folks-Light", + "Regular", + "Folks-Light", + 1, + 12, + "fs/Folks-Light/0" + ], + [ + "Folks", + "Regular", + "Folks-Normal", + 1, + 12, + "fs/Folks-Light/1" + ], + [ + "Fondamento", + "Italic", + "Fondamento-Italic", + 3, + 6, + "gf/Fondamento/1" + ], + [ + "Fondamento", + "Regular", + "Fondamento-Regular", + 3, + 6, + "gf/Fondamento/0" + ], + [ + "Font Awesome 5 Brands", + "Regular", + "FontAwesome5BrandsRegular", + 0, + 3, + "fs/font-awesome/0" + ], + [ + "Font Awesome 5 Free", + "Regular", + "FontAwesome5FreeRegular", + 0, + 3, + "fs/font-awesome/1" + ], + [ + "Font Awesome 5 Free", + "Solid", + "FontAwesome5FreeSolid", + 0, + 3, + "fs/font-awesome/2" + ], + [ + "Fontdiner Swanky", + "Regular", + "FontdinerSwanky-Regular", + 1, + 4, + "gf/Fontdiner Swanky/0" + ], + [ + "FontleroyBrown", + "Regular", + "FontleroyBrown", + 1, + 11, + "fs/FontleroyBrown/0" + ], + [ + "FortySecondStreetHB", + "Regular", + "FortySecondStreetHB", + 1, + 11, + "fs/FortySecondStreetHB/0" + ], + [ + "Forum", + "Regular", + "Forum", + 11, + 14, + "fs/forum/0" + ], + [ + "Francois One", + "Regular", + "FrancoisOne", + 3, + 4, + "fs/francois-one/0" + ], + [ + "Francois One", + "Regular", + "FrancoisOne-Regular", + 3, + 12, + "gf/Francois One/0" + ], + [ + "Frank Ruhl Libre", + "Black", + "FrankRuhlLibre-Black", + 17, + 14, + "gf/Frank Ruhl Libre/3" + ], + [ + "Frank Ruhl Libre", + "Bold", + "FrankRuhlLibre-Bold", + 17, + 14, + "gf/Frank Ruhl Libre/2" + ], + [ + "Frank Ruhl Libre", + "Light", + "FrankRuhlLibre-Light", + 17, + 14, + "gf/Frank Ruhl Libre/0" + ], + [ + "Frank Ruhl Libre", + "Medium", + "FrankRuhlLibre-Medium", + 17, + 14, + "gf/Frank Ruhl Libre/1" + ], + [ + "Frank Ruhl Libre", + "Regular", + "FrankRuhlLibre-Regular", + 17, + 14, + "gf/Frank Ruhl Libre/4" + ], + [ + "Freckle Face", + "Regular", + "FreckleFace-Regular", + 3, + 4, + "gf/Freckle Face/0" + ], + [ + "Fredericka the Great", + "Regular", + "FrederickatheGreat-Regular", + 1, + 4, + "gf/Fredericka the Great/0" + ], + [ + "Fredoka One", + "Regular", + "FredokaOne-Regular", + 1, + 12, + "fs/fredoka/0" + ], + [ + "Fredoka dingbats", + "Regular", + "Fredokadingbats", + 0, + 12, + "fs/fredoka/1" + ], + [ + "FreeMono", + "Regular", + "FreeMono", + 63, + 12, + "fs/gnu-free-font/0" + ], + [ + "FreeMono", + "Bold", + "FreeMonoBold", + 31, + 12, + "fs/gnu-free-font/2" + ], + [ + "FreeMono", + "Bold Oblique", + "FreeMonoBoldOblique", + 31, + 12, + "fs/gnu-free-font/3" + ], + [ + "FreeMono", + "Oblique", + "FreeMonoOblique", + 31, + 12, + "fs/gnu-free-font/1" + ], + [ + "FreeSans", + "Regular", + "FreeSans", + 543, + 12, + "fs/gnu-free-font/4" + ], + [ + "FreeSans", + "Bold", + "FreeSansBold", + 543, + 12, + "fs/gnu-free-font/6" + ], + [ + "FreeSans", + "Bold Oblique", + "FreeSansBoldOblique", + 31, + 12, + "fs/gnu-free-font/7" + ], + [ + "FreeSans", + "Oblique", + "FreeSansOblique", + 31, + 12, + "fs/gnu-free-font/5" + ], + [ + "FreeSerif", + "Regular", + "FreeSerif", + 575, + 12, + "fs/gnu-free-font/8" + ], + [ + "FreeSerif", + "Bold", + "FreeSerifBold", + 575, + 12, + "fs/gnu-free-font/10" + ], + [ + "FreeSerif", + "Bold Italic", + "FreeSerifBoldItalic", + 31, + 12, + "fs/gnu-free-font/11" + ], + [ + "FreeSerif", + "Italic", + "FreeSerifItalic", + 31, + 12, + "fs/gnu-free-font/9" + ], + [ + "Freebooter Script", + "Regular", + "FreebooterScript", + 1, + 13, + "fs/Freebooter-Script/0" + ], + [ + "Freebooter Script - Alts", + "Regular", + "FreebooterScript-Alts", + 0, + 13, + "fs/Freebooter-Script/1" + ], + [ + "Freehand", + "Regular", + "Freehand", + 0, + 4, + "gf/Freehand/0" + ], + [ + "Frente H1", + "Regular", + "FrenteH1-Regular", + 0, + 6, + "fs/frente-h1/0" + ], + [ + "Fresca", + "Regular", + "Fresca-Regular", + 1, + 12, + "gf/Fresca/0" + ], + [ + "Frijole", + "Regular", + "Frijole", + 1, + 4, + "gf/Frijole/0" + ], + [ + "Fruktur", + "Regular", + "Fruktur-Regular", + 3, + 4, + "gf/Fruktur/0" + ], + [ + "Fugaz One", + "Regular", + "FugazOne-Regular", + 1, + 4, + "gf/Fugaz One/0" + ], + [ + "Furore", + "Regular", + "Furore", + 8, + 4, + "fs/Furore/0" + ], + [ + "GEIST RND", + "Regular", + "GEISTRND", + 0, + 4, + "fs/GEIST-RND/0" + ], + [ + "GFS Didot", + "Regular", + "GFSDidot-Regular", + 7, + 14, + "gf/GFS Didot/0" + ], + [ + "GFS Neohellenic", + "Bold", + "GFSNeohellenic-Bold", + 7, + 12, + "gf/GFS Neohellenic/0" + ], + [ + "GFS Neohellenic", + "Bold Italic", + "GFSNeohellenic-BoldItalic", + 7, + 12, + "gf/GFS Neohellenic/3" + ], + [ + "GFS Neohellenic", + "Italic", + "GFSNeohellenic-Italic", + 7, + 12, + "gf/GFS Neohellenic/2" + ], + [ + "GFS Neohellenic", + "Regular", + "GFSNeohellenic-Regular", + 7, + 12, + "gf/GFS Neohellenic/1" + ], + [ + "Gabriela", + "Regular", + "Gabriela-Regular", + 9, + 14, + "gf/Gabriela/0" + ], + [ + "Gaegu", + "Bold", + "Gaegu-Bold", + 0, + 6, + "fs/gaegu/2" + ], + [ + "Gaegu", + "Light", + "Gaegu-Light", + 0, + 6, + "fs/gaegu/0" + ], + [ + "Gaegu", + "Regular", + "Gaegu-Regular", + 0, + 6, + "fs/gaegu/1" + ], + [ + "Gafata", + "Regular", + "Gafata-Regular", + 1, + 12, + "fs/gafata/0" + ], + [ + "Galada", + "Regular", + "Galada-Regular", + 1, + 4, + "gf/Galada/0" + ], + [ + "Galatia SIL", + "Regular", + "GalatiaSIL", + 5, + 14, + "fs/Galatia-SIL/0" + ], + [ + "Galatia SIL", + "Bold", + "GalatiaSIL-Bold", + 5, + 14, + "fs/Galatia-SIL/1" + ], + [ + "Galdeano", + "Regular", + "Galdeano-Regular", + 1, + 12, + "gf/Galdeano/0" + ], + [ + "Galindo", + "Regular", + "Galindo-Regular", + 3, + 4, + "gf/Galindo/0" + ], + [ + "Gamja Flower", + "Regular", + "GamjaFlower-Regular", + 64, + 6, + "gf/Gamja Flower/0" + ], + [ + "Gandhi Sans", + "Bold", + "GandhiSans-Bold", + 1, + 12, + "fs/gandhi-sans/2" + ], + [ + "Gandhi Sans", + "Bold Italic", + "GandhiSans-BoldItalic", + 1, + 12, + "fs/gandhi-sans/3" + ], + [ + "Gandhi Sans", + "Italic", + "GandhiSans-Italic", + 1, + 12, + "fs/gandhi-sans/1" + ], + [ + "Gandhi Sans", + "Regular", + "GandhiSans-Regular", + 1, + 12, + "fs/gandhi-sans/0" + ], + [ + "Gandhi Serif", + "Bold", + "GandhiSerif-Bold", + 1, + 14, + "fs/gandhi-serif/2" + ], + [ + "Gandhi Serif", + "Bold Italic", + "GandhiSerif-BoldItalic", + 1, + 14, + "fs/gandhi-serif/3" + ], + [ + "Gandhi Serif", + "Italic", + "GandhiSerif-Italic", + 1, + 14, + "fs/gandhi-serif/1" + ], + [ + "Gandhi Serif", + "Regular", + "GandhiSerif-Regular", + 1, + 14, + "fs/gandhi-serif/0" + ], + [ + "Garogier", + "Regular", + "Garogier", + 4, + 14, + "fs/garogier/0" + ], + [ + "Garton", + "Medium", + "GartonMedium", + 0, + 14, + "fs/Garton/0" + ], + [ + "Gaspar", + "Regular", + "Gaspar", + 0, + 15, + "fs/gaspar/0" + ], + [ + "Gaspar", + "Bold", + "Gaspar-Bold", + 0, + 15, + "fs/gaspar/2" + ], + [ + "Gaspar", + "Bold Italic", + "Gaspar-BoldItalic", + 0, + 15, + "fs/gaspar/3" + ], + [ + "Gaspar", + "Italic", + "Gaspar-Italic", + 0, + 15, + "fs/gaspar/1" + ], + [ + "Gentium Basic", + "Regular", + "GentiumBasic", + 3, + 14, + "fs/Gentium-Basic/0" + ], + [ + "Gentium Basic", + "Bold", + "GentiumBasic-Bold", + 3, + 14, + "fs/Gentium-Basic/2" + ], + [ + "Gentium Basic", + "Bold Italic", + "GentiumBasic-BoldItalic", + 3, + 14, + "fs/Gentium-Basic/3" + ], + [ + "Gentium Basic", + "Italic", + "GentiumBasic-Italic", + 3, + 14, + "fs/Gentium-Basic/1" + ], + [ + "Gentium Book Basic", + "Regular", + "GentiumBookBasic", + 3, + 14, + "fs/Gentium-Basic/4" + ], + [ + "Gentium Book Basic", + "Bold", + "GentiumBookBasic-Bold", + 3, + 14, + "fs/Gentium-Basic/6" + ], + [ + "Gentium Book Basic", + "Bold Italic", + "GentiumBookBasic-BoldItalic", + 3, + 14, + "fs/Gentium-Basic/7" + ], + [ + "Gentium Book Basic", + "Italic", + "GentiumBookBasic-Italic", + 3, + 14, + "fs/Gentium-Basic/5" + ], + [ + "Genzsch Et Heyse", + "Regular", + "GenzschEtHeyse", + 0, + 0, + "fs/Genzsch-Et-Heyse/0" + ], + [ + "Genzsch Et Heyse Alternate", + "Regular", + "GenzschEtHeyseAlternate", + 0, + 0, + "fs/Genzsch-Et-Heyse/1" + ], + [ + "Geo", + "Medium", + "Geo", + 1, + 4, + "fs/Geo/0" + ], + [ + "Geo", + "Oblique", + "Geo-Oblique", + 1, + 12, + "gf/Geo/1" + ], + [ + "Geo", + "Regular", + "Geo-Regular", + 1, + 12, + "gf/Geo/0" + ], + [ + "Geo", + "Oblique", + "GeoOblique", + 1, + 4, + "fs/Geo/1" + ], + [ + "Geometry Soft Pro", + "Bold N", + "GeometrySoftPro-BoldN", + 3, + 4, + "fs/geometry-soft-pro/0" + ], + [ + "Geostar", + "Regular", + "Geostar-Regular", + 1, + 4, + "gf/Geostar/0" + ], + [ + "Geostar Fill", + "Regular", + "GeostarFill-Regular", + 1, + 4, + "gf/Geostar Fill/0" + ], + [ + "Germania One", + "Regular", + "GermaniaOne-Regular", + 1, + 0, + "fs/germania-one/0" + ], + [ + "Gesso", + "Regular", + "Gesso", + 0, + 4, + "fs/Gesso/0" + ], + [ + "Giant Head OT", + "Regular", + "GiantHeadOT", + 1, + 4, + "fs/Giant-Head-OT/0" + ], + [ + "Giant Head Two OT", + "Regular", + "GiantHeadTwoOT", + 1, + 4, + "fs/Giant-Head-OT/1" + ], + [ + "Gidole", + "Regular", + "Gidole-Regular", + 7, + 12, + "fs/gidole/0" + ], + [ + "Gidugu", + "Regular", + "Gidugu", + 3, + 12, + "gf/Gidugu/0" + ], + [ + "Gilda Display", + "Regular", + "GildaDisplay-Regular", + 1, + 14, + "gf/Gilda Display/0" + ], + [ + "Give You Glory", + "Regular", + "GiveYouGlory", + 3, + 6, + "gf/Give You Glory/0" + ], + [ + "Glacial Indifference", + "Bold", + "GlacialIndifference-Bold", + 1, + 12, + "fs/glacial-indifference/2" + ], + [ + "Glacial Indifference", + "Italic", + "GlacialIndifference-Italic", + 1, + 12, + "fs/glacial-indifference/1" + ], + [ + "Glacial Indifference", + "Regular", + "GlacialIndifference-Regular", + 1, + 12, + "fs/glacial-indifference/0" + ], + [ + "Gladifilthefte", + "Gladifilthefte", + "Gladifilthefte", + 0, + 4, + "fs/Gladifilthefte/0" + ], + [ + "Glass Antiqua", + "Regular", + "GlassAntiqua-Regular", + 3, + 4, + "gf/Glass Antiqua/0" + ], + [ + "Glegoo", + "Bold", + "Glegoo-Bold", + 515, + 15, + "fs/glegoo/1" + ], + [ + "Glegoo", + "Regular", + "Glegoo-Regular", + 515, + 15, + "fs/glegoo/0" + ], + [ + "Gloria Hallelujah", + "Regular", + "GloriaHallelujah", + 3, + 6, + "fs/gloria-hallelujah/0" + ], + [ + "Goblin", + "Regular", + "Goblin", + 1, + 4, + "fs/goblin/0" + ], + [ + "Goblin One", + "Regular", + "GoblinOne", + 1, + 4, + "gf/Goblin One/0" + ], + [ + "Gochi Hand", + "Regular", + "GochiHand-Regular", + 1, + 6, + "gf/Gochi Hand/0" + ], + [ + "Gondola SD", + "Regular", + "GondolaSD", + 1, + 1, + "fs/Gondola-SD/0" + ], + [ + "Gondola SD - Swash", + "Regular", + "GondolaSD-Swash", + 1, + 1, + "fs/Gondola-SD/1" + ], + [ + "Gong!", + "Normal", + "GongNormal", + 0, + 6, + "fs/Gong/0" + ], + [ + "Gorditas", + "Bold", + "Gorditas-Bold", + 1, + 4, + "fs/gorditas/1" + ], + [ + "Gorditas", + "Regular", + "Gorditas-Regular", + 1, + 4, + "fs/gorditas/0" + ], + [ + "Gothic A1", + "Black", + "GothicA1-Black", + 79, + 12, + "gf/Gothic A1/7" + ], + [ + "Gothic A1", + "Bold", + "GothicA1-Bold", + 79, + 12, + "gf/Gothic A1/5" + ], + [ + "Gothic A1", + "ExtraBold", + "GothicA1-ExtraBold", + 79, + 12, + "gf/Gothic A1/6" + ], + [ + "Gothic A1", + "ExtraLight", + "GothicA1-ExtraLight", + 79, + 12, + "gf/Gothic A1/1" + ], + [ + "Gothic A1", + "Light", + "GothicA1-Light", + 79, + 12, + "gf/Gothic A1/2" + ], + [ + "Gothic A1", + "Medium", + "GothicA1-Medium", + 79, + 12, + "gf/Gothic A1/3" + ], + [ + "Gothic A1", + "Regular", + "GothicA1-Regular", + 79, + 12, + "gf/Gothic A1/8" + ], + [ + "Gothic A1", + "SemiBold", + "GothicA1-SemiBold", + 79, + 12, + "gf/Gothic A1/4" + ], + [ + "Gothic A1", + "Thin", + "GothicA1-Thin", + 79, + 12, + "gf/Gothic A1/0" + ], + [ + "Gothic Ultra OT", + "Regular", + "GothicUltraOT", + 1, + 1, + "fs/Gothic-Ultra-OT/0" + ], + [ + "Goudy Bookletter 1911", + "Regular", + "GoudyBookletter1911", + 3, + 14, + "fs/Goudy-Bookletter-1911/0" + ], + [ + "Sorts Mill Goudy", + "Regular", + "GoudyStM", + 3, + 14, + "fs/Sorts-Mill-Goudy/0" + ], + [ + "Sorts Mill Goudy", + "Italic", + "GoudyStM-Italic", + 3, + 14, + "fs/Sorts-Mill-Goudy/1" + ], + [ + "Gputeks", + "Bold", + "Gputeks-Bold", + 11, + 4, + "fs/gputeks/1" + ], + [ + "Gputeks", + "Regular", + "Gputeks-Regular", + 11, + 4, + "fs/gputeks/0" + ], + [ + "Graduate", + "Regular", + "Graduate-Regular", + 1, + 4, + "fs/graduate/0" + ], + [ + "Grand Hotel", + "Regular", + "GrandHotel-Regular", + 3, + 13, + "fs/grand-hotel/0" + ], + [ + "Gravitas One", + "Regular", + "GravitasOne", + 1, + 4, + "fs/gravitas-one/0" + ], + [ + "GreatLakesNF", + "Regular", + "GreatLakesNF", + 1, + 4, + "fs/GreatLakesNF/0" + ], + [ + "Great Vibes", + "Regular", + "GreatVibes-Regular", + 3, + 13, + "fs/great-vibes/0" + ], + [ + "GreyscaleBasic", + "Regular", + "GreyscaleBasic", + 1, + 12, + "fs/Greyscale-Basic/0" + ], + [ + "GreyscaleBasic", + "Bold", + "GreyscaleBasic-Bold", + 1, + 12, + "fs/Greyscale-Basic/2" + ], + [ + "GreyscaleBasic", + "Bold Italic", + "GreyscaleBasic-BoldItalic", + 1, + 12, + "fs/Greyscale-Basic/3" + ], + [ + "GreyscaleBasic", + "Italic", + "GreyscaleBasic-Italic", + 1, + 12, + "fs/Greyscale-Basic/1" + ], + [ + "Griffin", + "Regular", + "Griffin", + 1, + 4, + "fs/Griffin/0" + ], + [ + "GriffosFont", + "Regular", + "GriffosFont", + 1, + 14, + "fs/GriffosFont/0" + ], + [ + "GriffosSCapsFont", + "Regular", + "GriffosSCapsFont", + 1, + 14, + "fs/GriffosFont/1" + ], + [ + "Griffy", + "Regular", + "Griffy-Regular", + 1, + 4, + "gf/Griffy/0" + ], + [ + "Gruppo", + "Regular", + "Gruppo", + 1, + 4, + "gf/Gruppo/0" + ], + [ + "GrutchShaded", + "Regular", + "GrutchShaded", + 1, + 4, + "fs/GrutchShaded/0" + ], + [ + "Gudea", + "Regular", + "Gudea", + 1, + 12, + "fs/gudea/0" + ], + [ + "Gudea", + "Bold", + "Gudea-Bold", + 1, + 12, + "fs/gudea/2" + ], + [ + "Gudea", + "Italic", + "Gudea-Italic", + 1, + 12, + "fs/gudea/1" + ], + [ + "Gugi", + "Regular", + "Gugi-Regular", + 0, + 4, + "gf/Gugi/0" + ], + [ + "Gurajada", + "Regular", + "Gurajada", + 3, + 14, + "gf/Gurajada/0" + ], + [ + "HK Grotesk", + "Bold", + "HKGrotesk-Bold", + 3, + 12, + "fs/hk-grotesk/8" + ], + [ + "HK Grotesk", + "Bold Italic", + "HKGrotesk-BoldItalic", + 3, + 12, + "fs/hk-grotesk/9" + ], + [ + "HK Grotesk", + "Bold Legacy", + "HKGrotesk-BoldLegacy", + 3, + 12, + "fs/hk-grotesk/18" + ], + [ + "HK Grotesk", + "Bold Legacy Italic", + "HKGrotesk-BoldLegacyItalic", + 3, + 12, + "fs/hk-grotesk/19" + ], + [ + "HK Grotesk", + "Italic", + "HKGrotesk-Italic", + 3, + 12, + "fs/hk-grotesk/3" + ], + [ + "HK Grotesk", + "Legacy Italic", + "HKGrotesk-LegacyItalic", + 3, + 12, + "fs/hk-grotesk/13" + ], + [ + "HK Grotesk", + "Light", + "HKGrotesk-Light", + 3, + 12, + "fs/hk-grotesk/0" + ], + [ + "HK Grotesk", + "Light Italic", + "HKGrotesk-LightItalic", + 3, + 12, + "fs/hk-grotesk/1" + ], + [ + "HK Grotesk", + "Light Legacy", + "HKGrotesk-LightLegacy", + 3, + 12, + "fs/hk-grotesk/10" + ], + [ + "HK Grotesk", + "Light Legacy Italic", + "HKGrotesk-LightLegacyItalic", + 3, + 12, + "fs/hk-grotesk/11" + ], + [ + "HK Grotesk", + "Medium", + "HKGrotesk-Medium", + 3, + 12, + "fs/hk-grotesk/4" + ], + [ + "HK Grotesk", + "Medium Italic", + "HKGrotesk-MediumItalic", + 3, + 12, + "fs/hk-grotesk/5" + ], + [ + "HK Grotesk", + "Medium Legacy", + "HKGrotesk-MediumLegacy", + 3, + 12, + "fs/hk-grotesk/14" + ], + [ + "HK Grotesk", + "Medium Legacy Italic", + "HKGrotesk-MediumLegacyItalic", + 3, + 12, + "fs/hk-grotesk/15" + ], + [ + "HK Grotesk", + "Regular", + "HKGrotesk-Regular", + 3, + 12, + "fs/hk-grotesk/2" + ], + [ + "HK Grotesk", + "Regular Legacy", + "HKGrotesk-RegularLegacy", + 3, + 12, + "fs/hk-grotesk/12" + ], + [ + "HK Grotesk", + "SemiBold", + "HKGrotesk-SemiBold", + 3, + 12, + "fs/hk-grotesk/6" + ], + [ + "HK Grotesk", + "SemiBold Italic", + "HKGrotesk-SemiBoldItalic", + 3, + 12, + "fs/hk-grotesk/7" + ], + [ + "HK Grotesk", + "SemiBold Legacy", + "HKGrotesk-SemiBoldLegacy", + 3, + 12, + "fs/hk-grotesk/16" + ], + [ + "HK Grotesk", + "SemiBold Legacy Italic", + "HKGrotesk-SemiBoldLegacyItalic", + 3, + 12, + "fs/hk-grotesk/17" + ], + [ + "HVD Bodedo", + "Medium", + "HVDBodedo-Medium", + 0, + 4, + "fs/hvd-bodedo/0" + ], + [ + "HVD Comic Serif Pro", + "Regular", + "HVDComicSerifPro", + 3, + 4, + "fs/HVD-Comic-Serif-Pro/0" + ], + [ + "HVD Edding 780", + "Normal", + "HVDEdding780-Normal", + 1, + 6, + "fs/hvd-edding-780/0" + ], + [ + "HVD Peace", + "Regular", + "HVDPeace", + 3, + 16, + "fs/hvd-peace/0" + ], + [ + "HVD Poster", + "Regular", + "HVDPoster", + 0, + 4, + "fs/hvd-poster/0" + ], + [ + "HVD Poster Clean", + "Regular", + "HVDPosterClean", + 1, + 4, + "fs/hvd-poster/1" + ], + [ + "HVD Rowdy", + "Regular", + "HVDRowdy", + 1, + 5, + "fs/hvd-rowdy/0" + ], + [ + "HVD Steinzeit", + "Regular", + "HVDSteinzeit", + 1, + 8, + "fs/hvd-steinzeit/0" + ], + [ + "HVD Steinzeit", + "Fill In", + "HVDSteinzeit-FillIn", + 1, + 8, + "fs/hvd-steinzeit/1" + ], + [ + "Habibi", + "Regular", + "Habibi-Regular", + 3, + 14, + "fs/habibi/0" + ], + [ + "Hack", + "Bold", + "Hack-Bold", + 15, + 7, + "fs/hack/2" + ], + [ + "Hack", + "Bold Italic", + "Hack-BoldItalic", + 15, + 7, + "fs/hack/3" + ], + [ + "Hack", + "Italic", + "Hack-Italic", + 15, + 7, + "fs/hack/1" + ], + [ + "Hack", + "Regular", + "Hack-Regular", + 15, + 7, + "fs/hack/0" + ], + [ + "Halant", + "Bold", + "Halant-Bold", + 513, + 14, + "gf/Halant/3" + ], + [ + "Halant", + "Light", + "Halant-Light", + 513, + 14, + "gf/Halant/0" + ], + [ + "Halant", + "Medium", + "Halant-Medium", + 513, + 14, + "gf/Halant/1" + ], + [ + "Halant", + "Regular", + "Halant-Regular", + 513, + 14, + "gf/Halant/4" + ], + [ + "Halant", + "SemiBold", + "Halant-SemiBold", + 513, + 14, + "gf/Halant/2" + ], + [ + "HamburgerHeaven", + "Regular", + "HamburgerHeaven", + 1, + 11, + "fs/HamburgerHeaven/0" + ], + [ + "Hammersmith One", + "Regular", + "HammersmithOne", + 1, + 4, + "fs/hammersmith-one/0" + ], + [ + "HammersmithOne", + "Regular", + "HammersmithOne-Regular", + 3, + 12, + "gf/Hammersmith One/0" + ], + [ + "Hanalei", + "Regular", + "Hanalei-Regular", + 3, + 4, + "fs/hanalei/0" + ], + [ + "Hanalei Fill", + "Regular", + "HanaleiFill-Regular", + 3, + 4, + "fs/hanalei/1" + ], + [ + "Handlee", + "Regular", + "Handlee-Regular", + 1, + 13, + "fs/handlee/0" + ], + [ + "Hanuman", + "Bold", + "Hanuman-Bold", + 0, + 14, + "gf/Hanuman/0" + ], + [ + "Hanuman", + "Regular", + "Hanuman-Regular", + 0, + 14, + "gf/Hanuman/1" + ], + [ + "Happy Monkey", + "Regular", + "HappyMonkey-Regular", + 1, + 2, + "fs/happy-monkey/0" + ], + [ + "Happy Times at the IKOB", + "Italic", + "HappyTimesattheIKOB-Italic", + 1, + 14, + "fs/happy-times-at-the-ikob/1" + ], + [ + "Happy Times at the IKOB", + "Regular", + "HappyTimesattheIKOB-Regular", + 1, + 14, + "fs/happy-times-at-the-ikob/0" + ], + [ + "Harmattan", + "Regular", + "Harmattan-Regular", + 33, + 12, + "gf/Harmattan/0" + ], + [ + "Harting", + "Plain", + "Harting-Plain", + 0, + 17, + "fs/Harting/0" + ], + [ + "Hattori Hanzo", + "Light", + "HattoriHanzo-Light", + 8, + 12, + "fs/Hattori-Hanzo/0" + ], + [ + "Hattori Hanzo", + "Light Italic", + "HattoriHanzo-LightItalic", + 8, + 12, + "fs/Hattori-Hanzo/1" + ], + [ + "Headhunter", + "Regular", + "Headhunter-Regular", + 0, + 8, + "fs/Headhunter/0" + ], + [ + "HeadlandOne", + "Regular", + "HeadlandOne-Regular", + 3, + 14, + "gf/Headland One/0" + ], + [ + "Heavy Data", + "Regular", + "HeavyData", + 0, + 8, + "fs/Heavy-Data/0" + ], + [ + "Heebo", + "Black", + "Heebo-Black", + 17, + 12, + "fs/heebo/6" + ], + [ + "Heebo", + "Bold", + "Heebo-Bold", + 17, + 12, + "fs/heebo/4" + ], + [ + "Heebo", + "ExtraBold", + "Heebo-ExtraBold", + 17, + 12, + "fs/heebo/5" + ], + [ + "Heebo", + "Light", + "Heebo-Light", + 17, + 12, + "fs/heebo/1" + ], + [ + "Heebo", + "Medium", + "Heebo-Medium", + 17, + 12, + "fs/heebo/3" + ], + [ + "Heebo", + "Regular", + "Heebo-Regular", + 17, + 12, + "fs/heebo/2" + ], + [ + "Heebo", + "Thin", + "Heebo-Thin", + 17, + 12, + "fs/heebo/0" + ], + [ + "Helmet", + "Regular", + "Helmet-Regular", + 1, + 12, + "fs/helmet/0" + ], + [ + "Helsinki", + "Regular", + "Helsinki", + 0, + 2, + "fs/helsinki/0" + ], + [ + "Henny Penny", + "Regular", + "HennyPenny-Regular", + 1, + 4, + "fs/henny-penny/0" + ], + [ + "HenryMorganHand", + "Regular", + "HenryMorganHand", + 0, + 13, + "fs/HenryMorganHand/0" + ], + [ + "Herr Von Muellerhoff", + "Regular", + "HerrVonMuellerhoff-Regular", + 1, + 13, + "fs/herr-von-muellerhoff/0" + ], + [ + "Hetilica", + "Bold", + "Hetilica-Bold", + 0, + 6, + "fs/Hetilica/0" + ], + [ + "Heuristica", + "Bold", + "Heuristica-Bold", + 11, + 14, + "fs/heuristica/2" + ], + [ + "Heuristica", + "Bold Italic", + "Heuristica-BoldItalic", + 11, + 14, + "fs/heuristica/3" + ], + [ + "Heuristica", + "Italic", + "Heuristica-Italic", + 11, + 14, + "fs/heuristica/1" + ], + [ + "Heuristica", + "Regular", + "Heuristica-Regular", + 11, + 14, + "fs/heuristica/0" + ], + [ + "Heydings Icons", + "Regular", + "Heydings-Icons", + 0, + 3, + "fs/heydings-common-icons/0" + ], + [ + "Hi Melody", + "Regular", + "HiMelody-Regular", + 64, + 6, + "gf/Hi Melody/0" + ], + [ + "Hind", + "Bold", + "Hind-Bold", + 513, + 12, + "fs/hind/4" + ], + [ + "Hind", + "Light", + "Hind-Light", + 513, + 12, + "fs/hind/0" + ], + [ + "Hind", + "Medium", + "Hind-Medium", + 513, + 12, + "fs/hind/2" + ], + [ + "Hind", + "Regular", + "Hind-Regular", + 513, + 12, + "fs/hind/1" + ], + [ + "Hind", + "SemiBold", + "Hind-SemiBold", + 513, + 12, + "fs/hind/3" + ], + [ + "Hind Guntur", + "Bold", + "HindGuntur-Bold", + 1, + 12, + "gf/Hind Guntur/3" + ], + [ + "Hind Guntur", + "Light", + "HindGuntur-Light", + 1, + 12, + "gf/Hind Guntur/0" + ], + [ + "Hind Guntur", + "Medium", + "HindGuntur-Medium", + 1, + 12, + "gf/Hind Guntur/1" + ], + [ + "Hind Guntur", + "Regular", + "HindGuntur-Regular", + 1, + 12, + "gf/Hind Guntur/4" + ], + [ + "Hind Guntur", + "SemiBold", + "HindGuntur-SemiBold", + 1, + 12, + "gf/Hind Guntur/2" + ], + [ + "Hind Madurai", + "Bold", + "HindMadurai-Bold", + 1, + 12, + "gf/Hind Madurai/3" + ], + [ + "Hind Madurai", + "Light", + "HindMadurai-Light", + 1, + 12, + "gf/Hind Madurai/0" + ], + [ + "Hind Madurai", + "Medium", + "HindMadurai-Medium", + 1, + 12, + "gf/Hind Madurai/1" + ], + [ + "Hind Madurai", + "Regular", + "HindMadurai-Regular", + 1, + 12, + "gf/Hind Madurai/4" + ], + [ + "Hind Madurai", + "SemiBold", + "HindMadurai-SemiBold", + 1, + 12, + "gf/Hind Madurai/2" + ], + [ + "Hind Siliguri", + "Bold", + "HindSiliguri-Bold", + 1, + 12, + "gf/Hind Siliguri/3" + ], + [ + "Hind Siliguri", + "Light", + "HindSiliguri-Light", + 1, + 12, + "gf/Hind Siliguri/0" + ], + [ + "Hind Siliguri", + "Medium", + "HindSiliguri-Medium", + 1, + 12, + "gf/Hind Siliguri/1" + ], + [ + "Hind Siliguri", + "Regular", + "HindSiliguri-Regular", + 1, + 12, + "gf/Hind Siliguri/4" + ], + [ + "Hind Siliguri", + "SemiBold", + "HindSiliguri-SemiBold", + 1, + 12, + "gf/Hind Siliguri/2" + ], + [ + "Hind Vadodara", + "Bold", + "HindVadodara-Bold", + 1, + 12, + "gf/Hind Vadodara/3" + ], + [ + "Hind Vadodara", + "Light", + "HindVadodara-Light", + 1, + 12, + "gf/Hind Vadodara/0" + ], + [ + "Hind Vadodara", + "Medium", + "HindVadodara-Medium", + 1, + 12, + "gf/Hind Vadodara/1" + ], + [ + "Hind Vadodara", + "Regular", + "HindVadodara-Regular", + 1, + 12, + "gf/Hind Vadodara/4" + ], + [ + "Hind Vadodara", + "SemiBold", + "HindVadodara-SemiBold", + 1, + 12, + "gf/Hind Vadodara/2" + ], + [ + "Holtwood One SC", + "Regular", + "HoltwoodOneSC", + 1, + 14, + "gf/Holtwood One SC/0" + ], + [ + "Holy-Ravioli", + "Regular", + "Holy-Ravioli", + 0, + 11, + "fs/Holy-Ravioli/0" + ], + [ + "Homemade Apple", + "Regular", + "HomemadeApple", + 1, + 13, + "fs/homemade-apple/0" + ], + [ + "Homemade Apple", + "Regular", + "HomemadeApple-Regular", + 1, + 6, + "gf/Homemade Apple/0" + ], + [ + "Homenaje", + "Regular", + "Homenaje-Regular", + 1, + 12, + "gf/Homenaje/0" + ], + [ + "Hominis", + "Normal", + "Hominis", + 0, + 4, + "fs/Hominis/0" + ], + [ + "Hornswoggled", + "Normal", + "Hornswoggled", + 1, + 4, + "fs/Hornswoggled/0" + ], + [ + "IBM Plex Mono", + "Regular", + "IBMPlexMono", + 11, + 12, + "fs/ibm-plex/39" + ], + [ + "IBM Plex Mono", + "Bold", + "IBMPlexMono-Bold", + 11, + 12, + "fs/ibm-plex/47" + ], + [ + "IBM Plex Mono", + "Bold Italic", + "IBMPlexMono-BoldItalic", + 11, + 7, + "gf/IBM Plex Mono/13" + ], + [ + "IBM Plex Mono", + "ExtraLight", + "IBMPlexMono-ExtraLight", + 11, + 12, + "fs/ibm-plex/34" + ], + [ + "IBM Plex Mono", + "ExtraLight Italic", + "IBMPlexMono-ExtraLightItalic", + 11, + 12, + "fs/ibm-plex/36" + ], + [ + "IBM Plex Mono", + "Italic", + "IBMPlexMono-Italic", + 11, + 12, + "fs/ibm-plex/38" + ], + [ + "IBM Plex Mono", + "Light", + "IBMPlexMono-Light", + 11, + 12, + "fs/ibm-plex/35" + ], + [ + "IBM Plex Mono", + "Light Italic", + "IBMPlexMono-LightItalic", + 11, + 12, + "fs/ibm-plex/37" + ], + [ + "IBM Plex Mono", + "Medium", + "IBMPlexMono-Medium", + 11, + 12, + "fs/ibm-plex/42" + ], + [ + "IBM Plex Mono", + "Medium Italic", + "IBMPlexMono-MediumItalic", + 11, + 12, + "fs/ibm-plex/43" + ], + [ + "IBM Plex Mono", + "SemiBold", + "IBMPlexMono-SemiBold", + 11, + 12, + "fs/ibm-plex/44" + ], + [ + "IBM Plex Mono", + "SemiBold Italic", + "IBMPlexMono-SemiBoldItalic", + 11, + 12, + "fs/ibm-plex/45" + ], + [ + "IBM Plex Mono", + "Text", + "IBMPlexMono-Text", + 11, + 12, + "fs/ibm-plex/40" + ], + [ + "IBM Plex Mono", + "Text Italic", + "IBMPlexMono-TextItalic", + 11, + 12, + "fs/ibm-plex/41" + ], + [ + "IBM Plex Mono", + "Thin", + "IBMPlexMono-Thin", + 11, + 12, + "fs/ibm-plex/32" + ], + [ + "IBM Plex Mono", + "Thin Italic", + "IBMPlexMono-ThinItalic", + 11, + 12, + "fs/ibm-plex/33" + ], + [ + "IBM Plex Sans", + "Regular", + "IBMPlexSans", + 11, + 12, + "fs/ibm-plex/6" + ], + [ + "IBM Plex Sans", + "Bold", + "IBMPlexSans-Bold", + 11, + 12, + "fs/ibm-plex/14" + ], + [ + "IBM Plex Sans", + "Bold Italic", + "IBMPlexSans-BoldItalic", + 11, + 12, + "fs/ibm-plex/15" + ], + [ + "IBM Plex Sans", + "ExtraLight", + "IBMPlexSans-ExtraLight", + 11, + 12, + "gf/IBM Plex Sans/1" + ], + [ + "IBM Plex Sans", + "ExtraLight Italic", + "IBMPlexSans-ExtraLightItalic", + 11, + 12, + "fs/ibm-plex/3" + ], + [ + "IBM Plex Sans", + "Italic", + "IBMPlexSans-Italic", + 11, + 12, + "fs/ibm-plex/7" + ], + [ + "IBM Plex Sans", + "Light", + "IBMPlexSans-Light", + 11, + 12, + "fs/ibm-plex/4" + ], + [ + "IBM Plex Sans", + "Light Italic", + "IBMPlexSans-LightItalic", + 11, + 12, + "fs/ibm-plex/5" + ], + [ + "IBM Plex Sans", + "Medium", + "IBMPlexSans-Medium", + 11, + 12, + "fs/ibm-plex/10" + ], + [ + "IBM Plex Sans", + "Medium Italic", + "IBMPlexSans-MediumItalic", + 11, + 12, + "fs/ibm-plex/11" + ], + [ + "IBM Plex Sans", + "SemiBold", + "IBMPlexSans-SemiBold", + 11, + 12, + "fs/ibm-plex/12" + ], + [ + "IBM Plex Sans", + "SemiBold Italic", + "IBMPlexSans-SemiBoldItalic", + 11, + 12, + "fs/ibm-plex/13" + ], + [ + "IBM Plex Sans", + "Text", + "IBMPlexSans-Text", + 11, + 12, + "fs/ibm-plex/8" + ], + [ + "IBM Plex Sans", + "Text Italic", + "IBMPlexSans-TextItalic", + 11, + 12, + "fs/ibm-plex/9" + ], + [ + "IBM Plex Sans", + "Thin", + "IBMPlexSans-Thin", + 11, + 12, + "fs/ibm-plex/0" + ], + [ + "IBM Plex Sans", + "Thin Italic", + "IBMPlexSans-ThinItalic", + 11, + 12, + "fs/ibm-plex/1" + ], + [ + "IBM Plex Sans Condensed", + "Regular", + "IBMPlexSansCond", + 3, + 12, + "gf/IBM Plex Sans Condensed/9" + ], + [ + "IBM Plex Sans Condensed", + "Bold", + "IBMPlexSansCond-Bold", + 3, + 12, + "gf/IBM Plex Sans Condensed/5" + ], + [ + "IBM Plex Sans Condensed", + "Bold Italic", + "IBMPlexSansCond-BoldItalic", + 3, + 12, + "gf/IBM Plex Sans Condensed/13" + ], + [ + "IBM Plex Sans Condensed", + "ExtraLight", + "IBMPlexSansCond-ExtraLight", + 3, + 12, + "gf/IBM Plex Sans Condensed/1" + ], + [ + "IBM Plex Sans Condensed", + "ExtraLight Italic", + "IBMPlexSansCond-ExtraLightItalic", + 3, + 12, + "gf/IBM Plex Sans Condensed/7" + ], + [ + "IBM Plex Sans Condensed", + "Italic", + "IBMPlexSansCond-Italic", + 3, + 12, + "gf/IBM Plex Sans Condensed/10" + ], + [ + "IBM Plex Sans Condensed", + "Light", + "IBMPlexSansCond-Light", + 3, + 12, + "gf/IBM Plex Sans Condensed/2" + ], + [ + "IBM Plex Sans Condensed", + "Light Italic", + "IBMPlexSansCond-LightItalic", + 3, + 12, + "gf/IBM Plex Sans Condensed/8" + ], + [ + "IBM Plex Sans Condensed", + "Medium", + "IBMPlexSansCond-Medium", + 3, + 12, + "gf/IBM Plex Sans Condensed/3" + ], + [ + "IBM Plex Sans Condensed", + "Medium Italic", + "IBMPlexSansCond-MediumItalic", + 3, + 12, + "gf/IBM Plex Sans Condensed/11" + ], + [ + "IBM Plex Sans Condensed", + "SemiBold", + "IBMPlexSansCond-SemiBold", + 3, + 12, + "gf/IBM Plex Sans Condensed/4" + ], + [ + "IBM Plex Sans Condensed", + "SemiBold Italic", + "IBMPlexSansCond-SemiBoldItalic", + 3, + 12, + "gf/IBM Plex Sans Condensed/12" + ], + [ + "IBM Plex Sans Condensed", + "Thin", + "IBMPlexSansCond-Thin", + 3, + 12, + "gf/IBM Plex Sans Condensed/0" + ], + [ + "IBM Plex Sans Condensed", + "Thin Italic", + "IBMPlexSansCond-ThinItalic", + 3, + 12, + "gf/IBM Plex Sans Condensed/6" + ], + [ + "IBM Plex Serif", + "Regular", + "IBMPlexSerif", + 11, + 12, + "fs/ibm-plex/22" + ], + [ + "IBM Plex Serif", + "Bold", + "IBMPlexSerif-Bold", + 11, + 12, + "fs/ibm-plex/31" + ], + [ + "IBM Plex Serif", + "Bold Italic", + "IBMPlexSerif-BoldItalic", + 11, + 12, + "fs/ibm-plex/30" + ], + [ + "IBM Plex Serif", + "ExtraLight", + "IBMPlexSerif-ExtraLight", + 11, + 12, + "fs/ibm-plex/2" + ], + [ + "IBM Plex Serif", + "ExtraLight Italic", + "IBMPlexSerif-ExtraLightItalic", + 11, + 12, + "fs/ibm-plex/19" + ], + [ + "IBM Plex Serif", + "Italic", + "IBMPlexSerif-Italic", + 11, + 12, + "fs/ibm-plex/23" + ], + [ + "IBM Plex Serif", + "Light", + "IBMPlexSerif-Light", + 11, + 12, + "fs/ibm-plex/20" + ], + [ + "IBM Plex Serif", + "Light Italic", + "IBMPlexSerif-LightItalic", + 11, + 12, + "fs/ibm-plex/21" + ], + [ + "IBM Plex Serif", + "Medium", + "IBMPlexSerif-Medium", + 11, + 12, + "fs/ibm-plex/26" + ], + [ + "IBM Plex Serif", + "Medium Italic", + "IBMPlexSerif-MediumItalic", + 11, + 12, + "fs/ibm-plex/27" + ], + [ + "IBM Plex Serif", + "SemiBold", + "IBMPlexSerif-SemiBold", + 11, + 12, + "fs/ibm-plex/28" + ], + [ + "IBM Plex Serif", + "SemiBold Italic", + "IBMPlexSerif-SemiBoldItalic", + 11, + 12, + "fs/ibm-plex/29" + ], + [ + "IBM Plex Serif", + "Text", + "IBMPlexSerif-Text", + 11, + 12, + "fs/ibm-plex/24" + ], + [ + "IBM Plex Serif", + "Text Italic", + "IBMPlexSerif-TextItalic", + 11, + 12, + "fs/ibm-plex/25" + ], + [ + "IBM Plex Serif", + "Thin", + "IBMPlexSerif-Thin", + 11, + 12, + "fs/ibm-plex/16" + ], + [ + "IBM Plex Serif", + "Thin Italic", + "IBMPlexSerif-ThinItalic", + 11, + 12, + "fs/ibm-plex/17" + ], + [ + "IM FELL DW", + "Pica Italic", + "IM_FELL_DW_Pica_Italic", + 3, + 14, + "gf/IM Fell DW Pica/1" + ], + [ + "IM FELL DW", + "Pica PRO Italic", + "IM_FELL_DW_Pica_PRO_Italic", + 3, + 14, + "fs/im-fell-dw-pica-pro/1" + ], + [ + "IM FELL DW", + "Pica PRO", + "IM_FELL_DW_Pica_PRO_Roman", + 3, + 14, + "fs/im-fell-dw-pica-pro/0" + ], + [ + "IM FELL DW", + "Pica", + "IM_FELL_DW_Pica_Roman", + 3, + 14, + "gf/IM Fell DW Pica/0" + ], + [ + "IM FELL DW", + "Pica SC", + "IM_FELL_DW_Pica_SC", + 1, + 14, + "gf/IM Fell DW Pica SC/0" + ], + [ + "IM FELL Double", + "Pica Italic", + "IM_FELL_Double_Pica_Italic", + 3, + 14, + "gf/IM Fell Double Pica/1" + ], + [ + "IM FELL Double", + "Pica PRO Italic", + "IM_FELL_Double_Pica_PRO_Italic", + 3, + 14, + "fs/im-fell-double-pica-pro/1" + ], + [ + "IM FELL Double", + "Pica PRO", + "IM_FELL_Double_Pica_PRO_Roman", + 3, + 14, + "fs/im-fell-double-pica-pro/0" + ], + [ + "IM FELL Double", + "Pica", + "IM_FELL_Double_Pica_Roman", + 3, + 14, + "gf/IM Fell Double Pica/0" + ], + [ + "IM FELL Double", + "Pica SC", + "IM_FELL_Double_Pica_SC", + 1, + 14, + "gf/IM Fell Double Pica SC/0" + ], + [ + "IM FELL English", + "Italic", + "IM_FELL_English_Italic", + 3, + 14, + "gf/IM Fell English/1" + ], + [ + "IM FELL English", + "PRO Italic", + "IM_FELL_English_PRO_Italic", + 3, + 4, + "fs/im-fell-english-pro/1" + ], + [ + "IM FELL English", + "PRO", + "IM_FELL_English_PRO_Roman", + 3, + 4, + "fs/im-fell-english-pro/0" + ], + [ + "IM FELL English", + "Regular", + "IM_FELL_English_Roman", + 3, + 14, + "gf/IM Fell English/0" + ], + [ + "IM FELL English", + "SC", + "IM_FELL_English_SC", + 1, + 14, + "gf/IM Fell English SC/0" + ], + [ + "IM FELL FLOWERS", + "1", + "IM_FELL_FLOWERS_1", + 0, + 3, + "fs/im-fell-flowers-1/0" + ], + [ + "IM FELL FLOWERS", + "2", + "IM_FELL_FLOWERS_2", + 0, + 3, + "fs/im-fell-flowers-2/0" + ], + [ + "IM FELL French Canon", + "Italic", + "IM_FELL_French_Canon_Italic", + 3, + 14, + "gf/IM Fell French Canon/1" + ], + [ + "IM FELL French Canon", + "PRO Italic", + "IM_FELL_French_Canon_PRO_Italic", + 3, + 14, + "fs/im-fell-french-canon-pro/1" + ], + [ + "IM FELL French Canon", + "PRO", + "IM_FELL_French_Canon_PRO_Roman", + 3, + 14, + "fs/im-fell-french-canon-pro/0" + ], + [ + "IM FELL French Canon", + "Regular", + "IM_FELL_French_Canon_Roman", + 3, + 14, + "gf/IM Fell French Canon/0" + ], + [ + "IM FELL French Canon", + "SC", + "IM_FELL_French_Canon_SC", + 1, + 14, + "gf/IM Fell French Canon SC/0" + ], + [ + "IM FELL Great Primer", + "Italic", + "IM_FELL_Great_Primer_Italic", + 3, + 14, + "gf/IM Fell Great Primer/1" + ], + [ + "IM FELL Great Primer", + "PRO Italic", + "IM_FELL_Great_Primer_PRO_Italic", + 3, + 14, + "fs/im-fell-great-primer-pro/1" + ], + [ + "IM FELL Great Primer", + "PRO", + "IM_FELL_Great_Primer_PRO_Roman", + 3, + 14, + "fs/im-fell-great-primer-pro/0" + ], + [ + "IM FELL Great Primer", + "Regular", + "IM_FELL_Great_Primer_Roman", + 3, + 14, + "gf/IM Fell Great Primer/0" + ], + [ + "IM FELL Great Primer", + "SC", + "IM_FELL_Great_Primer_SC", + 1, + 14, + "gf/IM Fell Great Primer SC/0" + ], + [ + "Iceberg", + "Regular", + "Iceberg-Regular", + 1, + 4, + "gf/Iceberg/0" + ], + [ + "Iceland", + "Regular", + "Iceland-Regular", + 1, + 4, + "gf/Iceland/0" + ], + [ + "Immortal", + "Regular", + "Immortal", + 1, + 14, + "fs/Immortal/0" + ], + [ + "Immortal - Alternates", + "Regular", + "Immortal-Alternates", + 0, + 14, + "fs/Immortal/1" + ], + [ + "Impact Label", + "Regular", + "ImpactLabel", + 1, + 8, + "fs/impact-label/0" + ], + [ + "Impact Label Reversed", + "Regular", + "ImpactLabelReversed", + 1, + 8, + "fs/impact-label/1" + ], + [ + "Imprima", + "Regular", + "Imprima-Regular", + 1, + 12, + "gf/Imprima/0" + ], + [ + "IncisedBlack", + "Normal", + "IncisedBlack-Normal", + 0, + 0, + "fs/PlainBlack/2" + ], + [ + "IncisedBlackWide", + "Normal", + "IncisedBlackWide-Normal", + 0, + 0, + "fs/PlainBlack/3" + ], + [ + "Inconsolata", + "Medium", + "Inconsolata", + 1, + 7, + "fs/Inconsolata/0" + ], + [ + "Inconsolata", + "Bold", + "Inconsolata-Bold", + 3, + 7, + "gf/Inconsolata/0" + ], + [ + "Inconsolata", + "Regular", + "Inconsolata-Regular", + 3, + 7, + "gf/Inconsolata/1" + ], + [ + "Inder", + "Regular", + "Inder-Regular", + 3, + 12, + "fs/inder/0" + ], + [ + "Indie Flower", + "Regular", + "IndieFlower", + 3, + 6, + "fs/indie-flower/0" + ], + [ + "Indubitably", + "Regular", + "Indubitably", + 1, + 11, + "fs/Indubitably/0" + ], + [ + "Infini", + "Bold", + "Infini-Bold", + 3, + 12, + "fs/infini/2" + ], + [ + "Infini", + "Italic", + "Infini-Italic", + 3, + 12, + "fs/infini/1" + ], + [ + "Infini", + "Regular", + "Infini-Regular", + 3, + 12, + "fs/infini/0" + ], + [ + "Infini Picto", + "Bold", + "InfiniPicto-Bold", + 0, + 12, + "fs/infini/3" + ], + [ + "Inika", + "Regular", + "Inika", + 1, + 14, + "gf/Inika/1" + ], + [ + "Inika", + "Bold", + "Inika-Bold", + 1, + 14, + "gf/Inika/0" + ], + [ + "Inknut Antiqua", + "Black", + "InknutAntiqua-Black", + 515, + 14, + "fs/inknut-antiqua/6" + ], + [ + "Inknut Antiqua", + "Bold", + "InknutAntiqua-Bold", + 515, + 14, + "fs/inknut-antiqua/4" + ], + [ + "Inknut Antiqua", + "ExtraBold", + "InknutAntiqua-ExtraBold", + 515, + 14, + "fs/inknut-antiqua/5" + ], + [ + "Inknut Antiqua", + "Light", + "InknutAntiqua-Light", + 515, + 14, + "fs/inknut-antiqua/0" + ], + [ + "Inknut Antiqua", + "Medium", + "InknutAntiqua-Medium", + 515, + 14, + "fs/inknut-antiqua/2" + ], + [ + "Inknut Antiqua", + "Regular", + "InknutAntiqua-Regular", + 515, + 14, + "fs/inknut-antiqua/1" + ], + [ + "Inknut Antiqua", + "SemiBold", + "InknutAntiqua-SemiBold", + 515, + 14, + "fs/inknut-antiqua/3" + ], + [ + "Inria Sans", + "Bold", + "InriaSans-Bold", + 3, + 12, + "fs/inria-sans/4" + ], + [ + "Inria Sans", + "Bold Italic", + "InriaSans-BoldItalic", + 3, + 12, + "fs/inria-sans/5" + ], + [ + "Inria Sans", + "Italic", + "InriaSans-Italic", + 3, + 12, + "fs/inria-sans/3" + ], + [ + "Inria Sans", + "Light", + "InriaSans-Light", + 3, + 12, + "fs/inria-sans/0" + ], + [ + "Inria Sans", + "Light Italic", + "InriaSans-LightItalic", + 3, + 12, + "fs/inria-sans/1" + ], + [ + "Inria Sans", + "Regular", + "InriaSans-Regular", + 3, + 12, + "fs/inria-sans/2" + ], + [ + "Inria Serif", + "Bold", + "InriaSerif-Bold", + 3, + 14, + "fs/inria-serif/4" + ], + [ + "Inria Serif", + "Bold Italic", + "InriaSerif-BoldItalic", + 3, + 14, + "fs/inria-serif/5" + ], + [ + "Inria Serif", + "Italic", + "InriaSerif-Italic", + 3, + 14, + "fs/inria-serif/3" + ], + [ + "Inria Serif", + "Light", + "InriaSerif-Light", + 3, + 14, + "fs/inria-serif/0" + ], + [ + "Inria Serif", + "Light Italic", + "InriaSerif-LightItalic", + 3, + 14, + "fs/inria-serif/1" + ], + [ + "Inria Serif", + "Regular", + "InriaSerif-Regular", + 3, + 14, + "fs/inria-serif/2" + ], + [ + "Intruder Alert", + "Regular", + "IntruderAlert", + 9, + 4, + "fs/Intruder-Alert/0" + ], + [ + "Irish Grover", + "Regular", + "IrishGrover-Regular", + 1, + 4, + "gf/Irish Grover/0" + ], + [ + "Istok", + "Bold", + "Istok-Bold", + 11, + 12, + "fs/istok/2" + ], + [ + "Istok", + "Bold Italic", + "Istok-BoldItalic", + 11, + 12, + "fs/istok/3" + ], + [ + "Istok", + "Italic", + "Istok-Italic", + 11, + 12, + "fs/istok/1" + ], + [ + "Istok", + "Regular", + "Istok-Regular", + 11, + 12, + "fs/istok/0" + ], + [ + "Istok Web", + "Bold", + "IstokWeb-Bold", + 11, + 12, + "gf/Istok Web/0" + ], + [ + "Istok Web", + "BoldItalic", + "IstokWeb-BoldItalic", + 11, + 12, + "gf/Istok Web/3" + ], + [ + "Istok Web", + "Italic", + "IstokWeb-Italic", + 11, + 12, + "gf/Istok Web/2" + ], + [ + "Istok Web", + "Regular", + "IstokWeb-Regular", + 11, + 12, + "gf/Istok Web/1" + ], + [ + "Italiana", + "Regular", + "Italiana-Regular", + 1, + 12, + "fs/italiana/0" + ], + [ + "Italianno", + "Regular", + "Italianno-Regular", + 3, + 13, + "fs/italianno/0" + ], + [ + "Itim", + "Regular", + "Itim-Regular", + 3, + 6, + "gf/Itim/0" + ], + [ + "JUICE", + "Bold Bold", + "JUICEBold-Bold", + 0, + 4, + "fs/Juice/4" + ], + [ + "JUICE", + "Bold Italic", + "JUICEBoldItalic", + 0, + 4, + "fs/Juice/5" + ], + [ + "JUICE", + "Italic Italic", + "JUICEItalic-Italic", + 0, + 4, + "fs/Juice/3" + ], + [ + "JUICE", + "Light", + "JUICELight", + 0, + 4, + "fs/Juice/0" + ], + [ + "JUICE", + "Light Italic Italic", + "JUICELightItalic-Italic", + 0, + 4, + "fs/Juice/1" + ], + [ + "JUICE", + "Regular", + "JUICERegular", + 0, + 4, + "fs/Juice/2" + ], + [ + "Jacques Francois", + "Regular", + "JacquesFrancois-Regular", + 1, + 14, + "fs/jacques-francois/0" + ], + [ + "Jacques Francois Shadow", + "Regular", + "JacquesFrancoisShadow-Regular", + 1, + 14, + "fs/jacques-francois/1" + ], + [ + "Jaldi", + "Bold", + "Jaldi-Bold", + 515, + 12, + "gf/Jaldi/0" + ], + [ + "Jaldi", + "Regular", + "Jaldi-Regular", + 515, + 12, + "gf/Jaldi/1" + ], + [ + "Jellee", + "Bold", + "Jellee-Roman", + 0, + 12, + "fs/jellee/0" + ], + [ + "Jim Nightshade", + "Regular", + "JimNightshade-Regular", + 3, + 6, + "gf/Jim Nightshade/0" + ], + [ + "Jinky", + "Regular", + "Jinky", + 1, + 6, + "fs/Jinky/0" + ], + [ + "Jockey One", + "Regular", + "JockeyOne-Regular", + 3, + 12, + "fs/jockey-one/0" + ], + [ + "Jolly Lodger", + "Regular", + "JollyLodger", + 1, + 4, + "gf/Jolly Lodger/0" + ], + [ + "Jomhuria", + "Regular", + "Jomhuria-Regular", + 35, + 4, + "gf/Jomhuria/0" + ], + [ + "Josefin Sans", + "Bold", + "JosefinSans-Bold", + 3, + 12, + "fs/josefin-sans/8" + ], + [ + "Josefin Sans", + "Bold Italic", + "JosefinSans-BoldItalic", + 3, + 12, + "fs/josefin-sans/9" + ], + [ + "Josefin Sans", + "Italic", + "JosefinSans-Italic", + 3, + 12, + "fs/josefin-sans/5" + ], + [ + "Josefin Sans", + "Light", + "JosefinSans-Light", + 3, + 12, + "fs/josefin-sans/2" + ], + [ + "Josefin Sans", + "Light Italic", + "JosefinSans-LightItalic", + 3, + 12, + "fs/josefin-sans/3" + ], + [ + "Josefin Sans", + "Regular", + "JosefinSans-Regular", + 3, + 12, + "fs/josefin-sans/4" + ], + [ + "Josefin Sans", + "SemiBold", + "JosefinSans-SemiBold", + 3, + 12, + "fs/josefin-sans/6" + ], + [ + "Josefin Sans", + "SemiBold Italic", + "JosefinSans-SemiBoldItalic", + 3, + 12, + "fs/josefin-sans/7" + ], + [ + "Josefin Sans", + "Thin", + "JosefinSans-Thin", + 3, + 12, + "fs/josefin-sans/0" + ], + [ + "Josefin Sans", + "Thin Italic", + "JosefinSans-ThinItalic", + 3, + 12, + "fs/josefin-sans/1" + ], + [ + "Josefin Slab", + "Regular", + "JosefinSlab", + 1, + 15, + "fs/josefin-slab/4" + ], + [ + "Josefin Slab", + "Bold", + "JosefinSlab-Bold", + 1, + 15, + "fs/josefin-slab/8" + ], + [ + "Josefin Slab", + "Bold Italic", + "JosefinSlab-BoldItalic", + 1, + 15, + "fs/josefin-slab/9" + ], + [ + "Josefin Slab", + "Italic", + "JosefinSlab-Italic", + 1, + 15, + "fs/josefin-slab/5" + ], + [ + "Josefin Slab", + "Light", + "JosefinSlab-Light", + 1, + 15, + "fs/josefin-slab/2" + ], + [ + "Josefin Slab", + "Light Italic", + "JosefinSlab-LightItalic", + 1, + 15, + "fs/josefin-slab/3" + ], + [ + "Josefin Slab", + "Regular", + "JosefinSlab-Regular", + 1, + 14, + "gf/Josefin Slab/6" + ], + [ + "Josefin Slab", + "SemiBold", + "JosefinSlab-SemiBold", + 1, + 15, + "fs/josefin-slab/6" + ], + [ + "Josefin Slab", + "SemiBold Italic", + "JosefinSlab-SemiBoldItalic", + 1, + 15, + "fs/josefin-slab/7" + ], + [ + "Josefin Slab", + "Thin", + "JosefinSlab-Thin", + 1, + 15, + "fs/josefin-slab/0" + ], + [ + "Josefin Slab", + "Thin Italic", + "JosefinSlab-ThinItalic", + 1, + 15, + "fs/josefin-slab/1" + ], + [ + "Joti One", + "Regular", + "JotiOne-Regular", + 3, + 4, + "gf/Joti One/0" + ], + [ + "Journal", + "Regular", + "Journal", + 1, + 6, + "fs/Journal/0" + ], + [ + "jr!hand", + "Regular", + "Jrhand", + 0, + 6, + "fs/Jr-Hand/0" + ], + [ + "Jua", + "Regular", + "Jua-Regular", + 0, + 12, + "gf/Jua/0" + ], + [ + "Judson", + "Medium", + "Judson", + 3, + 14, + "fs/judson/0" + ], + [ + "Judson", + "Bold", + "Judson-Bold", + 3, + 14, + "gf/Judson/0" + ], + [ + "Judson", + "Italic", + "Judson-Italic", + 3, + 14, + "gf/Judson/2" + ], + [ + "Judson", + "Regular", + "Judson-Regular", + 3, + 14, + "gf/Judson/1" + ], + [ + "Judson", + "Bold", + "JudsonBold", + 3, + 14, + "fs/judson/2" + ], + [ + "Judson", + "Italic", + "JudsonItalic", + 3, + 14, + "fs/judson/1" + ], + [ + "Julee", + "Regular", + "Julee-Regular", + 1, + 6, + "gf/Julee/0" + ], + [ + "Julius Sans One", + "Regular", + "JuliusSansOne-Regular", + 1, + 12, + "gf/Julius Sans One/0" + ], + [ + "Junction", + "Bold", + "Junction-Bold", + 1, + 12, + "fs/junction/2" + ], + [ + "Junction", + "Light", + "Junction-Light", + 1, + 12, + "fs/junction/0" + ], + [ + "Junction", + "Regular", + "Junction-Regular", + 1, + 12, + "fs/junction/1" + ], + [ + "Junge", + "Regular", + "Junge-Regular", + 1, + 14, + "gf/Junge/0" + ], + [ + "JungleFever", + "Regular", + "JungleFever", + 1, + 4, + "fs/JungleFever/0" + ], + [ + "Junicode", + "Regular", + "Junicode", + 3, + 14, + "fs/junicode/0" + ], + [ + "Junicode", + "Bold", + "Junicode-Bold", + 3, + 14, + "fs/junicode/2" + ], + [ + "Junicode", + "BoldCondensed", + "Junicode-BoldCondensed", + 3, + 14, + "fs/junicode/6" + ], + [ + "Junicode", + "Bold Italic", + "Junicode-BoldItalic", + 3, + 14, + "fs/junicode/3" + ], + [ + "Junicode", + "BoldItalicCondensed", + "Junicode-BoldItalicCondensed", + 3, + 14, + "fs/junicode/7" + ], + [ + "Junicode", + "Italic", + "Junicode-Italic", + 3, + 14, + "fs/junicode/1" + ], + [ + "Junicode", + "ItalicCondensed", + "Junicode-ItalicCondensed", + 7, + 14, + "fs/junicode/5" + ], + [ + "Junicode", + "RegularCondensed", + "Junicode-RegularCondensed", + 7, + 14, + "fs/junicode/4" + ], + [ + "Jura", + "Bold", + "Jura-Bold", + 15, + 12, + "gf/Jura/3" + ], + [ + "Jura", + "Light", + "Jura-Light", + 15, + 12, + "gf/Jura/0" + ], + [ + "Jura", + "Medium", + "Jura-Medium", + 15, + 12, + "gf/Jura/1" + ], + [ + "Jura", + "Regular", + "Jura-Regular", + 15, + 12, + "gf/Jura/4" + ], + [ + "Jura", + "SemiBold", + "Jura-SemiBold", + 15, + 12, + "gf/Jura/2" + ], + [ + "Jura", + "Book", + "JuraBook", + 15, + 4, + "fs/jura1/1" + ], + [ + "Jura", + "DemiBold", + "JuraDemiBold", + 15, + 4, + "fs/jura1/3" + ], + [ + "Jura", + "Light", + "JuraLight", + 15, + 4, + "fs/jura1/0" + ], + [ + "Jura", + "Medium", + "JuraMedium", + 15, + 4, + "fs/jura1/2" + ], + [ + "Just Another Hand", + "Regular", + "JustAnotherHand-Regular", + 3, + 6, + "gf/Just Another Hand/0" + ], + [ + "Just Me Again Down Here", + "Regular", + "JustMeAgainDownHere", + 3, + 6, + "gf/Just Me Again Down Here/0" + ], + [ + "JustOldFashion", + "Regular", + "JustOldFashion", + 1, + 4, + "fs/JustOldFashion/0" + ], + [ + "K2D", + "Bold", + "K2D-Bold", + 3, + 12, + "gf/K2D/5" + ], + [ + "K2D", + "Bold Italic", + "K2D-BoldItalic", + 3, + 12, + "gf/K2D/14" + ], + [ + "K2D", + "ExtraBold", + "K2D-ExtraBold", + 3, + 12, + "gf/K2D/6" + ], + [ + "K2D", + "ExtraBold Italic", + "K2D-ExtraBoldItalic", + 3, + 12, + "gf/K2D/15" + ], + [ + "K2D", + "ExtraLight", + "K2D-ExtraLight", + 3, + 12, + "gf/K2D/1" + ], + [ + "K2D", + "ExtraLight Italic", + "K2D-ExtraLightItalic", + 3, + 12, + "gf/K2D/8" + ], + [ + "K2D", + "Italic", + "K2D-Italic", + 3, + 12, + "gf/K2D/11" + ], + [ + "K2D", + "Light", + "K2D-Light", + 3, + 12, + "gf/K2D/2" + ], + [ + "K2D", + "Light Italic", + "K2D-LightItalic", + 3, + 12, + "gf/K2D/9" + ], + [ + "K2D", + "Medium", + "K2D-Medium", + 3, + 12, + "gf/K2D/3" + ], + [ + "K2D", + "Medium Italic", + "K2D-MediumItalic", + 3, + 12, + "gf/K2D/12" + ], + [ + "K2D", + "Regular", + "K2D-Regular", + 3, + 12, + "gf/K2D/10" + ], + [ + "K2D", + "SemiBold", + "K2D-SemiBold", + 3, + 12, + "gf/K2D/4" + ], + [ + "K2D", + "SemiBold Italic", + "K2D-SemiBoldItalic", + 3, + 12, + "gf/K2D/13" + ], + [ + "K2D", + "Thin", + "K2D-Thin", + 3, + 12, + "gf/K2D/0" + ], + [ + "K2D", + "Thin Italic", + "K2D-ThinItalic", + 3, + 12, + "gf/K2D/7" + ], + [ + "Kadwa", + "Bold", + "Kadwa-Bold", + 515, + 14, + "gf/Kadwa/0" + ], + [ + "Kadwa", + "Regular", + "Kadwa-Regular", + 515, + 14, + "gf/Kadwa/1" + ], + [ + "Kalam", + "Bold", + "Kalam-Bold", + 513, + 6, + "fs/kalam/2" + ], + [ + "Kalam", + "Light", + "Kalam-Light", + 513, + 6, + "fs/kalam/0" + ], + [ + "Kalam", + "Regular", + "Kalam-Regular", + 513, + 6, + "fs/kalam/1" + ], + [ + "Kalocsai Flowers", + "Regular", + "KalocsaiFlowers", + 0, + 3, + "fs/Kalocsai-Flowers/0" + ], + [ + "Kameron", + "Regular", + "Kameron", + 1, + 14, + "fs/kameron/0" + ], + [ + "Kameron", + "Bold", + "Kameron-Bold", + 1, + 14, + "fs/kameron/1" + ], + [ + "Kanit", + "Black", + "Kanit-Black", + 3, + 12, + "fs/kanit/16" + ], + [ + "Kanit", + "Black Italic", + "Kanit-BlackItalic", + 3, + 12, + "fs/kanit/17" + ], + [ + "Kanit", + "Bold", + "Kanit-Bold", + 3, + 12, + "fs/kanit/12" + ], + [ + "Kanit", + "Bold Italic", + "Kanit-BoldItalic", + 3, + 12, + "fs/kanit/13" + ], + [ + "Kanit", + "ExtraBold", + "Kanit-ExtraBold", + 3, + 12, + "fs/kanit/14" + ], + [ + "Kanit", + "ExtraBold Italic", + "Kanit-ExtraBoldItalic", + 3, + 12, + "fs/kanit/15" + ], + [ + "Kanit", + "ExtraLight", + "Kanit-ExtraLight", + 3, + 12, + "fs/kanit/2" + ], + [ + "Kanit", + "ExtraLight Italic", + "Kanit-ExtraLightItalic", + 3, + 12, + "fs/kanit/3" + ], + [ + "Kanit", + "Italic", + "Kanit-Italic", + 3, + 12, + "fs/kanit/7" + ], + [ + "Kanit", + "Light", + "Kanit-Light", + 3, + 12, + "fs/kanit/4" + ], + [ + "Kanit", + "Light Italic", + "Kanit-LightItalic", + 3, + 12, + "fs/kanit/5" + ], + [ + "Kanit", + "Medium", + "Kanit-Medium", + 3, + 12, + "fs/kanit/8" + ], + [ + "Kanit", + "Medium Italic", + "Kanit-MediumItalic", + 3, + 12, + "fs/kanit/9" + ], + [ + "Kanit", + "Regular", + "Kanit-Regular", + 3, + 12, + "fs/kanit/6" + ], + [ + "Kanit", + "SemiBold", + "Kanit-SemiBold", + 3, + 12, + "fs/kanit/10" + ], + [ + "Kanit", + "SemiBold Italic", + "Kanit-SemiBoldItalic", + 3, + 12, + "fs/kanit/11" + ], + [ + "Kanit", + "Thin", + "Kanit-Thin", + 3, + 12, + "fs/kanit/0" + ], + [ + "Kanit", + "Thin Italic", + "Kanit-ThinItalic", + 3, + 12, + "fs/kanit/1" + ], + [ + "Kantumruy Regular", + "Regular", + "Kantumruy", + 0, + 12, + "gf/Kantumruy/2" + ], + [ + "Kantumruy Regular", + "Bold", + "Kantumruy-Bold", + 0, + 12, + "gf/Kantumruy/1" + ], + [ + "Kantumruy Regular", + "Regular", + "KantumruyLight", + 0, + 12, + "gf/Kantumruy/0" + ], + [ + "Karatula", + "Bold", + "KaratulaBold", + 0, + 2, + "fs/Karatula/2" + ], + [ + "Karatula", + "BoldItalic", + "KaratulaBoldItalic", + 0, + 2, + "fs/Karatula/3" + ], + [ + "Karatula", + "Italic", + "KaratulaItalic", + 0, + 2, + "fs/Karatula/1" + ], + [ + "Karatula", + "Normal", + "KaratulaNormal", + 0, + 2, + "fs/Karatula/0" + ], + [ + "Karla", + "Bold", + "Karla-Bold", + 0, + 12, + "fs/karla/2" + ], + [ + "Karla", + "BoldItalic", + "Karla-BoldItalic", + 0, + 12, + "fs/karla/3" + ], + [ + "Karla", + "Italic", + "Karla-Italic", + 0, + 12, + "fs/karla/1" + ], + [ + "Karla", + "Regular", + "Karla-Regular", + 0, + 12, + "fs/karla/0" + ], + [ + "Karma", + "Bold", + "Karma-Bold", + 515, + 14, + "gf/Karma/3" + ], + [ + "Karma", + "Light", + "Karma-Light", + 515, + 14, + "gf/Karma/0" + ], + [ + "Karma", + "Medium", + "Karma-Medium", + 515, + 14, + "gf/Karma/1" + ], + [ + "Karma", + "Regular", + "Karma-Regular", + 515, + 14, + "gf/Karma/4" + ], + [ + "Karma", + "SemiBold", + "Karma-SemiBold", + 515, + 14, + "gf/Karma/2" + ], + [ + "Karnivore", + "Regular", + "Karnivore", + 1, + 4, + "fs/Karnivore-Lite/1" + ], + [ + "Karnivore", + "Bold", + "Karnivore-Bold", + 1, + 4, + "fs/Karnivore-Lite/2" + ], + [ + "Karnivore", + "Black", + "KarnivoreBlack", + 1, + 4, + "fs/Karnivore-Lite/3" + ], + [ + "Karnivore", + "Digit", + "KarnivoreDigit", + 1, + 4, + "fs/Karnivore-Lite/4" + ], + [ + "Karnivore", + "Lite", + "KarnivoreLite", + 1, + 4, + "fs/Karnivore-Lite/0" + ], + [ + "Karnivore", + "Tecca", + "KarnivoreTecca", + 1, + 4, + "fs/Karnivore-Lite/5" + ], + [ + "Katibeh", + "Regular", + "Katibeh-Regular", + 35, + 4, + "gf/Katibeh/0" + ], + [ + "Kaushan Script", + "Regular", + "KaushanScript-Regular", + 3, + 13, + "fs/kaushan-script/0" + ], + [ + "Kavivanar", + "Regular", + "Kavivanar-Regular", + 3, + 12, + "fs/kavivanar/0" + ], + [ + "Kavoon", + "Regular", + "Kavoon-Regular", + 1, + 4, + "fs/kavoon/0" + ], + [ + "Kdam Thmor", + "Regular", + "KdamThmor", + 0, + 4, + "gf/Kdam Thmor/0" + ], + [ + "Keania One", + "Regular", + "KeaniaOne-Regular", + 1, + 4, + "gf/Keania One/0" + ], + [ + "Kells SD", + "Regular", + "KellsSD", + 1, + 1, + "fs/Kells-SD/0" + ], + [ + "Kelly Slab", + "Regular", + "KellySlab-Regular", + 11, + 4, + "fs/kelly-slab/0" + ], + [ + "KelmscottRoman", + "Regular", + "KelmscottRoman", + 1, + 11, + "fs/KelmscottRoman/0" + ], + [ + "Kelvinch", + "Regular", + "Kelvinch", + 15, + 14, + "fs/kelvinch/0" + ], + [ + "Kelvinch", + "Bold", + "Kelvinch-Bold", + 15, + 14, + "fs/kelvinch/2" + ], + [ + "Kelvinch", + "Bold Italic", + "Kelvinch-BoldItalic", + 15, + 14, + "fs/kelvinch/3" + ], + [ + "Kelvinch", + "Italic", + "Kelvinch-Italic", + 15, + 14, + "fs/kelvinch/1" + ], + [ + "Kenia", + "Regular", + "Kenia-Regular", + 1, + 4, + "gf/Kenia/0" + ], + [ + "Khand", + "Bold", + "Khand-Bold", + 513, + 12, + "fs/khand/4" + ], + [ + "Khand", + "Light", + "Khand-Light", + 513, + 12, + "fs/khand/0" + ], + [ + "Khand", + "Medium", + "Khand-Medium", + 513, + 12, + "fs/khand/2" + ], + [ + "Khand", + "Regular", + "Khand-Regular", + 513, + 12, + "fs/khand/1" + ], + [ + "Khand", + "SemiBold", + "Khand-SemiBold", + 513, + 12, + "gf/Khand/2" + ], + [ + "Khand", + "Semibold", + "Khand-Semibold", + 513, + 12, + "fs/khand/3" + ], + [ + "Khmer", + "Regular", + "Khmer", + 0, + 4, + "gf/Khmer/0" + ], + [ + "Khula", + "Bold", + "Khula-Bold", + 512, + 12, + "fs/khula/3" + ], + [ + "Khula", + "ExtraBold", + "Khula-ExtraBold", + 512, + 12, + "fs/khula/4" + ], + [ + "Khula", + "Light", + "Khula-Light", + 512, + 12, + "fs/khula/0" + ], + [ + "Khula", + "Regular", + "Khula-Regular", + 512, + 12, + "fs/khula/1" + ], + [ + "Khula", + "SemiBold", + "Khula-SemiBold", + 512, + 12, + "gf/Khula/1" + ], + [ + "Khula", + "Semibold", + "Khula-Semibold", + 512, + 12, + "fs/khula/2" + ], + [ + "Kingthings Calligraphica Italic", + "Calligraphica", + "Kingthings-Calligraphica-Italic", + 0, + 1, + "fs/Kingthings-Calligraphica/2" + ], + [ + "Kingthings Calligraphica Light", + "Light", + "Kingthings-Calligraphica-Light", + 0, + 1, + "fs/Kingthings-Calligraphica/0" + ], + [ + "Kingthings Flourishes", + "Regular", + "Kingthings-Flourishes", + 0, + 3, + "fs/Kingthings-Flourishes/0" + ], + [ + "Kingthings Gothique", + "Regular", + "Kingthings-Gothique", + 0, + 0, + "fs/Kingthings-Gothique/0" + ], + [ + "Kingthings Italique", + "Regular", + "Kingthings-Italique", + 0, + 0, + "fs/Kingthings-Italique/0" + ], + [ + "Kingthings Spikeless", + "Regular", + "Kingthings-Spikeless", + 0, + 0, + "fs/Kingthings-Spikeless/0" + ], + [ + "Kingthings Versalis", + "Regular", + "Kingthings-Versalis", + 0, + 8, + "fs/Kingthings-Versalis/0" + ], + [ + "Kingthings Wrote", + "Regular", + "Kingthings-Wrote", + 0, + 13, + "fs/Kingthings-Wrote/0" + ], + [ + "Kingthings Xstitch", + "Regular", + "Kingthings-Xstitch", + 0, + 4, + "fs/Kingthings-Xstitch/0" + ], + [ + "Kingthings Calligraphica 2", + "Regular", + "KingthingsCalligraphica2", + 1, + 1, + "fs/Kingthings-Calligraphica/1" + ], + [ + "Kingthings Exeter", + "Regular", + "KingthingsExeter", + 0, + 1, + "fs/Kingthings-Exeter/0" + ], + [ + "Kingthings Foundation", + "Regular", + "KingthingsFoundation", + 0, + 1, + "fs/Kingthings-Foundation/0" + ], + [ + "Kingthings Petrock", + "Regular", + "KingthingsPetrock", + 1, + 1, + "fs/Kingthings-Petrock/0" + ], + [ + "Kingthings Petrock Light", + "Regular", + "KingthingsPetrockLight", + 1, + 1, + "fs/Kingthings-Petrock/1" + ], + [ + "Kingthings Printingkit", + "Regular", + "KingthingsPrintingkit", + 0, + 4, + "fs/Kingthings-Printingkit/0" + ], + [ + "Kingthings Trypewriter 2", + "Regular", + "KingthingsTrypewriter2", + 1, + 17, + "fs/Kingthings-Trypewriter/0" + ], + [ + "Kirang Haerang", + "Regular", + "KirangHaerang-Regular", + 64, + 4, + "fs/kirang-haerang/0" + ], + [ + "Kite One", + "Regular", + "KiteOne-Regular", + 1, + 12, + "gf/Kite One/0" + ], + [ + "Knewave", + "Regular", + "Knewave-Regular", + 1, + 4, + "gf/Knewave/0" + ], + [ + "Know Your Product", + "Regular", + "KnowYourProduct", + 0, + 16, + "fs/Know-Your-Product/0" + ], + [ + "KoHo", + "Bold", + "KoHo-Bold", + 3, + 12, + "gf/KoHo/4" + ], + [ + "KoHo", + "Bold Italic", + "KoHo-BoldItalic", + 3, + 12, + "gf/KoHo/11" + ], + [ + "KoHo", + "ExtraLight", + "KoHo-ExtraLight", + 3, + 12, + "gf/KoHo/0" + ], + [ + "KoHo", + "ExtraLight Italic", + "KoHo-ExtraLightItalic", + 3, + 12, + "gf/KoHo/5" + ], + [ + "KoHo", + "Italic", + "KoHo-Italic", + 3, + 12, + "gf/KoHo/8" + ], + [ + "KoHo", + "Light", + "KoHo-Light", + 3, + 12, + "gf/KoHo/1" + ], + [ + "KoHo", + "Light Italic", + "KoHo-LightItalic", + 3, + 12, + "gf/KoHo/6" + ], + [ + "KoHo", + "Medium", + "KoHo-Medium", + 3, + 12, + "gf/KoHo/2" + ], + [ + "KoHo", + "Medium Italic", + "KoHo-MediumItalic", + 3, + 12, + "gf/KoHo/9" + ], + [ + "KoHo", + "Regular", + "KoHo-Regular", + 3, + 12, + "gf/KoHo/7" + ], + [ + "KoHo", + "SemiBold", + "KoHo-SemiBold", + 3, + 12, + "gf/KoHo/3" + ], + [ + "KoHo", + "SemiBold Italic", + "KoHo-SemiBoldItalic", + 3, + 12, + "gf/KoHo/10" + ], + [ + "Kodchasan", + "Bold", + "Kodchasan-Bold", + 3, + 12, + "gf/Kodchasan/4" + ], + [ + "Kodchasan", + "Bold Italic", + "Kodchasan-BoldItalic", + 3, + 12, + "gf/Kodchasan/11" + ], + [ + "Kodchasan", + "ExtraLight", + "Kodchasan-ExtraLight", + 3, + 12, + "gf/Kodchasan/0" + ], + [ + "Kodchasan", + "ExtraLight Italic", + "Kodchasan-ExtraLightItalic", + 3, + 12, + "gf/Kodchasan/5" + ], + [ + "Kodchasan", + "Italic", + "Kodchasan-Italic", + 3, + 12, + "gf/Kodchasan/8" + ], + [ + "Kodchasan", + "Light", + "Kodchasan-Light", + 3, + 12, + "gf/Kodchasan/1" + ], + [ + "Kodchasan", + "Light Italic", + "Kodchasan-LightItalic", + 3, + 12, + "gf/Kodchasan/6" + ], + [ + "Kodchasan", + "Medium", + "Kodchasan-Medium", + 3, + 12, + "gf/Kodchasan/2" + ], + [ + "Kodchasan", + "Medium Italic", + "Kodchasan-MediumItalic", + 3, + 12, + "gf/Kodchasan/9" + ], + [ + "Kodchasan", + "Regular", + "Kodchasan-Regular", + 3, + 12, + "gf/Kodchasan/7" + ], + [ + "Kodchasan", + "SemiBold", + "Kodchasan-SemiBold", + 3, + 12, + "gf/Kodchasan/3" + ], + [ + "Kodchasan", + "SemiBold Italic", + "Kodchasan-SemiBoldItalic", + 3, + 12, + "gf/Kodchasan/10" + ], + [ + "Komika Axis", + "Regular", + "KomikaAxis", + 1, + 2, + "fs/Komika-Axis/0" + ], + [ + "Komika Display", + "Regular", + "KomikaDisplay", + 1, + 2, + "fs/Komika-Display/0" + ], + [ + "Komika Display", + "Bold", + "KomikaDisplay-Bold", + 1, + 2, + "fs/Komika-Display/1" + ], + [ + "Komika Display Kaps", + "Regular", + "KomikaDisplayKaps", + 1, + 2, + "fs/Komika-Display/2" + ], + [ + "Komika Display Kaps", + "Bold", + "KomikaDisplayKaps-Bold", + 1, + 2, + "fs/Komika-Display/3" + ], + [ + "Komika Hand", + "Regular", + "KomikaHand", + 1, + 2, + "fs/Komika-Hand/0" + ], + [ + "Komika Hand", + "Bold", + "KomikaHand-Bold", + 1, + 2, + "fs/Komika-Hand/2" + ], + [ + "Komika Hand", + "Bold Italic", + "KomikaHand-BoldItalic", + 1, + 2, + "fs/Komika-Hand/3" + ], + [ + "Komika Hand", + "Italic", + "KomikaHand-Italic", + 1, + 2, + "fs/Komika-Hand/1" + ], + [ + "Komika Parch", + "Regular", + "KomikaParch", + 1, + 2, + "fs/Komika-Hand/4" + ], + [ + "Komika Text", + "Regular", + "KomikaText", + 1, + 2, + "fs/Komika-Text/0" + ], + [ + "Komika Text", + "Bold", + "KomikaText-Bold", + 1, + 2, + "fs/Komika-Text/2" + ], + [ + "Komika Text", + "Bold Italic", + "KomikaText-BoldItalic", + 1, + 2, + "fs/Komika-Text/3" + ], + [ + "Komika Text", + "Italic", + "KomikaText-Italic", + 1, + 2, + "fs/Komika-Text/1" + ], + [ + "Komika Text Kaps", + "Regular", + "KomikaTextKaps", + 1, + 2, + "fs/Komika-Text/4" + ], + [ + "Komika Text Kaps", + "Bold", + "KomikaTextKaps-Bold", + 1, + 2, + "fs/Komika-Text/6" + ], + [ + "Komika Text Kaps", + "Bold Italic", + "KomikaTextKaps-BoldItalic", + 1, + 2, + "fs/Komika-Text/7" + ], + [ + "Komika Text Kaps", + "Italic", + "KomikaTextKaps-Italic", + 1, + 2, + "fs/Komika-Text/5" + ], + [ + "Komika Text Tight", + "Regular", + "KomikaTextTight", + 1, + 2, + "fs/Komika-Text/8" + ], + [ + "Komika Text Tight", + "Italic", + "KomikaTextTight-Italic", + 1, + 2, + "fs/Komika-Text/9" + ], + [ + "Komika Title", + "Regular", + "KomikaTitle", + 1, + 2, + "fs/Komika-Title/0" + ], + [ + "Komika Title - Axis", + "Regular", + "KomikaTitle-Axis", + 1, + 2, + "fs/Komika-Title/3" + ], + [ + "Komika Title - Kaps", + "Regular", + "KomikaTitle-Kaps", + 1, + 2, + "fs/Komika-Title/4" + ], + [ + "Komika Title - Paint", + "Regular", + "KomikaTitle-Paint", + 1, + 2, + "fs/Komika-Title/1" + ], + [ + "Komika Title - Wide", + "Regular", + "KomikaTitle-Wide", + 1, + 2, + "fs/Komika-Title/2" + ], + [ + "Kontrapunkt", + "Bold", + "KontrapunktBold", + 1, + 15, + "fs/Kontrapunkt/2" + ], + [ + "Kontrapunkt", + "Light", + "KontrapunktLight", + 1, + 15, + "fs/Kontrapunkt/0" + ], + [ + "Kontrapunkt", + "Light Italic", + "KontrapunktLightItalic", + 1, + 15, + "fs/Kontrapunkt/1" + ], + [ + "Kotta One", + "Regular", + "KottaOne-Regular", + 1, + 14, + "fs/kotta-one/0" + ], + [ + "Koulen", + "Regular", + "Koulen", + 0, + 4, + "gf/Koulen/0" + ], + [ + "Kranky", + "Regular", + "Kranky-Regular", + 1, + 4, + "gf/Kranky/0" + ], + [ + "Kreon", + "Bold", + "Kreon-Bold", + 1, + 15, + "fs/kreon/2" + ], + [ + "Kreon", + "Light", + "Kreon-Light", + 1, + 15, + "fs/kreon/0" + ], + [ + "Kreon", + "Regular", + "Kreon-Regular", + 1, + 15, + "fs/kreon/1" + ], + [ + "Kristi", + "Medium", + "Kristi", + 1, + 6, + "fs/kristi/0" + ], + [ + "Kristi", + "Regular", + "Kristi-Regular", + 1, + 6, + "gf/Kristi/0" + ], + [ + "Krona One", + "Regular", + "KronaOne-Regular", + 3, + 12, + "fs/krona-one/0" + ], + [ + "Krub", + "Bold", + "Krub-Bold", + 3, + 12, + "gf/Krub/4" + ], + [ + "Krub", + "Bold Italic", + "Krub-BoldItalic", + 3, + 12, + "gf/Krub/11" + ], + [ + "Krub", + "ExtraLight", + "Krub-ExtraLight", + 3, + 12, + "gf/Krub/0" + ], + [ + "Krub", + "ExtraLight Italic", + "Krub-ExtraLightItalic", + 3, + 12, + "gf/Krub/5" + ], + [ + "Krub", + "Italic", + "Krub-Italic", + 3, + 12, + "gf/Krub/8" + ], + [ + "Krub", + "Light", + "Krub-Light", + 3, + 12, + "gf/Krub/1" + ], + [ + "Krub", + "Light Italic", + "Krub-LightItalic", + 3, + 12, + "gf/Krub/6" + ], + [ + "Krub", + "Medium", + "Krub-Medium", + 3, + 12, + "gf/Krub/2" + ], + [ + "Krub", + "Medium Italic", + "Krub-MediumItalic", + 3, + 12, + "gf/Krub/9" + ], + [ + "Krub", + "Regular", + "Krub-Regular", + 3, + 12, + "gf/Krub/7" + ], + [ + "Krub", + "SemiBold", + "Krub-SemiBold", + 3, + 12, + "gf/Krub/3" + ], + [ + "Krub", + "SemiBold Italic", + "Krub-SemiBoldItalic", + 3, + 12, + "gf/Krub/10" + ], + [ + "Kumar One", + "Regular", + "KumarOne-Regular", + 1, + 4, + "gf/Kumar One/0" + ], + [ + "Kumar One Outline", + "Regular", + "KumarOneOutline-Regular", + 1, + 4, + "gf/Kumar One Outline/0" + ], + [ + "Kurale", + "Regular", + "Kurale-Regular", + 523, + 14, + "fs/kurale/0" + ], + [ + "Latin Modern Mono", + "10 Italic", + "LMMono10-Italic", + 3, + 17, + "fs/Latin-Modern-Mono/1" + ], + [ + "Latin Modern Mono", + "10 Regular", + "LMMono10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/0" + ], + [ + "Latin Modern Mono", + "Caps 10 Oblique", + "LMMonoCaps10-Oblique", + 3, + 17, + "fs/Latin-Modern-Mono/3" + ], + [ + "Latin Modern Mono", + "Caps 10 Regular", + "LMMonoCaps10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/2" + ], + [ + "Latin Modern Mono", + "Light 10 Bold", + "LMMonoLt10-Bold", + 3, + 17, + "fs/Latin-Modern-Mono/6" + ], + [ + "Latin Modern Mono", + "Light 10 Bold Oblique", + "LMMonoLt10-BoldOblique", + 3, + 17, + "fs/Latin-Modern-Mono/7" + ], + [ + "Latin Modern Mono", + "Light 10 Oblique", + "LMMonoLt10-Oblique", + 3, + 17, + "fs/Latin-Modern-Mono/5" + ], + [ + "Latin Modern Mono", + "Light 10 Regular", + "LMMonoLt10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/4" + ], + [ + "Latin Modern Mono", + "Light Cond 10 Oblique", + "LMMonoLtCond10-Oblique", + 3, + 17, + "fs/Latin-Modern-Mono/9" + ], + [ + "Latin Modern Mono", + "Light Cond 10 Regular", + "LMMonoLtCond10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/8" + ], + [ + "Latin Modern Mono", + "Prop 10 Oblique", + "LMMonoProp10-Oblique", + 3, + 17, + "fs/Latin-Modern-Mono/11" + ], + [ + "Latin Modern Mono", + "Prop 10 Regular", + "LMMonoProp10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/10" + ], + [ + "Latin Modern Mono", + "Prop Light 10 Bold", + "LMMonoPropLt10-Bold", + 3, + 17, + "fs/Latin-Modern-Mono/14" + ], + [ + "Latin Modern Mono", + "Prop Light 10 BoldOblique", + "LMMonoPropLt10-BoldOblique", + 3, + 17, + "fs/Latin-Modern-Mono/15" + ], + [ + "Latin Modern Mono", + "Prop Light 10 Oblique", + "LMMonoPropLt10-Oblique", + 3, + 17, + "fs/Latin-Modern-Mono/13" + ], + [ + "Latin Modern Mono", + "Prop Light 10 Regular", + "LMMonoPropLt10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/12" + ], + [ + "Latin Modern Mono", + "Slanted 10 Regular", + "LMMonoSlant10-Regular", + 3, + 17, + "fs/Latin-Modern-Mono/16" + ], + [ + "Latin Modern Roman", + "10 Bold", + "LMRoman10-Bold", + 3, + 14, + "fs/Latin-Modern-Roman/2" + ], + [ + "Latin Modern Roman", + "10 Bold Italic", + "LMRoman10-BoldItalic", + 3, + 14, + "fs/Latin-Modern-Roman/3" + ], + [ + "Latin Modern Roman", + "10 Italic", + "LMRoman10-Italic", + 3, + 14, + "fs/Latin-Modern-Roman/1" + ], + [ + "Latin Modern Roman", + "10 Regular", + "LMRoman10-Regular", + 3, + 14, + "fs/Latin-Modern-Roman/0" + ], + [ + "Latin Modern Roman", + "Caps 10 Oblique", + "LMRomanCaps10-Oblique", + 3, + 14, + "fs/Latin-Modern-Roman/7" + ], + [ + "Latin Modern Roman", + "Caps 10 Regular", + "LMRomanCaps10-Regular", + 3, + 14, + "fs/Latin-Modern-Roman/6" + ], + [ + "Latin Modern Roman", + "Demi 10 Oblique", + "LMRomanDemi10-Oblique", + 3, + 14, + "fs/Latin-Modern-Roman/9" + ], + [ + "Latin Modern Roman", + "Demi 10 Regular", + "LMRomanDemi10-Regular", + 3, + 14, + "fs/Latin-Modern-Roman/8" + ], + [ + "Latin Modern Roman", + "Dunhill 10 Oblique", + "LMRomanDunh10-Oblique", + 3, + 14, + "fs/Latin-Modern-Roman/11" + ], + [ + "Latin Modern Roman", + "Dunhill 10 Regular", + "LMRomanDunh10-Regular", + 3, + 14, + "fs/Latin-Modern-Roman/10" + ], + [ + "Latin Modern Roman", + "Slanted 10 Bold", + "LMRomanSlant10-Bold", + 3, + 14, + "fs/Latin-Modern-Roman/5" + ], + [ + "Latin Modern Roman", + "Slanted 10 Regular", + "LMRomanSlant10-Regular", + 3, + 14, + "fs/Latin-Modern-Roman/4" + ], + [ + "Latin Modern Sans", + "10 Bold", + "LMSans10-Bold", + 3, + 12, + "fs/Latin-Modern-Sans/2" + ], + [ + "Latin Modern Sans", + "10 Bold Oblique", + "LMSans10-BoldOblique", + 3, + 12, + "fs/Latin-Modern-Sans/3" + ], + [ + "Latin Modern Sans", + "10 Oblique", + "LMSans10-Oblique", + 3, + 12, + "fs/Latin-Modern-Sans/1" + ], + [ + "Latin Modern Sans", + "10 Regular", + "LMSans10-Regular", + 3, + 12, + "fs/Latin-Modern-Sans/0" + ], + [ + "Latin Modern Sans", + "Demi Cond 10 Oblique", + "LMSansDemiCond10-Oblique", + 3, + 12, + "fs/Latin-Modern-Sans/5" + ], + [ + "Latin Modern Sans", + "Demi Cond 10 Regular", + "LMSansDemiCond10-Regular", + 3, + 12, + "fs/Latin-Modern-Sans/4" + ], + [ + "La Belle Aurore", + "Regular", + "LaBelleAurore", + 3, + 6, + "gf/La Belle Aurore/0" + ], + [ + "Labor Union", + "Regular", + "LaborUnion-Regular", + 11, + 14, + "fs/labor-union/1" + ], + [ + "Labor Union", + "Small", + "LaborUnion-Small", + 11, + 14, + "fs/labor-union/0" + ], + [ + "Lack", + "Italic", + "Lack-Italic", + 15, + 12, + "fs/lack/1" + ], + [ + "Lack Line", + "Italic", + "Lack-Line-Italic", + 15, + 12, + "fs/lack/3" + ], + [ + "Lack Line", + "Regular", + "Lack-Line-Regular", + 15, + 12, + "fs/lack/2" + ], + [ + "Lack", + "Regular", + "Lack-Regular", + 15, + 12, + "fs/lack/0" + ], + [ + "Laconic", + "Bold", + "Laconic-Bold", + 1, + 4, + "fs/laconic/2" + ], + [ + "Laconic", + "Light", + "Laconic-Light", + 1, + 4, + "fs/laconic/0" + ], + [ + "Laconic", + "Regular", + "Laconic-Regular", + 1, + 4, + "fs/laconic/1" + ], + [ + "Laconic", + "Shadow", + "Laconic-Shadow", + 1, + 4, + "fs/laconic/3" + ], + [ + "Lacuna Italic", + "Regular", + "LacunaItalic", + 1, + 12, + "fs/Lacuna-Regular/1" + ], + [ + "Lacuna Regular", + "Regular", + "LacunaRegular", + 1, + 12, + "fs/Lacuna-Regular/0" + ], + [ + "Laila", + "Bold", + "Laila-Bold", + 513, + 14, + "gf/Laila/3" + ], + [ + "Laila", + "Light", + "Laila-Light", + 513, + 14, + "gf/Laila/0" + ], + [ + "Laila", + "Medium", + "Laila-Medium", + 513, + 14, + "gf/Laila/1" + ], + [ + "Laila", + "Regular", + "Laila-Regular", + 513, + 14, + "gf/Laila/4" + ], + [ + "Laila", + "SemiBold", + "Laila-SemiBold", + 513, + 14, + "gf/Laila/2" + ], + [ + "LakeshoreDrive", + "Regular", + "LakeshoreDrive", + 1, + 11, + "fs/LakeshoreDrive/0" + ], + [ + "Lakki Reddy", + "Regular", + "LakkiReddy", + 1, + 6, + "gf/Lakki Reddy/0" + ], + [ + "Lalezar", + "Regular", + "Lalezar-Regular", + 3, + 4, + "fs/lalezar/0" + ], + [ + "Lancelot", + "Regular", + "Lancelot", + 1, + 4, + "gf/Lancelot/0" + ], + [ + "Landliebe", + "Regular", + "Landliebe", + 0, + 13, + "fs/Landliebe/0" + ], + [ + "Lane - Narrow", + "Regular", + "Lane-Narrow", + 1, + 4, + "fs/Lane/0" + ], + [ + "Lane - Posh", + "Regular", + "Lane-Posh", + 1, + 4, + "fs/Lane/2" + ], + [ + "Lane - Upper", + "Regular", + "Lane-Upper", + 1, + 4, + "fs/Lane/1" + ], + [ + "Langdon", + "Regular", + "Langdon", + 0, + 4, + "fs/langdon/0" + ], + [ + "Lapsus Pro", + "Bold", + "LapsusPro-Bold", + 15, + 4, + "fs/lapsus-pro/0" + ], + [ + "Lateef", + "Regular", + "Lateef", + 33, + 6, + "gf/Lateef/0" + ], + [ + "Latinia", + "Regular", + "Latinia-Normal", + 1, + 14, + "fs/Latinia/0" + ], + [ + "LatiniaBlack", + "Regular", + "LatiniaBlack", + 1, + 14, + "fs/Latinia/1" + ], + [ + "Lato", + "Black", + "Lato-Black", + 15, + 12, + "fs/lato/16" + ], + [ + "Lato", + "Black Italic", + "Lato-BlackItalic", + 15, + 12, + "fs/lato/17" + ], + [ + "Lato", + "Bold", + "Lato-Bold", + 15, + 12, + "fs/lato/12" + ], + [ + "Lato", + "Bold Italic", + "Lato-BoldItalic", + 15, + 12, + "fs/lato/13" + ], + [ + "Lato", + "Hairline", + "Lato-Hairline", + 15, + 12, + "fs/lato/0" + ], + [ + "Lato", + "Hairline Italic", + "Lato-HairlineItalic", + 15, + 12, + "fs/lato/1" + ], + [ + "Lato", + "Heavy", + "Lato-Heavy", + 15, + 12, + "fs/lato/14" + ], + [ + "Lato", + "Heavy Italic", + "Lato-HeavyItalic", + 15, + 12, + "fs/lato/15" + ], + [ + "Lato", + "Italic", + "Lato-Italic", + 15, + 12, + "fs/lato/7" + ], + [ + "Lato", + "Light", + "Lato-Light", + 15, + 12, + "fs/lato/4" + ], + [ + "Lato", + "Light Italic", + "Lato-LightItalic", + 15, + 12, + "fs/lato/5" + ], + [ + "Lato", + "Medium", + "Lato-Medium", + 15, + 12, + "fs/lato/8" + ], + [ + "Lato", + "Medium Italic", + "Lato-MediumItalic", + 15, + 12, + "fs/lato/9" + ], + [ + "Lato", + "Regular", + "Lato-Regular", + 15, + 12, + "fs/lato/6" + ], + [ + "Lato", + "Semibold", + "Lato-Semibold", + 15, + 12, + "fs/lato/10" + ], + [ + "Lato", + "Semibold Italic", + "Lato-SemiboldItalic", + 15, + 12, + "fs/lato/11" + ], + [ + "Lato", + "Thin", + "Lato-Thin", + 15, + 12, + "fs/lato/2" + ], + [ + "Lato", + "Thin Italic", + "Lato-ThinItalic", + 15, + 12, + "fs/lato/3" + ], + [ + "La unica", + "Regular", + "Launica", + 0, + 4, + "fs/la-unica/0" + ], + [ + "Leafy glade", + "Regular", + "Leafyglade", + 0, + 8, + "fs/Leafy-glade/0" + ], + [ + "Leafyshade", + "Regular", + "Leafyshade", + 0, + 8, + "fs/Leafy-glade/1" + ], + [ + "League Gothic", + "Condensed Italic", + "LeagueGothic-CondensedItalic", + 3, + 4, + "fs/League-Gothic/3" + ], + [ + "League Gothic", + "Condensed Regular", + "LeagueGothic-CondensedRegular", + 3, + 4, + "fs/League-Gothic/2" + ], + [ + "League Gothic", + "Italic", + "LeagueGothic-Italic", + 3, + 4, + "fs/League-Gothic/1" + ], + [ + "League Gothic", + "Regular", + "LeagueGothic-Regular", + 3, + 4, + "fs/League-Gothic/0" + ], + [ + "League Script", + "League Script", + "LeagueScript", + 1, + 6, + "gf/League Script/0" + ], + [ + "League Script Thin", + "League Script", + "LeagueScriptThin-LeagueScript", + 0, + 13, + "fs/league-script-1/0" + ], + [ + "League Script Thin", + "League Script", + "LeagueScriptThin-Regular", + 0, + 13, + "fs/league-script/0" + ], + [ + "League Spartan", + "Bold", + "LeagueSpartan-Bold", + 1, + 12, + "fs/league-spartan/0" + ], + [ + "Leander", + "Regular", + "Leander", + 0, + 4, + "fs/leander/0" + ], + [ + "LeckerliOne", + "Regular", + "LeckerliOne", + 1, + 6, + "fs/leckerli-one/0" + ], + [ + "Leckerli One", + "Regular", + "LeckerliOne-Regular", + 1, + 6, + "gf/Leckerli One/0" + ], + [ + "Ledger", + "Regular", + "Ledger-Regular", + 11, + 14, + "gf/Ledger/0" + ], + [ + "Lekton", + "Bold", + "Lekton-Bold", + 3, + 7, + "fs/lekton/2" + ], + [ + "Lekton", + "Italic", + "Lekton-Italic", + 0, + 7, + "fs/lekton/1" + ], + [ + "Lekton", + "Regular", + "Lekton-Regular", + 3, + 7, + "fs/lekton/0" + ], + [ + "Lemiesz", + "Regular", + "Lemiesz", + 0, + 11, + "fs/Lemiesz/0" + ], + [ + "Lemon", + "Regular", + "Lemon-Regular", + 1, + 4, + "gf/Lemon/0" + ], + [ + "LemonChicken", + "Regular", + "LemonChicken", + 0, + 11, + "fs/LemonChicken/0" + ], + [ + "Lemonada", + "Bold", + "Lemonada-Bold", + 3, + 4, + "gf/Lemonada/2" + ], + [ + "Lemonada Light", + "Regular", + "Lemonada-Light", + 3, + 4, + "gf/Lemonada/0" + ], + [ + "Lemonada", + "Regular", + "Lemonada-Regular", + 3, + 4, + "gf/Lemonada/3" + ], + [ + "Lemonada SemiBold", + "Regular", + "Lemonada-SemiBold", + 3, + 4, + "gf/Lemonada/1" + ], + [ + "Liberation Mono", + "Regular", + "LiberationMono", + 31, + 7, + "fs/liberation-mono/0" + ], + [ + "Liberation Mono", + "Bold", + "LiberationMono-Bold", + 31, + 7, + "fs/liberation-mono/2" + ], + [ + "Liberation Mono", + "Bold Italic", + "LiberationMono-BoldItalic", + 31, + 7, + "fs/liberation-mono/3" + ], + [ + "Liberation Mono", + "Italic", + "LiberationMono-Italic", + 31, + 7, + "fs/liberation-mono/1" + ], + [ + "Liberation Sans", + "Regular", + "LiberationSans", + 31, + 12, + "fs/liberation-sans/0" + ], + [ + "Liberation Sans", + "Bold", + "LiberationSans-Bold", + 31, + 12, + "fs/liberation-sans/2" + ], + [ + "Liberation Sans", + "Bold Italic", + "LiberationSans-BoldItalic", + 31, + 12, + "fs/liberation-sans/3" + ], + [ + "Liberation Sans", + "Italic", + "LiberationSans-Italic", + 31, + 12, + "fs/liberation-sans/1" + ], + [ + "Liberation Serif", + "Regular", + "LiberationSerif", + 31, + 14, + "fs/liberation-serif/0" + ], + [ + "Liberation Serif", + "Bold", + "LiberationSerif-Bold", + 31, + 14, + "fs/liberation-serif/2" + ], + [ + "Liberation Serif", + "Bold Italic", + "LiberationSerif-BoldItalic", + 31, + 14, + "fs/liberation-serif/3" + ], + [ + "Liberation Serif", + "Italic", + "LiberationSerif-Italic", + 31, + 14, + "fs/liberation-serif/1" + ], + [ + "Libre Barcode", + "128", + "LibreBarcode128-Regular", + 0, + 4, + "gf/Libre Barcode 128/0" + ], + [ + "Libre Barcode", + "128 Text", + "LibreBarcode128Text-Regular", + 0, + 4, + "gf/Libre Barcode 128 Text/0" + ], + [ + "Libre Barcode", + "39", + "LibreBarcode39-Regular", + 0, + 4, + "gf/Libre Barcode 39/0" + ], + [ + "Libre Barcode", + "39 Extended", + "LibreBarcode39Extended-Regular", + 0, + 4, + "gf/Libre Barcode 39 Extended/0" + ], + [ + "Libre Barcode", + "39 Extended Text", + "LibreBarcode39ExtendedText-Regular", + 0, + 4, + "gf/Libre Barcode 39 Extended Text/0" + ], + [ + "Libre Barcode", + "39 Text", + "LibreBarcode39Text-Regular", + 0, + 4, + "gf/Libre Barcode 39 Text/0" + ], + [ + "Libre Baskerville", + "Bold", + "LibreBaskerville-Bold", + 3, + 14, + "fs/libre-baskerville/2" + ], + [ + "Libre Baskerville", + "Italic", + "LibreBaskerville-Italic", + 3, + 14, + "fs/libre-baskerville/1" + ], + [ + "Libre Baskerville", + "Regular", + "LibreBaskerville-Regular", + 3, + 14, + "fs/libre-baskerville/0" + ], + [ + "Libre Caslon", + "Display", + "LibreCaslonDisplay-Regular", + 3, + 14, + "fs/libre-caslon/3" + ], + [ + "Libre Caslon", + "Text Bold", + "LibreCaslonText-Bold", + 3, + 14, + "fs/libre-caslon/2" + ], + [ + "Libre Caslon", + "Text Italic", + "LibreCaslonText-Italic", + 3, + 14, + "fs/libre-caslon/1" + ], + [ + "Libre Caslon", + "Text", + "LibreCaslonText-Regular", + 3, + 14, + "fs/libre-caslon/0" + ], + [ + "Libre Franklin", + "Black", + "LibreFranklin-Black", + 3, + 12, + "fs/libre-franklin/16" + ], + [ + "Libre Franklin", + "Black Italic", + "LibreFranklin-BlackItalic", + 3, + 12, + "fs/libre-franklin/17" + ], + [ + "Libre Franklin", + "Bold", + "LibreFranklin-Bold", + 3, + 12, + "fs/libre-franklin/12" + ], + [ + "Libre Franklin", + "Bold Italic", + "LibreFranklin-BoldItalic", + 3, + 12, + "fs/libre-franklin/13" + ], + [ + "Libre Franklin", + "ExtraBold", + "LibreFranklin-ExtraBold", + 3, + 12, + "fs/libre-franklin/14" + ], + [ + "Libre Franklin", + "ExtraBold Italic", + "LibreFranklin-ExtraBoldItalic", + 3, + 12, + "fs/libre-franklin/15" + ], + [ + "Libre Franklin", + "ExtraLight", + "LibreFranklin-ExtraLight", + 3, + 12, + "fs/libre-franklin/2" + ], + [ + "Libre Franklin", + "ExtraLight Italic", + "LibreFranklin-ExtraLightItalic", + 3, + 12, + "fs/libre-franklin/3" + ], + [ + "Libre Franklin", + "Italic", + "LibreFranklin-Italic", + 3, + 12, + "fs/libre-franklin/7" + ], + [ + "Libre Franklin", + "Light", + "LibreFranklin-Light", + 3, + 12, + "fs/libre-franklin/4" + ], + [ + "Libre Franklin", + "Light Italic", + "LibreFranklin-LightItalic", + 3, + 12, + "fs/libre-franklin/5" + ], + [ + "Libre Franklin", + "Medium", + "LibreFranklin-Medium", + 3, + 12, + "fs/libre-franklin/8" + ], + [ + "Libre Franklin", + "Medium Italic", + "LibreFranklin-MediumItalic", + 3, + 12, + "fs/libre-franklin/9" + ], + [ + "Libre Franklin", + "Regular", + "LibreFranklin-Regular", + 3, + 12, + "fs/libre-franklin/6" + ], + [ + "Libre Franklin", + "SemiBold", + "LibreFranklin-SemiBold", + 3, + 12, + "fs/libre-franklin/10" + ], + [ + "Libre Franklin", + "SemiBold Italic", + "LibreFranklin-SemiBoldItalic", + 3, + 12, + "fs/libre-franklin/11" + ], + [ + "Libre Franklin", + "Thin", + "LibreFranklin-Thin", + 3, + 12, + "fs/libre-franklin/0" + ], + [ + "Libre Franklin", + "Thin Italic", + "LibreFranklin-ThinItalic", + 3, + 12, + "fs/libre-franklin/1" + ], + [ + "Life Savers", + "Bold", + "LifeSavers-Bold", + 3, + 6, + "fs/life-savers/1" + ], + [ + "Life Savers", + "Regular", + "LifeSavers-Regular", + 3, + 6, + "fs/life-savers/0" + ], + [ + "Lilac Malaria", + "Regular", + "LilacMalaria", + 0, + 4, + "fs/Lilac-Malaria/0" + ], + [ + "Lilita One", + "Regular", + "LilitaOne", + 1, + 4, + "gf/Lilita One/0" + ], + [ + "Lilly", + "Regular", + "Lilly", + 1, + 6, + "fs/Lilly/0" + ], + [ + "Lily Script One", + "Regular", + "LilyScriptOne-Regular", + 1, + 4, + "gf/Lily Script One/0" + ], + [ + "Limelight", + "Regular", + "Limelight", + 1, + 11, + "fs/limelight/0" + ], + [ + "Limelight", + "Regular", + "Limelight-Regular", + 3, + 4, + "gf/Limelight/0" + ], + [ + "Linux Biolinum O", + "Regular", + "LinBiolinumO", + 31, + 14, + "fs/linux-biolinum/0" + ], + [ + "Linux Biolinum O", + "Bold", + "LinBiolinumOB", + 31, + 14, + "fs/linux-biolinum/2" + ], + [ + "Linux Biolinum O", + "Italic", + "LinBiolinumOI", + 31, + 14, + "fs/linux-biolinum/1" + ], + [ + "Linden Hill", + "Regular", + "LindenHill", + 3, + 15, + "fs/linden-hill/0" + ], + [ + "Linden Hill", + "Italic", + "LindenHill-Italic", + 3, + 15, + "fs/linden-hill/1" + ], + [ + "Linden Hill", + "Regular", + "LindenHill-Regular", + 3, + 14, + "gf/Linden Hill/0" + ], + [ + "Linguistics Pro", + "Bold", + "LinguisticsPro-Bold", + 15, + 14, + "fs/linguistics-pro/2" + ], + [ + "Linguistics Pro", + "Bold Italic", + "LinguisticsPro-BoldItalic", + 15, + 14, + "fs/linguistics-pro/3" + ], + [ + "Linguistics Pro", + "Italic", + "LinguisticsPro-Italic", + 15, + 14, + "fs/linguistics-pro/1" + ], + [ + "Linguistics Pro", + "Regular", + "LinguisticsPro-Regular", + 15, + 14, + "fs/linguistics-pro/0" + ], + [ + "Lintsec", + "Regular", + "Lintsec", + 0, + 16, + "fs/Lintsec/0" + ], + [ + "Little Trouble Girl BV", + "Regular", + "LittleTroubleGirlBV", + 1, + 4, + "fs/Little-Trouble-Girl/0" + ], + [ + "Loaded", + "Regular", + "Loaded", + 0, + 4, + "fs/loaded/0" + ], + [ + "Lobster", + "Regular", + "Lobster-Regular", + 11, + 4, + "gf/Lobster/0" + ], + [ + "Lobster 1.3", + "Regular", + "Lobster1.3", + 1, + 13, + "fs/Lobster/0" + ], + [ + "Lobster Two", + "Regular", + "LobsterTwo", + 1, + 13, + "fs/lobster-two/0" + ], + [ + "Lobster Two", + "Bold", + "LobsterTwo-Bold", + 1, + 13, + "fs/lobster-two/2" + ], + [ + "Lobster Two", + "Bold Italic", + "LobsterTwo-BoldItalic", + 1, + 13, + "fs/lobster-two/3" + ], + [ + "Lobster Two", + "Italic", + "LobsterTwo-Italic", + 1, + 13, + "fs/lobster-two/1" + ], + [ + "Londrina", + "Outline", + "LondrinaOutline-Regular", + 1, + 4, + "fs/londrina/2" + ], + [ + "Londrina", + "Shadow", + "LondrinaShadow-Regular", + 1, + 4, + "fs/londrina/3" + ], + [ + "Londrina", + "Sketch", + "LondrinaSketch-Regular", + 1, + 4, + "gf/Londrina Sketch/0" + ], + [ + "Londrina", + "Sketche", + "LondrinaSketche-Regular", + 1, + 4, + "fs/londrina/1" + ], + [ + "Londrina", + "Solid Black", + "LondrinaSolid-Black", + 1, + 4, + "gf/Londrina Solid/2" + ], + [ + "Londrina", + "Solid Light", + "LondrinaSolid-Light", + 1, + 4, + "gf/Londrina Solid/1" + ], + [ + "Londrina", + "Solid", + "LondrinaSolid-Regular", + 1, + 4, + "fs/londrina/0" + ], + [ + "Londrina", + "Solid Thin", + "LondrinaSolid-Thin", + 1, + 4, + "gf/Londrina Solid/0" + ], + [ + "Lora", + "Bold", + "Lora-Bold", + 9, + 14, + "fs/lora/2" + ], + [ + "Lora", + "Bold Italic", + "Lora-BoldItalic", + 9, + 14, + "fs/lora/3" + ], + [ + "Lora", + "Italic", + "Lora-Italic", + 9, + 14, + "fs/lora/1" + ], + [ + "Lora", + "Regular", + "Lora-Regular", + 9, + 14, + "fs/lora/0" + ], + [ + "Love Ya Like A Sister", + "Regular", + "LoveYaLikeASister-Regular", + 3, + 4, + "gf/Love Ya Like A Sister/0" + ], + [ + "Loved by the King", + "Regular", + "LovedbytheKing", + 3, + 6, + "gf/Loved by the King/0" + ], + [ + "Lovers Quarrel", + "Regular", + "LoversQuarrel-Regular", + 1, + 13, + "fs/lovers-quarrel/0" + ], + [ + "Lucien Schoenschriftv CAT", + "Regular", + "LucienSchoenschriftvCAT", + 3, + 13, + "fs/lucien-schoenschriftv-cat/0" + ], + [ + "Luckiest Guy", + "Regular", + "LuckiestGuy-Regular", + 3, + 4, + "fs/luckiest-guy/0" + ], + [ + "Lunchtype", + "22", + "Lunchtype", + 1, + 12, + "fs/lunchtype/5" + ], + [ + "Lunchtype", + "25 Condensed Light", + "Lunchtype-CondensedLight", + 1, + 12, + "fs/lunchtype/0" + ], + [ + "Lunchtype", + "25 Condensed Medium", + "Lunchtype-CondensedMedium", + 1, + 12, + "fs/lunchtype/2" + ], + [ + "Lunchtype", + "25 Condensed Regular", + "Lunchtype-CondensedRegular", + 1, + 12, + "fs/lunchtype/1" + ], + [ + "Lunchtype", + "24 Expanded Light", + "Lunchtype-ExpandedLight", + 1, + 12, + "fs/lunchtype/9" + ], + [ + "Lunchtype", + "24 Expanded Medium", + "Lunchtype-ExpandedMedium", + 1, + 12, + "fs/lunchtype/10" + ], + [ + "Lunchtype", + "24 Expanded Regular", + "Lunchtype-ExpandedRegular", + 1, + 12, + "fs/lunchtype/11" + ], + [ + "Lunchtype", + "23 Italic", + "Lunchtype-Italic", + 1, + 12, + "fs/lunchtype/6" + ], + [ + "Lunchtype", + "22 Light", + "Lunchtype-Light", + 1, + 12, + "fs/lunchtype/3" + ], + [ + "Lunchtype", + "23 Light Italic", + "Lunchtype-LightItalic", + 1, + 12, + "fs/lunchtype/4" + ], + [ + "Lunchtype", + "22 Medium", + "Lunchtype-Medium", + 1, + 12, + "fs/lunchtype/7" + ], + [ + "Lunchtype", + "23 Medium Italic", + "Lunchtype-MediumItalic", + 1, + 12, + "fs/lunchtype/8" + ], + [ + "Lusitana", + "Regular", + "Lusitana", + 1, + 14, + "gf/Lusitana/1" + ], + [ + "Lusitana", + "Bold", + "Lusitana-Bold", + 1, + 14, + "gf/Lusitana/0" + ], + [ + "Lustria", + "Regular", + "Lustria-Regular", + 1, + 14, + "gf/Lustria/0" + ], + [ + "Luxi Mono", + "Regular", + "LuxiMono", + 3, + 7, + "fs/Luxi-Mono/0" + ], + [ + "Luxi Mono", + "Bold", + "LuxiMono-Bold", + 3, + 7, + "fs/Luxi-Mono/2" + ], + [ + "Luxi Mono", + "Bold Oblique", + "LuxiMono-BoldOblique", + 3, + 7, + "fs/Luxi-Mono/3" + ], + [ + "Luxi Mono", + "Oblique", + "LuxiMono-Oblique", + 3, + 7, + "fs/Luxi-Mono/1" + ], + [ + "Luxi Sans", + "Regular", + "LuxiSans", + 3, + 12, + "fs/Luxi-Sans/0" + ], + [ + "Luxi Sans", + "Bold", + "LuxiSans-Bold", + 3, + 12, + "fs/Luxi-Sans/2" + ], + [ + "Luxi Sans", + "Bold Oblique", + "LuxiSans-BoldOblique", + 3, + 12, + "fs/Luxi-Sans/3" + ], + [ + "Luxi Sans", + "Oblique", + "LuxiSans-Oblique", + 3, + 12, + "fs/Luxi-Sans/1" + ], + [ + "Luxi Serif", + "Regular", + "LuxiSerif", + 3, + 14, + "fs/Luxi-Serif/0" + ], + [ + "Luxi Serif", + "Bold", + "LuxiSerif-Bold", + 3, + 14, + "fs/Luxi-Serif/2" + ], + [ + "Luxi Serif", + "Bold Oblique", + "LuxiSerif-BoldOblique", + 3, + 14, + "fs/Luxi-Serif/3" + ], + [ + "Luxi Serif", + "Oblique", + "LuxiSerif-Oblique", + 3, + 14, + "fs/Luxi-Serif/1" + ], + [ + "Macondo", + "Regular", + "Macondo-Regular", + 1, + 4, + "fs/macondo/0" + ], + [ + "Macondo Swash Caps", + "Regular", + "MacondoSwashCaps-Regular", + 1, + 4, + "fs/macondo/1" + ], + [ + "Mada", + "Black", + "Mada-Black", + 1, + 12, + "gf/Mada/5" + ], + [ + "Mada", + "Bold", + "Mada-Bold", + 1, + 12, + "gf/Mada/4" + ], + [ + "Mada", + "ExtraLight", + "Mada-ExtraLight", + 1, + 12, + "gf/Mada/0" + ], + [ + "Mada", + "Light", + "Mada-Light", + 1, + 12, + "gf/Mada/1" + ], + [ + "Mada", + "Medium", + "Mada-Medium", + 1, + 12, + "gf/Mada/2" + ], + [ + "Mada", + "Regular", + "Mada-Regular", + 1, + 12, + "gf/Mada/6" + ], + [ + "Mada", + "SemiBold", + "Mada-SemiBold", + 1, + 12, + "gf/Mada/3" + ], + [ + "MadisonSquare", + "Incised", + "MadisonSquareIncised", + 1, + 11, + "fs/MadisonSquare/0" + ], + [ + "Magenta", + "Regular", + "Magenta", + 1, + 4, + "fs/magenta/0" + ], + [ + "Magra", + "Regular", + "Magra", + 3, + 12, + "fs/magra/0" + ], + [ + "Magra", + "Bold", + "Magra-Bold", + 3, + 12, + "fs/magra/1" + ], + [ + "Maiden Orange", + "Regular", + "MaidenOrange-Regular", + 3, + 4, + "fs/maiden-orange/0" + ], + [ + "Maitree", + "Regular", + "Maitree", + 3, + 14, + "gf/Maitree/5" + ], + [ + "Maitree", + "Bold", + "Maitree-Bold", + 3, + 14, + "gf/Maitree/4" + ], + [ + "Maitree", + "ExtraLight", + "Maitree-ExtraLight", + 3, + 14, + "gf/Maitree/0" + ], + [ + "Maitree", + "Light", + "Maitree-Light", + 3, + 14, + "gf/Maitree/1" + ], + [ + "Maitree", + "Medium", + "Maitree-Medium", + 3, + 14, + "gf/Maitree/2" + ], + [ + "Maitree", + "SemiBold", + "Maitree-SemiBold", + 3, + 14, + "gf/Maitree/3" + ], + [ + "Major Snafu", + "Regular", + "MajorSnafu", + 0, + 16, + "fs/Major-Snafu/0" + ], + [ + "Mako", + "Regular", + "Mako", + 1, + 12, + "fs/mako/0" + ], + [ + "Mali", + "Bold", + "Mali-Bold", + 3, + 6, + "gf/Mali/4" + ], + [ + "Mali", + "Bold Italic", + "Mali-BoldItalic", + 3, + 6, + "gf/Mali/11" + ], + [ + "Mali", + "ExtraLight", + "Mali-ExtraLight", + 3, + 6, + "gf/Mali/0" + ], + [ + "Mali", + "ExtraLight Italic", + "Mali-ExtraLightItalic", + 3, + 6, + "gf/Mali/5" + ], + [ + "Mali", + "Italic", + "Mali-Italic", + 3, + 6, + "gf/Mali/8" + ], + [ + "Mali", + "Light", + "Mali-Light", + 3, + 6, + "gf/Mali/1" + ], + [ + "Mali", + "Light Italic", + "Mali-LightItalic", + 3, + 6, + "gf/Mali/6" + ], + [ + "Mali", + "Medium", + "Mali-Medium", + 3, + 6, + "gf/Mali/2" + ], + [ + "Mali", + "Medium Italic", + "Mali-MediumItalic", + 3, + 6, + "gf/Mali/9" + ], + [ + "Mali", + "Regular", + "Mali-Regular", + 3, + 6, + "gf/Mali/7" + ], + [ + "Mali", + "SemiBold", + "Mali-SemiBold", + 3, + 6, + "gf/Mali/3" + ], + [ + "Mali", + "SemiBold Italic", + "Mali-SemiBoldItalic", + 3, + 6, + "gf/Mali/10" + ], + [ + "Mallanna", + "Regular", + "Mallanna", + 0, + 12, + "gf/Mallanna/0" + ], + [ + "Mandali", + "Regular", + "Mandali", + 0, + 12, + "gf/Mandali/0" + ], + [ + "Manrope", + "Bold", + "Manrope-Bold", + 11, + 12, + "fs/manrope/5" + ], + [ + "Manrope", + "Light", + "Manrope-Light", + 11, + 12, + "fs/manrope/1" + ], + [ + "Manrope", + "Medium", + "Manrope-Medium", + 11, + 12, + "fs/manrope/3" + ], + [ + "Manrope", + "Regular", + "Manrope-Regular", + 11, + 12, + "fs/manrope/2" + ], + [ + "Manrope", + "Semibold", + "Manrope-Semibold", + 11, + 12, + "fs/manrope/4" + ], + [ + "Manrope", + "Thin", + "Manrope-Thin", + 11, + 12, + "fs/manrope/0" + ], + [ + "Manuale", + "Bold", + "Manuale-Bold", + 3, + 14, + "fs/manuale/6" + ], + [ + "Manuale", + "Bold Italic", + "Manuale-BoldItalic", + 3, + 14, + "fs/manuale/7" + ], + [ + "Manuale", + "Italic", + "Manuale-Italic", + 3, + 14, + "fs/manuale/1" + ], + [ + "Manuale", + "Medium", + "Manuale-Medium", + 3, + 14, + "fs/manuale/2" + ], + [ + "Manuale", + "Medium Italic", + "Manuale-MediumItalic", + 3, + 14, + "fs/manuale/3" + ], + [ + "Manuale", + "Regular", + "Manuale-Regular", + 3, + 14, + "fs/manuale/0" + ], + [ + "Manuale", + "SemiBold", + "Manuale-SemiBold", + 3, + 14, + "fs/manuale/4" + ], + [ + "Manuale", + "SemiBold Italic", + "Manuale-SemiBoldItalic", + 3, + 14, + "fs/manuale/5" + ], + [ + "Marcellus", + "Regular", + "Marcellus-Regular", + 3, + 14, + "gf/Marcellus/0" + ], + [ + "Marcellus SC", + "Regular", + "MarcellusSC-Regular", + 3, + 14, + "gf/Marcellus SC/0" + ], + [ + "Marck Script", + "Regular", + "MarckScript-Regular", + 11, + 6, + "gf/Marck Script/0" + ], + [ + "Margarine", + "Regular", + "Margarine-Regular", + 3, + 4, + "gf/Margarine/0" + ], + [ + "Markazi Text", + "Bold", + "MarkaziText-Bold", + 3, + 14, + "fs/markazi-text/3" + ], + [ + "Markazi Text", + "Medium", + "MarkaziText-Medium", + 3, + 14, + "fs/markazi-text/2" + ], + [ + "Markazi Text", + "Regular", + "MarkaziText-Regular", + 3, + 14, + "gf/Markazi Text/0" + ], + [ + "Markazi Text", + "SemiBold", + "MarkaziText-SemiBold", + 3, + 14, + "fs/markazi-text/4" + ], + [ + "Marko One", + "Regular", + "MarkoOne-Regular", + 1, + 14, + "gf/Marko One/0" + ], + [ + "Marmelad", + "Regular", + "Marmelad-Regular", + 9, + 12, + "gf/Marmelad/0" + ], + [ + "Martel", + "Bold", + "Martel-Bold", + 515, + 15, + "fs/martel/4" + ], + [ + "Martel", + "DemiBold", + "Martel-DemiBold", + 515, + 15, + "fs/martel/3" + ], + [ + "Martel", + "ExtraBold", + "Martel-ExtraBold", + 515, + 15, + "fs/martel/5" + ], + [ + "Martel", + "Heavy", + "Martel-Heavy", + 515, + 15, + "fs/martel/6" + ], + [ + "Martel", + "Light", + "Martel-Light", + 515, + 15, + "fs/martel/1" + ], + [ + "Martel", + "Regular", + "Martel-Regular", + 515, + 15, + "fs/martel/2" + ], + [ + "Martel", + "UltraLight", + "Martel-UltraLight", + 515, + 15, + "fs/martel/0" + ], + [ + "Martel Sans", + "Black", + "MartelSans-Black", + 515, + 12, + "gf/Martel Sans/5" + ], + [ + "Martel Sans", + "Bold", + "MartelSans-Bold", + 515, + 12, + "fs/martel-sans/4" + ], + [ + "Martel Sans", + "DemiBold", + "MartelSans-DemiBold", + 515, + 12, + "fs/martel-sans/3" + ], + [ + "Martel Sans", + "ExtraBold", + "MartelSans-ExtraBold", + 515, + 12, + "fs/martel-sans/5" + ], + [ + "Martel Sans", + "ExtraLight", + "MartelSans-ExtraLight", + 515, + 12, + "gf/Martel Sans/0" + ], + [ + "Martel Sans", + "Heavy", + "MartelSans-Heavy", + 515, + 12, + "fs/martel-sans/6" + ], + [ + "Martel Sans", + "Light", + "MartelSans-Light", + 515, + 12, + "fs/martel-sans/1" + ], + [ + "Martel Sans", + "Regular", + "MartelSans-Regular", + 515, + 12, + "fs/martel-sans/2" + ], + [ + "Martel Sans", + "SemiBold", + "MartelSans-SemiBold", + 515, + 12, + "gf/Martel Sans/2" + ], + [ + "Martel Sans", + "UltraLight", + "MartelSans-UltraLight", + 515, + 12, + "fs/martel-sans/0" + ], + [ + "Marvel", + "Bold", + "Marvel-Bold", + 1, + 12, + "fs/marvel/2" + ], + [ + "Marvel", + "Bold Italic", + "Marvel-BoldItalic", + 1, + 12, + "fs/marvel/3" + ], + [ + "Marvel", + "Italic", + "Marvel-Italic", + 1, + 12, + "fs/marvel/1" + ], + [ + "Marvel", + "Regular", + "Marvel-Regular", + 1, + 12, + "fs/marvel/0" + ], + [ + "Matchbook", + "Matchbook", + "Matchbook", + 1, + 4, + "fs/Matchbook/0" + ], + [ + "Mate", + "Italic", + "Mate-Italic", + 1, + 14, + "fs/mate/1" + ], + [ + "Mate", + "Regular", + "Mate-Regular", + 1, + 14, + "fs/mate/0" + ], + [ + "Mate SC", + "Regular", + "MateSC-Regular", + 1, + 14, + "fs/mate/2" + ], + [ + "Mathlete", + "Bulky", + "Mathlete-Bulky", + 1, + 6, + "fs/mathlete/2" + ], + [ + "Mathlete", + "Bulky Slant", + "Mathlete-BulkySlant", + 1, + 6, + "fs/mathlete/3" + ], + [ + "Mathlete", + "Skinny", + "Mathlete-Skinny", + 1, + 6, + "fs/mathlete/0" + ], + [ + "Mathlete", + "Skinny Slant", + "Mathlete-SkinnySlant", + 1, + 6, + "fs/mathlete/1" + ], + [ + "Matiz", + "Regular", + "Matiz", + 0, + 4, + "fs/Matiz/0" + ], + [ + "Maven Pro", + "Black", + "MavenPro-Black", + 3, + 12, + "gf/Maven Pro/2" + ], + [ + "Maven Pro", + "Bold", + "MavenPro-Bold", + 3, + 12, + "gf/Maven Pro/1" + ], + [ + "Maven Pro", + "Medium", + "MavenPro-Medium", + 3, + 12, + "gf/Maven Pro/0" + ], + [ + "Maven Pro", + "Regular", + "MavenPro-Regular", + 3, + 12, + "gf/Maven Pro/3" + ], + [ + "Maven Pro", + "Black", + "MavenProBlack", + 1, + 12, + "fs/maven-pro/3" + ], + [ + "Maven Pro", + "Bold", + "MavenProBold", + 1, + 12, + "fs/maven-pro/2" + ], + [ + "Maven Pro", + "Medium", + "MavenProMedium", + 1, + 12, + "fs/maven-pro/1" + ], + [ + "Maven Pro", + "Regular", + "MavenProRegular", + 1, + 12, + "fs/maven-pro/0" + ], + [ + "McLaren", + "Regular", + "McLaren-Regular", + 3, + 4, + "gf/McLaren/0" + ], + [ + "Meddon", + "Regular", + "Meddon", + 3, + 6, + "gf/Meddon/0" + ], + [ + "MedievalSharp", + "Regular", + "MedievalSharp", + 3, + 4, + "gf/MedievalSharp/0" + ], + [ + "Medio", + "Regular", + "Medio", + 0, + 14, + "fs/Medio/0" + ], + [ + "Medula One", + "Regular", + "MedulaOne-Regular", + 1, + 4, + "gf/Medula One/0" + ], + [ + "Meera Inimai", + "Regular", + "MeeraInimai-Regular", + 1, + 12, + "gf/Meera Inimai/0" + ], + [ + "Megrim", + "Medium", + "Megrim", + 3, + 4, + "gf/Megrim/0" + ], + [ + "Meie Script", + "Regular", + "MeieScript-Regular", + 1, + 6, + "gf/Meie Script/0" + ], + [ + "Membra", + "Regular", + "Membra", + 3, + 8, + "fs/membra/0" + ], + [ + "Merienda", + "Bold", + "Merienda-Bold", + 1, + 13, + "fs/merienda/1" + ], + [ + "Merienda", + "Regular", + "Merienda-Regular_0_wt", + 1, + 13, + "fs/merienda/0" + ], + [ + "Merienda One", + "Regular", + "MeriendaOne-Regular", + 1, + 6, + "gf/Merienda One/0" + ], + [ + "Merriweather", + "Black", + "Merriweather-Black", + 11, + 14, + "fs/merriweather/6" + ], + [ + "Merriweather", + "Black Italic", + "Merriweather-BlackItalic", + 11, + 14, + "fs/merriweather/7" + ], + [ + "Merriweather", + "Bold", + "Merriweather-Bold", + 11, + 14, + "fs/merriweather/4" + ], + [ + "Merriweather", + "Bold Italic", + "Merriweather-BoldItalic", + 11, + 14, + "fs/merriweather/5" + ], + [ + "Merriweather", + "Italic", + "Merriweather-Italic", + 11, + 14, + "fs/merriweather/3" + ], + [ + "Merriweather", + "Light", + "Merriweather-Light", + 11, + 14, + "fs/merriweather/0" + ], + [ + "Merriweather", + "Light Italic", + "Merriweather-LightItalic", + 11, + 14, + "fs/merriweather/1" + ], + [ + "Merriweather", + "Regular", + "Merriweather-Regular", + 11, + 14, + "fs/merriweather/2" + ], + [ + "Merriweather Sans", + "Bold", + "MerriweatherSans-Bold", + 3, + 12, + "fs/merriweather-sans/4" + ], + [ + "Merriweather Sans", + "Bold Italic", + "MerriweatherSans-BoldItalic", + 3, + 12, + "fs/merriweather-sans/5" + ], + [ + "Merriweather Sans", + "Book", + "MerriweatherSans-Book", + 3, + 12, + "fs/merriweather-sans/0" + ], + [ + "Merriweather Sans", + "BookItalic", + "MerriweatherSans-BookItalic", + 3, + 12, + "fs/merriweather-sans/1" + ], + [ + "Merriweather Sans", + "ExtraBold Italic", + "MerriweatherSans-ExtraBldItalic", + 3, + 12, + "fs/merriweather-sans/7" + ], + [ + "Merriweather Sans", + "ExtraBold", + "MerriweatherSans-ExtraBold", + 3, + 12, + "fs/merriweather-sans/6" + ], + [ + "Merriweather Sans", + "ExtraBold Italic", + "MerriweatherSans-ExtraBoldItalic", + 3, + 12, + "gf/Merriweather Sans/7" + ], + [ + "Merriweather Sans", + "Italic", + "MerriweatherSans-Italic", + 3, + 12, + "fs/merriweather-sans/3" + ], + [ + "Merriweather Sans", + "Light", + "MerriweatherSans-Light", + 3, + 12, + "gf/Merriweather Sans/0" + ], + [ + "Merriweather Sans", + "Light Italic", + "MerriweatherSans-LightItalic", + 3, + 12, + "gf/Merriweather Sans/3" + ], + [ + "Merriweather Sans", + "Regular", + "MerriweatherSans-Regular", + 3, + 12, + "fs/merriweather-sans/2" + ], + [ + "Metal", + "Regular", + "Metal", + 0, + 4, + "gf/Metal/0" + ], + [ + "Metal Mania", + "Regular", + "MetalMania-Regular", + 1, + 4, + "gf/Metal Mania/0" + ], + [ + "Metamorphous", + "Regular", + "Metamorphous", + 3, + 14, + "fs/metamorphous/0" + ], + [ + "Metro", + "Regular", + "Metro", + 8, + 4, + "fs/Metro/0" + ], + [ + "Metrophobic", + "Regular", + "Metrophobic", + 1, + 12, + "fs/metrophobic/0" + ], + [ + "Metrophobic", + "Regular", + "Metrophobic-Regular", + 1, + 12, + "gf/Metrophobic/0" + ], + [ + "Metropolis", + "Black", + "Metropolis-Black", + 1, + 12, + "fs/metropolis/16" + ], + [ + "Metropolis", + "Black Italic", + "Metropolis-BlackItalic", + 1, + 12, + "fs/metropolis/17" + ], + [ + "Metropolis", + "Bold", + "Metropolis-Bold", + 1, + 12, + "fs/metropolis/12" + ], + [ + "Metropolis", + "Bold Italic", + "Metropolis-BoldItalic", + 1, + 12, + "fs/metropolis/13" + ], + [ + "Metropolis", + "Extra Bold", + "Metropolis-ExtraBold", + 1, + 12, + "fs/metropolis/14" + ], + [ + "Metropolis", + "Extra Bold Italic", + "Metropolis-ExtraBoldItalic", + 1, + 12, + "fs/metropolis/15" + ], + [ + "Metropolis", + "Extra Light", + "Metropolis-ExtraLight", + 1, + 12, + "fs/metropolis/2" + ], + [ + "Metropolis", + "Extra Light Italic", + "Metropolis-ExtraLightItalic", + 1, + 12, + "fs/metropolis/3" + ], + [ + "Metropolis", + "Light", + "Metropolis-Light", + 1, + 12, + "fs/metropolis/4" + ], + [ + "Metropolis", + "Light Italic", + "Metropolis-LightItalic", + 1, + 12, + "fs/metropolis/5" + ], + [ + "Metropolis", + "Medium", + "Metropolis-Medium", + 1, + 12, + "fs/metropolis/8" + ], + [ + "Metropolis", + "Medium Italic", + "Metropolis-MediumItalic", + 1, + 12, + "fs/metropolis/9" + ], + [ + "Metropolis", + "Regular", + "Metropolis-Regular", + 1, + 12, + "fs/metropolis/6" + ], + [ + "Metropolis", + "Regular Italic", + "Metropolis-RegularItalic", + 1, + 12, + "fs/metropolis/7" + ], + [ + "Metropolis", + "Semi Bold", + "Metropolis-SemiBold", + 1, + 12, + "fs/metropolis/10" + ], + [ + "Metropolis", + "Semi Bold Italic", + "Metropolis-SemiBoldItalic", + 1, + 12, + "fs/metropolis/11" + ], + [ + "Metropolis", + "Thin", + "Metropolis-Thin", + 1, + 12, + "fs/metropolis/0" + ], + [ + "Metropolis", + "Thin Italic", + "Metropolis-ThinItalic", + 1, + 12, + "fs/metropolis/1" + ], + [ + "Miama", + "Regular", + "Miama", + 3, + 13, + "fs/Miama/0" + ], + [ + "Michroma", + "Regular", + "Michroma", + 3, + 12, + "fs/michroma/0" + ], + [ + "Mikodacs", + "Regular", + "Mikodacs", + 11, + 4, + "fs/mikodacs/0" + ], + [ + "MikodacsPCS", + "Regular", + "MikodacsPCS", + 11, + 4, + "fs/mikodacs/1" + ], + [ + "Millennia", + "Regular", + "Millennia", + 0, + 4, + "fs/Millennia/0" + ], + [ + "Milonga", + "Regular", + "Milonga-Regular", + 3, + 4, + "gf/Milonga/0" + ], + [ + "Miltonian", + "Regular", + "Miltonian-Regular", + 1, + 4, + "gf/Miltonian/0" + ], + [ + "Miltonian Tattoo", + "Regular", + "MiltonianTattoo-Regular", + 1, + 4, + "gf/Miltonian Tattoo/0" + ], + [ + "Mina", + "Bold", + "Mina-Bold", + 3, + 12, + "gf/Mina/0" + ], + [ + "Mina", + "Regular", + "Mina-Regular", + 3, + 12, + "gf/Mina/1" + ], + [ + "Miniver", + "Regular", + "Miniver", + 1, + 4, + "gf/Miniver/0" + ], + [ + "Minotaur", + "Phatte", + "Minotaur-Phatte", + 0, + 11, + "fs/Minotaur/0" + ], + [ + "MinstrelPosterWHG", + "Regular", + "MinstrelPosterWHG", + 1, + 11, + "fs/MinstrelPosterWHG/0" + ], + [ + "Miriam Libre", + "Bold", + "MiriamLibre-Bold", + 19, + 12, + "gf/Miriam Libre/0" + ], + [ + "Miriam Libre", + "Regular", + "MiriamLibre-Regular", + 19, + 12, + "gf/Miriam Libre/1" + ], + [ + "Mirza", + "Bold", + "Mirza-Bold", + 35, + 4, + "gf/Mirza/2" + ], + [ + "Mirza", + "Medium", + "Mirza-Medium", + 35, + 4, + "gf/Mirza/0" + ], + [ + "Mirza", + "Regular", + "Mirza-Regular", + 35, + 4, + "gf/Mirza/3" + ], + [ + "Mirza", + "SemiBold", + "Mirza-SemiBold", + 35, + 4, + "gf/Mirza/1" + ], + [ + "Miss Fajardose", + "Regular", + "MissFajardose-Regular", + 1, + 6, + "gf/Miss Fajardose/0" + ], + [ + "Mitr", + "Bold", + "Mitr-Bold", + 3, + 12, + "fs/mitr/5" + ], + [ + "Mitr", + "ExtraLight", + "Mitr-ExtraLight", + 3, + 12, + "fs/mitr/0" + ], + [ + "Mitr", + "Light", + "Mitr-Light", + 3, + 12, + "fs/mitr/1" + ], + [ + "Mitr", + "Medium", + "Mitr-Medium", + 3, + 12, + "fs/mitr/3" + ], + [ + "Mitr", + "Regular", + "Mitr-Regular", + 3, + 12, + "fs/mitr/2" + ], + [ + "Mitr", + "SemiBold", + "Mitr-SemiBold", + 3, + 12, + "fs/mitr/4" + ], + [ + "Modak", + "Regular", + "Modak", + 513, + 4, + "fs/modak/0" + ], + [ + "Modern Antiqua", + "Regular", + "ModernAntiqua-Regular", + 3, + 14, + "fs/modern-antiqua/0" + ], + [ + "Modern Pictograms", + "Normal", + "ModernPictograms", + 0, + 3, + "fs/modern-pictograms/0" + ], + [ + "Mogra", + "Regular", + "Mogra-Regular", + 1, + 4, + "gf/Mogra/0" + ], + [ + "Mohave", + "Bold", + "Mohave-Bold", + 3, + 12, + "fs/mohave/6" + ], + [ + "Mohave", + "Bold Italic", + "Mohave-BoldItalic", + 3, + 12, + "fs/mohave/7" + ], + [ + "Mohave", + "Italic", + "Mohave-Italic", + 3, + 12, + "fs/mohave/2" + ], + [ + "Mohave", + "Light", + "Mohave-Light", + 3, + 12, + "fs/mohave/0" + ], + [ + "Mohave", + "Light Italic", + "Mohave-LightItalic", + 3, + 12, + "fs/mohave/1" + ], + [ + "Mohave", + "Medium", + "Mohave-Medium", + 3, + 12, + "fs/mohave/4" + ], + [ + "Mohave", + "Medium Italic", + "Mohave-MediumItalic", + 3, + 12, + "fs/mohave/5" + ], + [ + "Mohave", + "Regular", + "Mohave-Regular", + 3, + 12, + "fs/mohave/3" + ], + [ + "Moinho", + "Regular", + "Moinho", + 1, + 6, + "fs/moinho/0" + ], + [ + "Molengo", + "Regular", + "Molengo", + 1, + 12, + "fs/Molengo/0" + ], + [ + "Molengo", + "Regular", + "Molengo-Regular", + 1, + 12, + "gf/Molengo/0" + ], + [ + "Molle", + "Regular", + "Molle-Regular", + 1, + 6, + "gf/Molle/0" + ], + [ + "Molot", + "Regular", + "Molot", + 8, + 12, + "fs/Molot/0" + ], + [ + "Mom´sTypewriter", + "Regular", + "MomsTypewriter", + 0, + 17, + "fs/MomsTypewriter/0" + ], + [ + "Monda", + "Bold", + "Monda-Bold", + 3, + 12, + "gf/Monda/0" + ], + [ + "Monda", + "Regular", + "Monda-Regular", + 3, + 12, + "gf/Monda/1" + ], + [ + "Monlam Uni Chouk", + "Regular", + "MonlamUniChouk", + 256, + 10, + "ex/tib/Monlam Uni Chouk.ttf" + ], + [ + "Monlam Uni Choukmatik", + "Regular", + "MonlamUniChoukmatik", + 256, + 10, + "ex/tib/Monlam Uni ChoukMatik.ttf" + ], + [ + "Monlam Uni Dutsa1", + "Regular", + "MonlamUniDutsa1", + 256, + 10, + "ex/tib/Monlam Uni Dutsa1.ttf" + ], + [ + "Monlam Uni Dutsa2", + "Regular", + "MonlamUniDutsa2", + 256, + 10, + "ex/tib/Monlam Uni Dutsa2.ttf" + ], + [ + "Monlam Uni OuChan1", + "Regular", + "MonlamUniOuChan1", + 256, + 10, + "ex/tib/Monlam Uni OuChan1.ttf" + ], + [ + "Monlam Uni OuChan2", + "Regular", + "MonlamUniOuChan2", + 256, + 10, + "ex/tib/Monlam Uni OuChan2.ttf" + ], + [ + "Monlam Uni OuChan3", + "Regular", + "MonlamUniOuChan3", + 256, + 10, + "ex/tib/Monlam Uni OuChan3.ttf" + ], + [ + "Monlam Uni OuChan4", + "Regular", + "MonlamUniOuChan4", + 256, + 10, + "ex/tib/Monlam Uni OuChan4.ttf" + ], + [ + "Monlam Uni OuChan5", + "Regular", + "MonlamUniOuChan5", + 256, + 10, + "ex/tib/Monlam Uni OuChan5.ttf" + ], + [ + "Monlam Uni PayTsik", + "Regular", + "MonlamUniPayTsik", + 256, + 10, + "ex/tib/Monlam Uni PayTsik.ttf" + ], + [ + "Monlam Uni Sans Serif", + "Regular", + "MonlamUniSansSerif", + 256, + 10, + "ex/tib/Monlam Uni Sans Serif.ttf" + ], + [ + "Monlam Uni TikTong", + "Regular", + "MonlamUniTikTong", + 256, + 10, + "ex/tib/Monlam Uni TikTong.ttf" + ], + [ + "Monlam Uni Tikrang", + "Regular", + "MonlamUniTikrang", + 256, + 10, + "ex/tib/Monlam Uni Tikrang.ttf" + ], + [ + "Monofett", + "Regular", + "Monofett", + 3, + 4, + "gf/Monofett/0" + ], + [ + "MonospaceTypewriter", + "Regular", + "MonospaceTypewriter", + 1, + 7, + "fs/MonospaceTypewriter/0" + ], + [ + "Monoton", + "Regular", + "Monoton-Regular", + 3, + 4, + "fs/monoton/0" + ], + [ + "Monsieur La Doulaise", + "Regular", + "MonsieurLaDoulaise-Regular", + 1, + 6, + "gf/Monsieur La Doulaise/0" + ], + [ + "Montaga", + "Regular", + "Montaga-Regular", + 1, + 14, + "gf/Montaga/0" + ], + [ + "Montez", + "Regular", + "Montez-Regular", + 3, + 6, + "fs/montez/0" + ], + [ + "Montserrat", + "Black", + "Montserrat-Black", + 11, + 12, + "fs/montserrat/16" + ], + [ + "Montserrat", + "Black Italic", + "Montserrat-BlackItalic", + 11, + 12, + "fs/montserrat/17" + ], + [ + "Montserrat", + "Bold", + "Montserrat-Bold", + 11, + 12, + "fs/montserrat/12" + ], + [ + "Montserrat", + "Bold Italic", + "Montserrat-BoldItalic", + 11, + 12, + "fs/montserrat/13" + ], + [ + "Montserrat", + "ExtraBold", + "Montserrat-ExtraBold", + 11, + 12, + "fs/montserrat/14" + ], + [ + "Montserrat", + "ExtraBold Italic", + "Montserrat-ExtraBoldItalic", + 11, + 12, + "fs/montserrat/15" + ], + [ + "Montserrat", + "ExtraLight", + "Montserrat-ExtraLight", + 11, + 12, + "fs/montserrat/2" + ], + [ + "Montserrat", + "ExtraLight Italic", + "Montserrat-ExtraLightItalic", + 11, + 12, + "fs/montserrat/3" + ], + [ + "Montserrat", + "Italic", + "Montserrat-Italic", + 11, + 12, + "fs/montserrat/7" + ], + [ + "Montserrat", + "Light", + "Montserrat-Light", + 11, + 12, + "fs/montserrat/4" + ], + [ + "Montserrat", + "Light Italic", + "Montserrat-LightItalic", + 11, + 12, + "fs/montserrat/5" + ], + [ + "Montserrat", + "Medium", + "Montserrat-Medium", + 11, + 12, + "fs/montserrat/8" + ], + [ + "Montserrat", + "Medium Italic", + "Montserrat-MediumItalic", + 11, + 12, + "fs/montserrat/9" + ], + [ + "Montserrat", + "Regular", + "Montserrat-Regular", + 11, + 12, + "fs/montserrat/6" + ], + [ + "Montserrat", + "SemiBold", + "Montserrat-SemiBold", + 11, + 12, + "fs/montserrat/10" + ], + [ + "Montserrat", + "SemiBold Italic", + "Montserrat-SemiBoldItalic", + 11, + 12, + "fs/montserrat/11" + ], + [ + "Montserrat", + "Thin", + "Montserrat-Thin", + 11, + 12, + "fs/montserrat/0" + ], + [ + "Montserrat", + "Thin Italic", + "Montserrat-ThinItalic", + 11, + 12, + "fs/montserrat/1" + ], + [ + "Montserrat Alternates", + "Black", + "MontserratAlternates-Black", + 11, + 12, + "fs/montserrat/34" + ], + [ + "Montserrat Alternates", + "Black Italic", + "MontserratAlternates-BlackItalic", + 11, + 12, + "fs/montserrat/35" + ], + [ + "Montserrat Alternates", + "Bold", + "MontserratAlternates-Bold", + 11, + 12, + "fs/montserrat/30" + ], + [ + "Montserrat Alternates", + "Bold Italic", + "MontserratAlternates-BoldItalic", + 11, + 12, + "fs/montserrat/31" + ], + [ + "Montserrat Alternates", + "ExtraBold", + "MontserratAlternates-ExtraBold", + 11, + 12, + "fs/montserrat/32" + ], + [ + "Montserrat Alternates", + "ExtraBold Italic", + "MontserratAlternates-ExtraBoldItalic", + 11, + 12, + "fs/montserrat/33" + ], + [ + "Montserrat Alternates", + "ExtraLight", + "MontserratAlternates-ExtraLight", + 11, + 12, + "fs/montserrat/20" + ], + [ + "Montserrat Alternates", + "ExtraLight Italic", + "MontserratAlternates-ExtraLightItalic", + 11, + 12, + "fs/montserrat/21" + ], + [ + "Montserrat Alternates", + "Italic", + "MontserratAlternates-Italic", + 11, + 12, + "fs/montserrat/25" + ], + [ + "Montserrat Alternates", + "Light", + "MontserratAlternates-Light", + 11, + 12, + "fs/montserrat/22" + ], + [ + "Montserrat Alternates", + "Light Italic", + "MontserratAlternates-LightItalic", + 11, + 12, + "fs/montserrat/23" + ], + [ + "Montserrat Alternates", + "Medium", + "MontserratAlternates-Medium", + 11, + 12, + "fs/montserrat/26" + ], + [ + "Montserrat Alternates", + "Medium Italic", + "MontserratAlternates-MediumItalic", + 11, + 12, + "fs/montserrat/27" + ], + [ + "Montserrat Alternates", + "Regular", + "MontserratAlternates-Regular", + 11, + 12, + "fs/montserrat/24" + ], + [ + "Montserrat Alternates", + "SemiBold", + "MontserratAlternates-SemiBold", + 11, + 12, + "fs/montserrat/28" + ], + [ + "Montserrat Alternates", + "SemiBold Italic", + "MontserratAlternates-SemiBoldItalic", + 11, + 12, + "fs/montserrat/29" + ], + [ + "Montserrat Alternates", + "Thin", + "MontserratAlternates-Thin", + 11, + 12, + "fs/montserrat/18" + ], + [ + "Montserrat Alternates", + "Thin Italic", + "MontserratAlternates-ThinItalic", + 11, + 12, + "fs/montserrat/19" + ], + [ + "Montserrat Subrayada", + "Bold", + "MontserratSubrayada-Bold", + 1, + 12, + "gf/Montserrat Subrayada/0" + ], + [ + "Montserrat Subrayada", + "Regular", + "MontserratSubrayada-Regular", + 1, + 12, + "gf/Montserrat Subrayada/1" + ], + [ + "MothproofScript", + "Regular", + "MothproofScript", + 0, + 1, + "fs/MothproofScript/0" + ], + [ + "MotoyaLCedar", + "W3 mono", + "MotoyaLCedar-W3-90ms-RKSJ-H", + 140, + 12, + "gf/Kosugi/0" + ], + [ + "MotoyaLMaru", + "W3 mono", + "MotoyaLMaru-W3-90ms-RKSJ-H", + 140, + 12, + "gf/Kosugi Maru/0" + ], + [ + "Moul", + "Regular", + "Moul", + 0, + 4, + "gf/Moul/0" + ], + [ + "Moul Pali", + "Regular", + "MoulPali", + 0, + 4, + "gf/Moulpali/0" + ], + [ + "Mountains of Christmas", + "Bold", + "MountainsofChristmas-Bold", + 1, + 4, + "gf/Mountains of Christmas/0" + ], + [ + "Mountains of Christmas", + "Regular", + "MountainsofChristmas-Regular", + 1, + 6, + "fs/mountains-of-christmas/0" + ], + [ + "Mouse Memoirs", + "Regular", + "MouseMemoirs-Regular", + 3, + 12, + "gf/Mouse Memoirs/0" + ], + [ + "Mplus 1p", + "Black", + "Mplus1p-Black", + 159, + 12, + "gf/M PLUS 1p/5" + ], + [ + "Mplus 1p", + "Bold Bold", + "Mplus1p-Bold", + 159, + 12, + "gf/M PLUS 1p/3" + ], + [ + "Mplus 1p", + "ExtraBold", + "Mplus1p-ExtraBold", + 159, + 12, + "gf/M PLUS 1p/4" + ], + [ + "Mplus 1p", + "Light", + "Mplus1p-Light", + 159, + 12, + "gf/M PLUS 1p/1" + ], + [ + "Mplus 1p", + "Medium", + "Mplus1p-Medium", + 159, + 12, + "gf/M PLUS 1p/2" + ], + [ + "Mplus 1p", + "Regular", + "Mplus1p-Regular", + 159, + 12, + "gf/M PLUS 1p/6" + ], + [ + "Mplus 1p", + "Thin", + "Mplus1p-Thin", + 159, + 12, + "gf/M PLUS 1p/0" + ], + [ + "Mr Bedfort", + "Regular", + "MrBedfort-Regular", + 1, + 6, + "gf/Mr Bedfort/0" + ], + [ + "Mr Dafoe", + "Regular", + "MrDafoe-Regular", + 1, + 6, + "gf/Mr Dafoe/0" + ], + [ + "Mr De Haviland", + "Regular", + "MrDeHaviland-Regular", + 1, + 6, + "gf/Mr De Haviland/0" + ], + [ + "Mrs Saint Delafield", + "Regular", + "MrsSaintDelafield-Regular", + 1, + 6, + "gf/Mrs Saint Delafield/0" + ], + [ + "Mrs Sheppards", + "Regular", + "MrsSheppards-Regular", + 1, + 6, + "gf/Mrs Sheppards/0" + ], + [ + "Mukta", + "Bold", + "Mukta-Bold", + 515, + 12, + "fs/mukta/5" + ], + [ + "Mukta", + "ExtraBold", + "Mukta-ExtraBold", + 515, + 12, + "fs/mukta/6" + ], + [ + "Mukta", + "ExtraLight", + "Mukta-ExtraLight", + 515, + 12, + "fs/mukta/0" + ], + [ + "Mukta", + "Light", + "Mukta-Light", + 515, + 12, + "fs/mukta/1" + ], + [ + "Mukta", + "Medium", + "Mukta-Medium", + 515, + 12, + "fs/mukta/3" + ], + [ + "Mukta", + "Regular", + "Mukta-Regular", + 515, + 12, + "fs/mukta/2" + ], + [ + "Mukta", + "SemiBold", + "Mukta-SemiBold", + 515, + 12, + "fs/mukta/4" + ], + [ + "Mukta Mahee", + "Bold", + "MuktaMahee-Bold", + 3, + 12, + "gf/Mukta Mahee/4" + ], + [ + "Mukta Mahee", + "ExtraBold", + "MuktaMahee-ExtraBold", + 3, + 12, + "gf/Mukta Mahee/5" + ], + [ + "Mukta Mahee", + "ExtraLight", + "MuktaMahee-ExtraLight", + 3, + 12, + "gf/Mukta Mahee/0" + ], + [ + "Mukta Mahee", + "Light", + "MuktaMahee-Light", + 3, + 12, + "gf/Mukta Mahee/1" + ], + [ + "Mukta Mahee", + "Medium", + "MuktaMahee-Medium", + 3, + 12, + "gf/Mukta Mahee/2" + ], + [ + "Mukta Mahee", + "Regular", + "MuktaMahee-Regular", + 3, + 12, + "gf/Mukta Mahee/6" + ], + [ + "Mukta Mahee", + "SemiBold", + "MuktaMahee-SemiBold", + 3, + 12, + "gf/Mukta Mahee/3" + ], + [ + "Mukta Malar", + "Bold", + "MuktaMalar-Bold", + 3, + 12, + "gf/Mukta Malar/4" + ], + [ + "Mukta Malar", + "ExtraBold", + "MuktaMalar-ExtraBold", + 3, + 12, + "gf/Mukta Malar/5" + ], + [ + "Mukta Malar", + "ExtraLight", + "MuktaMalar-ExtraLight", + 3, + 12, + "gf/Mukta Malar/0" + ], + [ + "Mukta Malar", + "Light", + "MuktaMalar-Light", + 3, + 12, + "gf/Mukta Malar/1" + ], + [ + "Mukta Malar", + "Medium", + "MuktaMalar-Medium", + 3, + 12, + "gf/Mukta Malar/2" + ], + [ + "Mukta Malar", + "Regular", + "MuktaMalar-Regular", + 3, + 12, + "gf/Mukta Malar/6" + ], + [ + "Mukta Malar", + "SemiBold", + "MuktaMalar-SemiBold", + 3, + 12, + "gf/Mukta Malar/3" + ], + [ + "Mukta Vaani", + "Bold", + "MuktaVaani-Bold", + 3, + 12, + "gf/Mukta Vaani/4" + ], + [ + "Mukta Vaani", + "ExtraBold", + "MuktaVaani-ExtraBold", + 3, + 12, + "gf/Mukta Vaani/5" + ], + [ + "Mukta Vaani", + "ExtraLight", + "MuktaVaani-ExtraLight", + 3, + 12, + "gf/Mukta Vaani/0" + ], + [ + "Mukta Vaani", + "Light", + "MuktaVaani-Light", + 3, + 12, + "gf/Mukta Vaani/1" + ], + [ + "Mukta Vaani", + "Medium", + "MuktaVaani-Medium", + 3, + 12, + "gf/Mukta Vaani/2" + ], + [ + "Mukta Vaani", + "Regular", + "MuktaVaani-Regular", + 3, + 12, + "gf/Mukta Vaani/6" + ], + [ + "Mukta Vaani", + "SemiBold", + "MuktaVaani-SemiBold", + 3, + 12, + "gf/Mukta Vaani/3" + ], + [ + "Muli", + "Regular", + "Muli", + 3, + 12, + "fs/muli/4" + ], + [ + "Muli", + "Black", + "Muli-Black", + 3, + 12, + "gf/Muli/5" + ], + [ + "Muli", + "Black Italic", + "Muli-BlackItalic", + 3, + 12, + "gf/Muli/13" + ], + [ + "Muli", + "Bold", + "Muli-Bold", + 3, + 12, + "fs/muli/8" + ], + [ + "Muli", + "BoldItalic", + "Muli-BoldItalic", + 3, + 12, + "fs/muli/9" + ], + [ + "Muli", + "ExtraBold", + "Muli-ExtraBold", + 3, + 12, + "gf/Muli/4" + ], + [ + "Muli", + "ExtraBold Italic", + "Muli-ExtraBoldItalic", + 3, + 12, + "gf/Muli/12" + ], + [ + "Muli", + "ExtraLight", + "Muli-ExtraLight", + 3, + 12, + "fs/muli/0" + ], + [ + "Muli", + "ExtraLightItalic", + "Muli-ExtraLightItalic", + 3, + 12, + "fs/muli/1" + ], + [ + "Muli", + "RegularItalic", + "Muli-Italic", + 3, + 12, + "fs/muli/5" + ], + [ + "Muli", + "Light", + "Muli-Light", + 3, + 12, + "fs/muli/2" + ], + [ + "Muli", + "LightItalic", + "Muli-LightItalic", + 3, + 12, + "fs/muli/3" + ], + [ + "Muli", + "Regular", + "Muli-Regular", + 3, + 12, + "gf/Muli/8" + ], + [ + "Muli", + "SemiBoldItalic", + "Muli-Semi-BoldItalic", + 3, + 12, + "fs/muli/7" + ], + [ + "Muli", + "SemiBold", + "Muli-SemiBold", + 3, + 12, + "fs/muli/6" + ], + [ + "Muli", + "SemiBold Italic", + "Muli-SemiBoldItalic", + 3, + 12, + "gf/Muli/10" + ], + [ + "Munson", + "Regular", + "Munson", + 3, + 14, + "fs/munson/0" + ], + [ + "Munson", + "Bold", + "Munson-Bold", + 3, + 14, + "fs/munson/2" + ], + [ + "Munson", + "Bold Italic", + "Munson-BoldItalic", + 3, + 14, + "fs/munson/3" + ], + [ + "Munson", + "Italic", + "Munson-Italic", + 3, + 14, + "fs/munson/1" + ], + [ + "Mutlu", + " Ornamental", + "MutluOrnamental", + 1, + 13, + "fs/Mutlu/0" + ], + [ + "My Underwood", + "Regular", + "MyUnderwood", + 0, + 17, + "fs/My-Underwood/0" + ], + [ + "Myndraine", + "Regular", + "Myndraine", + 1, + 12, + "fs/Myndraine/0" + ], + [ + "Mystery Quest", + "Regular", + "MysteryQuest", + 1, + 4, + "gf/Mystery Quest/0" + ], + [ + "NTR", + "Regular", + "NTR", + 0, + 12, + "gf/NTR/0" + ], + [ + "Nanum Brush Script", + "Regular", + "NanumBrush", + 76, + 6, + "gf/Nanum Brush Script/0" + ], + [ + "NanumGothic", + "Regular", + "NanumGothic", + 205, + 12, + "fs/nanumgothic/0" + ], + [ + "NanumGothic", + "Bold", + "NanumGothicBold", + 205, + 12, + "fs/nanumgothic/1" + ], + [ + "NanumGothicCoding", + "Regular", + "NanumGothicCoding", + 76, + 7, + "gf/Nanum Gothic Coding/1" + ], + [ + "NanumGothicCoding", + "Bold", + "NanumGothicCoding-Bold", + 76, + 7, + "gf/Nanum Gothic Coding/0" + ], + [ + "NanumGothic", + "ExtraBold", + "NanumGothicExtraBold", + 205, + 12, + "fs/nanumgothic/2" + ], + [ + "NanumMyeongjo", + "Regular", + "NanumMyeongjo", + 76, + 14, + "gf/Nanum Myeongjo/2" + ], + [ + "NanumMyeongjo", + "Bold", + "NanumMyeongjoBold", + 76, + 14, + "gf/Nanum Myeongjo/0" + ], + [ + "NanumMyeongjo", + "ExtraBold", + "NanumMyeongjoExtraBold", + 76, + 14, + "gf/Nanum Myeongjo/1" + ], + [ + "Nanum Pen", + "Regular", + "NanumPen", + 76, + 6, + "gf/Nanum Pen Script/0" + ], + [ + "Nautilus Pompilius", + "Regular", + "NautilusPompilius", + 8, + 13, + "fs/nautilus-pompilius/0" + ], + [ + "Negotiate", + "Free", + "NegotiateFree", + 3, + 12, + "fs/Negotiate/0" + ], + [ + "NeoRetroDraw", + "Regular", + "NeoRetroDraw", + 0, + 4, + "fs/NeoRetroDraw/0" + ], + [ + "NeoRetroFill", + "Regular", + "NeoRetroFill", + 0, + 4, + "fs/NeoRetroDraw/1" + ], + [ + "NeoRetroShadow", + "Regular", + "NeoRetroShadow", + 0, + 4, + "fs/NeoRetroDraw/2" + ], + [ + "Neris", + "Black", + "Neris-Black", + 11, + 12, + "fs/neris/7" + ], + [ + "Neris", + "Black Italic", + "Neris-BlackItalic", + 11, + 12, + "fs/neris/8" + ], + [ + "Neris", + "Bold Italic", + "Neris-BoldItalic", + 11, + 12, + "fs/neris/6" + ], + [ + "Neris", + "Light", + "Neris-Light", + 11, + 12, + "fs/neris/2" + ], + [ + "Neris", + "Light Italic", + "Neris-LightItalic", + 11, + 12, + "fs/neris/3" + ], + [ + "Neris", + "SemiBold", + "Neris-SemiBold", + 11, + 12, + "fs/neris/4" + ], + [ + "Neris", + "SemiBold Italic", + "Neris-SemiBoldItalic", + 11, + 12, + "fs/neris/5" + ], + [ + "Neris", + "Thin", + "Neris-Thin", + 11, + 12, + "fs/neris/0" + ], + [ + "Neris", + "Thin Italic", + "Neris-ThinItalic", + 11, + 12, + "fs/neris/1" + ], + [ + "Nervous Rex", + "Regular", + "NervousRex", + 0, + 4, + "fs/Nervous-Rex/0" + ], + [ + "Neucha", + "Regular", + "Neucha", + 8, + 6, + "gf/Neucha/0" + ], + [ + "Neumann", + "Regular", + "Neumann", + 11, + 14, + "fs/neumann/0" + ], + [ + "Neuton", + "Bold", + "Neuton-Bold", + 3, + 14, + "fs/neuton/5" + ], + [ + "Neuton", + "ExtraBold", + "Neuton-ExtraBold", + 1, + 14, + "gf/Neuton/3" + ], + [ + "Neuton", + "ExtraLight", + "Neuton-ExtraLight", + 1, + 14, + "gf/Neuton/0" + ], + [ + "Neuton", + "Extrabold", + "Neuton-Extrabold", + 1, + 14, + "fs/neuton/6" + ], + [ + "Neuton", + "Extralight", + "Neuton-Extralight", + 1, + 14, + "fs/neuton/0" + ], + [ + "Neuton", + "ExtralightItalic", + "Neuton-ExtralightItalic", + 1, + 14, + "fs/neuton/1" + ], + [ + "Neuton", + "Italic", + "Neuton-Italic", + 1, + 14, + "fs/neuton/4" + ], + [ + "Neuton", + "Light", + "Neuton-Light", + 3, + 14, + "fs/neuton/2" + ], + [ + "Neuton", + "Regular", + "Neuton-Regular", + 3, + 14, + "fs/neuton/3" + ], + [ + "Neuton SC", + "SC-Bold", + "Neuton-SC-Bold", + 1, + 14, + "fs/neuton/11" + ], + [ + "Neuton SC", + "SC-Extrabold", + "Neuton-SC-Extrabold", + 1, + 14, + "fs/neuton/12" + ], + [ + "Neuton SC", + "SC-Extralight", + "Neuton-SC-Extralight", + 1, + 14, + "fs/neuton/8" + ], + [ + "Neuton SC", + "SC-Light", + "Neuton-SC-Light", + 1, + 14, + "fs/neuton/9" + ], + [ + "Neuton SC", + "SC-Regular", + "Neuton-SC-Regular", + 1, + 14, + "fs/neuton/10" + ], + [ + "Neuton Cursive", + "Regular", + "NeutonCursive-Regular", + 1, + 14, + "fs/neuton/7" + ], + [ + "New Athena Unicode", + "Regular", + "NewAthenaUnicode", + 15, + 14, + "fs/new-athena-unicode/0" + ], + [ + "New Cicle", + "Fina", + "NewCicle-Fina", + 1, + 12, + "fs/New-Cicle/0" + ], + [ + "New Cicle", + "Fina Italic", + "NewCicle-FinaItalic", + 1, + 12, + "fs/New-Cicle/1" + ], + [ + "New Cicle", + "Gordita", + "NewCicle-Gordita", + 1, + 12, + "fs/New-Cicle/4" + ], + [ + "New Cicle", + "Gordita Italic", + "NewCicle-GorditaItalic", + 1, + 12, + "fs/New-Cicle/5" + ], + [ + "New Cicle", + "Semi", + "NewCicle-Semi", + 1, + 12, + "fs/New-Cicle/2" + ], + [ + "New Cicle", + "Semi Italic", + "NewCicle-SemiItalic", + 1, + 12, + "fs/New-Cicle/3" + ], + [ + "NewRocker", + "Regular", + "NewRocker-Regular", + 3, + 0, + "fs/new-rocker/0" + ], + [ + "News Cycle", + "Regular", + "NewsCycle", + 15, + 12, + "fs/news-cycle/0" + ], + [ + "News Cycle", + "Bold", + "NewsCycle-Bold", + 3, + 12, + "gf/News Cycle/0" + ], + [ + "Newt Serif", + "Regular", + "NewtSerif", + 3, + 14, + "fs/newt-serif/2" + ], + [ + "Newt Serif", + "Italic", + "NewtSerif-Italic", + 3, + 14, + "fs/newt-serif/3" + ], + [ + "Newt Serif", + "Bold", + "NewtSerifBold", + 3, + 14, + "fs/newt-serif/6" + ], + [ + "Newt Serif", + "Bold Italic", + "NewtSerifBold-Italic", + 3, + 14, + "fs/newt-serif/7" + ], + [ + "Newt Serif", + "Demi", + "NewtSerifDemi", + 3, + 14, + "fs/newt-serif/4" + ], + [ + "Newt Serif", + "Demi Italic", + "NewtSerifDemi-Italic", + 3, + 14, + "fs/newt-serif/5" + ], + [ + "Newt Serif", + "Light", + "NewtSerifLight", + 3, + 14, + "fs/newt-serif/0" + ], + [ + "Newt Serif", + "Light Italic", + "NewtSerifLight-Italic", + 3, + 14, + "fs/newt-serif/1" + ], + [ + "Niconne", + "Regular", + "Niconne-Regular", + 1, + 13, + "fs/niconne/0" + ], + [ + "Nimbus Mono", + "Bold", + "NimbusMono-Bold", + 15, + 7, + "fs/nimbus-mono/2" + ], + [ + "Nimbus Mono", + "Bold Oblique", + "NimbusMono-BoldOblique", + 15, + 7, + "fs/nimbus-mono/3" + ], + [ + "Nimbus Mono", + "Regular Oblique", + "NimbusMono-Oblique", + 15, + 7, + "fs/nimbus-mono/1" + ], + [ + "Nimbus Mono", + "Regular", + "NimbusMono-Regular", + 15, + 7, + "fs/nimbus-mono/0" + ], + [ + "Nimbus Roman No9 L", + "Bold", + "NimbusRomNo9L-Med", + 15, + 14, + "fs/nimbus-roman-no9-l/2" + ], + [ + "Nimbus Roman No9 L", + "Bold Italic", + "NimbusRomNo9L-MedIta", + 15, + 14, + "fs/nimbus-roman-no9-l/3" + ], + [ + "Nimbus Roman No9 L", + "Regular", + "NimbusRomNo9L-Reg", + 15, + 14, + "fs/nimbus-roman-no9-l/0" + ], + [ + "Nimbus Roman No9 L", + "Regular Italic", + "NimbusRomNo9L-RegIta", + 15, + 14, + "fs/nimbus-roman-no9-l/1" + ], + [ + "Nimbus Sans L", + "Bold", + "NimbusSanL-Bol", + 15, + 12, + "fs/nimbus-sans-l/2" + ], + [ + "Nimbus Sans L", + "Bold Italic", + "NimbusSanL-BolIta", + 15, + 12, + "fs/nimbus-sans-l/3" + ], + [ + "Nimbus Sans L", + "Regular", + "NimbusSanL-Reg", + 15, + 12, + "fs/nimbus-sans-l/0" + ], + [ + "Nimbus Sans L", + "Regular Italic", + "NimbusSanL-RegIta", + 15, + 12, + "fs/nimbus-sans-l/1" + ], + [ + "Niramit", + "Bold", + "Niramit-Bold", + 3, + 12, + "gf/Niramit/4" + ], + [ + "Niramit", + "Bold Italic", + "Niramit-BoldItalic", + 3, + 12, + "gf/Niramit/11" + ], + [ + "Niramit", + "ExtraLight", + "Niramit-ExtraLight", + 3, + 12, + "gf/Niramit/0" + ], + [ + "Niramit", + "ExtraLight Italic", + "Niramit-ExtraLightItalic", + 3, + 12, + "gf/Niramit/5" + ], + [ + "Niramit", + "Italic", + "Niramit-Italic", + 3, + 12, + "gf/Niramit/8" + ], + [ + "Niramit", + "Light", + "Niramit-Light", + 3, + 12, + "gf/Niramit/1" + ], + [ + "Niramit", + "Light Italic", + "Niramit-LightItalic", + 3, + 12, + "gf/Niramit/6" + ], + [ + "Niramit", + "Medium", + "Niramit-Medium", + 3, + 12, + "gf/Niramit/2" + ], + [ + "Niramit", + "Medium Italic", + "Niramit-MediumItalic", + 3, + 12, + "gf/Niramit/9" + ], + [ + "Niramit", + "Regular", + "Niramit-Regular", + 3, + 12, + "gf/Niramit/7" + ], + [ + "Niramit", + "SemiBold", + "Niramit-SemiBold", + 3, + 12, + "gf/Niramit/3" + ], + [ + "Niramit", + "SemiBold Italic", + "Niramit-SemiBoldItalic", + 3, + 12, + "gf/Niramit/10" + ], + [ + "Nixie One", + "Regular", + "NixieOne-Regular", + 1, + 15, + "fs/nixie-one/0" + ], + [ + "Nobile", + "Regular", + "Nobile-Bold", + 9, + 12, + "fs/Nobile/4" + ], + [ + "Nobile", + "Bold Italic", + "Nobile-BoldItalic", + 11, + 12, + "fs/Nobile/5" + ], + [ + "Nobile", + "Italic", + "Nobile-Italic", + 11, + 12, + "fs/Nobile/1" + ], + [ + "Nobile", + "Medium", + "Nobile-Medium", + 11, + 12, + "fs/Nobile/2" + ], + [ + "Nobile", + "Medium Italic", + "Nobile-MediumItalic", + 11, + 12, + "fs/Nobile/3" + ], + [ + "Nobile", + "Regular", + "Nobile-Regular", + 9, + 12, + "fs/Nobile/0" + ], + [ + "Nokora", + "Bold", + "Nokora-Bold", + 0, + 14, + "gf/Nokora/0" + ], + [ + "Nokora", + "Regular", + "Nokora-Regular", + 0, + 14, + "gf/Nokora/1" + ], + [ + "Norican", + "Regular", + "Norican-Regular", + 1, + 6, + "gf/Norican/0" + ], + [ + "Norwester", + "Regular", + "Norwester-Regular", + 0, + 4, + "fs/norwester/0" + ], + [ + "Nosifer", + "Regular", + "Nosifer-Regular", + 3, + 4, + "gf/Nosifer/0" + ], + [ + "Nosifer Caps", + "Regular", + "NosiferCaps-Regular", + 3, + 4, + "fs/nosifer-caps/0" + ], + [ + "NotCourierSans", + "Regular", + "NotCourierSans", + 11, + 7, + "fs/NotCourierSans/0" + ], + [ + "NotCourierSans", + "Bold", + "NotCourierSans-Bold", + 11, + 7, + "fs/NotCourierSans/1" + ], + [ + "NotMaryKate", + "Regular", + "NotMaryKate", + 1, + 11, + "fs/NotMaryKate/0" + ], + [ + "Notable", + "Regular", + "Notable-Regular", + 1, + 12, + "gf/Notable/0" + ], + [ + "Note this", + "Regular", + "Notethis", + 1, + 6, + "fs/Note-this/0" + ], + [ + "Nothing You Could Do", + "Regular", + "NothingYouCouldDo", + 1, + 6, + "gf/Nothing You Could Do/0" + ], + [ + "Notice", + "Notice2", + "Notice2Std", + 0, + 3, + "fs/Notice/1" + ], + [ + "Notice", + "Notice3", + "Notice3Std", + 0, + 3, + "fs/Notice/2" + ], + [ + "Notice", + "Notice", + "NoticeStd", + 0, + 3, + "fs/Notice/0" + ], + [ + "Noticia Text", + "Bold", + "NoticiaText-Bold", + 3, + 15, + "fs/noticia-text/2" + ], + [ + "Noticia Text", + "Bold Italic", + "NoticiaText-BoldItalic", + 3, + 15, + "fs/noticia-text/3" + ], + [ + "Noticia Text", + "Italic", + "NoticiaText-Italic", + 3, + 15, + "fs/noticia-text/1" + ], + [ + "Noticia Text", + "Regular", + "NoticiaText-Regular", + 3, + 15, + "fs/noticia-text/0" + ], + [ + "Noto Mono", + "Regular", + "NotoMono", + 15, + 10, + "fs/noto-mono/0" + ], + [ + "Noto Sans", + "Regular", + "NotoSans", + 527, + 12, + "gf/Noto Sans/1" + ], + [ + "Noto Sans", + "Bold", + "NotoSans-Bold", + 15, + 12, + "fs/noto-sans/2" + ], + [ + "Noto Sans", + "Bold Italic", + "NotoSans-BoldItalic", + 15, + 12, + "fs/noto-sans/3" + ], + [ + "Noto Sans", + "Italic", + "NotoSans-Italic", + 15, + 12, + "fs/noto-sans/1" + ], + [ + "Noto Sans", + "Regular", + "NotoSans-Regular", + 15, + 12, + "fs/noto-sans/0" + ], + [ + "Noto Sans JP", + "Black", + "NotoSansJP-Black", + 205, + 12, + "gf/Noto Sans JP/4" + ], + [ + "Noto Sans JP", + "Bold", + "NotoSansJP-Bold", + 205, + 12, + "gf/Noto Sans JP/3" + ], + [ + "Noto Sans JP", + "Light", + "NotoSansJP-Light", + 205, + 12, + "gf/Noto Sans JP/1" + ], + [ + "Noto Sans JP", + "Medium", + "NotoSansJP-Medium", + 205, + 12, + "gf/Noto Sans JP/2" + ], + [ + "Noto Sans JP", + "Regular", + "NotoSansJP-Regular", + 205, + 12, + "gf/Noto Sans JP/5" + ], + [ + "Noto Sans JP", + "Thin", + "NotoSansJP-Thin", + 205, + 12, + "gf/Noto Sans JP/0" + ], + [ + "Noto Sans KR", + "Black", + "NotoSansKR-Black", + 64, + 12, + "gf/Noto Sans KR/4" + ], + [ + "Noto Sans KR", + "Bold", + "NotoSansKR-Bold", + 64, + 12, + "gf/Noto Sans KR/3" + ], + [ + "Noto Sans KR", + "Light", + "NotoSansKR-Light", + 64, + 12, + "gf/Noto Sans KR/1" + ], + [ + "Noto Sans KR", + "Medium", + "NotoSansKR-Medium", + 64, + 12, + "gf/Noto Sans KR/2" + ], + [ + "Noto Sans KR", + "Regular", + "NotoSansKR-Regular", + 64, + 12, + "gf/Noto Sans KR/5" + ], + [ + "Noto Sans KR", + "Thin", + "NotoSansKR-Thin", + 64, + 12, + "gf/Noto Sans KR/0" + ], + [ + "Noto Sans Tibetan", + "Regular", + "NotoSansTibetan", + 256, + 10, + "ex/tib/NotoSansTibetan-Regular.ttf" + ], + [ + "Noto Serif", + "Regular", + "NotoSerif", + 15, + 14, + "fs/noto-serif/0" + ], + [ + "Noto Serif", + "Bold", + "NotoSerif-Bold", + 15, + 14, + "fs/noto-serif/2" + ], + [ + "Noto Serif", + "Bold Italic", + "NotoSerif-BoldItalic", + 15, + 14, + "fs/noto-serif/3" + ], + [ + "Noto Serif", + "Italic", + "NotoSerif-Italic", + 15, + 14, + "fs/noto-serif/1" + ], + [ + "Noto Serif JP", + "Black", + "NotoSerifJP-Black", + 205, + 12, + "gf/Noto Serif JP/5" + ], + [ + "Noto Serif JP", + "Bold", + "NotoSerifJP-Bold", + 205, + 12, + "gf/Noto Serif JP/4" + ], + [ + "Noto Serif JP", + "ExtraLight", + "NotoSerifJP-ExtraLight", + 205, + 12, + "gf/Noto Serif JP/0" + ], + [ + "Noto Serif JP", + "Light", + "NotoSerifJP-Light", + 205, + 12, + "gf/Noto Serif JP/1" + ], + [ + "Noto Serif JP", + "Medium", + "NotoSerifJP-Medium", + 205, + 12, + "gf/Noto Serif JP/2" + ], + [ + "Noto Serif JP", + "Regular", + "NotoSerifJP-Regular", + 205, + 12, + "gf/Noto Serif JP/6" + ], + [ + "Noto Serif JP", + "SemiBold", + "NotoSerifJP-SemiBold", + 205, + 12, + "gf/Noto Serif JP/3" + ], + [ + "Noto Serif KR", + "Black", + "NotoSerifKR-Black", + 205, + 12, + "gf/Noto Serif KR/5" + ], + [ + "Noto Serif KR", + "Bold", + "NotoSerifKR-Bold", + 205, + 12, + "gf/Noto Serif KR/4" + ], + [ + "Noto Serif KR", + "ExtraLight", + "NotoSerifKR-ExtraLight", + 205, + 12, + "gf/Noto Serif KR/0" + ], + [ + "Noto Serif KR", + "Light", + "NotoSerifKR-Light", + 205, + 12, + "gf/Noto Serif KR/1" + ], + [ + "Noto Serif KR", + "Medium", + "NotoSerifKR-Medium", + 205, + 12, + "gf/Noto Serif KR/2" + ], + [ + "Noto Serif KR", + "Regular", + "NotoSerifKR-Regular", + 205, + 12, + "gf/Noto Serif KR/6" + ], + [ + "Noto Serif KR", + "SemiBold", + "NotoSerifKR-SemiBold", + 205, + 12, + "gf/Noto Serif KR/3" + ], + [ + "Nova Cut", + "Book", + "NovaCut", + 3, + 4, + "gf/Nova Cut/0" + ], + [ + "Nova Flat", + "Book", + "NovaFlat", + 3, + 4, + "gf/Nova Flat/0" + ], + [ + "NovaMono", + "Regular", + "NovaMono", + 7, + 7, + "gf/Nova Mono/0" + ], + [ + "Nova Oval", + "Book", + "NovaOval", + 3, + 4, + "gf/Nova Oval/0" + ], + [ + "Nova Round", + "Book", + "NovaRound", + 3, + 4, + "gf/Nova Round/0" + ], + [ + "Nova Script", + "Regular", + "NovaScript-Regular", + 3, + 4, + "gf/Nova Script/0" + ], + [ + "Nova Slim", + "Book", + "NovaSlim", + 3, + 4, + "gf/Nova Slim/0" + ], + [ + "Nova Square", + "Book", + "NovaSquare", + 3, + 4, + "gf/Nova Square/0" + ], + [ + "Numans", + "Regular", + "Numans-Regular", + 1, + 12, + "fs/numans/0" + ], + [ + "Nunito", + "Black", + "Nunito-Black", + 3, + 12, + "fs/nunito/7" + ], + [ + "Nunito", + "Black Italic", + "Nunito-BlackItalic", + 3, + 12, + "gf/Nunito/13" + ], + [ + "Nunito", + "Bold", + "Nunito-Bold", + 3, + 12, + "fs/nunito/5" + ], + [ + "Nunito", + "Bold Italic", + "Nunito-BoldItalic", + 3, + 12, + "gf/Nunito/11" + ], + [ + "Nunito", + "ExtraBold", + "Nunito-ExtraBold", + 3, + 12, + "fs/nunito/6" + ], + [ + "Nunito", + "ExtraBold Italic", + "Nunito-ExtraBoldItalic", + 3, + 12, + "gf/Nunito/12" + ], + [ + "Nunito", + "ExtraLight", + "Nunito-ExtraLight", + 3, + 12, + "fs/nunito/0" + ], + [ + "Nunito", + "ExtraLight Italic", + "Nunito-ExtraLightItalic", + 3, + 12, + "gf/Nunito/6" + ], + [ + "Nunito", + "Italic", + "Nunito-Italic", + 3, + 12, + "gf/Nunito/9" + ], + [ + "Nunito", + "Light", + "Nunito-Light", + 3, + 12, + "fs/nunito/1" + ], + [ + "Nunito", + "Light Italic", + "Nunito-LightItalic", + 3, + 12, + "gf/Nunito/7" + ], + [ + "Nunito", + "Medium", + "Nunito-Medium", + 3, + 12, + "fs/nunito/3" + ], + [ + "Nunito", + "Regular", + "Nunito-Regular", + 3, + 12, + "fs/nunito/2" + ], + [ + "Nunito", + "SemiBold", + "Nunito-SemiBold", + 3, + 12, + "fs/nunito/4" + ], + [ + "Nunito", + "SemiBold Italic", + "Nunito-SemiBoldItalic", + 3, + 12, + "gf/Nunito/10" + ], + [ + "Nunito Sans", + "Black", + "NunitoSans-Black", + 3, + 12, + "fs/nunito-sans/12" + ], + [ + "Nunito Sans", + "Black Italic", + "NunitoSans-BlackItalic", + 3, + 12, + "fs/nunito-sans/13" + ], + [ + "Nunito Sans", + "Bold", + "NunitoSans-Bold", + 3, + 12, + "fs/nunito-sans/8" + ], + [ + "Nunito Sans", + "Bold Italic", + "NunitoSans-BoldItalic", + 3, + 12, + "fs/nunito-sans/9" + ], + [ + "Nunito Sans", + "ExtraBold", + "NunitoSans-ExtraBold", + 3, + 12, + "fs/nunito-sans/10" + ], + [ + "Nunito Sans", + "ExtraBold Italic", + "NunitoSans-ExtraBoldItalic", + 3, + 12, + "fs/nunito-sans/11" + ], + [ + "Nunito Sans", + "ExtraLight", + "NunitoSans-ExtraLight", + 3, + 12, + "fs/nunito-sans/0" + ], + [ + "Nunito Sans", + "ExtraLight Italic", + "NunitoSans-ExtraLightItalic", + 3, + 12, + "fs/nunito-sans/1" + ], + [ + "Nunito Sans", + "Italic", + "NunitoSans-Italic", + 3, + 12, + "fs/nunito-sans/5" + ], + [ + "Nunito Sans", + "Light", + "NunitoSans-Light", + 3, + 12, + "fs/nunito-sans/2" + ], + [ + "Nunito Sans", + "Light Italic", + "NunitoSans-LightItalic", + 3, + 12, + "fs/nunito-sans/3" + ], + [ + "Nunito Sans", + "Regular", + "NunitoSans-Regular", + 3, + 12, + "fs/nunito-sans/4" + ], + [ + "Nunito Sans", + "SemiBold", + "NunitoSans-SemiBold", + 3, + 12, + "fs/nunito-sans/6" + ], + [ + "Nunito Sans", + "SemiBold Italic", + "NunitoSans-SemiBoldItalic", + 3, + 12, + "fs/nunito-sans/7" + ], + [ + "Nymphette", + "Regular", + "Nymphette", + 0, + 3, + "fs/Nymphette/0" + ], + [ + "OSP-DIN", + "DIN", + "OSP-DIN", + 0, + 4, + "fs/osp-din/0" + ], + [ + "Odibee Sans", + "Regular", + "OdibeeSans-Regular", + 1, + 4, + "fs/odibee-sans/0" + ], + [ + "OdorMeanChey", + "Regular", + "OdorMeanChey", + 0, + 4, + "gf/Odor Mean Chey/0" + ], + [ + "Office Code Pro", + "Bold", + "OfficeCodePro-Bold", + 3, + 12, + "fs/office-code-pro/6" + ], + [ + "Office Code Pro", + "Bold Italic", + "OfficeCodePro-BoldItalic", + 3, + 12, + "fs/office-code-pro/7" + ], + [ + "Office Code Pro", + "Light", + "OfficeCodePro-Light", + 3, + 12, + "fs/office-code-pro/0" + ], + [ + "Office Code Pro", + "Light Italic", + "OfficeCodePro-LightItalic", + 3, + 12, + "fs/office-code-pro/1" + ], + [ + "Office Code Pro", + "Medium", + "OfficeCodePro-Medium", + 3, + 12, + "fs/office-code-pro/4" + ], + [ + "Office Code Pro", + "Medium Italic", + "OfficeCodePro-MediumItalic", + 3, + 12, + "fs/office-code-pro/5" + ], + [ + "Office Code Pro", + "Regular", + "OfficeCodePro-Regular", + 3, + 12, + "fs/office-code-pro/2" + ], + [ + "Office Code Pro", + "Regular Italic", + "OfficeCodePro-RegularItalic", + 3, + 12, + "fs/office-code-pro/3" + ], + [ + "Office Code Pro D", + "Bold", + "OfficeCodeProD-Bold", + 3, + 12, + "fs/office-code-pro/12" + ], + [ + "Office Code Pro D", + "Bold Italic", + "OfficeCodeProD-BoldItalic", + 3, + 12, + "fs/office-code-pro/13" + ], + [ + "Office Code Pro D", + "Light", + "OfficeCodeProD-Light", + 3, + 12, + "fs/office-code-pro/8" + ], + [ + "Office Code Pro D", + "Light Italic", + "OfficeCodeProD-LightItalic", + 3, + 12, + "fs/office-code-pro/9" + ], + [ + "Office Code Pro D", + "Regular", + "OfficeCodeProD-Regular", + 3, + 12, + "fs/office-code-pro/10" + ], + [ + "Office Code Pro D", + "Regular Italic", + "OfficeCodeProD-RegularItalic", + 3, + 12, + "fs/office-code-pro/11" + ], + [ + "Offside", + "Regular", + "Offside-Regular", + 1, + 4, + "gf/Offside/0" + ], + [ + "Old Stamper", + "Regular", + "OldStamper", + 0, + 4, + "fs/Old-Stamper/0" + ], + [ + "Old Standard TT", + "Bold", + "OldStandardTT-Bold", + 15, + 14, + "fs/Old-Standard-TT/2" + ], + [ + "Old Standard TT", + "Italic", + "OldStandardTT-Italic", + 15, + 14, + "fs/Old-Standard-TT/1" + ], + [ + "Old Standard TT", + "Regular", + "OldStandardTT-Regular", + 15, + 14, + "fs/Old-Standard-TT/0" + ], + [ + "Oldenburg", + "Regular", + "Oldenburg-Regular", + 3, + 4, + "gf/Oldenburg/0" + ], + [ + "Oleo Script", + "Bold", + "OleoScript-Bold", + 1, + 13, + "fs/oleo-script/1" + ], + [ + "Oleo Script", + "Regular", + "OleoScript-Regular", + 1, + 13, + "fs/oleo-script/0" + ], + [ + "Oleo Script Swash Caps", + "Bold", + "OleoScriptSwashCaps-Bold", + 1, + 4, + "gf/Oleo Script Swash Caps/0" + ], + [ + "Oleo Script Swash Caps", + "Regular", + "OleoScriptSwashCaps-Regular", + 1, + 4, + "gf/Oleo Script Swash Caps/1" + ], + [ + "Open Sans", + "Regular", + "OpenSans", + 15, + 12, + "fs/open-sans/2" + ], + [ + "Open Sans", + "Bold", + "OpenSans-Bold", + 15, + 12, + "fs/open-sans/6" + ], + [ + "Open Sans", + "Bold Italic", + "OpenSans-BoldItalic", + 15, + 12, + "fs/open-sans/7" + ], + [ + "Open Sans Condensed", + "Bold", + "OpenSans-CondensedBold", + 15, + 12, + "fs/open-sans-condensed/2" + ], + [ + "Open Sans", + "Condensed Light", + "OpenSans-CondensedLight", + 15, + 12, + "fs/open-sans-condensed/0" + ], + [ + "Open Sans", + "Condensed Light Italic", + "OpenSans-CondensedLightItalic", + 15, + 12, + "fs/open-sans-condensed/1" + ], + [ + "Open Sans", + "ExtraBold", + "OpenSans-ExtraBold", + 15, + 12, + "gf/Open Sans/3" + ], + [ + "Open Sans", + "ExtraBold Italic", + "OpenSans-ExtraBoldItalic", + 15, + 12, + "gf/Open Sans/9" + ], + [ + "Open Sans", + "Extrabold", + "OpenSans-Extrabold", + 15, + 12, + "fs/open-sans/8" + ], + [ + "Open Sans", + "Extrabold Italic", + "OpenSans-ExtraboldItalic", + 15, + 12, + "fs/open-sans/9" + ], + [ + "Open Sans", + "Italic", + "OpenSans-Italic", + 15, + 12, + "fs/open-sans/3" + ], + [ + "Open Sans", + "Light", + "OpenSans-Light", + 15, + 12, + "fs/open-sans/0" + ], + [ + "Open Sans", + "Light Italic", + "OpenSans-LightItalic", + 15, + 12, + "gf/Open Sans/4" + ], + [ + "Open Sans", + "Regular", + "OpenSans-Regular", + 15, + 12, + "gf/Open Sans/5" + ], + [ + "Open Sans", + "SemiBold", + "OpenSans-SemiBold", + 15, + 12, + "gf/Open Sans/1" + ], + [ + "Open Sans", + "SemiBold Italic", + "OpenSans-SemiBoldItalic", + 15, + 12, + "gf/Open Sans/7" + ], + [ + "Open Sans", + "Semibold", + "OpenSans-Semibold", + 15, + 12, + "fs/open-sans/4" + ], + [ + "Open Sans", + "Semibold Italic", + "OpenSans-SemiboldItalic", + 15, + 12, + "fs/open-sans/5" + ], + [ + "Open Sans Condensed", + "Bold", + "OpenSansCondensed-Bold", + 15, + 12, + "gf/Open Sans Condensed/1" + ], + [ + "Open Sans Condensed", + "Light", + "OpenSansCondensed-Light", + 15, + 12, + "gf/Open Sans Condensed/0" + ], + [ + "Open Sans Condensed", + "Light Italic", + "OpenSansCondensed-LightItalic", + 15, + 12, + "gf/Open Sans Condensed/2" + ], + [ + "Open Sans", + "Light Italic", + "OpenSansLight-Italic", + 15, + 12, + "fs/open-sans/1" + ], + [ + "Oranienbaum", + "Regular", + "Oranienbaum-Regular", + 11, + 14, + "fs/oranienbaum/0" + ], + [ + "Orbitron", + "Black", + "Orbitron-Black", + 0, + 4, + "fs/Orbitron/3" + ], + [ + "Orbitron", + "Bold", + "Orbitron-Bold", + 0, + 4, + "fs/Orbitron/2" + ], + [ + "Orbitron", + "Light", + "Orbitron-Light", + 0, + 4, + "fs/Orbitron/0" + ], + [ + "Orbitron", + "Medium", + "Orbitron-Medium", + 0, + 4, + "fs/Orbitron/1" + ], + [ + "Orbitron", + "Regular", + "Orbitron-Regular", + 0, + 12, + "gf/Orbitron/3" + ], + [ + "Oregano", + "Italic", + "Oregano-Italic", + 3, + 4, + "gf/Oregano/1" + ], + [ + "Oregano", + "Regular", + "Oregano-Regular", + 3, + 4, + "gf/Oregano/0" + ], + [ + "Orienta", + "Regular", + "Orienta-Regular", + 1, + 12, + "gf/Orienta/0" + ], + [ + "Origicide", + "Regular", + "Origicide", + 0, + 4, + "fs/Origicide/0" + ], + [ + "Original Surfer", + "Regular", + "OriginalSurfer-Regular", + 3, + 4, + "gf/Original Surfer/0" + ], + [ + "Orkney", + "Bold", + "Orkney-Bold", + 3, + 12, + "fs/orkney/3" + ], + [ + "Orkney", + "Light", + "Orkney-Light", + 3, + 12, + "fs/orkney/0" + ], + [ + "Orkney", + "Medium", + "Orkney-Medium", + 3, + 12, + "fs/orkney/2" + ], + [ + "Orkney", + "Regular", + "Orkney-Regular", + 3, + 12, + "fs/orkney/1" + ], + [ + "Orotund", + "Heavy", + "Orotund-Heavy", + 0, + 4, + "fs/Orotund/0" + ], + [ + "Orotund Capitals", + "Heavy", + "OrotundCapitals-Heavy", + 0, + 4, + "fs/Orotund/1" + ], + [ + "Ostrich Sans", + "Black", + "OstrichSans-Black", + 0, + 4, + "fs/ostrich-sans/5" + ], + [ + "Ostrich Sans", + "Bold", + "OstrichSans-Bold", + 0, + 4, + "fs/ostrich-sans/3" + ], + [ + "Ostrich Sans", + "Heavy", + "OstrichSans-Heavy", + 3, + 4, + "fs/ostrich-sans/4" + ], + [ + "Ostrich Sans", + "Light", + "OstrichSans-Light", + 0, + 4, + "fs/ostrich-sans/0" + ], + [ + "Ostrich Sans", + "Medium", + "OstrichSans-Medium", + 3, + 4, + "fs/ostrich-sans/2" + ], + [ + "Ostrich Sans Dashed", + "Medium", + "OstrichSansDashed-Medium", + 0, + 4, + "fs/ostrich-sans/7" + ], + [ + "Ostrich Sans Inline", + "Italic", + "OstrichSansInline-Italic", + 1, + 4, + "fs/ostrich-sans-inline/0" + ], + [ + "Ostrich Sans Inline", + "Regular", + "OstrichSansInline-Regular", + 1, + 4, + "fs/ostrich-sans-inline/1" + ], + [ + "Ostrich Sans Rounded", + "Medium", + "OstrichSansRounded-Medium", + 0, + 4, + "fs/ostrich-sans/6" + ], + [ + "Oswald", + "Bold", + "Oswald-Bold", + 11, + 4, + "fs/oswald/10" + ], + [ + "Oswald", + "Bold", + "Oswald-BoldItalic", + 11, + 4, + "fs/oswald/11" + ], + [ + "Oswald", + "Demi-Bold", + "Oswald-Demi-BoldItalic", + 11, + 4, + "fs/oswald/9" + ], + [ + "Oswald", + "DemiBold", + "Oswald-DemiBold", + 11, + 4, + "fs/oswald/8" + ], + [ + "Oswald", + "Extra-Light", + "Oswald-Extra-LightItalic", + 11, + 4, + "fs/oswald/1" + ], + [ + "Oswald", + "ExtraLight", + "Oswald-ExtraLight", + 11, + 4, + "fs/oswald/0" + ], + [ + "Oswald", + "Heavy", + "Oswald-Heavy", + 11, + 4, + "fs/oswald/12" + ], + [ + "Oswald", + "Heavy", + "Oswald-HeavyItalic", + 11, + 4, + "fs/oswald/13" + ], + [ + "Oswald", + "Light", + "Oswald-Light", + 11, + 4, + "fs/oswald/2" + ], + [ + "Oswald", + "Light", + "Oswald-LightItalic", + 11, + 4, + "fs/oswald/3" + ], + [ + "Oswald", + "Medium", + "Oswald-Medium", + 11, + 4, + "fs/oswald/6" + ], + [ + "Oswald", + "Medium", + "Oswald-MediumItalic", + 11, + 4, + "fs/oswald/7" + ], + [ + "Oswald Regular", + "Regular", + "Oswald-Regular", + 11, + 4, + "fs/oswald/4" + ], + [ + "Oswald", + "Regular", + "Oswald-RegularItalic", + 11, + 4, + "fs/oswald/5" + ], + [ + "Oswald", + "SemiBold", + "Oswald-SemiBold", + 11, + 12, + "gf/Oswald/3" + ], + [ + "Oswald Stencil", + "Bold", + "OswaldStencil-Bold", + 1, + 4, + "fs/oswald/14" + ], + [ + "Otama.ep", + "Regular", + "Otama-ep", + 1, + 14, + "fs/otama-ep/0" + ], + [ + "Outgunned", + "Regular", + "Outgunned", + 0, + 3, + "fs/outgunned/0" + ], + [ + "Overlock", + "Black", + "Overlock-Black", + 1, + 12, + "fs/overlock/4" + ], + [ + "Overlock", + "Black Italic", + "Overlock-BlackItalic", + 1, + 12, + "fs/overlock/5" + ], + [ + "Overlock", + "Bold", + "Overlock-Bold", + 1, + 12, + "fs/overlock/2" + ], + [ + "Overlock", + "Bold Italic", + "Overlock-BoldItalic", + 1, + 12, + "fs/overlock/3" + ], + [ + "Overlock", + "Italic", + "Overlock-Italic", + 1, + 12, + "fs/overlock/1" + ], + [ + "Overlock", + "Regular", + "Overlock-Regular", + 1, + 12, + "fs/overlock/0" + ], + [ + "Overlock SC", + "Regular", + "OverlockSC-Regular", + 1, + 12, + "fs/overlock/6" + ], + [ + "Overpass", + "Black", + "Overpass-Black", + 3, + 12, + "gf/Overpass/6" + ], + [ + "Overpass", + "Black Italic", + "Overpass-BlackItalic", + 3, + 12, + "gf/Overpass/15" + ], + [ + "Overpass", + "Bold", + "Overpass-Bold", + 3, + 12, + "fs/overpass/10" + ], + [ + "Overpass", + "Bold Italic", + "Overpass-BoldItalic", + 3, + 12, + "fs/overpass/11" + ], + [ + "Overpass", + "ExtraBold", + "Overpass-ExtraBold", + 3, + 12, + "fs/overpass/12" + ], + [ + "Overpass", + "ExtraBold Italic", + "Overpass-ExtraBoldItalic", + 3, + 12, + "fs/overpass/13" + ], + [ + "Overpass", + "ExtraLight", + "Overpass-ExtraLight", + 3, + 12, + "fs/overpass/2" + ], + [ + "Overpass", + "ExtraLight Italic", + "Overpass-ExtraLightItalic", + 3, + 12, + "fs/overpass/3" + ], + [ + "Overpass", + "Heavy", + "Overpass-Heavy", + 3, + 12, + "fs/overpass/14" + ], + [ + "Overpass", + "Heavy Italic", + "Overpass-HeavyItalic", + 3, + 12, + "fs/overpass/15" + ], + [ + "Overpass", + "Italic", + "Overpass-Italic", + 3, + 12, + "fs/overpass/7" + ], + [ + "Overpass", + "Light", + "Overpass-Light", + 3, + 12, + "fs/overpass/4" + ], + [ + "Overpass", + "Light Italic", + "Overpass-LightItalic", + 3, + 12, + "fs/overpass/5" + ], + [ + "Overpass", + "Regular", + "Overpass-Regular", + 3, + 12, + "fs/overpass/6" + ], + [ + "Overpass", + "SemiBold", + "Overpass-SemiBold", + 3, + 12, + "fs/overpass/8" + ], + [ + "Overpass", + "SemiBold Italic", + "Overpass-SemiBoldItalic", + 3, + 12, + "fs/overpass/9" + ], + [ + "Overpass", + "Thin", + "Overpass-Thin", + 3, + 12, + "fs/overpass/0" + ], + [ + "Overpass", + "Thin Italic", + "Overpass-ThinItalic", + 3, + 12, + "fs/overpass/1" + ], + [ + "Overpass Mono", + "Bold", + "OverpassMono-Bold", + 3, + 12, + "fs/overpass-mono/3" + ], + [ + "Overpass Mono", + "Light", + "OverpassMono-Light", + 3, + 12, + "fs/overpass-mono/0" + ], + [ + "Overpass Mono", + "Regular", + "OverpassMono-Regular", + 3, + 12, + "fs/overpass-mono/1" + ], + [ + "Overpass Mono", + "SemiBold", + "OverpassMono-SemiBold", + 3, + 12, + "fs/overpass-mono/2" + ], + [ + "Over the Rainbow", + "Regular", + "OvertheRainbow", + 3, + 6, + "fs/over-the-rainbow/0" + ], + [ + "Ovo", + "Regular", + "Ovo", + 1, + 14, + "fs/ovo/0" + ], + [ + "Oxygen", + "Regular", + "Oxygen", + 15, + 12, + "fs/oxygen/0" + ], + [ + "Oxygen", + "Bold", + "Oxygen-Bold", + 11, + 12, + "fs/oxygen/2" + ], + [ + "Oxygen", + "Bold Italic", + "Oxygen-BoldItalic", + 11, + 12, + "fs/oxygen/3" + ], + [ + "Oxygen", + "Italic", + "Oxygen-Italic", + 15, + 12, + "fs/oxygen/1" + ], + [ + "Oxygen", + "Light", + "Oxygen-Light", + 3, + 12, + "gf/Oxygen/0" + ], + [ + "Oxygen", + "Regular", + "Oxygen-Regular", + 3, + 12, + "gf/Oxygen/2" + ], + [ + "Oxygen Mono", + "Regular", + "OxygenMono-Regular", + 1, + 7, + "fs/oxygen-mono/0" + ], + [ + "PT Mono", + "Regular", + "PTMono-Regular", + 11, + 7, + "fs/pt-mono/0" + ], + [ + "PT Sans", + "Bold", + "PTSans-Bold", + 11, + 12, + "fs/pt-sans/2" + ], + [ + "PT Sans", + "Bold Italic", + "PTSans-BoldItalic", + 11, + 12, + "fs/pt-sans/3" + ], + [ + "PT Sans Caption", + "Regular", + "PTSans-Caption", + 11, + 12, + "fs/pt-sans/4" + ], + [ + "PT Sans Caption", + "Bold", + "PTSans-CaptionBold", + 11, + 12, + "fs/pt-sans/5" + ], + [ + "PT Sans", + "Italic", + "PTSans-Italic", + 11, + 12, + "fs/pt-sans/1" + ], + [ + "PT Sans Narrow", + "Regular", + "PTSans-Narrow", + 11, + 12, + "fs/pt-sans/6" + ], + [ + "PT Sans Narrow", + "Bold", + "PTSans-NarrowBold", + 11, + 12, + "fs/pt-sans/7" + ], + [ + "PT Sans", + "Regular", + "PTSans-Regular", + 11, + 12, + "fs/pt-sans/0" + ], + [ + "PT Serif", + "Bold", + "PTSerif-Bold", + 11, + 15, + "fs/pt-serif/2" + ], + [ + "PT Serif", + "Bold Italic", + "PTSerif-BoldItalic", + 11, + 15, + "fs/pt-serif/3" + ], + [ + "PT Serif Caption", + "Regular", + "PTSerif-Caption", + 11, + 15, + "fs/pt-serif/4" + ], + [ + "PT Serif Caption", + "Italic", + "PTSerif-CaptionItalic", + 11, + 15, + "fs/pt-serif/5" + ], + [ + "PT Serif", + "Italic", + "PTSerif-Italic", + 11, + 15, + "fs/pt-serif/1" + ], + [ + "PT Serif", + "Regular", + "PTSerif-Regular", + 11, + 15, + "fs/pt-serif/0" + ], + [ + "Pacifico", + "Regular", + "Pacifico", + 1, + 13, + "fs/pacifico/0" + ], + [ + "Pacifico", + "Regular", + "Pacifico-Regular", + 11, + 6, + "gf/Pacifico/0" + ], + [ + "Padauk", + "Bold", + "Padauk-Bold", + 0, + 12, + "gf/Padauk/0" + ], + [ + "Padauk", + "Regular", + "Padauk-Regular", + 0, + 12, + "gf/Padauk/1" + ], + [ + "Paete Round", + "Regular", + "PaeteRound", + 0, + 2, + "fs/Paete-Round/0" + ], + [ + "Paete Round", + "Bold", + "PaeteRoundBold", + 0, + 2, + "fs/Paete-Round/2" + ], + [ + "Paete Round", + "BoldItalic", + "PaeteRoundBoldItalic", + 0, + 2, + "fs/Paete-Round/3" + ], + [ + "Paete Round", + "Italic", + "PaeteRoundItalic", + 0, + 2, + "fs/Paete-Round/1" + ], + [ + "Paint the Sky", + "Regular", + "PainttheSky-Regular", + 1, + 4, + "fs/paint-the-sky/0" + ], + [ + "Palanquin", + "Bold", + "Palanquin-Bold", + 513, + 12, + "fs/palanquin/6" + ], + [ + "Palanquin", + "ExtraLight", + "Palanquin-ExtraLight", + 513, + 12, + "fs/palanquin/1" + ], + [ + "Palanquin", + "Light", + "Palanquin-Light", + 513, + 12, + "fs/palanquin/2" + ], + [ + "Palanquin", + "Medium", + "Palanquin-Medium", + 513, + 12, + "fs/palanquin/4" + ], + [ + "Palanquin", + "Regular", + "Palanquin-Regular", + 513, + 12, + "fs/palanquin/3" + ], + [ + "Palanquin", + "SemiBold", + "Palanquin-SemiBold", + 513, + 12, + "fs/palanquin/5" + ], + [ + "Palanquin", + "Thin", + "Palanquin-Thin", + 513, + 12, + "fs/palanquin/0" + ], + [ + "Palanquin Dark", + "Bold", + "PalanquinDark-Bold", + 513, + 12, + "fs/palanquin/10" + ], + [ + "Palanquin Dark", + "Medium", + "PalanquinDark-Medium", + 513, + 12, + "fs/palanquin/8" + ], + [ + "Palanquin Dark", + "Regular", + "PalanquinDark-Regular", + 513, + 12, + "fs/palanquin/7" + ], + [ + "Palanquin Dark", + "SemiBold", + "PalanquinDark-SemiBold", + 513, + 12, + "fs/palanquin/9" + ], + [ + "Palitoon", + "Regular", + "Palitoon-Regular", + 1, + 6, + "fs/palitoon/0" + ], + [ + "PaloAlto", + "Heavy", + "PaloAlto", + 1, + 12, + "fs/palo-alto/0" + ], + [ + "PaloAlto", + "Heavy", + "PaloAlto-Italic", + 1, + 12, + "fs/palo-alto/1" + ], + [ + "Panefresco", + "1wt Italic", + "Panefresco1wt-Italic", + 3, + 12, + "fs/panefresco/1" + ], + [ + "Panefresco", + "1wt", + "Panefresco1wt-Regular", + 3, + 12, + "fs/panefresco/0" + ], + [ + "Panefresco", + "250wt Italic", + "Panefresco250wt-Italic", + 3, + 12, + "fs/panefresco/3" + ], + [ + "Panefresco", + "250wt", + "Panefresco250wt-Regular", + 3, + 12, + "fs/panefresco/2" + ], + [ + "Panefresco", + "400wt Italic", + "Panefresco400wt-Italic", + 3, + 12, + "fs/panefresco/5" + ], + [ + "Panefresco", + "400wt", + "Panefresco400wt-Regular", + 3, + 12, + "fs/panefresco/4" + ], + [ + "Panefresco", + "500wt Italic", + "Panefresco500wt-Italic", + 3, + 12, + "fs/panefresco/7" + ], + [ + "Panefresco", + "500wt", + "Panefresco500wt-Regular", + 3, + 12, + "fs/panefresco/6" + ], + [ + "Panefresco", + "600wt Italic", + "Panefresco600wt-Italic", + 3, + 12, + "fs/panefresco/9" + ], + [ + "Panefresco", + "600wt", + "Panefresco600wt-Regular", + 3, + 12, + "fs/panefresco/8" + ], + [ + "Panefresco", + "750wt Italic", + "Panefresco750wt-Italic", + 3, + 12, + "fs/panefresco/11" + ], + [ + "Panefresco", + "750wt", + "Panefresco750wt-Regular", + 3, + 12, + "fs/panefresco/10" + ], + [ + "Panefresco", + "800wt Italic", + "Panefresco800wt-Italic", + 3, + 12, + "fs/panefresco/13" + ], + [ + "Panefresco", + "800wt", + "Panefresco800wt-Regular", + 3, + 12, + "fs/panefresco/12" + ], + [ + "Panefresco", + "999wt Italic", + "Panefresco999wt-Italic", + 3, + 12, + "fs/panefresco/15" + ], + [ + "Panefresco", + "999wt", + "Panefresco999wt-Regular", + 3, + 12, + "fs/panefresco/14" + ], + [ + "Pangolin", + "Regular", + "Pangolin-Regular", + 11, + 6, + "gf/Pangolin/0" + ], + [ + "Paprika", + "Regular", + "Paprika-Regular", + 1, + 4, + "fs/paprika/0" + ], + [ + "Parisienne", + "Regular", + "Parisienne-Regular", + 3, + 13, + "fs/parisienne/0" + ], + [ + "Passero One", + "Regular", + "PasseroOne-Regular", + 1, + 4, + "gf/Passero One/0" + ], + [ + "Passion One", + "Black", + "PassionOne-Black", + 1, + 12, + "fs/passion-one/2" + ], + [ + "Passion One", + "Bold", + "PassionOne-Bold", + 1, + 12, + "fs/passion-one/1" + ], + [ + "Passion", + "Bold", + "PassionOne-Regular", + 1, + 12, + "fs/passion-one/0" + ], + [ + "Pathway Gothic One", + "Regular", + "PathwayGothicOne-Regular", + 1, + 12, + "gf/Pathway Gothic One/0" + ], + [ + "Patrick Hand", + "Regular", + "PatrickHand-Regular", + 3, + 6, + "gf/Patrick Hand/0" + ], + [ + "Patrick Hand SC", + "Regular", + "PatrickHandSC-Regular", + 3, + 6, + "gf/Patrick Hand SC/0" + ], + [ + "Pattaya", + "Regular", + "Pattaya-Regular", + 11, + 12, + "gf/Pattaya/0" + ], + [ + "Patua One", + "Regular", + "PatuaOne-Regular", + 1, + 15, + "fs/patua-one/0" + ], + [ + "Pavanam", + "Regular", + "Pavanam-Regular", + 3, + 12, + "gf/Pavanam/0" + ], + [ + "Paytone One", + "Regular", + "PaytoneOne-Regular", + 3, + 12, + "gf/Paytone One/0" + ], + [ + "Peace Sans", + "Regular", + "PeaceSans", + 9, + 12, + "fs/peace-sans/0" + ], + [ + "Pecita", + "Medium", + "Pecita", + 3, + 6, + "fs/Pecita/0" + ], + [ + "Peddana", + "Regular", + "Peddana", + 0, + 14, + "gf/Peddana/0" + ], + [ + "Peralta", + "Regular", + "Peralta-Regular", + 3, + 15, + "fs/peralta/0" + ], + [ + "Permanent Marker", + "Regular", + "PermanentMarker", + 1, + 6, + "fs/permanent-marker/0" + ], + [ + "Permanent Marker", + "Regular", + "PermanentMarker-Regular", + 1, + 6, + "gf/Permanent Marker/0" + ], + [ + "PermianSansTypeface", + "Regular", + "PermianSansTypeface", + 11, + 12, + "fs/permian-sans/0" + ], + [ + "PermianSansTypeface", + "Bold", + "PermianSansTypeface-Bold", + 11, + 12, + "fs/permian-sans/2" + ], + [ + "PermianSansTypeface", + "Italic", + "PermianSansTypeface-Italic", + 11, + 12, + "fs/permian-sans/1" + ], + [ + "PermianSerifTypeface", + "Regular", + "PermianSerifTypeface", + 11, + 14, + "fs/permian-serif/0" + ], + [ + "PermianSerifTypeface", + "Bold", + "PermianSerifTypeface-Bold", + 11, + 14, + "fs/permian-serif/2" + ], + [ + "PermianSerifTypeface", + "Italic", + "PermianSerifTypeface-Italic", + 11, + 14, + "fs/permian-serif/1" + ], + [ + "PermianSlabSerifTypeface", + "Regular", + "PermianSlabSerifTypeface", + 11, + 15, + "fs/permian-slab/0" + ], + [ + "PermianSlabSerifTypeface", + "Bold", + "PermianSlabSerifTypeface-Bold", + 11, + 15, + "fs/permian-slab/2" + ], + [ + "PermianSlabSerifTypeface", + "Italic", + "PermianSlabSerifTypeface-Italic", + 11, + 15, + "fs/permian-slab/1" + ], + [ + "Perspective Sans", + "Regular", + "PerspectiveSans", + 1, + 12, + "fs/Perspective-Sans/0" + ], + [ + "Perspective Sans", + "Black", + "PerspectiveSansBlack", + 1, + 12, + "fs/Perspective-Sans/4" + ], + [ + "Perspective Sans", + "Black Italic", + "PerspectiveSansBlackItalic", + 1, + 12, + "fs/Perspective-Sans/5" + ], + [ + "Perspective Sans", + "Bold", + "PerspectiveSansBold", + 1, + 12, + "fs/Perspective-Sans/2" + ], + [ + "Perspective Sans", + "Bold Italic", + "PerspectiveSansBoldItalic", + 1, + 12, + "fs/Perspective-Sans/3" + ], + [ + "Perspective Sans", + "Italic", + "PerspectiveSansItalic", + 1, + 12, + "fs/Perspective-Sans/1" + ], + [ + "Petit Formal Script", + "Regular", + "PetitFormalScript-Regular", + 3, + 6, + "gf/Petit Formal Script/0" + ], + [ + "Petrona", + "Regular", + "Petrona-Regular", + 1, + 14, + "gf/Petrona/0" + ], + [ + "Philosopher", + "Regular", + "Philosopher", + 9, + 12, + "fs/philosopher/0" + ], + [ + "Philosopher", + "Bold", + "Philosopher-Bold", + 9, + 12, + "fs/philosopher/2" + ], + [ + "Philosopher", + "Bold Italic", + "Philosopher-BoldItalic", + 9, + 12, + "fs/philosopher/3" + ], + [ + "Philosopher", + "Italic", + "Philosopher-Italic", + 9, + 12, + "fs/philosopher/1" + ], + [ + "Philosopher", + "Regular", + "Philosopher-Regular", + 9, + 12, + "gf/Philosopher/1" + ], + [ + "Piedra", + "Regular", + "Piedra-Regular", + 1, + 4, + "fs/piedra/0" + ], + [ + "Pincoyablack", + "Black", + "Pincoyablack-Black", + 0, + 4, + "fs/Pincoyablack/0" + ], + [ + "Pinyon Script", + "Regular", + "PinyonScript", + 1, + 6, + "gf/Pinyon Script/0" + ], + [ + "Pirata One", + "Regular", + "PirataOne-Regular", + 3, + 4, + "gf/Pirata One/0" + ], + [ + "PixieFont", + "Regular", + "PixieFont", + 0, + 4, + "fs/PixieFont/0" + ], + [ + "PlainBlack", + "Normal", + "PlainBlack-Normal", + 0, + 0, + "fs/PlainBlack/0" + ], + [ + "PlainBlackWide", + "Normal", + "PlainBlackWide-Normal", + 0, + 0, + "fs/PlainBlack/1" + ], + [ + "Plasma Drip", + "(BRK)", + "PlasmaDrip(BRK)", + 0, + 8, + "fs/Plasma-Drip-BRK/0" + ], + [ + "Plasma Drip", + "[Empty] (BRK)", + "PlasmaDrip[Empty](BRK)", + 0, + 8, + "fs/Plasma-Drip-BRK/1" + ], + [ + "Plaster", + "Regular", + "Plaster-Regular", + 3, + 4, + "gf/Plaster/0" + ], + [ + "Play", + "Regular", + "Play", + 15, + 12, + "fs/play/0" + ], + [ + "Play", + "Bold", + "Play-Bold", + 15, + 12, + "fs/play/1" + ], + [ + "Play", + "Regular", + "Play-Regular", + 15, + 12, + "gf/Play/1" + ], + [ + "Playball", + "Regular", + "Playball-Regular", + 1, + 4, + "gf/Playball/0" + ], + [ + "Playfair Display", + "Black", + "PlayfairDisplay-Black", + 11, + 14, + "fs/playfair-display/4" + ], + [ + "Playfair Display", + "Black Italic", + "PlayfairDisplay-BlackItalic", + 11, + 14, + "fs/playfair-display/5" + ], + [ + "Playfair Display", + "Bold", + "PlayfairDisplay-Bold", + 11, + 14, + "fs/playfair-display/2" + ], + [ + "Playfair Display", + "Bold Italic", + "PlayfairDisplay-BoldItalic", + 11, + 14, + "fs/playfair-display/3" + ], + [ + "Playfair Display", + "Italic", + "PlayfairDisplay-Italic", + 11, + 14, + "fs/playfair-display/1" + ], + [ + "Playfair Display", + "Regular", + "PlayfairDisplay-Regular", + 11, + 14, + "fs/playfair-display/0" + ], + [ + "Playfair Display SC", + "Black", + "PlayfairDisplaySC-Black", + 11, + 14, + "fs/playfair-display/10" + ], + [ + "Playfair Display SC", + "Black Italic", + "PlayfairDisplaySC-BlackItalic", + 11, + 14, + "fs/playfair-display/11" + ], + [ + "Playfair Display SC", + "Bold", + "PlayfairDisplaySC-Bold", + 11, + 14, + "fs/playfair-display/8" + ], + [ + "Playfair Display SC", + "Bold Italic", + "PlayfairDisplaySC-BoldItalic", + 11, + 14, + "fs/playfair-display/9" + ], + [ + "Playfair Display SC", + "Italic", + "PlayfairDisplaySC-Italic", + 11, + 14, + "fs/playfair-display/7" + ], + [ + "Playfair Display SC", + "Regular", + "PlayfairDisplaySC-Regular", + 11, + 14, + "fs/playfair-display/6" + ], + [ + "Playtime With Hot Toddies", + "Regular", + "PlaytimeWithHotToddies", + 1, + 6, + "fs/playtime-with-hot-toddies/0" + ], + [ + "PlaytimeWithHotToddies3D", + "Regular", + "PlaytimeWithHotToddies3D", + 1, + 6, + "fs/playtime-with-hot-toddies/2" + ], + [ + "PlaytimeWithHotToddiesOblique", + "Regular", + "PlaytimeWithHotToddiesOblique", + 1, + 6, + "fs/playtime-with-hot-toddies/1" + ], + [ + "Pleasantly Plump", + "Normal", + "Pleasantly-Plump", + 0, + 4, + "fs/Pleasantly-Plump/0" + ], + [ + "Plexifont BV", + "Regular", + "PlexifontBV", + 0, + 8, + "fs/Plexifont-BV/0" + ], + [ + "Plug-NickelBlack", + "Regular", + "Plug-NickelBlack", + 1, + 11, + "fs/Plug-NickelBlack/0" + ], + [ + "Podkova", + "Regular", + "Podkova", + 1, + 15, + "fs/podkova/0" + ], + [ + "Podkova", + "Bold", + "Podkova-Bold", + 11, + 14, + "gf/Podkova/2" + ], + [ + "Podkova", + "ExtraBold", + "Podkova-ExtraBold", + 11, + 14, + "gf/Podkova/3" + ], + [ + "Podkova", + "Medium", + "Podkova-Medium", + 11, + 14, + "gf/Podkova/0" + ], + [ + "Podkova", + "Regular", + "Podkova-Regular", + 11, + 14, + "gf/Podkova/4" + ], + [ + "Podkova", + "SemiBold", + "Podkova-SemiBold", + 11, + 14, + "gf/Podkova/1" + ], + [ + "PoetsenOne", + "Regular", + "PoetsenOne-Regular", + 3, + 4, + "fs/poetsen/0" + ], + [ + "Poiret One", + "Regular", + "PoiretOne-Regular", + 11, + 4, + "fs/poiret-one/0" + ], + [ + "Poller One", + "Regular", + "PollerOne-Regular", + 1, + 4, + "gf/Poller One/0" + ], + [ + "Polsku", + "Regular", + "Polsku", + 0, + 4, + "fs/polsku/0" + ], + [ + "Poly", + "Italic", + "Poly-Italic", + 3, + 14, + "fs/poly/0" + ], + [ + "Poly", + "Regular", + "Poly-Regular", + 3, + 14, + "fs/poly/1" + ], + [ + "Pompiere ", + "Regular", + "Pompiere-Regular", + 1, + 6, + "fs/pompiere/0" + ], + [ + "Pontano Sans", + "Regular", + "PontanoSans-Regular", + 3, + 12, + "gf/Pontano Sans/0" + ], + [ + "Poor Story", + "Regular", + "PoorStory-Regular", + 64, + 4, + "gf/Poor Story/0" + ], + [ + "Poppins", + "Black", + "Poppins-Black", + 515, + 12, + "fs/poppins/16" + ], + [ + "Poppins", + "Black Italic", + "Poppins-BlackItalic", + 515, + 12, + "fs/poppins/17" + ], + [ + "Poppins", + "Bold", + "Poppins-Bold", + 515, + 12, + "fs/poppins/12" + ], + [ + "Poppins", + "Bold Italic", + "Poppins-BoldItalic", + 515, + 12, + "fs/poppins/13" + ], + [ + "Poppins", + "ExtraBold", + "Poppins-ExtraBold", + 515, + 12, + "fs/poppins/14" + ], + [ + "Poppins", + "ExtraBold Italic", + "Poppins-ExtraBoldItalic", + 515, + 12, + "fs/poppins/15" + ], + [ + "Poppins", + "ExtraLight", + "Poppins-ExtraLight", + 515, + 12, + "fs/poppins/2" + ], + [ + "Poppins", + "ExtraLight Italic", + "Poppins-ExtraLightItalic", + 515, + 12, + "fs/poppins/3" + ], + [ + "Poppins", + "Italic", + "Poppins-Italic", + 515, + 12, + "fs/poppins/7" + ], + [ + "Poppins", + "Light", + "Poppins-Light", + 515, + 12, + "fs/poppins/4" + ], + [ + "Poppins", + "Light Italic", + "Poppins-LightItalic", + 515, + 12, + "fs/poppins/5" + ], + [ + "Poppins", + "Medium", + "Poppins-Medium", + 515, + 12, + "fs/poppins/8" + ], + [ + "Poppins", + "Medium Italic", + "Poppins-MediumItalic", + 515, + 12, + "fs/poppins/9" + ], + [ + "Poppins", + "Regular", + "Poppins-Regular", + 515, + 12, + "fs/poppins/6" + ], + [ + "Poppins", + "SemiBold", + "Poppins-SemiBold", + 515, + 12, + "fs/poppins/10" + ], + [ + "Poppins", + "SemiBold Italic", + "Poppins-SemiBoldItalic", + 515, + 12, + "fs/poppins/11" + ], + [ + "Poppins", + "Thin", + "Poppins-Thin", + 515, + 12, + "fs/poppins/0" + ], + [ + "Poppins", + "Thin Italic", + "Poppins-ThinItalic", + 515, + 12, + "fs/poppins/1" + ], + [ + "Port Lligat Sans", + "Regular", + "PortLligatSans-Regular", + 1, + 12, + "gf/Port Lligat Sans/0" + ], + [ + "Port Lligat Slab", + "Regular", + "PortLligatSlab-Regular", + 1, + 14, + "gf/Port Lligat Slab/0" + ], + [ + "Portcullion", + "Bold", + "Portcullion-Bold", + 0, + 0, + "fs/Portcullion/0" + ], + [ + "Porter Sans Block", + "Block", + "PorterSansBlock", + 1, + 4, + "fs/porter-sans/0" + ], + [ + "Post No Bills Colombo", + "Bold", + "PostNoBillsColombo-Bold", + 1, + 16, + "fs/post-no-bills/4" + ], + [ + "Post No Bills Colombo", + "ExtraBold", + "PostNoBillsColombo-ExtraBold", + 1, + 16, + "fs/post-no-bills/5" + ], + [ + "Post No Bills Colombo", + "Light", + "PostNoBillsColombo-Light", + 1, + 16, + "fs/post-no-bills/0" + ], + [ + "Post No Bills Colombo", + "Medium", + "PostNoBillsColombo-Medium", + 1, + 16, + "fs/post-no-bills/2" + ], + [ + "Post No Bills Colombo", + "Regular", + "PostNoBillsColombo-Regular", + 1, + 16, + "fs/post-no-bills/1" + ], + [ + "Post No Bills Colombo", + "SemiBold", + "PostNoBillsColombo-SemiBold", + 1, + 16, + "fs/post-no-bills/3" + ], + [ + "Pragati Narrow", + "Bold", + "PragatiNarrow-Bold", + 515, + 12, + "gf/Pragati Narrow/0" + ], + [ + "Pragati Narrow", + "Regular", + "PragatiNarrow-Regular", + 515, + 12, + "gf/Pragati Narrow/1" + ], + [ + "Prata", + "Regular", + "Prata-Regular", + 9, + 14, + "fs/prata/0" + ], + [ + "Preah Vihear", + "Regular", + "PreahVihear", + 0, + 4, + "gf/Preahvihear/0" + ], + [ + "Press Start 2P", + "Regular", + "PressStart2P-Regular", + 15, + 4, + "gf/Press Start 2P/0" + ], + [ + "Pridi", + "Bold", + "Pridi-Bold", + 3, + 14, + "gf/Pridi/4" + ], + [ + "Pridi", + "ExtraLight", + "Pridi-ExtraLight", + 3, + 14, + "gf/Pridi/0" + ], + [ + "Pridi", + "Light", + "Pridi-Light", + 3, + 14, + "gf/Pridi/1" + ], + [ + "Pridi", + "Medium", + "Pridi-Medium", + 3, + 14, + "gf/Pridi/2" + ], + [ + "Pridi", + "Regular", + "Pridi-Regular", + 3, + 14, + "gf/Pridi/5" + ], + [ + "Pridi", + "SemiBold", + "Pridi-SemiBold", + 3, + 14, + "gf/Pridi/3" + ], + [ + "Princess Sofia", + "Regular", + "PrincessSofia", + 1, + 13, + "fs/princess-sofia/0" + ], + [ + "Print Bold", + "Regular", + "PrintBold", + 1, + 12, + "fs/Print-Clearly/1" + ], + [ + "Print Clearly", + "Regular", + "PrintClearly", + 1, + 12, + "fs/Print-Clearly/0" + ], + [ + "Print Dashed", + "Regular", + "PrintDashed", + 1, + 12, + "fs/Print-Clearly/2" + ], + [ + "Printers Ornaments One", + "Regular", + "PrintersOrnamentsOne", + 0, + 3, + "fs/Printers-Ornaments-One/0" + ], + [ + "ProFontWindows", + "Regular", + "ProFontWindows", + 1, + 12, + "fs/ProFontWindows/0" + ], + [ + "Prociono", + "Regular", + "Prociono-Regular", + 3, + 14, + "fs/Prociono/0" + ], + [ + "Proclamate", + "Heavy Heavy", + "ProclamateHeavy-Heavy", + 0, + 0, + "fs/Proclamate/1" + ], + [ + "Proclamate", + "Incised Heavy", + "ProclamateIncised-Heavy", + 0, + 0, + "fs/Proclamate/2" + ], + [ + "Proclamate", + "Light Light", + "ProclamateLight-Light", + 0, + 0, + "fs/Proclamate/0" + ], + [ + "Promocyja", + "Medium", + "Promocyja", + 3, + 13, + "fs/Promocyja/0" + ], + [ + "Prompt", + "Black", + "Prompt-Black", + 3, + 12, + "gf/Prompt/7" + ], + [ + "Prompt", + "Black Italic", + "Prompt-BlackItalic", + 3, + 12, + "gf/Prompt/17" + ], + [ + "Prompt", + "Bold", + "Prompt-Bold", + 3, + 12, + "gf/Prompt/5" + ], + [ + "Prompt", + "Bold Italic", + "Prompt-BoldItalic", + 3, + 12, + "gf/Prompt/15" + ], + [ + "Prompt", + "ExtraBold", + "Prompt-ExtraBold", + 3, + 12, + "gf/Prompt/6" + ], + [ + "Prompt", + "ExtraBold Italic", + "Prompt-ExtraBoldItalic", + 3, + 12, + "gf/Prompt/16" + ], + [ + "Prompt", + "ExtraLight", + "Prompt-ExtraLight", + 3, + 12, + "gf/Prompt/1" + ], + [ + "Prompt", + "ExtraLight Italic", + "Prompt-ExtraLightItalic", + 3, + 12, + "gf/Prompt/9" + ], + [ + "Prompt", + "Italic", + "Prompt-Italic", + 3, + 12, + "gf/Prompt/12" + ], + [ + "Prompt", + "Light", + "Prompt-Light", + 3, + 12, + "gf/Prompt/2" + ], + [ + "Prompt", + "Light Italic", + "Prompt-LightItalic", + 3, + 12, + "gf/Prompt/10" + ], + [ + "Prompt", + "Medium", + "Prompt-Medium", + 3, + 12, + "gf/Prompt/3" + ], + [ + "Prompt", + "Medium Italic", + "Prompt-MediumItalic", + 3, + 12, + "gf/Prompt/13" + ], + [ + "Prompt", + "Regular", + "Prompt-Regular", + 3, + 12, + "gf/Prompt/11" + ], + [ + "Prompt", + "SemiBold", + "Prompt-SemiBold", + 3, + 12, + "gf/Prompt/4" + ], + [ + "Prompt", + "SemiBold Italic", + "Prompt-SemiBoldItalic", + 3, + 12, + "gf/Prompt/14" + ], + [ + "Prompt", + "Thin", + "Prompt-Thin", + 3, + 12, + "gf/Prompt/0" + ], + [ + "Prompt", + "Thin Italic", + "Prompt-ThinItalic", + 3, + 12, + "gf/Prompt/8" + ], + [ + "Prosto One", + "Regular", + "ProstoOne-Regular", + 9, + 4, + "gf/Prosto One/0" + ], + [ + "Proza Libre", + "Bold", + "ProzaLibre-Bold", + 1, + 12, + "fs/proza-libre/8" + ], + [ + "Proza Libre", + "Bold Italic", + "ProzaLibre-BoldItalic", + 1, + 12, + "fs/proza-libre/9" + ], + [ + "Proza Libre", + "ExtraBold", + "ProzaLibre-ExtraBold", + 1, + 12, + "fs/proza-libre/10" + ], + [ + "Proza Libre", + "ExtraBold Italic", + "ProzaLibre-ExtraBoldItalic", + 1, + 12, + "fs/proza-libre/11" + ], + [ + "Proza Libre", + "Italic", + "ProzaLibre-Italic", + 1, + 12, + "fs/proza-libre/3" + ], + [ + "Proza Libre", + "Light", + "ProzaLibre-Light", + 1, + 12, + "fs/proza-libre/0" + ], + [ + "Proza Libre", + "Light Italic", + "ProzaLibre-LightItalic", + 1, + 12, + "fs/proza-libre/1" + ], + [ + "Proza Libre", + "Medium", + "ProzaLibre-Medium", + 1, + 12, + "fs/proza-libre/4" + ], + [ + "Proza Libre", + "Medium Italic", + "ProzaLibre-MediumItalic", + 1, + 12, + "fs/proza-libre/5" + ], + [ + "Proza Libre", + "Regular", + "ProzaLibre-Regular", + 1, + 12, + "fs/proza-libre/2" + ], + [ + "Proza Libre", + "SemiBold", + "ProzaLibre-SemiBold", + 1, + 12, + "fs/proza-libre/6" + ], + [ + "Proza Libre", + "SemiBold Italic", + "ProzaLibre-SemiBoldItalic", + 1, + 12, + "fs/proza-libre/7" + ], + [ + "Puritan", + "Bold", + "Puritan-Bold", + 1, + 12, + "fs/puritan-2.0/2" + ], + [ + "Puritan", + "BoldItalic", + "Puritan-BoldItalic", + 1, + 12, + "fs/puritan-2.0/3" + ], + [ + "Puritan", + "Italic", + "Puritan-Italic", + 1, + 12, + "fs/puritan-2.0/1" + ], + [ + "Puritan", + "Regular", + "Puritan-Regular", + 1, + 12, + "fs/puritan-2.0/0" + ], + [ + "Purple Purse", + "Regular", + "PurplePurse-Regular", + 3, + 4, + "fs/purple-purse/0" + ], + [ + "Pusab", + "Regular", + "Pusab", + 1, + 4, + "fs/Pusab/0" + ], + [ + "Qikki Reg", + "Regular", + "QikkiReg", + 0, + 2, + "fs/Qikki-Reg/0" + ], + [ + "Quando", + "Regular", + "Quando-Regular", + 3, + 14, + "gf/Quando/0" + ], + [ + "Quantico", + "Bold", + "Quantico-Bold", + 1, + 12, + "fs/quantico/2" + ], + [ + "Quantico", + "Bold Italic", + "Quantico-BoldItalic", + 1, + 12, + "fs/quantico/3" + ], + [ + "Quantico", + "Italic", + "Quantico-Italic", + 1, + 12, + "fs/quantico/1" + ], + [ + "Quantico", + "Regular", + "Quantico-Regular", + 1, + 12, + "fs/quantico/0" + ], + [ + "Quattrocento", + "Regular", + "Quattrocento", + 1, + 14, + "gf/Quattrocento/1" + ], + [ + "Quattrocento", + "Bold", + "Quattrocento-Bold", + 1, + 14, + "gf/Quattrocento/0" + ], + [ + "Quattrocento Roman", + "Regular", + "QuattrocentoRoman", + 1, + 14, + "fs/quattrocento-roman/0" + ], + [ + "Quattrocento Sans", + "Regular", + "QuattrocentoSans", + 1, + 12, + "fs/quattrocento-sans/0" + ], + [ + "Quattrocento Sans", + "Bold", + "QuattrocentoSans-Bold", + 1, + 12, + "fs/quattrocento-sans/2" + ], + [ + "Quattrocento Sans", + "Bold Italic", + "QuattrocentoSans-BoldItalic", + 1, + 12, + "fs/quattrocento-sans/3" + ], + [ + "Quattrocento Sans", + "Italic", + "QuattrocentoSans-Italic", + 1, + 12, + "fs/quattrocento-sans/1" + ], + [ + "Questrial", + "Regular", + "Questrial-Regular", + 1, + 12, + "fs/questrial/0" + ], + [ + "Quick End Jerk", + "Regular", + "QuickEndJerk", + 0, + 4, + "fs/Quick-End-Jerk/0" + ], + [ + "Quicksand", + "Bold", + "Quicksand-Bold", + 1, + 12, + "fs/quicksand/4" + ], + [ + "Quicksand", + "Bold Italic", + "Quicksand-BoldItalic", + 1, + 12, + "fs/quicksand/5" + ], + [ + "Quicksand", + "Italic", + "Quicksand-Italic", + 1, + 12, + "fs/quicksand/3" + ], + [ + "Quicksand", + "Light", + "Quicksand-Light", + 1, + 12, + "fs/quicksand/0" + ], + [ + "Quicksand", + "Light Italic", + "Quicksand-LightItalic", + 1, + 12, + "fs/quicksand/1" + ], + [ + "Quicksand", + "Medium", + "Quicksand-Medium", + 3, + 12, + "gf/Quicksand/1" + ], + [ + "Quicksand", + "Regular", + "Quicksand-Regular", + 1, + 12, + "fs/quicksand/2" + ], + [ + "Quicksand", + "Dash", + "QuicksandDash-Regular", + 0, + 12, + "fs/quicksand/6" + ], + [ + "QuigleyWiggly", + "Regular", + "QuigleyWiggly", + 1, + 13, + "fs/QuigleyWiggly/0" + ], + [ + "Quintessential", + "Regular", + "Quintessential-Regular", + 3, + 13, + "fs/quintessential/0" + ], + [ + "QumpellkaNo12", + "Regular", + "QumpellkaNo12", + 3, + 13, + "fs/qumpellkano12/0" + ], + [ + "Qwigley", + "Regular", + "Qwigley-Regular", + 1, + 13, + "fs/qwigley/0" + ], + [ + "Racing Sans One", + "Regular", + "RacingSansOne-Regular", + 3, + 4, + "gf/Racing Sans One/0" + ], + [ + "Radley", + "Regular", + "Radley", + 3, + 14, + "fs/radley/0" + ], + [ + "Radley", + "Italic", + "Radley-Italic", + 1, + 14, + "gf/Radley/1" + ], + [ + "Radley", + "Regular", + "Radley-Regular", + 3, + 14, + "gf/Radley/0" + ], + [ + "Railway", + "Regular", + "Railway", + 3, + 12, + "fs/railway/0" + ], + [ + "Railway", + "RegularAlternate", + "RailwayAlternate", + 0, + 12, + "fs/railway/1" + ], + [ + "Rajdhani", + "Bold", + "Rajdhani-Bold", + 515, + 12, + "fs/rajdhani/4" + ], + [ + "Rajdhani", + "Light", + "Rajdhani-Light", + 515, + 12, + "fs/rajdhani/0" + ], + [ + "Rajdhani", + "Medium", + "Rajdhani-Medium", + 515, + 12, + "fs/rajdhani/2" + ], + [ + "Rajdhani", + "Regular", + "Rajdhani-Regular", + 515, + 12, + "fs/rajdhani/1" + ], + [ + "Rajdhani", + "SemiBold", + "Rajdhani-SemiBold", + 515, + 12, + "gf/Rajdhani/2" + ], + [ + "Rajdhani", + "Semibold", + "Rajdhani-Semibold", + 515, + 12, + "fs/rajdhani/3" + ], + [ + "Rakkas", + "Regular", + "Rakkas-Regular", + 1, + 4, + "gf/Rakkas/0" + ], + [ + "Raleway", + "Black", + "Raleway-Black", + 11, + 12, + "fs/raleway/16" + ], + [ + "Raleway", + "Black Italic", + "Raleway-BlackItalic", + 3, + 12, + "fs/raleway/17" + ], + [ + "Raleway", + "Bold", + "Raleway-Bold", + 11, + 12, + "fs/raleway/12" + ], + [ + "Raleway", + "Bold Italic", + "Raleway-BoldItalic", + 3, + 12, + "fs/raleway/13" + ], + [ + "Raleway", + "ExtraBold", + "Raleway-ExtraBold", + 11, + 12, + "fs/raleway/14" + ], + [ + "Raleway", + "ExtraBold Italic", + "Raleway-ExtraBoldItalic", + 3, + 12, + "fs/raleway/15" + ], + [ + "Raleway", + "ExtraLight", + "Raleway-ExtraLight", + 11, + 12, + "fs/raleway/2" + ], + [ + "Raleway", + "ExtraLight Italic", + "Raleway-ExtraLightItalic", + 3, + 12, + "fs/raleway/3" + ], + [ + "Raleway", + "Italic", + "Raleway-Italic", + 3, + 12, + "fs/raleway/7" + ], + [ + "Raleway", + "Light", + "Raleway-Light", + 11, + 12, + "fs/raleway/4" + ], + [ + "Raleway", + "Light Italic", + "Raleway-LightItalic", + 3, + 12, + "fs/raleway/5" + ], + [ + "Raleway", + "Medium", + "Raleway-Medium", + 11, + 12, + "fs/raleway/8" + ], + [ + "Raleway", + "Medium Italic", + "Raleway-MediumItalic", + 3, + 12, + "fs/raleway/9" + ], + [ + "Raleway", + "Regular", + "Raleway-Regular", + 11, + 12, + "fs/raleway/6" + ], + [ + "Raleway", + "SemiBold", + "Raleway-SemiBold", + 11, + 12, + "fs/raleway/10" + ], + [ + "Raleway", + "SemiBold Italic", + "Raleway-SemiBoldItalic", + 3, + 12, + "fs/raleway/11" + ], + [ + "Raleway", + "Thin", + "Raleway-Thin", + 11, + 12, + "fs/raleway/0" + ], + [ + "Raleway", + "Thin Italic", + "Raleway-ThinItalic", + 3, + 12, + "fs/raleway/1" + ], + [ + "Raleway Dots ", + "Regular", + "RalewayDots-Regular", + 3, + 4, + "fs/raleway-dots/0" + ], + [ + "Ramabhadra", + "Regular", + "Ramabhadra", + 0, + 12, + "gf/Ramabhadra/0" + ], + [ + "Ramaraja", + "Regular", + "Ramaraja", + 0, + 14, + "gf/Ramaraja/0" + ], + [ + "Rambla", + "Bold", + "Rambla-Bold", + 1, + 12, + "fs/rambla/2" + ], + [ + "Rambla", + "Bold Italic", + "Rambla-BoldItalic", + 1, + 12, + "fs/rambla/3" + ], + [ + "Rambla", + "Italic", + "Rambla-Italic", + 1, + 12, + "fs/rambla/1" + ], + [ + "Rambla", + "Regular", + "Rambla-Regular", + 1, + 12, + "fs/rambla/0" + ], + [ + "Rammetto One", + "Regular", + "RammettoOne-Regular", + 1, + 4, + "gf/Rammetto One/0" + ], + [ + "Ranchers", + "Regular", + "Ranchers-Regular", + 3, + 4, + "fs/ranchers/0" + ], + [ + "Rancho", + "Regular", + "Rancho", + 1, + 13, + "fs/rancho/0" + ], + [ + "Rancho", + "Regular", + "Rancho-Regular", + 1, + 6, + "gf/Rancho/0" + ], + [ + "Ranga", + "Bold", + "Ranga-Bold", + 513, + 4, + "fs/ranga/1" + ], + [ + "Ranga", + "Regular", + "Ranga-Regular", + 513, + 4, + "fs/ranga/0" + ], + [ + "Rapscallion", + "Regular", + "Rapscallion", + 0, + 0, + "fs/Rapscallion/0" + ], + [ + "Rasa", + "Bold", + "Rasa-Bold", + 3, + 14, + "gf/Rasa/3" + ], + [ + "Rasa", + "Light", + "Rasa-Light", + 3, + 14, + "gf/Rasa/0" + ], + [ + "Rasa", + "Medium", + "Rasa-Medium", + 3, + 14, + "gf/Rasa/1" + ], + [ + "Rasa", + "Regular", + "Rasa-Regular", + 3, + 14, + "gf/Rasa/4" + ], + [ + "Rasa", + "SemiBold", + "Rasa-SemiBold", + 3, + 14, + "gf/Rasa/2" + ], + [ + "Rationale", + "Regular", + "Rationale-Regular", + 1, + 12, + "gf/Rationale/0" + ], + [ + "Rationale One", + "Regular", + "RationaleOne-Regular", + 1, + 4, + "fs/rationale/0" + ], + [ + "Ravi Prakash", + "Regular", + "RaviPrakash-Regular", + 0, + 4, + "gf/Ravi Prakash/0" + ], + [ + "Rawengulk", + "Bold", + "RawengulkBold", + 3, + 15, + "fs/rawengulk/4" + ], + [ + "Rawengulk", + "Demibold", + "RawengulkDemibold", + 3, + 15, + "fs/rawengulk/3" + ], + [ + "Rawengulk", + "Light", + "RawengulkLight", + 3, + 15, + "fs/rawengulk/1" + ], + [ + "RawengulkPcs", + "Regular", + "RawengulkPcs", + 3, + 15, + "fs/rawengulk/5" + ], + [ + "Rawengulk", + "Regular", + "RawengulkRegular", + 3, + 15, + "fs/rawengulk/2" + ], + [ + "RawengulkSans", + "Regular", + "RawengulkSans", + 3, + 12, + "fs/rawengulksans/0" + ], + [ + "Rawengulk", + "Ultralight", + "RawengulkUltralight", + 3, + 15, + "fs/rawengulk/0" + ], + [ + "Rechtman", + "Plain", + "Rechtman-Plain", + 0, + 13, + "fs/Rechtman/0" + ], + [ + "Redressed", + "Regular", + "Redressed", + 3, + 6, + "fs/redressed/0" + ], + [ + "Redressed", + "Regular", + "Redressed-Regular", + 3, + 6, + "gf/Redressed/0" + ], + [ + "Reem Kufi", + "Regular", + "ReemKufi-Regular", + 1, + 12, + "gf/Reem Kufi/0" + ], + [ + "Reenie Beanie", + "Regular", + "ReenieBeanie", + 1, + 6, + "gf/Reenie Beanie/0" + ], + [ + "Resagnicto", + "Regular", + "Resagnicto", + 3, + 12, + "fs/resagnicto/0" + ], + [ + "Resagnicto", + "Bold", + "ResagnictoBold", + 3, + 12, + "fs/resagnicto/2" + ], + [ + "Resagnicto", + "Italic", + "ResagnictoItalic", + 3, + 12, + "fs/resagnicto/1" + ], + [ + "Resagokr", + "Regular", + "Resagokr", + 11, + 12, + "fs/resagokr/1" + ], + [ + "Resagokr", + "Bold", + "ResagokrBold", + 11, + 12, + "fs/resagokr/2" + ], + [ + "Resagokr", + "Light", + "ResagokrLight", + 11, + 12, + "fs/resagokr/0" + ], + [ + "Reswysokr", + "Regular", + "Reswysokr", + 3, + 4, + "fs/reswysokr/0" + ], + [ + "Revalia", + "Regular", + "Revalia-Regular", + 1, + 4, + "gf/Revalia/0" + ], + [ + "Rhodium Libre", + "Regular", + "RhodiumLibre-Regular", + 513, + 14, + "gf/Rhodium Libre/0" + ], + [ + "Ribeye", + "Regular", + "Ribeye-Regular", + 3, + 4, + "gf/Ribeye/0" + ], + [ + "Ribeye Marrow", + "Regular", + "RibeyeMarrow-Regular", + 3, + 4, + "gf/Ribeye Marrow/0" + ], + [ + "Riesling", + "Regular", + "Riesling", + 1, + 11, + "fs/riesling/0" + ], + [ + "Righteous", + "Regular", + "Righteous-Regular", + 3, + 4, + "gf/Righteous/0" + ], + [ + "Risque", + "Regular", + "Risque-Regular", + 3, + 4, + "fs/risque/0" + ], + [ + "Ritaglio", + "Regular", + "Ritaglio", + 0, + 8, + "fs/ritaglio/0" + ], + [ + "Roboto", + "Black", + "Roboto-Black", + 15, + 12, + "fs/roboto-2014/10" + ], + [ + "Roboto", + "Black Italic", + "Roboto-BlackItalic", + 15, + 12, + "fs/roboto-2014/11" + ], + [ + "Roboto", + "Bold", + "Roboto-Bold", + 15, + 12, + "fs/roboto-2014/8" + ], + [ + "Roboto", + "Bold Italic", + "Roboto-BoldItalic", + 15, + 12, + "fs/roboto-2014/9" + ], + [ + "Roboto", + "Italic", + "Roboto-Italic", + 15, + 12, + "fs/roboto-2014/5" + ], + [ + "Roboto", + "Light", + "Roboto-Light", + 15, + 12, + "fs/roboto-2014/2" + ], + [ + "Roboto", + "Light Italic", + "Roboto-LightItalic", + 15, + 12, + "fs/roboto-2014/3" + ], + [ + "Roboto", + "Medium", + "Roboto-Medium", + 15, + 12, + "fs/roboto-2014/6" + ], + [ + "Roboto", + "Medium Italic", + "Roboto-MediumItalic", + 15, + 12, + "fs/roboto-2014/7" + ], + [ + "Roboto", + "Regular", + "Roboto-Regular", + 15, + 12, + "fs/roboto-2014/4" + ], + [ + "Roboto", + "Thin", + "Roboto-Thin", + 15, + 12, + "fs/roboto-2014/0" + ], + [ + "Roboto", + "Thin Italic", + "Roboto-ThinItalic", + 15, + 12, + "fs/roboto-2014/1" + ], + [ + "Roboto Condensed", + "Bold", + "RobotoCondensed-Bold", + 15, + 12, + "fs/roboto/16" + ], + [ + "Roboto Condensed", + "Bold Italic", + "RobotoCondensed-BoldItalic", + 15, + 12, + "fs/roboto/17" + ], + [ + "Roboto Condensed", + "Italic", + "RobotoCondensed-Italic", + 15, + 12, + "fs/roboto/15" + ], + [ + "Roboto Condensed", + "Light", + "RobotoCondensed-Light", + 15, + 12, + "fs/roboto/12" + ], + [ + "Roboto Condensed", + "Light Italic", + "RobotoCondensed-LightItalic", + 15, + 12, + "fs/roboto/13" + ], + [ + "Roboto Condensed", + "Regular", + "RobotoCondensed-Regular", + 15, + 12, + "fs/roboto/14" + ], + [ + "Roboto Mono", + "Bold", + "RobotoMono-Bold", + 15, + 7, + "gf/Roboto Mono/3" + ], + [ + "Roboto Mono", + "Bold Italic", + "RobotoMono-BoldItalic", + 15, + 7, + "gf/Roboto Mono/9" + ], + [ + "Roboto Mono", + "Italic", + "RobotoMono-Italic", + 15, + 7, + "gf/Roboto Mono/7" + ], + [ + "Roboto Mono", + "Light", + "RobotoMono-Light", + 15, + 7, + "gf/Roboto Mono/1" + ], + [ + "Roboto Mono", + "Light Italic", + "RobotoMono-LightItalic", + 15, + 7, + "gf/Roboto Mono/5" + ], + [ + "Roboto Mono", + "Medium", + "RobotoMono-Medium", + 15, + 7, + "gf/Roboto Mono/2" + ], + [ + "Roboto Mono", + "Medium Italic", + "RobotoMono-MediumItalic", + 15, + 7, + "gf/Roboto Mono/8" + ], + [ + "Roboto Mono", + "Regular", + "RobotoMono-Regular", + 15, + 7, + "gf/Roboto Mono/6" + ], + [ + "Roboto Mono", + "Thin", + "RobotoMono-Thin", + 15, + 7, + "gf/Roboto Mono/0" + ], + [ + "Roboto Mono", + "Thin Italic", + "RobotoMono-ThinItalic", + 15, + 7, + "gf/Roboto Mono/4" + ], + [ + "Roboto Slab", + "Bold", + "RobotoSlab-Bold", + 15, + 15, + "fs/roboto-slab/3" + ], + [ + "Roboto Slab", + "Light", + "RobotoSlab-Light", + 15, + 15, + "fs/roboto-slab/1" + ], + [ + "Roboto Slab", + "Regular", + "RobotoSlab-Regular", + 15, + 15, + "fs/roboto-slab/2" + ], + [ + "Roboto Slab", + "Thin", + "RobotoSlab-Thin", + 15, + 15, + "fs/roboto-slab/0" + ], + [ + "Rochester", + "Regular", + "Rochester", + 1, + 13, + "fs/rochester/0" + ], + [ + "Rochester", + "Regular", + "Rochester-Regular", + 1, + 6, + "gf/Rochester/0" + ], + [ + "Rock Salt", + "Regular", + "RockSalt", + 1, + 6, + "fs/rock-salt/0" + ], + [ + "Rock Salt", + "Regular", + "RockSalt-Regular", + 1, + 6, + "gf/Rock Salt/0" + ], + [ + "Rokkitt", + "Black", + "Rokkitt-Black", + 3, + 15, + "fs/rokkitt/8" + ], + [ + "Rokkitt", + "Bold", + "Rokkitt-Bold", + 3, + 15, + "fs/rokkitt/6" + ], + [ + "Rokkitt", + "ExtraBold", + "Rokkitt-ExtraBold", + 3, + 15, + "fs/rokkitt/7" + ], + [ + "Rokkitt", + "ExtraLight", + "Rokkitt-ExtraLight", + 3, + 15, + "fs/rokkitt/1" + ], + [ + "Rokkitt", + "Light", + "Rokkitt-Light", + 3, + 15, + "fs/rokkitt/2" + ], + [ + "Rokkitt", + "Medium", + "Rokkitt-Medium", + 3, + 15, + "fs/rokkitt/4" + ], + [ + "Rokkitt", + "Regular", + "Rokkitt-Regular", + 3, + 15, + "fs/rokkitt/3" + ], + [ + "Rokkitt", + "SemiBold", + "Rokkitt-SemiBold", + 3, + 15, + "fs/rokkitt/5" + ], + [ + "Rokkitt", + "Thin", + "Rokkitt-Thin", + 3, + 15, + "fs/rokkitt/0" + ], + [ + "Roman SD", + "Regular", + "RomanSD", + 1, + 1, + "fs/Roman-Caps/0" + ], + [ + "Romanesco", + "Regular", + "Romanesco-Regular", + 3, + 4, + "fs/romanesco/0" + ], + [ + "Ropa Sans", + "Italic", + "RopaSans-Italic", + 1, + 12, + "gf/Ropa Sans/1" + ], + [ + "Ropa Sans", + "Regular", + "RopaSans-Regular", + 1, + 12, + "gf/Ropa Sans/0" + ], + [ + "Rosario", + "Bold", + "Rosario-Bold", + 1, + 12, + "fs/rosario/2" + ], + [ + "Rosario", + "Bold Italic", + "Rosario-BoldItalic", + 1, + 12, + "fs/rosario/3" + ], + [ + "Rosario", + "Italic", + "Rosario-Italic", + 1, + 12, + "fs/rosario/1" + ], + [ + "Rosario", + "Regular", + "Rosario-Regular", + 1, + 12, + "fs/rosario/0" + ], + [ + "Rosarivo", + "Italic", + "Rosarivo-Italic", + 1, + 14, + "fs/rosarivo/1" + ], + [ + "Rosarivo", + "Regular", + "Rosarivo-Regular", + 1, + 14, + "fs/rosarivo/0" + ], + [ + "Rothenburg Decorative", + "Normal", + "RothenburgDecorative-Normal", + 0, + 0, + "fs/Rothenburg-Decorative/0" + ], + [ + "Rothman", + "Plain", + "Rothman-Plain", + 0, + 4, + "fs/Rothman/0" + ], + [ + "Rouge Script", + "Regular", + "RougeScript-Regular", + 1, + 13, + "fs/rouge-script/0" + ], + [ + "Rounded Mplus 1c", + "Black", + "RoundedMplus1c-Black", + 159, + 12, + "gf/M PLUS Rounded 1c/5" + ], + [ + "Rounded Mplus 1c", + "Bold Bold", + "RoundedMplus1c-Bold", + 159, + 12, + "gf/M PLUS Rounded 1c/3" + ], + [ + "Rounded Mplus 1c", + "ExtraBold", + "RoundedMplus1c-ExtraBold", + 159, + 12, + "gf/M PLUS Rounded 1c/4" + ], + [ + "Rounded Mplus 1c", + "Light", + "RoundedMplus1c-Light", + 159, + 12, + "gf/M PLUS Rounded 1c/1" + ], + [ + "Rounded Mplus 1c", + "Medium", + "RoundedMplus1c-Medium", + 159, + 12, + "gf/M PLUS Rounded 1c/2" + ], + [ + "Rounded Mplus 1c", + "Regular", + "RoundedMplus1c-Regular", + 159, + 12, + "gf/M PLUS Rounded 1c/6" + ], + [ + "Rounded Mplus 1c", + "Thin", + "RoundedMplus1c-Thin", + 159, + 12, + "gf/M PLUS Rounded 1c/0" + ], + [ + "Route 159", + "Bold", + "Route159-Bold", + 3, + 12, + "fs/route-159/8" + ], + [ + "Route 159", + "Bold Italic", + "Route159-BoldItalic", + 3, + 12, + "fs/route-159/9" + ], + [ + "Route 159", + "Heavy", + "Route159-Heavy", + 3, + 12, + "fs/route-159/10" + ], + [ + "Route 159", + "Heavy Italic", + "Route159-HeavyItalic", + 3, + 12, + "fs/route-159/11" + ], + [ + "Route 159", + "Italic", + "Route159-Italic", + 3, + 12, + "fs/route-159/5" + ], + [ + "Route 159", + "Light", + "Route159-Light", + 3, + 12, + "fs/route-159/2" + ], + [ + "Route 159", + "Light Italic", + "Route159-LightItalic", + 3, + 12, + "fs/route-159/3" + ], + [ + "Route 159", + "Regular", + "Route159-Regular", + 3, + 12, + "fs/route-159/4" + ], + [ + "Route 159", + "SemiBold", + "Route159-SemiBold", + 3, + 12, + "fs/route-159/6" + ], + [ + "Route 159", + "SemiBold Italic", + "Route159-SemiBoldItalic", + 3, + 12, + "fs/route-159/7" + ], + [ + "Route 159", + "UltraLight", + "Route159-UltraLight", + 3, + 12, + "fs/route-159/0" + ], + [ + "Route 159", + "UltraLight Italic", + "Route159-UltraLightItalic", + 3, + 12, + "fs/route-159/1" + ], + [ + "Rozha One", + "Regular", + "RozhaOne", + 513, + 15, + "fs/rozha-one/0" + ], + [ + "Rozha One", + "Regular", + "RozhaOne-Regular", + 515, + 14, + "gf/Rozha One/0" + ], + [ + "Rubik", + "Black", + "Rubik-Black", + 27, + 12, + "fs/rubik/8" + ], + [ + "Rubik", + "Black Italic", + "Rubik-BlackItalic", + 27, + 12, + "fs/rubik/9" + ], + [ + "Rubik", + "Bold", + "Rubik-Bold", + 27, + 12, + "fs/rubik/6" + ], + [ + "Rubik", + "Bold Italic", + "Rubik-BoldItalic", + 27, + 12, + "fs/rubik/7" + ], + [ + "Rubik", + "Italic", + "Rubik-Italic", + 27, + 12, + "fs/rubik/3" + ], + [ + "Rubik", + "Light", + "Rubik-Light", + 27, + 12, + "fs/rubik/0" + ], + [ + "Rubik", + "Light Italic", + "Rubik-LightItalic", + 27, + 12, + "fs/rubik/1" + ], + [ + "Rubik", + "Medium", + "Rubik-Medium", + 27, + 12, + "fs/rubik/4" + ], + [ + "Rubik", + "Medium Italic", + "Rubik-MediumItalic", + 27, + 12, + "fs/rubik/5" + ], + [ + "Rubik", + "Regular", + "Rubik-Regular", + 27, + 12, + "fs/rubik/2" + ], + [ + "Rubik Mono One", + "Regular", + "RubikMonoOne-Regular", + 11, + 12, + "gf/Rubik Mono One/0" + ], + [ + "Ruda", + "Regular", + "Ruda", + 1, + 12, + "fs/ruda/0" + ], + [ + "Ruda", + "Black", + "Ruda-Black", + 1, + 12, + "fs/ruda/2" + ], + [ + "Ruda", + "Bold", + "Ruda-Bold", + 1, + 12, + "fs/ruda/1" + ], + [ + "Ruda", + "Regular", + "Ruda-Regular", + 1, + 12, + "gf/Ruda/2" + ], + [ + "Rufina", + "Bold", + "Rufina-Bold", + 1, + 14, + "gf/Rufina/0" + ], + [ + "Rufina", + "Regular", + "Rufina-Regular", + 1, + 14, + "gf/Rufina/1" + ], + [ + "Ruge Boogie", + "Regular", + "RugeBoogie-Regular", + 1, + 6, + "gf/Ruge Boogie/0" + ], + [ + "Ruluko", + "Regular", + "Ruluko", + 1, + 12, + "gf/Ruluko/0" + ], + [ + "Rum Raisin", + "Regular", + "RumRaisin-Regular", + 3, + 12, + "gf/Rum Raisin/0" + ], + [ + "Ruslan Display", + "Regular", + "RuslanDisplay", + 11, + 4, + "gf/Ruslan Display/0" + ], + [ + "Russo One", + "Regular", + "RussoOne-Regular", + 11, + 12, + "gf/Russo One/0" + ], + [ + "Ruthie", + "Regular", + "Ruthie-Regular", + 1, + 13, + "fs/ruthie/0" + ], + [ + "Rye", + "Regular", + "Rye-Regular", + 1, + 4, + "fs/rye/0" + ], + [ + "SF Arch Rival", + "Regular", + "SFArchRival", + 1, + 2, + "fs/SF-Arch-Rival/0" + ], + [ + "SF Arch Rival", + "Bold", + "SFArchRival-Bold", + 1, + 2, + "fs/SF-Arch-Rival/2" + ], + [ + "SF Arch Rival", + "Bold Italic", + "SFArchRival-BoldItalic", + 1, + 2, + "fs/SF-Arch-Rival/3" + ], + [ + "SF Arch Rival", + "Italic", + "SFArchRival-Italic", + 1, + 2, + "fs/SF-Arch-Rival/1" + ], + [ + "SF Arch Rival Extended", + "Regular", + "SFArchRivalExtended", + 1, + 2, + "fs/SF-Arch-Rival/4" + ], + [ + "SF Arch Rival Extended", + "Bold", + "SFArchRivalExtended-Bold", + 1, + 2, + "fs/SF-Arch-Rival/6" + ], + [ + "SF Arch Rival Extended", + "Bold Italic", + "SFArchRivalExtended-BoldItalic", + 1, + 2, + "fs/SF-Arch-Rival/7" + ], + [ + "SF Arch Rival Extended", + "Italic", + "SFArchRivalExtended-Italic", + 1, + 2, + "fs/SF-Arch-Rival/5" + ], + [ + "SF Archery Black", + "Regular", + "SFArcheryBlack", + 1, + 4, + "fs/SF-Archery-Black/0" + ], + [ + "SF Archery Black", + "Oblique", + "SFArcheryBlack-Oblique", + 1, + 4, + "fs/SF-Archery-Black/1" + ], + [ + "SF Archery Black SC", + "Regular", + "SFArcheryBlackSC", + 1, + 4, + "fs/SF-Archery-Black/2" + ], + [ + "SF Archery Black SC", + "Oblique", + "SFArcheryBlackSC-Oblique", + 1, + 4, + "fs/SF-Archery-Black/3" + ], + [ + "SF Burlington Script", + "Regular", + "SFBurlingtonScript", + 1, + 13, + "fs/SF-Burlington-Script/0" + ], + [ + "SF Burlington Script", + "Bold", + "SFBurlingtonScript-Bold", + 1, + 13, + "fs/SF-Burlington-Script/2" + ], + [ + "SF Burlington Script", + "Bold Italic", + "SFBurlingtonScript-BoldItalic", + 1, + 13, + "fs/SF-Burlington-Script/3" + ], + [ + "SF Burlington Script", + "Italic", + "SFBurlingtonScript-Italic", + 1, + 13, + "fs/SF-Burlington-Script/1" + ], + [ + "SF Cartoonist Hand", + "Regular", + "SFCartoonistHand", + 1, + 2, + "fs/SF-Cartoonist-Hand/0" + ], + [ + "SF Cartoonist Hand", + "Bold", + "SFCartoonistHand-Bold", + 1, + 2, + "fs/SF-Cartoonist-Hand/2" + ], + [ + "SF Cartoonist Hand", + "Bold Italic", + "SFCartoonistHand-BoldItalic", + 1, + 2, + "fs/SF-Cartoonist-Hand/3" + ], + [ + "SF Cartoonist Hand", + "Italic", + "SFCartoonistHand-Italic", + 1, + 2, + "fs/SF-Cartoonist-Hand/1" + ], + [ + "SF Cartoonist Hand SC", + "Regular", + "SFCartoonistHandSC", + 1, + 2, + "fs/SF-Cartoonist-Hand/4" + ], + [ + "SF Cartoonist Hand SC", + "Bold", + "SFCartoonistHandSC-Bold", + 1, + 2, + "fs/SF-Cartoonist-Hand/6" + ], + [ + "SF Cartoonist Hand SC", + "Bold Italic", + "SFCartoonistHandSC-BoldItalic", + 1, + 2, + "fs/SF-Cartoonist-Hand/7" + ], + [ + "SF Cartoonist Hand SC", + "Italic", + "SFCartoonistHandSC-Italic", + 1, + 2, + "fs/SF-Cartoonist-Hand/5" + ], + [ + "SF Collegiate", + "Regular", + "SFCollegiate", + 0, + 4, + "fs/SF-Collegiate/0" + ], + [ + "SF Collegiate Solid", + "Regular", + "SFCollegiateSolid", + 0, + 4, + "fs/SF-Collegiate/1" + ], + [ + "SF Shai Fontai", + "Regular", + "SFShaiFontai", + 1, + 8, + "fs/SF-Shai-Fontai/0" + ], + [ + "SF Shai Fontai", + "Distressed", + "SFShaiFontaiDistressed", + 1, + 8, + "fs/SF-Shai-Fontai/2" + ], + [ + "SF Shai Fontai", + "Extended", + "SFShaiFontaiExtended", + 1, + 8, + "fs/SF-Shai-Fontai/1" + ], + [ + "SF Slapstick Comic", + "Regular", + "SFSlapstickComic", + 1, + 4, + "fs/SF-Slapstick-Comic/0" + ], + [ + "SF Speakeasy", + "Regular", + "SFSpeakeasy", + 1, + 11, + "fs/SF-Speakeasy/0" + ], + [ + "SF Speakeasy", + "Oblique", + "SFSpeakeasy-Oblique", + 1, + 11, + "fs/SF-Speakeasy/1" + ], + [ + "SF Toontime", + "Regular", + "SFToontime", + 1, + 2, + "fs/SF-Toontime/0" + ], + [ + "SF Toontime", + "Bold", + "SFToontime-Bold", + 1, + 2, + "fs/SF-Toontime/2" + ], + [ + "SF Toontime", + "Bold Italic", + "SFToontime-BoldItalic", + 1, + 2, + "fs/SF-Toontime/3" + ], + [ + "SF Toontime", + "Italic", + "SFToontime-Italic", + 1, + 2, + "fs/SF-Toontime/1" + ], + [ + "SF Toontime", + "Blotch", + "SFToontimeBlotch", + 1, + 2, + "fs/SF-Toontime/4" + ], + [ + "SF Toontime", + "Blotch Italic", + "SFToontimeBlotch-Italic", + 1, + 2, + "fs/SF-Toontime/5" + ], + [ + "SF Wasabi", + "Regular", + "SFWasabi", + 1, + 8, + "fs/SF-Wasabi/0" + ], + [ + "SF Wasabi", + "Condensed", + "SFWasabiCondensed", + 1, + 8, + "fs/SF-Wasabi/1" + ], + [ + "SF Wonder Comic", + "Regular", + "SFWonderComic", + 1, + 2, + "fs/SF-Wonder-Comic/0" + ], + [ + "SF Wonder Comic", + "Bold", + "SFWonderComic-Bold", + 1, + 2, + "fs/SF-Wonder-Comic/2" + ], + [ + "SF Wonder Comic", + "Bold Italic", + "SFWonderComic-BoldItalic", + 1, + 2, + "fs/SF-Wonder-Comic/3" + ], + [ + "SF Wonder Comic", + "Italic", + "SFWonderComic-Italic", + 1, + 2, + "fs/SF-Wonder-Comic/1" + ], + [ + "SF Wonder Comic", + "Blotch", + "SFWonderComicBlotch", + 1, + 2, + "fs/SF-Wonder-Comic/6" + ], + [ + "SF Wonder Comic", + "Blotch Italic", + "SFWonderComicBlotch-Italic", + 1, + 2, + "fs/SF-Wonder-Comic/7" + ], + [ + "SF Wonder Comic", + "Inline", + "SFWonderComicInline", + 1, + 2, + "fs/SF-Wonder-Comic/4" + ], + [ + "SF Wonder Comic", + "Inline Italic", + "SFWonderComicInline-Italic", + 1, + 2, + "fs/SF-Wonder-Comic/5" + ], + [ + "Sacramento", + "Regular", + "Sacramento-Regular", + 3, + 6, + "gf/Sacramento/0" + ], + [ + "Sahitya", + "Bold", + "Sahitya-Bold", + 515, + 14, + "gf/Sahitya/0" + ], + [ + "Sahitya", + "Regular", + "Sahitya-Regular", + 515, + 14, + "gf/Sahitya/1" + ], + [ + "Sail", + "Regular", + "Sail-Regular", + 1, + 13, + "fs/sail/0" + ], + [ + "Saira", + "Black", + "Saira-Black", + 3, + 12, + "fs/saira/8" + ], + [ + "Saira", + "Bold", + "Saira-Bold", + 3, + 12, + "fs/saira/6" + ], + [ + "Saira", + "ExtraBold", + "Saira-ExtraBold", + 3, + 12, + "fs/saira/7" + ], + [ + "Saira", + "ExtraLight", + "Saira-ExtraLight", + 3, + 12, + "fs/saira/1" + ], + [ + "Saira", + "Light", + "Saira-Light", + 3, + 12, + "fs/saira/2" + ], + [ + "Saira", + "Medium", + "Saira-Medium", + 3, + 12, + "fs/saira/4" + ], + [ + "Saira", + "Regular", + "Saira-Regular", + 3, + 12, + "fs/saira/3" + ], + [ + "Saira", + "SemiBold", + "Saira-SemiBold", + 3, + 12, + "fs/saira/5" + ], + [ + "Saira", + "Thin", + "Saira-Thin", + 3, + 12, + "fs/saira/0" + ], + [ + "Saira Condensed", + "Black", + "SairaCondensed-Black", + 3, + 12, + "fs/saira/26" + ], + [ + "Saira Condensed", + "Bold", + "SairaCondensed-Bold", + 3, + 12, + "fs/saira/24" + ], + [ + "Saira Condensed", + "ExtraBold", + "SairaCondensed-ExtraBold", + 3, + 12, + "fs/saira/25" + ], + [ + "Saira Condensed", + "ExtraLight", + "SairaCondensed-ExtraLight", + 3, + 12, + "fs/saira/19" + ], + [ + "Saira Condensed", + "Light", + "SairaCondensed-Light", + 3, + 12, + "fs/saira/20" + ], + [ + "Saira Condensed", + "Medium", + "SairaCondensed-Medium", + 3, + 12, + "fs/saira/22" + ], + [ + "Saira Condensed", + "Regular", + "SairaCondensed-Regular", + 3, + 12, + "fs/saira/21" + ], + [ + "Saira Condensed", + "SemiBold", + "SairaCondensed-SemiBold", + 3, + 12, + "fs/saira/23" + ], + [ + "Saira Condensed", + "Thin", + "SairaCondensed-Thin", + 3, + 12, + "fs/saira/18" + ], + [ + "Saira ExtraCondensed", + "Black", + "SairaExtraCondensed-Black", + 3, + 12, + "fs/saira/35" + ], + [ + "Saira ExtraCondensed", + "Bold", + "SairaExtraCondensed-Bold", + 3, + 12, + "fs/saira/33" + ], + [ + "Saira ExtraCondensed", + "ExtraBold", + "SairaExtraCondensed-ExtraBold", + 3, + 12, + "fs/saira/34" + ], + [ + "Saira ExtraCondensed", + "ExtraLight", + "SairaExtraCondensed-ExtraLight", + 3, + 12, + "fs/saira/28" + ], + [ + "Saira ExtraCondensed", + "Light", + "SairaExtraCondensed-Light", + 3, + 12, + "fs/saira/29" + ], + [ + "Saira ExtraCondensed", + "Medium", + "SairaExtraCondensed-Medium", + 3, + 12, + "fs/saira/31" + ], + [ + "Saira ExtraCondensed", + "Regular", + "SairaExtraCondensed-Regular", + 3, + 12, + "fs/saira/30" + ], + [ + "Saira ExtraCondensed", + "SemiBold", + "SairaExtraCondensed-SemiBold", + 3, + 12, + "fs/saira/32" + ], + [ + "Saira ExtraCondensed", + "Thin", + "SairaExtraCondensed-Thin", + 3, + 12, + "fs/saira/27" + ], + [ + "Saira SemiCondensed", + "Black", + "SairaSemiCondensed-Black", + 3, + 12, + "fs/saira/17" + ], + [ + "Saira SemiCondensed", + "Bold", + "SairaSemiCondensed-Bold", + 3, + 12, + "fs/saira/15" + ], + [ + "Saira SemiCondensed", + "ExtraBold", + "SairaSemiCondensed-ExtraBold", + 3, + 12, + "fs/saira/16" + ], + [ + "Saira SemiCondensed", + "ExtraLight", + "SairaSemiCondensed-ExtraLight", + 3, + 12, + "fs/saira/10" + ], + [ + "Saira SemiCondensed", + "Light", + "SairaSemiCondensed-Light", + 3, + 12, + "fs/saira/11" + ], + [ + "Saira SemiCondensed", + "Medium", + "SairaSemiCondensed-Medium", + 3, + 12, + "fs/saira/13" + ], + [ + "Saira SemiCondensed", + "Regular", + "SairaSemiCondensed-Regular", + 3, + 12, + "fs/saira/12" + ], + [ + "Saira SemiCondensed", + "SemiBold", + "SairaSemiCondensed-SemiBold", + 3, + 12, + "fs/saira/14" + ], + [ + "Saira SemiCondensed", + "Thin", + "SairaSemiCondensed-Thin", + 3, + 12, + "fs/saira/9" + ], + [ + "Salaryman", + "Regular", + "Salaryman", + 0, + 4, + "fs/Salaryman/0" + ], + [ + "Salsa", + "Regular", + "Salsa-Regular", + 1, + 4, + "fs/salsa/0" + ], + [ + "Samba", + "Regular", + "Samba", + 1, + 12, + "fs/Samba/0" + ], + [ + "Sanchez", + "Italic", + "Sanchez-Italic", + 3, + 14, + "gf/Sanchez/1" + ], + [ + "Sanchez", + "Regular", + "Sanchez-Regular", + 3, + 14, + "gf/Sanchez/0" + ], + [ + "Sancreek", + "Regular", + "Sancreek-Regular", + 3, + 4, + "gf/Sancreek/0" + ], + [ + "Sansation", + "Bold", + "Sansation-Bold", + 15, + 12, + "fs/sansation/2" + ], + [ + "Sansation", + "Bold Italic", + "Sansation-BoldItalic", + 15, + 12, + "fs/sansation/5" + ], + [ + "Sansation", + "Italic", + "Sansation-Italic", + 15, + 12, + "fs/sansation/4" + ], + [ + "Sansation Light", + "Light", + "Sansation-Light", + 15, + 12, + "fs/sansation/0" + ], + [ + "Sansation Light", + "Light Italic", + "Sansation-LightItalic", + 15, + 12, + "fs/sansation/3" + ], + [ + "Sansation", + "Regular", + "Sansation-Regular", + 15, + 12, + "fs/sansation/1" + ], + [ + "Sansita", + "Black", + "Sansita-Black", + 3, + 4, + "fs/sansita/6" + ], + [ + "Sansita", + "BlackItalic", + "Sansita-BlackItalic", + 3, + 4, + "fs/sansita/7" + ], + [ + "Sansita", + "Bold", + "Sansita-Bold", + 3, + 4, + "fs/sansita/2" + ], + [ + "Sansita", + "BoldItalic", + "Sansita-BoldItalic", + 3, + 4, + "fs/sansita/3" + ], + [ + "Sansita", + "ExtraBold", + "Sansita-ExtraBold", + 3, + 4, + "fs/sansita/4" + ], + [ + "Sansita", + "ExtraBoldItalic", + "Sansita-ExtraBoldItalic", + 3, + 4, + "fs/sansita/5" + ], + [ + "Sansita", + "Italic", + "Sansita-Italic", + 3, + 4, + "fs/sansita/1" + ], + [ + "Sansita", + "Regular", + "Sansita-Regular", + 3, + 4, + "fs/sansita/0" + ], + [ + "Sansumi", + "Regular", + "Sansumi-Bold", + 1, + 12, + "fs/Sansumi/0" + ], + [ + "Sansumi", + "ExtraBold", + "Sansumi-ExtraBold", + 1, + 12, + "fs/Sansumi/1" + ], + [ + "Santana", + "Regular", + "Santana", + 1, + 4, + "fs/Santana/0" + ], + [ + "Santana-Black", + "Regular", + "Santana-Black", + 1, + 4, + "fs/Santana/2" + ], + [ + "Santana-BlackCondensed", + "Regular", + "Santana-BlackCondensed", + 1, + 4, + "fs/Santana/4" + ], + [ + "Santana", + "Bold", + "Santana-Bold", + 1, + 4, + "fs/Santana/1" + ], + [ + "Santana-RegularCondensed", + "Regular", + "Santana-RegularCondensed", + 1, + 4, + "fs/Santana/3" + ], + [ + "Sarala", + "Bold", + "Sarala-Bold", + 515, + 12, + "gf/Sarala/0" + ], + [ + "Sarala", + "Regular", + "Sarala-Regular", + 515, + 12, + "gf/Sarala/1" + ], + [ + "Sarina", + "Regular", + "Sarina-Regular", + 3, + 13, + "fs/sarina/0" + ], + [ + "Sarpanch", + "Black", + "Sarpanch-Black", + 513, + 4, + "fs/sarpanch/5" + ], + [ + "Sarpanch", + "Bold", + "Sarpanch-Bold", + 513, + 4, + "fs/sarpanch/3" + ], + [ + "Sarpanch", + "ExtraBold", + "Sarpanch-ExtraBold", + 513, + 4, + "fs/sarpanch/4" + ], + [ + "Sarpanch", + "Medium", + "Sarpanch-Medium", + 513, + 4, + "fs/sarpanch/1" + ], + [ + "Sarpanch", + "Regular", + "Sarpanch-Regular", + 513, + 4, + "fs/sarpanch/0" + ], + [ + "Sarpanch", + "SemiBold", + "Sarpanch-SemiBold", + 513, + 4, + "fs/sarpanch/2" + ], + [ + "Sary Soft ExtraLight", + "Regular", + "SarySoft-ExtraLight", + 1, + 12, + "fs/sary-soft/1" + ], + [ + "Sary Soft Light", + "Regular", + "SarySoft-Light", + 1, + 12, + "fs/sary-soft/2" + ], + [ + "Sary Soft", + "Regular", + "SarySoft-Regular", + 1, + 12, + "fs/sary-soft/3" + ], + [ + "Sary Soft SemiBold", + "Regular", + "SarySoft-SemiBold", + 1, + 12, + "fs/sary-soft/4" + ], + [ + "Sary Soft Thin", + "Regular", + "SarySoft-Thin", + 1, + 12, + "fs/sary-soft/0" + ], + [ + "Satisfy", + "Regular", + "Satisfy-Regular", + 1, + 13, + "fs/satisfy/0" + ], + [ + "Sawarabi Gothic", + "Regular", + "SawarabiGothic-Regular", + 139, + 12, + "gf/Sawarabi Gothic/0" + ], + [ + "Sawarabi Mincho", + "Regular", + "SawarabiMincho-Regular", + 131, + 12, + "gf/Sawarabi Mincho/0" + ], + [ + "Scada", + "Bold", + "Scada-Bold", + 11, + 12, + "fs/scada/2" + ], + [ + "Scada", + "Bold Italic", + "Scada-BoldItalic", + 11, + 12, + "fs/scada/3" + ], + [ + "Scada", + "Italic", + "Scada-Italic", + 11, + 12, + "fs/scada/1" + ], + [ + "Scada", + "Regular", + "Scada-Regular", + 11, + 12, + "fs/scada/0" + ], + [ + "Scheherazade", + "Bold", + "Scheherazade-Bold", + 33, + 14, + "fs/scheherazade/1" + ], + [ + "Scheherazade", + "Regular", + "Scheherazade-Regular", + 33, + 14, + "fs/scheherazade/0" + ], + [ + "Schoolbell", + "Regular", + "Schoolbell", + 1, + 8, + "fs/schoolbell/0" + ], + [ + "Schoolbell", + "Regular", + "Schoolbell-Regular", + 1, + 6, + "gf/Schoolbell/0" + ], + [ + "Scope One", + "Regular", + "ScopeOne-Regular", + 3, + 14, + "gf/Scope One/0" + ], + [ + "Scratch", + "Regular", + "Scratch", + 1, + 6, + "fs/Scratch/0" + ], + [ + "Scriptina", + "Regular", + "Scriptina", + 1, + 13, + "fs/Scriptina/0" + ], + [ + "Scriptina - Alternates", + "Regular", + "Scriptina-Alternates", + 0, + 13, + "fs/Scriptina/1" + ], + [ + "Scriptina Pro", + "Regular", + "ScriptinaPro", + 3, + 13, + "fs/scriptina-pro/0" + ], + [ + "Sears Tower", + "Regular", + "SearsTower", + 1, + 17, + "fs/sears-tower/0" + ], + [ + "SeasideResortNF", + "Regular", + "SeasideResortNF", + 1, + 11, + "fs/SeasideResortNF/0" + ], + [ + "Seaweed Script", + "Regular", + "SeaweedScript-Regular", + 1, + 4, + "gf/Seaweed Script/0" + ], + [ + "Secular One", + "Regular", + "SecularOne-Regular", + 19, + 12, + "gf/Secular One/0" + ], + [ + "Sedgwick Ave", + "Regular", + "SedgwickAve-Regular", + 3, + 4, + "fs/sedgwick-ave/0" + ], + [ + "Sedgwick Ave Display", + "Regular", + "SedgwickAveDisplay-Regular", + 3, + 4, + "fs/sedgwick-ave/1" + ], + [ + "Sedgwick Co", + "Regular", + "SedgwickCo", + 0, + 4, + "fs/sedgwick-co/0" + ], + [ + "Selawik", + "Bold", + "Selawik-Bold", + 3, + 12, + "fs/selawik/4" + ], + [ + "Selawik", + "Light", + "Selawik-Light", + 3, + 12, + "fs/selawik/0" + ], + [ + "Selawik", + "Regular", + "Selawik-Regular", + 3, + 12, + "fs/selawik/2" + ], + [ + "Selawik", + "Semibold", + "Selawik-Semibold", + 3, + 12, + "fs/selawik/3" + ], + [ + "Selawik", + "Semilight", + "Selawik-Semilight", + 3, + 12, + "fs/selawik/1" + ], + [ + "Selima", + "Regular", + "Selima", + 1, + 13, + "fs/selima/0" + ], + [ + "Sen", + "Bold", + "Sen-Bold", + 3, + 12, + "fs/sen/1" + ], + [ + "Sen", + "ExtraBold", + "Sen-ExtraBold", + 3, + 12, + "fs/sen/2" + ], + [ + "Sen", + "Regular", + "Sen-Regular", + 3, + 12, + "fs/sen/0" + ], + [ + "Seshat", + "Regular", + "Seshat-Regular", + 0, + 14, + "fs/seshat/0" + ], + [ + "Sesquipedalian", + "Regular", + "Sesquipedalian", + 0, + 11, + "fs/Sesquipedalian/0" + ], + [ + "Sevillana", + "Regular", + "Sevillana-Regular", + 1, + 13, + "fs/sevillana/0" + ], + [ + "Seymour One", + "Book", + "SeymourOne", + 11, + 12, + "gf/Seymour One/0" + ], + [ + "Shadows Into Light", + "Regular", + "ShadowsIntoLight", + 3, + 6, + "gf/Shadows Into Light/0" + ], + [ + "Shadows Into Light Two", + "Regular", + "ShadowsIntoLightTwo-Regular", + 3, + 6, + "gf/Shadows Into Light Two/0" + ], + [ + "ShangriLaNF", + "Regular", + "ShangriLaNF", + 1, + 4, + "fs/ShangriLaNF/0" + ], + [ + "ShangriLaNFSmallCaps", + "Regular", + "ShangriLaNFSmallCaps", + 1, + 4, + "fs/ShangriLaNF/1" + ], + [ + "Shanti", + "Regular", + "Shanti", + 1, + 12, + "fs/shanti/0" + ], + [ + "Share", + "Bold", + "Share-Bold", + 1, + 12, + "fs/share-regular/2" + ], + [ + "Share-BoldExp", + "Regular", + "Share-BoldExp", + 1, + 12, + "fs/share-regular/11" + ], + [ + "Share", + "Bold Italic", + "Share-BoldItalic", + 1, + 12, + "fs/share-regular/3" + ], + [ + "Share-BoldItalicExp", + "Regular", + "Share-BoldItalicExp", + 1, + 12, + "fs/share-regular/12" + ], + [ + "Share-BoldItalicOSF", + "Regular", + "Share-BoldItalicOSF", + 1, + 12, + "fs/share-regular/7" + ], + [ + "Share-BoldOSF", + "Regular", + "Share-BoldOSF", + 1, + 12, + "fs/share-regular/6" + ], + [ + "Share", + "Italic", + "Share-Italic", + 1, + 12, + "fs/share-regular/1" + ], + [ + "Share-ItalicExp", + "Regular", + "Share-ItalicExp", + 1, + 12, + "fs/share-regular/14" + ], + [ + "Share-ItalicOSF", + "Regular", + "Share-ItalicOSF", + 1, + 12, + "fs/share-regular/5" + ], + [ + "Share-Regular", + "Regular", + "Share-Regular", + 1, + 12, + "fs/share-regular/0" + ], + [ + "Share-RegularExp", + "Regular", + "Share-RegularExp", + 1, + 12, + "fs/share-regular/10" + ], + [ + "Share-RegularOSF", + "Regular", + "Share-RegularOSF", + 1, + 12, + "fs/share-regular/4" + ], + [ + "Share-Tech", + "Regular", + "Share-Tech", + 1, + 12, + "fs/share-regular/8" + ], + [ + "Share-TechExp", + "Regular", + "Share-TechExp", + 1, + 12, + "fs/share-regular/13" + ], + [ + "Share-TechMono", + "Regular", + "Share-TechMono", + 1, + 12, + "fs/share-regular/9" + ], + [ + "Share-TechMonoExp", + "Regular", + "Share-TechMonoExp", + 1, + 12, + "fs/share-regular/15" + ], + [ + "Share Tech", + "Regular", + "ShareTech-Regular", + 1, + 12, + "gf/Share Tech/0" + ], + [ + "Share Tech Mono", + "Regular", + "ShareTechMono-Regular", + 1, + 7, + "gf/Share Tech Mono/0" + ], + [ + "Shojumaru", + "Regular", + "Shojumaru-Regular", + 3, + 8, + "fs/shojumaru/0" + ], + [ + "Short Stack", + "Regular", + "ShortStack", + 1, + 6, + "fs/short-stack/0" + ], + [ + "Shrikhand", + "Regular", + "Shrikhand-Regular", + 1, + 14, + "fs/shrikhand/0" + ], + [ + "Siemreap", + "Regular", + "Siemreap", + 0, + 4, + "gf/Siemreap/0" + ], + [ + "Sigmar", + "Regular", + "Sigmar", + 3, + 4, + "fs/sigmar/0" + ], + [ + "Sigmar One", + "Regular", + "SigmarOne-Regular", + 3, + 4, + "gf/Sigmar One/0" + ], + [ + "Signika", + "Bold", + "Signika-Bold", + 1, + 12, + "fs/signika/3" + ], + [ + "Signika", + "Light", + "Signika-Light", + 1, + 12, + "fs/signika/0" + ], + [ + "Signika", + "Regular", + "Signika-Regular", + 1, + 12, + "fs/signika/1" + ], + [ + "Signika", + "SemiBold", + "Signika-SemiBold", + 1, + 12, + "gf/Signika/1" + ], + [ + "Signika", + "Semibold", + "Signika-Semibold", + 1, + 12, + "fs/signika/2" + ], + [ + "Signika Negative", + "Bold", + "SignikaNegative-Bold", + 1, + 12, + "gf/Signika Negative/2" + ], + [ + "Signika Negative", + "Light", + "SignikaNegative-Light", + 1, + 12, + "gf/Signika Negative/0" + ], + [ + "Signika Negative", + "Regular", + "SignikaNegative-Regular", + 1, + 12, + "gf/Signika Negative/3" + ], + [ + "Signika Negative", + "SemiBold", + "SignikaNegative-SemiBold", + 1, + 12, + "gf/Signika Negative/1" + ], + [ + "Silkscreen", + "Normal", + "Silkscreen", + 0, + 9, + "fs/Silkscreen/0" + ], + [ + "Silkscreen", + "Bold", + "Silkscreen-Bold", + 0, + 9, + "fs/Silkscreen/1" + ], + [ + "Silkscreen Expanded", + "Normal", + "Silkscreen-Expanded", + 0, + 9, + "fs/Silkscreen/2" + ], + [ + "Silkscreen Expanded", + "Bold", + "Silkscreen-ExpandedBold", + 0, + 9, + "fs/Silkscreen/3" + ], + [ + "Simonetta", + "Black", + "Simonetta-Black", + 1, + 14, + "fs/simonetta/2" + ], + [ + "Simonetta", + "Black Italic", + "Simonetta-BlackItalic", + 1, + 14, + "fs/simonetta/3" + ], + [ + "Simonetta", + "Italic", + "Simonetta-Italic", + 1, + 14, + "fs/simonetta/1" + ], + [ + "Simonetta", + "Regular", + "Simonetta-Regular", + 1, + 14, + "fs/simonetta/0" + ], + [ + "Sinkin Sans", + "100 Thin", + "SinkinSans-100Thin", + 3, + 12, + "fs/sinkin-sans/0" + ], + [ + "Sinkin Sans", + "100 Thin Italic", + "SinkinSans-100ThinItalic", + 3, + 12, + "fs/sinkin-sans/1" + ], + [ + "Sinkin Sans", + "200 X Light", + "SinkinSans-200XLight", + 3, + 12, + "fs/sinkin-sans/2" + ], + [ + "Sinkin Sans", + "200 X Light Italic", + "SinkinSans-200XLightItalic", + 3, + 12, + "fs/sinkin-sans/3" + ], + [ + "Sinkin Sans", + "300 Light", + "SinkinSans-300Light", + 3, + 12, + "fs/sinkin-sans/4" + ], + [ + "Sinkin Sans", + "300 Light Italic", + "SinkinSans-300LightItalic", + 3, + 12, + "fs/sinkin-sans/5" + ], + [ + "Sinkin Sans", + "400 Italic", + "SinkinSans-400Italic", + 3, + 12, + "fs/sinkin-sans/7" + ], + [ + "Sinkin Sans", + "400 Regular", + "SinkinSans-400Regular", + 3, + 12, + "fs/sinkin-sans/6" + ], + [ + "Sinkin Sans", + "500 Medium", + "SinkinSans-500Medium", + 3, + 12, + "fs/sinkin-sans/8" + ], + [ + "Sinkin Sans", + "500 Medium Italic", + "SinkinSans-500MediumItalic", + 3, + 12, + "fs/sinkin-sans/9" + ], + [ + "Sinkin Sans", + "600 SemiBold", + "SinkinSans-600SemiBold", + 3, + 12, + "fs/sinkin-sans/10" + ], + [ + "Sinkin Sans", + "600 SemiBold Italic", + "SinkinSans-600SemiBoldItalic", + 3, + 12, + "fs/sinkin-sans/11" + ], + [ + "Sinkin Sans", + "700 Bold", + "SinkinSans-700Bold", + 3, + 12, + "fs/sinkin-sans/12" + ], + [ + "Sinkin Sans", + "700 Bold Italic", + "SinkinSans-700BoldItalic", + 3, + 12, + "fs/sinkin-sans/13" + ], + [ + "Sinkin Sans", + "800 Black", + "SinkinSans-800Black", + 3, + 12, + "fs/sinkin-sans/14" + ], + [ + "Sinkin Sans", + "800 Black Italic", + "SinkinSans-800BlackItalic", + 3, + 12, + "fs/sinkin-sans/15" + ], + [ + "Sinkin Sans", + "900 X Black", + "SinkinSans-900XBlack", + 3, + 12, + "fs/sinkin-sans/16" + ], + [ + "Sinkin Sans", + "900 X Black Italic", + "SinkinSans-900XBlackItalic", + 3, + 12, + "fs/sinkin-sans/17" + ], + [ + "Sintony", + "Regular", + "Sintony", + 1, + 12, + "gf/Sintony/1" + ], + [ + "Sintony", + "Bold", + "Sintony-Bold", + 1, + 12, + "fs/sintony/1" + ], + [ + "Sintony", + "Regular", + "Sintony-Regular", + 1, + 12, + "fs/sintony/0" + ], + [ + "SirinStencil", + "Regular", + "SirinStencil-Regular", + 1, + 4, + "gf/Sirin Stencil/0" + ], + [ + "Six Caps", + "Regular", + "SixCaps", + 3, + 4, + "fs/six-caps/0" + ], + [ + "Sjonarbok Classic", + "Regular", + "Sjonarbok-Classic", + 0, + 8, + "fs/Sjonarbok-Classic/0" + ], + [ + "Skranji", + "Regular", + "Skranji", + 1, + 4, + "fs/skranji/0" + ], + [ + "Skranji", + "Bold", + "Skranji-Bold", + 1, + 4, + "fs/skranji/1" + ], + [ + "Slabo 13px", + "Regular", + "Slabo13px-Regular", + 3, + 15, + "fs/slabo/0" + ], + [ + "Slabo 27px", + "Regular", + "Slabo27px-Regular", + 3, + 15, + "fs/slabo/1" + ], + [ + "Slackey", + "Regular", + "Slackey-Regular", + 1, + 4, + "gf/Slackey/0" + ], + [ + "Slim Jim", + "Regular", + "SlimJim", + 1, + 12, + "fs/slim-jim/0" + ], + [ + "Sling", + "Normal", + "Sling", + 0, + 14, + "fs/Sling/0" + ], + [ + "Sling", + "Bold", + "Sling-Bold", + 0, + 14, + "fs/Sling/2" + ], + [ + "Sling", + "Light", + "Sling-Light", + 0, + 14, + "fs/Sling/1" + ], + [ + "Slukoni", + "Medium", + "Slukoni-Medium", + 0, + 4, + "fs/Slukoni/0" + ], + [ + "Smokum", + "Regular", + "Smokum-Regular", + 3, + 4, + "fs/smokum/0" + ], + [ + "Smythe", + "Regular", + "Smythe", + 1, + 4, + "gf/Smythe/0" + ], + [ + "Snickles", + "Regular", + "Snickles", + 0, + 6, + "fs/Snickles/0" + ], + [ + "Sniglet", + "ExtraBold", + "Sniglet-ExtraBold", + 1, + 4, + "fs/sniglet/1" + ], + [ + "Sniglet", + "Regular", + "Sniglet-Regular", + 1, + 4, + "fs/sniglet/0" + ], + [ + "Snippet", + "Regular", + "Snippet", + 1, + 4, + "fs/snippet/0" + ], + [ + "Snowburst One", + "Regular", + "SnowburstOne-Regular", + 1, + 4, + "gf/Snowburst One/0" + ], + [ + "Sofadi One", + "Regular", + "SofadiOne-Regular", + 1, + 4, + "fs/sofadi-one/0" + ], + [ + "Sofia", + "Regular", + "Sofia-Regular", + 1, + 13, + "fs/sofia/0" + ], + [ + "Solveig", + "Bold", + "SolveigBold", + 3, + 12, + "fs/solveig/2" + ], + [ + "Solveig", + "Bold Italic", + "SolveigBold-Italic", + 3, + 12, + "fs/solveig/3" + ], + [ + "Solveig", + "Demi Bold", + "SolveigDemiBold", + 3, + 12, + "fs/solveig/0" + ], + [ + "Solveig", + "Demi Bold Italic", + "SolveigDemiBold-Italic", + 3, + 12, + "fs/solveig/1" + ], + [ + "Solveig", + "Display", + "SolveigDisplay", + 3, + 12, + "fs/solveig/5" + ], + [ + "Solveig", + "Display Italic", + "SolveigDisplay-Italic", + 3, + 12, + "fs/solveig/4" + ], + [ + "Solveig", + "Text", + "SolveigText", + 3, + 12, + "fs/solveig/7" + ], + [ + "Solveig", + "Text Italic", + "SolveigText-Italic", + 3, + 12, + "fs/solveig/6" + ], + [ + "Song Myung", + "Regular", + "SongMyung-Regular", + 64, + 14, + "gf/Song Myung/0" + ], + [ + "Sonsie One", + "Regular", + "SonsieOne", + 3, + 4, + "fs/sonsie-one/0" + ], + [ + "Sonsie One", + "Regular", + "SonsieOne-Regular", + 3, + 4, + "gf/Sonsie One/0" + ], + [ + "Soria", + "Soria", + "Soria-Soria", + 0, + 14, + "fs/soria/0" + ], + [ + "Sorts Mill Goudy", + "Italic", + "SortsMillGoudy-Italic", + 3, + 14, + "gf/Sorts Mill Goudy/1" + ], + [ + "Sorts Mill Goudy", + "Regular", + "SortsMillGoudy-Regular", + 3, + 14, + "gf/Sorts Mill Goudy/0" + ], + [ + "SouciSans", + "Regular", + "SouciSans", + 1, + 4, + "fs/SouciSans/0" + ], + [ + "SoukouMincho", + "Regular", + "SoukouMincho", + 140, + 14, + "fs/soukou-mincho/0" + ], + [ + "Source Code Pro", + "Black", + "SourceCodePro-Black", + 15, + 7, + "fs/source-code-pro/12" + ], + [ + "Source Code Pro", + "Black Italic", + "SourceCodePro-BlackIt", + 3, + 7, + "fs/source-code-pro/13" + ], + [ + "Source Code Pro", + "Bold", + "SourceCodePro-Bold", + 15, + 7, + "fs/source-code-pro/10" + ], + [ + "Source Code Pro", + "Bold Italic", + "SourceCodePro-BoldIt", + 3, + 7, + "fs/source-code-pro/11" + ], + [ + "Source Code Pro", + "ExtraLight", + "SourceCodePro-ExtraLight", + 15, + 7, + "fs/source-code-pro/0" + ], + [ + "Source Code Pro", + "ExtraLight Italic", + "SourceCodePro-ExtraLightIt", + 3, + 7, + "fs/source-code-pro/1" + ], + [ + "Source Code Pro", + "Italic", + "SourceCodePro-It", + 3, + 7, + "fs/source-code-pro/5" + ], + [ + "Source Code Pro", + "Light", + "SourceCodePro-Light", + 15, + 7, + "fs/source-code-pro/2" + ], + [ + "Source Code Pro", + "Light Italic", + "SourceCodePro-LightIt", + 3, + 7, + "fs/source-code-pro/3" + ], + [ + "Source Code Pro", + "Medium", + "SourceCodePro-Medium", + 15, + 7, + "fs/source-code-pro/6" + ], + [ + "Source Code Pro", + "Medium Italic", + "SourceCodePro-MediumIt", + 3, + 7, + "fs/source-code-pro/7" + ], + [ + "Source Code Pro", + "Regular", + "SourceCodePro-Regular", + 15, + 7, + "fs/source-code-pro/4" + ], + [ + "Source Code Pro", + "Semibold", + "SourceCodePro-Semibold", + 15, + 7, + "fs/source-code-pro/8" + ], + [ + "Source Code Pro", + "Semibold Italic", + "SourceCodePro-SemiboldIt", + 3, + 7, + "fs/source-code-pro/9" + ], + [ + "Source Sans Pro", + "Black", + "SourceSansPro-Black", + 15, + 12, + "fs/source-sans-pro/10" + ], + [ + "Source Sans Pro", + "Black Italic", + "SourceSansPro-BlackIt", + 3, + 12, + "fs/source-sans-pro/11" + ], + [ + "Source Sans Pro", + "Black Italic", + "SourceSansPro-BlackItalic", + 3, + 12, + "gf/Source Sans Pro/11" + ], + [ + "Source Sans Pro", + "Bold", + "SourceSansPro-Bold", + 15, + 12, + "fs/source-sans-pro/8" + ], + [ + "Source Sans Pro", + "Bold Italic", + "SourceSansPro-BoldIt", + 3, + 12, + "fs/source-sans-pro/9" + ], + [ + "Source Sans Pro", + "Bold Italic", + "SourceSansPro-BoldItalic", + 3, + 12, + "gf/Source Sans Pro/10" + ], + [ + "Source Sans Pro", + "ExtraLight", + "SourceSansPro-ExtraLight", + 15, + 12, + "fs/source-sans-pro/0" + ], + [ + "Source Sans Pro", + "ExtraLight Italic", + "SourceSansPro-ExtraLightIt", + 3, + 12, + "fs/source-sans-pro/1" + ], + [ + "Source Sans Pro", + "ExtraLight Italic", + "SourceSansPro-ExtraLightItalic", + 3, + 12, + "gf/Source Sans Pro/5" + ], + [ + "Source Sans Pro", + "Italic", + "SourceSansPro-It", + 3, + 12, + "fs/source-sans-pro/5" + ], + [ + "Source Sans Pro", + "Italic", + "SourceSansPro-Italic", + 3, + 12, + "gf/Source Sans Pro/8" + ], + [ + "Source Sans Pro", + "Light", + "SourceSansPro-Light", + 15, + 12, + "fs/source-sans-pro/2" + ], + [ + "Source Sans Pro", + "Light Italic", + "SourceSansPro-LightIt", + 3, + 12, + "fs/source-sans-pro/3" + ], + [ + "Source Sans Pro", + "Light Italic", + "SourceSansPro-LightItalic", + 3, + 12, + "gf/Source Sans Pro/6" + ], + [ + "Source Sans Pro", + "Regular", + "SourceSansPro-Regular", + 15, + 12, + "fs/source-sans-pro/4" + ], + [ + "Source Sans Pro", + "SemiBold", + "SourceSansPro-SemiBold", + 15, + 12, + "gf/Source Sans Pro/2" + ], + [ + "Source Sans Pro", + "SemiBold Italic", + "SourceSansPro-SemiBoldItalic", + 3, + 12, + "gf/Source Sans Pro/9" + ], + [ + "Source Sans Pro", + "Semibold", + "SourceSansPro-Semibold", + 15, + 12, + "fs/source-sans-pro/6" + ], + [ + "Source Sans Pro", + "Semibold Italic", + "SourceSansPro-SemiboldIt", + 3, + 12, + "fs/source-sans-pro/7" + ], + [ + "Source Serif Pro", + "Black", + "SourceSerifPro-Black", + 15, + 14, + "fs/source-serif-pro/10" + ], + [ + "Source Serif Pro", + "Black Italic", + "SourceSerifPro-BlackIt", + 3, + 14, + "fs/source-serif-pro/11" + ], + [ + "Source Serif Pro", + "Bold", + "SourceSerifPro-Bold", + 15, + 14, + "fs/source-serif-pro/8" + ], + [ + "Source Serif Pro", + "Bold Italic", + "SourceSerifPro-BoldIt", + 3, + 14, + "fs/source-serif-pro/9" + ], + [ + "Source Serif Pro", + "ExtraLight", + "SourceSerifPro-ExtraLight", + 15, + 14, + "fs/source-serif-pro/0" + ], + [ + "Source Serif Pro", + "ExtraLight Italic", + "SourceSerifPro-ExtraLightIt", + 3, + 14, + "fs/source-serif-pro/1" + ], + [ + "Source Serif Pro", + "Italic", + "SourceSerifPro-It", + 3, + 14, + "fs/source-serif-pro/5" + ], + [ + "Source Serif Pro", + "Light", + "SourceSerifPro-Light", + 15, + 14, + "fs/source-serif-pro/2" + ], + [ + "Source Serif Pro", + "Light Italic", + "SourceSerifPro-LightIt", + 3, + 14, + "fs/source-serif-pro/3" + ], + [ + "Source Serif Pro", + "Regular", + "SourceSerifPro-Regular", + 15, + 14, + "fs/source-serif-pro/4" + ], + [ + "Source Serif Pro", + "Semibold", + "SourceSerifPro-Semibold", + 15, + 14, + "fs/source-serif-pro/6" + ], + [ + "Source Serif Pro", + "Semibold Italic", + "SourceSerifPro-SemiboldIt", + 3, + 14, + "fs/source-serif-pro/7" + ], + [ + "Space Mono", + "Bold", + "SpaceMono-Bold", + 3, + 7, + "fs/space-mono/2" + ], + [ + "Space Mono", + "Bold Italic", + "SpaceMono-BoldItalic", + 3, + 7, + "fs/space-mono/3" + ], + [ + "Space Mono", + "Italic", + "SpaceMono-Italic", + 3, + 7, + "fs/space-mono/1" + ], + [ + "Space Mono", + "Regular", + "SpaceMono-Regular", + 3, + 7, + "fs/space-mono/0" + ], + [ + "Spartan MB", + "Black", + "SpartanMB-Black", + 1, + 12, + "fs/spartan-mb/6" + ], + [ + "Spartan MB", + "Bold", + "SpartanMB-Bold", + 1, + 12, + "fs/spartan-mb/4" + ], + [ + "Spartan MB", + "ExtraBold", + "SpartanMB-ExtraBold", + 1, + 12, + "fs/spartan-mb/5" + ], + [ + "Spartan MB", + "Light", + "SpartanMB-Light", + 1, + 12, + "fs/spartan-mb/1" + ], + [ + "Spartan MB", + "Regular", + "SpartanMB-Regular", + 1, + 12, + "fs/spartan-mb/2" + ], + [ + "Spartan MB", + "SemiBold", + "SpartanMB-SemiBold", + 1, + 12, + "fs/spartan-mb/3" + ], + [ + "Spartan MB", + "Thin", + "SpartanMB-Thin", + 1, + 12, + "fs/spartan-mb/0" + ], + [ + "Special Elite", + "Regular", + "SpecialElite-Regular", + 3, + 17, + "fs/special-elite/0" + ], + [ + "Spectral", + "Bold", + "Spectral-Bold", + 3, + 14, + "fs/spectral/10" + ], + [ + "Spectral", + "Bold Italic", + "Spectral-BoldItalic", + 3, + 14, + "fs/spectral/11" + ], + [ + "Spectral", + "ExtraBold", + "Spectral-ExtraBold", + 3, + 14, + "fs/spectral/12" + ], + [ + "Spectral", + "ExtraBold Italic", + "Spectral-ExtraBoldItalic", + 3, + 14, + "fs/spectral/13" + ], + [ + "Spectral", + "ExtraLight", + "Spectral-ExtraLight", + 3, + 14, + "fs/spectral/0" + ], + [ + "Spectral", + "ExtraLight Italic", + "Spectral-ExtraLightItalic", + 3, + 14, + "fs/spectral/1" + ], + [ + "Spectral", + "Regular Italic", + "Spectral-Italic", + 3, + 14, + "fs/spectral/5" + ], + [ + "Spectral", + "Light", + "Spectral-Light", + 3, + 14, + "fs/spectral/2" + ], + [ + "Spectral", + "Light Italic", + "Spectral-LightItalic", + 3, + 14, + "fs/spectral/3" + ], + [ + "Spectral", + "Medium", + "Spectral-Medium", + 3, + 14, + "fs/spectral/6" + ], + [ + "Spectral", + "Medium Italic", + "Spectral-MediumItalic", + 3, + 14, + "fs/spectral/7" + ], + [ + "Spectral", + "Regular", + "Spectral-Regular", + 3, + 14, + "fs/spectral/4" + ], + [ + "Spectral", + "SemiBold", + "Spectral-SemiBold", + 3, + 14, + "fs/spectral/8" + ], + [ + "Spectral", + "SemiBold Italic", + "Spectral-SemiBoldItalic", + 3, + 14, + "fs/spectral/9" + ], + [ + "Spectral SC", + "Bold", + "SpectralSC-Bold", + 11, + 14, + "fs/spectral-sc/10" + ], + [ + "Spectral SC", + "Bold Italic", + "SpectralSC-BoldItalic", + 11, + 14, + "fs/spectral-sc/11" + ], + [ + "Spectral SC", + "ExtraBold", + "SpectralSC-ExtraBold", + 11, + 14, + "fs/spectral-sc/12" + ], + [ + "Spectral SC", + "ExtraBold Italic", + "SpectralSC-ExtraBoldItalic", + 11, + 14, + "fs/spectral-sc/13" + ], + [ + "Spectral SC", + "ExtraLight", + "SpectralSC-ExtraLight", + 11, + 14, + "fs/spectral-sc/0" + ], + [ + "Spectral SC", + "ExtraLight Italic", + "SpectralSC-ExtraLightItalic", + 11, + 14, + "fs/spectral-sc/1" + ], + [ + "Spectral SC", + "Italic", + "SpectralSC-Italic", + 11, + 14, + "fs/spectral-sc/5" + ], + [ + "Spectral SC", + "Light", + "SpectralSC-Light", + 11, + 14, + "fs/spectral-sc/2" + ], + [ + "Spectral SC", + "Light Italic", + "SpectralSC-LightItalic", + 11, + 14, + "fs/spectral-sc/3" + ], + [ + "Spectral SC", + "Medium", + "SpectralSC-Medium", + 11, + 14, + "fs/spectral-sc/6" + ], + [ + "Spectral SC", + "Medium Italic", + "SpectralSC-MediumItalic", + 11, + 14, + "fs/spectral-sc/7" + ], + [ + "Spectral SC", + "Regular", + "SpectralSC-Regular", + 11, + 14, + "fs/spectral-sc/4" + ], + [ + "Spectral SC", + "SemiBold", + "SpectralSC-SemiBold", + 11, + 14, + "fs/spectral-sc/8" + ], + [ + "Spectral SC", + "SemiBold Italic", + "SpectralSC-SemiBoldItalic", + 11, + 14, + "fs/spectral-sc/9" + ], + [ + "Spicy Rice", + "Regular", + "SpicyRice-Regular", + 3, + 4, + "fs/spicy-rice/0" + ], + [ + "Spilt Ink", + "Regular", + "SpiltInk", + 0, + 8, + "fs/Spilt-Ink/0" + ], + [ + "Spin Cycle 3D OT", + "Regular", + "SpinCycle3DOT", + 1, + 4, + "fs/Spin-Cycle-OT/1" + ], + [ + "Spin Cycle OT", + "Regular", + "SpinCycleOT", + 1, + 4, + "fs/Spin-Cycle-OT/0" + ], + [ + "Spinnaker", + "Regular", + "Spinnaker-Regular", + 1, + 12, + "gf/Spinnaker/0" + ], + [ + "Spirax", + "Regular", + "Spirax-Regular", + 1, + 4, + "fs/spirax/0" + ], + [ + "Sporting Grotesque", + "Bold", + "SportingGrotesque-Bold", + 5, + 12, + "fs/sporting-grotesque/1" + ], + [ + "Sporting Grotesque", + "Regular", + "SportingGrotesque-Regular", + 5, + 12, + "fs/sporting-grotesque/0" + ], + [ + "Sportrop", + "Regular", + "Sportrop-Regular", + 3, + 4, + "fs/sportrop/0" + ], + [ + "Squada One", + "Regular", + "SquadaOne-Regular", + 1, + 4, + "fs/squada-one/0" + ], + [ + "Sree Krushnadevaraya", + "Regular", + "SreeKrushnadevaraya", + 0, + 14, + "gf/Sree Krushnadevaraya/0" + ], + [ + "Sriracha", + "Regular", + "Sriracha-Regular", + 3, + 6, + "gf/Sriracha/0" + ], + [ + "Srisakdi", + "Bold", + "Srisakdi-Bold", + 3, + 4, + "gf/Srisakdi/0" + ], + [ + "Srisakdi", + "Regular", + "Srisakdi-Regular", + 3, + 4, + "gf/Srisakdi/1" + ], + [ + "St Marie", + "Thin", + "StMarie-Thin", + 3, + 15, + "fs/st-marie/0" + ], + [ + "Stalemate", + "Regular", + "Stalemate-Regular", + 3, + 6, + "gf/Stalemate/0" + ], + [ + "Stalinist One", + "Regular", + "StalinistOne-Regular", + 9, + 4, + "gf/Stalinist One/0" + ], + [ + "Stardos Stencil", + "Bold", + "StardosStencil-Bold", + 1, + 16, + "fs/stardos-stencil/1" + ], + [ + "Stardos Stencil", + "Regular", + "StardosStencil-Regular", + 1, + 16, + "fs/stardos-stencil/0" + ], + [ + "StateFace", + "Regular", + "StateFace-Regular", + 0, + 3, + "fs/stateface/0" + ], + [ + "Stilu", + "Bold", + "Stilu-Bold", + 1, + 12, + "fs/stilu/6" + ], + [ + "Stilu", + "Bold Oblique", + "Stilu-BoldOblique", + 1, + 12, + "fs/stilu/7" + ], + [ + "Stilu", + "Light", + "Stilu-Light", + 1, + 12, + "fs/stilu/1" + ], + [ + "Stilu", + "Light Oblique", + "Stilu-LightOblique", + 1, + 12, + "fs/stilu/0" + ], + [ + "Stilu", + "Oblique", + "Stilu-Oblique", + 1, + 12, + "fs/stilu/3" + ], + [ + "Stilu", + "Regular", + "Stilu-Regular", + 1, + 12, + "fs/stilu/2" + ], + [ + "Stilu", + "SemiBold", + "Stilu-SemiBold", + 1, + 12, + "fs/stilu/4" + ], + [ + "Stilu", + "SemiBold Oblique", + "Stilu-SemiBoldOblique", + 1, + 12, + "fs/stilu/5" + ], + [ + "Stint Ultra Condensed", + "Regular", + "StintUltraCondensed-Regular", + 3, + 4, + "gf/Stint Ultra Condensed/0" + ], + [ + "Stint Ultra Expanded", + "Regular", + "StintUltraExpanded-Regular", + 3, + 4, + "gf/Stint Ultra Expanded/0" + ], + [ + "Stoke", + "Light", + "Stoke-Light", + 3, + 14, + "gf/Stoke/0" + ], + [ + "Stoke", + "Regular", + "Stoke-Regular", + 3, + 14, + "gf/Stoke/1" + ], + [ + "Strait", + "Regular", + "Strait-Regular", + 1, + 12, + "gf/Strait/0" + ], + [ + "Studebaker", + "Regular", + "Studebaker", + 0, + 11, + "fs/Studebaker/0" + ], + [ + "Stylish", + "Regular", + "Stylish-Regular", + 64, + 12, + "gf/Stylish/0" + ], + [ + "Subjectivity", + "Black", + "Subjectivity-Black", + 3, + 12, + "fs/subjectivity/12" + ], + [ + "Subjectivity", + "Black Slanted", + "Subjectivity-BlackSlanted", + 3, + 12, + "fs/subjectivity/13" + ], + [ + "Subjectivity", + "Bold", + "Subjectivity-Bold", + 3, + 12, + "fs/subjectivity/8" + ], + [ + "Subjectivity", + "Bold Slanted", + "Subjectivity-BoldSlanted", + 3, + 12, + "fs/subjectivity/9" + ], + [ + "Subjectivity", + "Extra Bold", + "Subjectivity-ExtraBold", + 3, + 12, + "fs/subjectivity/10" + ], + [ + "Subjectivity", + "Extra Bold Slanted", + "Subjectivity-ExtraBoldSlanted", + 3, + 12, + "fs/subjectivity/11" + ], + [ + "Subjectivity", + "Light", + "Subjectivity-Light", + 3, + 12, + "fs/subjectivity/2" + ], + [ + "Subjectivity", + "Light Slanted", + "Subjectivity-LightSlanted", + 3, + 12, + "fs/subjectivity/3" + ], + [ + "Subjectivity", + "Medium", + "Subjectivity-Medium", + 3, + 12, + "fs/subjectivity/6" + ], + [ + "Subjectivity", + "Medium Slanted", + "Subjectivity-MediumSlanted", + 3, + 12, + "fs/subjectivity/7" + ], + [ + "Subjectivity", + "Regular", + "Subjectivity-Regular", + 3, + 12, + "fs/subjectivity/4" + ], + [ + "Subjectivity", + "Regular Slanted", + "Subjectivity-RegularSlanted", + 3, + 12, + "fs/subjectivity/5" + ], + [ + "Subjectivity", + "Super", + "Subjectivity-Super", + 3, + 12, + "fs/subjectivity/14" + ], + [ + "Subjectivity", + "Super Slanted", + "Subjectivity-SuperSlanted", + 3, + 12, + "fs/subjectivity/15" + ], + [ + "Subjectivity", + "Thin", + "Subjectivity-Thin", + 3, + 12, + "fs/subjectivity/0" + ], + [ + "Subjectivity", + "Thin Slanted", + "Subjectivity-ThinSlanted", + 3, + 12, + "fs/subjectivity/1" + ], + [ + "Sue Ellen Francisco ", + "Regular", + "SueEllenFrancisco", + 1, + 6, + "gf/Sue Ellen Francisco/0" + ], + [ + "Suez One", + "Regular", + "SuezOne-Regular", + 19, + 14, + "gf/Suez One/0" + ], + [ + "Sumana", + "Bold", + "Sumana-Bold", + 513, + 14, + "gf/Sumana/0" + ], + [ + "Sumana", + "Regular", + "Sumana-Regular", + 513, + 14, + "gf/Sumana/1" + ], + [ + "Sunflower", + "Bold", + "Sunflower-Bold", + 0, + 12, + "gf/Sunflower/2" + ], + [ + "Sunflower Light", + "Regular", + "Sunflower-Light", + 0, + 12, + "gf/Sunflower/0" + ], + [ + "Sunflower Medium", + "Regular", + "Sunflower-Medium", + 0, + 12, + "gf/Sunflower/1" + ], + [ + "Sunshiney", + "Regular", + "Sunshiney-Regular", + 1, + 6, + "gf/Sunshiney/0" + ], + [ + "Supermercado", + "Regular", + "Supermercado-Regular", + 3, + 4, + "fs/supermercado/0" + ], + [ + "Sura", + "Bold", + "Sura-Bold", + 512, + 14, + "gf/Sura/0" + ], + [ + "Sura", + "Regular", + "Sura-Regular", + 512, + 14, + "gf/Sura/1" + ], + [ + "Suranna", + "Regular", + "Suranna", + 0, + 14, + "gf/Suranna/0" + ], + [ + "Suravaram", + "Regular", + "Suravaram", + 0, + 14, + "gf/Suravaram/0" + ], + [ + "Surface", + "Medium", + "Surface-Medium", + 1, + 12, + "fs/surface/0" + ], + [ + "Suwannaphum", + "Regular", + "Suwannaphum-Regular", + 0, + 4, + "gf/Suwannaphum/0" + ], + [ + "Swanky and Moo Moo", + "Regular", + "SwankyandMooMoo", + 3, + 6, + "gf/Swanky and Moo Moo/0" + ], + [ + "Symbol Signs", + "Basis set", + "SymbolSigns-Basisset", + 0, + 3, + "fs/Symbol-Signs/0" + ], + [ + "Syncopate", + "Bold", + "Syncopate-Bold", + 3, + 4, + "fs/syncopate/1" + ], + [ + "Syncopate", + "Regular", + "Syncopate-Regular", + 3, + 4, + "fs/syncopate/0" + ], + [ + "Syne", + "Bold", + "Syne-Bold", + 3, + 12, + "fs/syne/1" + ], + [ + "Syne", + "Extra", + "Syne-Extra", + 3, + 12, + "fs/syne/2" + ], + [ + "Syne", + "Italic", + "Syne-Italic", + 3, + 12, + "fs/syne/3" + ], + [ + "Syne", + "Mono", + "Syne-Mono", + 3, + 12, + "fs/syne/4" + ], + [ + "Syne", + "Regular", + "Syne-Regular", + 3, + 12, + "fs/syne/0" + ], + [ + "Synthetique OT", + "Regular", + "SynthetiqueOT", + 1, + 4, + "fs/Synthetique/0" + ], + [ + "210 Sunflower", + "Light", + "TTSunflowerL", + 76, + 10, + "ex/sunflower.ttf" + ], + [ + "Tagapagsalaysay Caps (Narrator)", + "Regular", + "TagapagsalaysayCapsNarrator", + 0, + 2, + "fs/Tagapagsalaysay-Caps-Narrator/0" + ], + [ + "Tagapagsalaysay Caps (Narrator)", + "Bold", + "TagapagsalaysayCapsNarratorBold", + 0, + 2, + "fs/Tagapagsalaysay-Caps-Narrator/2" + ], + [ + "Tagapagsalaysay Caps (Narrator)", + "BoldItalic", + "TagapagsalaysayCapsNarratorBoldItalic", + 0, + 2, + "fs/Tagapagsalaysay-Caps-Narrator/3" + ], + [ + "Tagapagsalaysay Caps (Narrator)", + "Italic", + "TagapagsalaysayCapsNarratorItalic", + 0, + 2, + "fs/Tagapagsalaysay-Caps-Narrator/1" + ], + [ + "Tajawal", + "Black", + "Tajawal-Black", + 1, + 12, + "gf/Tajawal/5" + ], + [ + "Tajawal", + "Bold", + "Tajawal-Bold", + 1, + 12, + "gf/Tajawal/3" + ], + [ + "Tajawal", + "ExtraBold", + "Tajawal-ExtraBold", + 1, + 12, + "gf/Tajawal/4" + ], + [ + "Tajawal", + "ExtraLight", + "Tajawal-ExtraLight", + 1, + 12, + "gf/Tajawal/0" + ], + [ + "Tajawal", + "Light", + "Tajawal-Light", + 1, + 12, + "gf/Tajawal/1" + ], + [ + "Tajawal", + "Medium", + "Tajawal-Medium", + 1, + 12, + "gf/Tajawal/2" + ], + [ + "Tajawal", + "Regular", + "Tajawal-Regular", + 1, + 12, + "gf/Tajawal/6" + ], + [ + "Tangerine", + "Regular", + "Tangerine", + 1, + 13, + "fs/Tangerine/0" + ], + [ + "Tangerine", + "Bold", + "Tangerine-Bold", + 1, + 13, + "fs/Tangerine/1" + ], + [ + "Tangerine", + "Regular", + "Tangerine-Regular", + 1, + 6, + "gf/Tangerine/1" + ], + [ + "Taprom", + "Regular", + "Taprom", + 0, + 4, + "gf/Taprom/0" + ], + [ + "Tauri", + "Regular", + "TauriRegular", + 1, + 12, + "gf/Tauri/0" + ], + [ + "Taviraj", + "Black", + "Taviraj-Black", + 3, + 14, + "gf/Taviraj/7" + ], + [ + "Taviraj", + "Black Italic", + "Taviraj-BlackItalic", + 3, + 14, + "gf/Taviraj/17" + ], + [ + "Taviraj", + "Bold", + "Taviraj-Bold", + 3, + 14, + "gf/Taviraj/5" + ], + [ + "Taviraj", + "Bold Italic", + "Taviraj-BoldItalic", + 3, + 14, + "gf/Taviraj/15" + ], + [ + "Taviraj", + "ExtraBold", + "Taviraj-ExtraBold", + 3, + 14, + "gf/Taviraj/6" + ], + [ + "Taviraj", + "ExtraBold Italic", + "Taviraj-ExtraBoldItalic", + 3, + 14, + "gf/Taviraj/16" + ], + [ + "Taviraj", + "ExtraLight", + "Taviraj-ExtraLight", + 3, + 14, + "gf/Taviraj/1" + ], + [ + "Taviraj", + "ExtraLight Italic", + "Taviraj-ExtraLightItalic", + 3, + 14, + "gf/Taviraj/9" + ], + [ + "Taviraj", + "Italic", + "Taviraj-Italic", + 3, + 14, + "gf/Taviraj/12" + ], + [ + "Taviraj", + "Light", + "Taviraj-Light", + 3, + 14, + "gf/Taviraj/2" + ], + [ + "Taviraj", + "Light Italic", + "Taviraj-LightItalic", + 3, + 14, + "gf/Taviraj/10" + ], + [ + "Taviraj", + "Medium", + "Taviraj-Medium", + 3, + 14, + "gf/Taviraj/3" + ], + [ + "Taviraj", + "Medium Italic", + "Taviraj-MediumItalic", + 3, + 14, + "gf/Taviraj/13" + ], + [ + "Taviraj", + "Regular", + "Taviraj-Regular", + 3, + 14, + "gf/Taviraj/11" + ], + [ + "Taviraj", + "SemiBold", + "Taviraj-SemiBold", + 3, + 14, + "gf/Taviraj/4" + ], + [ + "Taviraj", + "SemiBold Italic", + "Taviraj-SemiBoldItalic", + 3, + 14, + "gf/Taviraj/14" + ], + [ + "Taviraj", + "Thin", + "Taviraj-Thin", + 3, + 14, + "gf/Taviraj/0" + ], + [ + "Taviraj", + "Thin Italic", + "Taviraj-ThinItalic", + 3, + 14, + "gf/Taviraj/8" + ], + [ + "TeX Gyre Adventor", + "Bold", + "TeXGyreAdventor-Bold", + 15, + 12, + "fs/TeX-Gyre-Adventor/2" + ], + [ + "TeX Gyre Adventor", + "Bold Italic", + "TeXGyreAdventor-BoldItalic", + 15, + 12, + "fs/TeX-Gyre-Adventor/3" + ], + [ + "TeX Gyre Adventor", + "Italic", + "TeXGyreAdventor-Italic", + 15, + 12, + "fs/TeX-Gyre-Adventor/1" + ], + [ + "TeX Gyre Adventor", + "Regular", + "TeXGyreAdventor-Regular", + 15, + 12, + "fs/TeX-Gyre-Adventor/0" + ], + [ + "TeX Gyre Bonum", + "Bold", + "TeXGyreBonum-Bold", + 15, + 14, + "fs/TeX-Gyre-Bonum/2" + ], + [ + "TeX Gyre Bonum", + "Bold Italic", + "TeXGyreBonum-BoldItalic", + 15, + 14, + "fs/TeX-Gyre-Bonum/3" + ], + [ + "TeX Gyre Bonum", + "Italic", + "TeXGyreBonum-Italic", + 15, + 14, + "fs/TeX-Gyre-Bonum/1" + ], + [ + "TeX Gyre Bonum", + "Regular", + "TeXGyreBonum-Regular", + 15, + 14, + "fs/TeX-Gyre-Bonum/0" + ], + [ + "TeX Gyre Cursor", + "Bold", + "TeXGyreCursor-Bold", + 15, + 7, + "fs/TeX-Gyre-Cursor/2" + ], + [ + "TeX Gyre Cursor", + "Bold Italic", + "TeXGyreCursor-BoldItalic", + 15, + 7, + "fs/TeX-Gyre-Cursor/3" + ], + [ + "TeX Gyre Cursor", + "Italic", + "TeXGyreCursor-Italic", + 15, + 7, + "fs/TeX-Gyre-Cursor/1" + ], + [ + "TeX Gyre Cursor", + "Regular", + "TeXGyreCursor-Regular", + 15, + 7, + "fs/TeX-Gyre-Cursor/0" + ], + [ + "TeX Gyre Heros", + "Bold", + "TeXGyreHeros-Bold", + 15, + 12, + "fs/TeX-Gyre-Heros/2" + ], + [ + "TeX Gyre Heros", + "Bold Italic", + "TeXGyreHeros-BoldItalic", + 15, + 12, + "fs/TeX-Gyre-Heros/3" + ], + [ + "TeX Gyre Heros", + "Italic", + "TeXGyreHeros-Italic", + 15, + 12, + "fs/TeX-Gyre-Heros/1" + ], + [ + "TeX Gyre Heros", + "Regular", + "TeXGyreHeros-Regular", + 15, + 12, + "fs/TeX-Gyre-Heros/0" + ], + [ + "TeX Gyre Heros Cn", + "Bold", + "TeXGyreHerosCondensed-Bold", + 15, + 12, + "fs/TeX-Gyre-Heros/6" + ], + [ + "TeX Gyre Heros Cn", + "Bold Italic", + "TeXGyreHerosCondensed-BoldItalic", + 15, + 12, + "fs/TeX-Gyre-Heros/7" + ], + [ + "TeX Gyre Heros Cn", + "Italic", + "TeXGyreHerosCondensed-Italic", + 15, + 12, + "fs/TeX-Gyre-Heros/5" + ], + [ + "TeX Gyre Heros Cn", + "Regular", + "TeXGyreHerosCondensed-Regular", + 15, + 12, + "fs/TeX-Gyre-Heros/4" + ], + [ + "TeX Gyre Pagella", + "Bold", + "TeXGyrePagella-Bold", + 15, + 14, + "fs/TeX-Gyre-Pagella/2" + ], + [ + "TeX Gyre Pagella", + "Bold Italic", + "TeXGyrePagella-BoldItalic", + 15, + 14, + "fs/TeX-Gyre-Pagella/3" + ], + [ + "TeX Gyre Pagella", + "Italic", + "TeXGyrePagella-Italic", + 15, + 14, + "fs/TeX-Gyre-Pagella/1" + ], + [ + "TeX Gyre Pagella", + "Regular", + "TeXGyrePagella-Regular", + 15, + 14, + "fs/TeX-Gyre-Pagella/0" + ], + [ + "TeX Gyre Schola", + "Bold", + "TeXGyreSchola-Bold", + 15, + 14, + "fs/TeX-Gyre-Schola/2" + ], + [ + "TeX Gyre Schola", + "Bold Italic", + "TeXGyreSchola-BoldItalic", + 15, + 14, + "fs/TeX-Gyre-Schola/3" + ], + [ + "TeX Gyre Schola", + "Italic", + "TeXGyreSchola-Italic", + 15, + 14, + "fs/TeX-Gyre-Schola/1" + ], + [ + "TeX Gyre Schola", + "Regular", + "TeXGyreSchola-Regular", + 15, + 14, + "fs/TeX-Gyre-Schola/0" + ], + [ + "TeX Gyre Termes", + "Bold", + "TeXGyreTermes-Bold", + 15, + 14, + "fs/TeX-Gyre-Termes/2" + ], + [ + "TeX Gyre Termes", + "Bold Italic", + "TeXGyreTermes-BoldItalic", + 15, + 14, + "fs/TeX-Gyre-Termes/3" + ], + [ + "TeX Gyre Termes", + "Italic", + "TeXGyreTermes-Italic", + 15, + 14, + "fs/TeX-Gyre-Termes/1" + ], + [ + "TeX Gyre Termes", + "Regular", + "TeXGyreTermes-Regular", + 15, + 14, + "fs/TeX-Gyre-Termes/0" + ], + [ + "Technique BRK", + "Normal", + "TechniqueBRK", + 0, + 4, + "fs/Technique-BRK/0" + ], + [ + "Technique OL BRK", + "Normal", + "TechniqueOLBRK", + 0, + 4, + "fs/Technique-BRK/1" + ], + [ + "Tecnico", + "Fino", + "TecnicoFino", + 5, + 12, + "fs/tecnico/0" + ], + [ + "Tecnico", + "FinoInclinado", + "TecnicoFinoInclinado", + 5, + 12, + "fs/tecnico/1" + ], + [ + "Tecnico", + "Grueso", + "TecnicoGrueso", + 5, + 12, + "fs/tecnico/2" + ], + [ + "Tecnico", + "GruesoInclinado", + "TecnicoGruesoInclinado", + 5, + 12, + "fs/tecnico/3" + ], + [ + "Teko", + "Bold", + "Teko-Bold", + 513, + 4, + "fs/teko/4" + ], + [ + "Teko", + "Light", + "Teko-Light", + 513, + 4, + "fs/teko/0" + ], + [ + "Teko", + "Medium", + "Teko-Medium", + 513, + 4, + "fs/teko/2" + ], + [ + "Teko", + "Regular", + "Teko-Regular", + 513, + 4, + "fs/teko/1" + ], + [ + "Teko", + "SemiBold", + "Teko-SemiBold", + 513, + 4, + "fs/teko/3" + ], + [ + "Telex", + "Regular", + "Telex-Regular", + 1, + 12, + "fs/telex/0" + ], + [ + "Tenali Ramakrishna", + "Regular", + "TenaliRamakrishna", + 0, + 12, + "gf/Tenali Ramakrishna/0" + ], + [ + "Tenderness", + "Regular", + "Tenderness", + 0, + 12, + "fs/tenderness/0" + ], + [ + "Tenor Sans", + "Regular", + "TenorSans", + 11, + 12, + "gf/Tenor Sans/0" + ], + [ + "Teutonic", + "No1 DemiBold", + "TeutonicNo1-DemiBold", + 0, + 0, + "fs/Teutonic-No1/0" + ], + [ + "Teutonic", + "No2 DemiBold", + "TeutonicNo2-DemiBold", + 0, + 0, + "fs/Teutonic-No1/1" + ], + [ + "Teutonic", + "No3 DemiBold", + "TeutonicNo3-DemiBold", + 0, + 0, + "fs/Teutonic-No1/2" + ], + [ + "Teutonic", + "No4 DemiBold", + "TeutonicNo4-DemiBold", + 0, + 0, + "fs/Teutonic-No1/3" + ], + [ + "Text Me One", + "Regular", + "TextMeOne-Regular", + 1, + 12, + "gf/Text Me One/0" + ], + [ + "The Girl Next Door", + "Regular", + "TheGirlNextDoor", + 3, + 6, + "gf/The Girl Next Door/0" + ], + [ + "Theano", + "Didot", + "TheanoDidot-Regular", + 7, + 14, + "fs/Theano-Didot/0" + ], + [ + "Theano", + "Modern", + "TheanoModern-Regular", + 7, + 14, + "fs/Theano-Modern/0" + ], + [ + "Theano", + "Old Style", + "TheanoOldStyle-Regular", + 7, + 14, + "fs/Theano-Old-Style/0" + ], + [ + "Tienne", + "Regular", + "Tienne", + 1, + 15, + "fs/tienne/0" + ], + [ + "Tienne", + "Black", + "Tienne-Black", + 1, + 14, + "gf/Tienne/1" + ], + [ + "Tienne", + "Bold", + "Tienne-Bold", + 1, + 15, + "fs/tienne/1" + ], + [ + "Tienne", + "Heavy", + "Tienne-Heavy", + 1, + 15, + "fs/tienne/2" + ], + [ + "Tienne", + "Regular", + "Tienne-Regular", + 1, + 14, + "gf/Tienne/2" + ], + [ + "Tillana", + "Bold", + "Tillana-Bold", + 513, + 6, + "fs/tillana/3" + ], + [ + "Tillana", + "ExtraBold", + "Tillana-ExtraBold", + 513, + 6, + "fs/tillana/4" + ], + [ + "Tillana", + "Medium", + "Tillana-Medium", + 513, + 6, + "fs/tillana/1" + ], + [ + "Tillana", + "Regular", + "Tillana-Regular", + 513, + 6, + "fs/tillana/0" + ], + [ + "Tillana", + "SemiBold", + "Tillana-SemiBold", + 513, + 6, + "fs/tillana/2" + ], + [ + "Timmana", + "Regular", + "Timmana", + 0, + 12, + "gf/Timmana/0" + ], + [ + "Tinet", + "Regular", + "Tinet", + 1, + 6, + "fs/Tinet/0" + ], + [ + "Tinos", + "Regular", + "Tinos", + 31, + 14, + "fs/tinos/0" + ], + [ + "Tinos", + "Bold", + "Tinos-Bold", + 31, + 14, + "fs/tinos/2" + ], + [ + "Tinos", + "Bold Italic", + "Tinos-BoldItalic", + 31, + 14, + "fs/tinos/3" + ], + [ + "Tinos", + "Italic", + "Tinos-Italic", + 31, + 14, + "fs/tinos/1" + ], + [ + "Tinos", + "Regular", + "Tinos-Regular", + 31, + 14, + "gf/Tinos/1" + ], + [ + "Tiresias Infofont", + "Regular", + "TiresiasInfofont", + 1, + 12, + "fs/Tiresias-Infofont/0" + ], + [ + "Tiresias Infofont", + "Italic", + "TiresiasInfofontItalic", + 1, + 12, + "fs/Tiresias-Infofont/1" + ], + [ + "Titan One", + "Regular", + "TitanOne", + 3, + 4, + "fs/titan-one/0" + ], + [ + "Titillium", + "Black", + "Titillium-Black", + 3, + 12, + "fs/Titillium/10" + ], + [ + "Titillium", + "Bold", + "Titillium-Bold", + 3, + 12, + "fs/Titillium/8" + ], + [ + "Titillium", + "Bold Italic", + "Titillium-BoldItalic", + 3, + 12, + "fs/Titillium/9" + ], + [ + "Titillium", + "Bold Upright", + "Titillium-BoldUpright", + 3, + 12, + "fs/Titillium/15" + ], + [ + "Titillium", + "Light", + "Titillium-Light", + 3, + 12, + "fs/Titillium/2" + ], + [ + "Titillium", + "Light Italic", + "Titillium-LightItalic", + 3, + 12, + "fs/Titillium/3" + ], + [ + "Titillium", + "Light Upright", + "Titillium-LightUpright", + 3, + 12, + "fs/Titillium/12" + ], + [ + "Titillium", + "Regular", + "Titillium-Regular", + 3, + 12, + "fs/Titillium/4" + ], + [ + "Titillium", + "Regular Italic", + "Titillium-RegularItalic", + 3, + 12, + "fs/Titillium/5" + ], + [ + "Titillium", + "Regular Upright", + "Titillium-RegularUpright", + 3, + 12, + "fs/Titillium/13" + ], + [ + "Titillium", + "Semibold", + "Titillium-Semibold", + 3, + 12, + "fs/Titillium/6" + ], + [ + "Titillium", + "Semibold Italic", + "Titillium-SemiboldItalic", + 3, + 12, + "fs/Titillium/7" + ], + [ + "Titillium", + "Semibold Upright", + "Titillium-SemiboldUpright", + 3, + 12, + "fs/Titillium/14" + ], + [ + "Titillium", + "Thin", + "Titillium-Thin", + 3, + 12, + "fs/Titillium/0" + ], + [ + "Titillium", + "Thin Italic", + "Titillium-ThinItalic", + 3, + 12, + "fs/Titillium/1" + ], + [ + "Titillium", + "Thin Upright", + "Titillium-ThinUpright", + 3, + 12, + "fs/Titillium/11" + ], + [ + "Titillium Web", + "Black", + "TitilliumWeb-Black", + 3, + 12, + "gf/Titillium Web/4" + ], + [ + "Titillium Web", + "Bold", + "TitilliumWeb-Bold", + 3, + 12, + "gf/Titillium Web/3" + ], + [ + "Titillium Web", + "Bold Italic", + "TitilliumWeb-BoldItalic", + 3, + 12, + "gf/Titillium Web/10" + ], + [ + "Titillium Web", + "ExtraLight", + "TitilliumWeb-ExtraLight", + 3, + 12, + "gf/Titillium Web/0" + ], + [ + "Titillium Web", + "ExtraLight Italic", + "TitilliumWeb-ExtraLightItalic", + 3, + 12, + "gf/Titillium Web/5" + ], + [ + "Titillium Web", + "Italic", + "TitilliumWeb-Italic", + 3, + 12, + "gf/Titillium Web/8" + ], + [ + "Titillium Web", + "Light", + "TitilliumWeb-Light", + 3, + 12, + "gf/Titillium Web/1" + ], + [ + "Titillium Web", + "Light Italic", + "TitilliumWeb-LightItalic", + 3, + 12, + "gf/Titillium Web/6" + ], + [ + "Titillium Web", + "Regular", + "TitilliumWeb-Regular", + 3, + 12, + "gf/Titillium Web/7" + ], + [ + "Titillium Web", + "SemiBold", + "TitilliumWeb-SemiBold", + 3, + 12, + "gf/Titillium Web/2" + ], + [ + "Titillium Web", + "SemiBold Italic", + "TitilliumWeb-SemiBoldItalic", + 3, + 12, + "gf/Titillium Web/9" + ], + [ + "Tiza", + "Regular", + "Tiza", + 1, + 4, + "fs/Tiza/0" + ], + [ + "Top Secret", + "Bold", + "TopSecret-Bold", + 0, + 16, + "fs/Top-Secret/0" + ], + [ + "Trade Winds", + "Regular", + "TradeWinds", + 1, + 4, + "fs/trade-winds/0" + ], + [ + "TrashHand", + "Regular", + "TrashHand", + 0, + 6, + "fs/TrashHand/0" + ], + [ + "Trendy University", + "Regular", + "TrendyUniversity", + 0, + 16, + "fs/Trendy-University/0" + ], + [ + "Trickster", + "Regular", + "Trickster-Regular", + 3, + 0, + "fs/trickster/0" + ], + [ + "Trirong", + "Black", + "Trirong-Black", + 3, + 14, + "gf/Trirong/7" + ], + [ + "Trirong", + "Black Italic", + "Trirong-BlackItalic", + 3, + 14, + "gf/Trirong/17" + ], + [ + "Trirong", + "Bold", + "Trirong-Bold", + 3, + 14, + "gf/Trirong/5" + ], + [ + "Trirong", + "Bold Italic", + "Trirong-BoldItalic", + 3, + 14, + "gf/Trirong/15" + ], + [ + "Trirong", + "ExtraBold", + "Trirong-ExtraBold", + 3, + 14, + "gf/Trirong/6" + ], + [ + "Trirong", + "ExtraBold Italic", + "Trirong-ExtraBoldItalic", + 3, + 14, + "gf/Trirong/16" + ], + [ + "Trirong", + "ExtraLight", + "Trirong-ExtraLight", + 3, + 14, + "gf/Trirong/1" + ], + [ + "Trirong", + "ExtraLight Italic", + "Trirong-ExtraLightItalic", + 3, + 14, + "gf/Trirong/9" + ], + [ + "Trirong", + "Italic", + "Trirong-Italic", + 3, + 14, + "gf/Trirong/12" + ], + [ + "Trirong", + "Light", + "Trirong-Light", + 3, + 14, + "gf/Trirong/2" + ], + [ + "Trirong", + "Light Italic", + "Trirong-LightItalic", + 3, + 14, + "gf/Trirong/10" + ], + [ + "Trirong", + "Medium", + "Trirong-Medium", + 3, + 14, + "gf/Trirong/3" + ], + [ + "Trirong", + "Medium Italic", + "Trirong-MediumItalic", + 3, + 14, + "gf/Trirong/13" + ], + [ + "Trirong", + "Regular", + "Trirong-Regular", + 3, + 14, + "gf/Trirong/11" + ], + [ + "Trirong", + "SemiBold", + "Trirong-SemiBold", + 3, + 14, + "gf/Trirong/4" + ], + [ + "Trirong", + "SemiBold Italic", + "Trirong-SemiBoldItalic", + 3, + 14, + "gf/Trirong/14" + ], + [ + "Trirong", + "Thin", + "Trirong-Thin", + 3, + 14, + "gf/Trirong/0" + ], + [ + "Trirong", + "Thin Italic", + "Trirong-ThinItalic", + 3, + 14, + "gf/Trirong/8" + ], + [ + "Trocchi", + "Regular", + "Trocchi", + 3, + 15, + "fs/trocchi/0" + ], + [ + "Trocchi", + "Bold", + "Trocchi-Bold", + 0, + 15, + "fs/trocchi/1" + ], + [ + "Trocchi", + "Regular", + "Trocchi-Regular", + 3, + 14, + "gf/Trocchi/0" + ], + [ + "Trochut", + "Regular", + "Trochut", + 1, + 4, + "gf/Trochut/1" + ], + [ + "Trochut", + "Bold", + "Trochut-Bold", + 1, + 4, + "gf/Trochut/0" + ], + [ + "Trochut", + "Italic", + "Trochut-Italic", + 1, + 4, + "gf/Trochut/2" + ], + [ + "TroglodyteNF", + "Regular", + "TroglodyteNF", + 1, + 11, + "fs/TroglodyteNF/0" + ], + [ + "Troika", + "Regular", + "Troika", + 15, + 4, + "fs/troika/0" + ], + [ + "True Crimes", + "Regular", + "TrueCrimes", + 0, + 11, + "fs/True-Crimes/0" + ], + [ + "Trump Town Pro", + "Regular", + "TrumpTownPro", + 3, + 4, + "fs/trump-town-pro/0" + ], + [ + "Trykker", + "Regular", + "Trykker-Regular", + 3, + 14, + "fs/trykker/0" + ], + [ + "Tuffy", + "Regular", + "Tuffy", + 15, + 12, + "fs/tuffy/0" + ], + [ + "Tuffy", + "Bold", + "Tuffy-Bold", + 15, + 12, + "fs/tuffy/2" + ], + [ + "Tuffy", + "Bold-Italic", + "Tuffy-Bold-Italic", + 15, + 12, + "fs/tuffy/3" + ], + [ + "Tuffy", + "Italic", + "Tuffy-Italic", + 15, + 12, + "fs/tuffy/1" + ], + [ + "Tulia", + "Regular", + "Tulia", + 1, + 15, + "fs/tulia/0" + ], + [ + "Tulia", + "Bold", + "Tulia-Bold", + 1, + 15, + "fs/tulia/2" + ], + [ + "Tulia", + "Italic", + "Tulia-Italic", + 1, + 15, + "fs/tulia/1" + ], + [ + "Tulpen One", + "Regular", + "TulpenOne-Regular", + 1, + 4, + "fs/tulpen-one/0" + ], + [ + "TypeMyMusic", + "Notation", + "TypeMyMusic-Notation", + 0, + 3, + "fs/typemymusic/0" + ], + [ + "TypoSlabserif-Light", + "Regular", + "TypoSlabserif-Light", + 1, + 15, + "fs/TypoSlabserif-Light/0" + ], + [ + "Ubuntu", + "Regular", + "Ubuntu", + 15, + 12, + "fs/ubuntu/0" + ], + [ + "Ubuntu", + "Bold", + "Ubuntu-Bold", + 15, + 12, + "gf/Ubuntu/2" + ], + [ + "Ubuntu", + "Bold Italic", + "Ubuntu-BoldItalic", + 15, + 12, + "gf/Ubuntu/7" + ], + [ + "Ubuntu", + "Italic", + "Ubuntu-Italic", + 15, + 12, + "gf/Ubuntu/5" + ], + [ + "Ubuntu Light", + "Regular", + "Ubuntu-Light", + 15, + 12, + "gf/Ubuntu/0" + ], + [ + "Ubuntu Light", + "Italic", + "Ubuntu-LightItalic", + 15, + 12, + "gf/Ubuntu/3" + ], + [ + "Ubuntu Medium", + "Regular", + "Ubuntu-Medium", + 15, + 12, + "gf/Ubuntu/1" + ], + [ + "Ubuntu Medium", + "Italic", + "Ubuntu-MediumItalic", + 15, + 12, + "gf/Ubuntu/6" + ], + [ + "Ubuntu", + "Regular", + "Ubuntu-Regular", + 15, + 12, + "gf/Ubuntu/4" + ], + [ + "Ubuntu-Title", + "Title", + "Ubuntu-Title", + 0, + 4, + "fs/Ubuntu-Title/0" + ], + [ + "Ubuntu Condensed", + "Regular", + "UbuntuCondensed-Regular", + 15, + 12, + "fs/ubuntu/8" + ], + [ + "Ubuntu Mono", + "Bold", + "UbuntuMono-Bold", + 15, + 7, + "fs/ubuntu-mono/2" + ], + [ + "Ubuntu Mono", + "Bold Italic", + "UbuntuMono-BoldItalic", + 15, + 7, + "fs/ubuntu-mono/3" + ], + [ + "Ubuntu Mono", + "Italic", + "UbuntuMono-Italic", + 15, + 7, + "fs/ubuntu-mono/1" + ], + [ + "Ubuntu Mono", + "Regular", + "UbuntuMono-Regular", + 15, + 7, + "fs/ubuntu-mono/0" + ], + [ + "Ubuntu Titling", + "Bold", + "UbuntuTitling-Bold", + 1, + 4, + "fs/Ubuntu-Titling/0" + ], + [ + "UglyQua", + "Regular", + "UglyQua", + 1, + 4, + "fs/UglyQua/0" + ], + [ + "UglyQua", + "Italic", + "UglyQua-Italic", + 1, + 4, + "fs/UglyQua/1" + ], + [ + "Ultra", + "Regular", + "Ultra", + 3, + 4, + "fs/ultra/0" + ], + [ + "Ultra", + "Regular", + "Ultra-Regular", + 3, + 14, + "gf/Ultra/0" + ], + [ + "Umbrage", + "Regular", + "Umbrage", + 0, + 4, + "fs/Umbrage/0" + ], + [ + "UnB Office", + "Regular", + "UnBOffice", + 15, + 12, + "fs/unb/6" + ], + [ + "UnB Office", + "Bold", + "UnBOffice-Bold", + 15, + 12, + "fs/unb/8" + ], + [ + "UnB Office", + "Bold Italic", + "UnBOffice-BoldItalic", + 15, + 12, + "fs/unb/9" + ], + [ + "UnB Office", + "Italic", + "UnBOffice-Italic", + 1, + 12, + "fs/unb/7" + ], + [ + "UnB Pro", + "Black", + "UnBPro-Black", + 3, + 12, + "fs/unb/5" + ], + [ + "UnB Pro", + "Bold", + "UnBPro-Bold", + 3, + 12, + "fs/unb/3" + ], + [ + "UnB Pro", + "Bold Italic", + "UnBPro-BoldItalic", + 3, + 12, + "fs/unb/4" + ], + [ + "UnB Pro", + "Light", + "UnBPro-Light", + 3, + 12, + "fs/unb/0" + ], + [ + "UnB Pro", + "Regular", + "UnBPro-Regular", + 3, + 12, + "fs/unb/1" + ], + [ + "UnB Pro", + "Regular Italic", + "UnBPro-RegularItalic", + 3, + 12, + "fs/unb/2" + ], + [ + "Uncial Antiqua", + "Regular", + "UncialAntiqua-Regular", + 3, + 4, + "fs/uncial-antiqua/0" + ], + [ + "Underdog", + "Regular", + "Underdog-Regular", + 11, + 4, + "gf/Underdog/0" + ], + [ + "Underwood Champion", + "Regular", + "UnderwoodChampion", + 0, + 17, + "fs/Underwood-Champion/0" + ], + [ + "Unica One", + "Regular", + "UnicaOne-Regular", + 3, + 4, + "gf/Unica One/0" + ], + [ + "UnifrakturCook", + "Bold", + "UnifrakturCook-Bold", + 1, + 4, + "gf/UnifrakturCook/0" + ], + [ + "UnifrakturMaguntia", + "Book", + "UnifrakturMaguntia", + 3, + 0, + "fs/unifraktur-maguntia/0" + ], + [ + "UnifrakturMaguntia", + "16 Book", + "UnifrakturMaguntia16", + 0, + 0, + "fs/unifraktur-maguntia/1" + ], + [ + "UnifrakturMaguntia", + "17 Book", + "UnifrakturMaguntia17", + 0, + 0, + "fs/unifraktur-maguntia/2" + ], + [ + "UnifrakturMaguntia", + "18 Book", + "UnifrakturMaguntia18", + 0, + 0, + "fs/unifraktur-maguntia/3" + ], + [ + "UnifrakturMaguntia", + "19 Book", + "UnifrakturMaguntia19", + 0, + 0, + "fs/unifraktur-maguntia/4" + ], + [ + "UnifrakturMaguntia", + "20 Book", + "UnifrakturMaguntia20", + 0, + 0, + "fs/unifraktur-maguntia/5" + ], + [ + "UnifrakturMaguntia", + "21 Book", + "UnifrakturMaguntia21", + 3, + 0, + "fs/unifraktur-maguntia/6" + ], + [ + "Unkempt", + "Bold", + "Unkempt-Bold", + 1, + 4, + "gf/Unkempt/0" + ], + [ + "Unkempt", + "Regular", + "Unkempt-Regular", + 1, + 4, + "gf/Unkempt/1" + ], + [ + "Unlock", + "Regular", + "Unlock-Regular", + 1, + 4, + "gf/Unlock/0" + ], + [ + "Unna", + "Bold", + "Unna-Bold", + 3, + 14, + "fs/unna/2" + ], + [ + "Unna", + "Bold Italic", + "Unna-BoldItalic", + 3, + 14, + "fs/unna/3" + ], + [ + "Unna", + "Italic", + "Unna-Italic", + 3, + 14, + "fs/unna/1" + ], + [ + "Unna", + "Regular", + "Unna-Regular", + 3, + 14, + "fs/unna/0" + ], + [ + "UpperEastSide", + "Regular", + "UpperEastSide", + 0, + 11, + "fs/uppereastside/0" + ], + [ + "Utility", + "BoldCondensed", + "UtilityBoldCondensed", + 0, + 4, + "fs/Utility/0" + ], + [ + "VAG-HandWritten", + "VAG-HandWritten", + "VAG-HandWritten", + 4, + 6, + "fs/VAG-HandWritten/0" + ], + [ + "VT323", + "Regular", + "VT323-Regular", + 3, + 9, + "fs/vt323/0" + ], + [ + "VTC Letterer Pro", + "Regular", + "VTCLettererPro", + 0, + 2, + "fs/VTC-Letterer-Pro/0" + ], + [ + "VTF Victorianna", + "Thin", + "VTFVictoriannaThin", + 0, + 15, + "fs/vtf-victorianna/0" + ], + [ + "VTF Victorianna", + "Thin Italic", + "VTF_VictoriannaThin_italic", + 0, + 15, + "fs/vtf-victorianna/1" + ], + [ + "Vampiro One", + "Regular", + "VampiroOne-Regular", + 1, + 13, + "fs/vampiro-one/0" + ], + [ + "VanBerger", + "Stencil", + "VanBerger-Stencil", + 1, + 16, + "fs/VanBerger/0" + ], + [ + "Vanilla", + "Regular", + "Vanilla", + 0, + 4, + "fs/Vanilla/0" + ], + [ + "Varela", + "Regular", + "Varela", + 3, + 12, + "fs/varela/0" + ], + [ + "Varela", + "Round", + "VarelaRound", + 1, + 12, + "fs/varela-round/0" + ], + [ + "Varela", + "Round", + "VarelaRound-Regular", + 19, + 12, + "gf/Varela Round/0" + ], + [ + "Vast Shadow", + "Regular", + "VastShadow-Regular", + 1, + 4, + "fs/vast-shadow/0" + ], + [ + "Veggieburger", + "Regular", + "Veggieburger", + 1, + 4, + "fs/Veggieburger/1" + ], + [ + "Veggieburger", + "Bold", + "Veggieburger-Bold", + 1, + 4, + "fs/Veggieburger/2" + ], + [ + "Veggieburger", + "Light", + "Veggieburger-Light", + 1, + 4, + "fs/Veggieburger/0" + ], + [ + "Vegur", + "Bold", + "Vegur-Bold", + 0, + 12, + "fs/vegur/2" + ], + [ + "Vegur", + "Light", + "Vegur-Light", + 0, + 12, + "fs/vegur/0" + ], + [ + "Vegur", + "Regular", + "Vegur-Regular", + 0, + 12, + "fs/vegur/1" + ], + [ + "Verily Serif Mono", + "Book", + "VerilySerifMono", + 1, + 14, + "fs/Verily-Serif-Mono/0" + ], + [ + "Vesper Libre", + "Bold", + "VesperLibre-Bold", + 513, + 14, + "fs/vesper-libre/2" + ], + [ + "Vesper Libre", + "Heavy", + "VesperLibre-Heavy", + 513, + 14, + "fs/vesper-libre/3" + ], + [ + "Vesper Libre", + "Medium", + "VesperLibre-Medium", + 513, + 14, + "fs/vesper-libre/1" + ], + [ + "Vesper Libre", + "Regular", + "VesperLibre-Regular", + 513, + 14, + "fs/vesper-libre/0" + ], + [ + "Veteran Typewriter", + "Regular", + "VeteranTypewriter", + 0, + 17, + "fs/Secret-Typewriter/0" + ], + [ + "Vibur", + "Medium", + "Vibur", + 1, + 13, + "fs/vibur/0" + ], + [ + "Vidaloka ", + "Regular", + "Vidaloka-Regular", + 1, + 4, + "fs/vidaloka/0" + ], + [ + "Viga", + "Regular", + "Viga-Regular", + 1, + 12, + "fs/viga/0" + ], + [ + "Virgo 01", + "Regular", + "Virgo01", + 0, + 4, + "fs/Virgo-01/0" + ], + [ + "Vladivostok", + "Bold", + "Vladivostok-Bold", + 11, + 12, + "fs/vladivostok/1" + ], + [ + "Vladivostok", + "Regular", + "Vladivostok-Regular", + 11, + 12, + "fs/vladivostok/0" + ], + [ + "Voces", + "Regular", + "Voces-Regular", + 3, + 4, + "gf/Voces/0" + ], + [ + "Volkhov", + "Bold", + "Volkhov-Bold", + 1, + 14, + "fs/volkhov/2" + ], + [ + "Volkhov", + "Bold Italic", + "Volkhov-BoldItalic", + 1, + 14, + "fs/volkhov/3" + ], + [ + "Volkhov", + "Italic", + "Volkhov-Italic", + 1, + 14, + "fs/volkhov/1" + ], + [ + "Volkhov", + "Regular", + "Volkhov-Regular", + 1, + 14, + "fs/volkhov/0" + ], + [ + "Vollkorn", + "Black", + "Vollkorn-Black", + 15, + 14, + "fs/vollkorn/6" + ], + [ + "Vollkorn", + "Black Italic", + "Vollkorn-BlackItalic", + 15, + 14, + "fs/vollkorn/7" + ], + [ + "Vollkorn", + "Bold", + "Vollkorn-Bold", + 15, + 14, + "fs/vollkorn/4" + ], + [ + "Vollkorn", + "Bold Italic", + "Vollkorn-BoldItalic", + 15, + 14, + "fs/vollkorn/5" + ], + [ + "Vollkorn", + "Italic", + "Vollkorn-Italic", + 15, + 14, + "fs/vollkorn/1" + ], + [ + "Vollkorn", + "Regular", + "Vollkorn-Regular", + 15, + 14, + "fs/vollkorn/0" + ], + [ + "Vollkorn", + "SemiBold", + "Vollkorn-SemiBold", + 15, + 14, + "gf/Vollkorn/0" + ], + [ + "Vollkorn", + "SemiBold Italic", + "Vollkorn-SemiBoldItalic", + 15, + 14, + "gf/Vollkorn/5" + ], + [ + "Vollkorn", + "Semibold", + "Vollkorn-Semibold", + 15, + 14, + "fs/vollkorn/2" + ], + [ + "Vollkorn", + "Semibold Italic", + "Vollkorn-SemiboldItalic", + 15, + 14, + "fs/vollkorn/3" + ], + [ + "Vollkorn SC", + "Black", + "VollkornSC-Black", + 11, + 14, + "gf/Vollkorn SC/2" + ], + [ + "Vollkorn SC", + "Bold", + "VollkornSC-Bold", + 11, + 14, + "gf/Vollkorn SC/1" + ], + [ + "Vollkorn SC", + "Regular", + "VollkornSC-Regular", + 11, + 14, + "gf/Vollkorn SC/3" + ], + [ + "Vollkorn SC", + "SemiBold", + "VollkornSC-SemiBold", + 11, + 14, + "gf/Vollkorn SC/0" + ], + [ + "Voltaire", + "Regular", + "Voltaire", + 1, + 4, + "fs/voltaire/0" + ], + [ + "WC Mano Negra Bta", + "Regular", + "WCManoNegraBta", + 1, + 6, + "fs/WC-Mano-Negra-Bta/0" + ], + [ + "WC Mano Negra Bta", + "Bold", + "WCManoNegraBta-Bold", + 1, + 6, + "fs/WC-Mano-Negra-Bta/1" + ], + [ + "WC ROUGHTRAD Bta", + "Regular", + "WCROUGHTRADBta", + 1, + 4, + "fs/wc-roughtrad/0" + ], + [ + "WC Rhesus", + "A Bta", + "WCRhesusABta", + 1, + 3, + "fs/WC-Rhesus-Bta/0" + ], + [ + "WC Rhesus", + "B Bta Italic", + "WCRhesusBBta", + 1, + 3, + "fs/WC-Rhesus-Bta/1" + ], + [ + "WC Sold Out", + "A Bta", + "WCSoldOutABta", + 0, + 3, + "fs/WC-Sold-Out-Bta/0" + ], + [ + "WC Sold Out", + "B Bta", + "WCSoldOutBBta", + 0, + 3, + "fs/WC-Sold-Out-Bta/1" + ], + [ + "WC Sold Out", + "C Bta", + "WCSoldOutCBta", + 7, + 3, + "fs/WC-Sold-Out-Bta/2" + ], + [ + "WC Wunderbach", + "Bta DemiBold", + "WCWunderbachBta-DemiBold", + 1, + 16, + "fs/wc-wunderbach-bta/0" + ], + [ + "WC Wunderbach", + "Mix Bta", + "WCWunderbachMixBta", + 1, + 16, + "fs/wc-wunderbach-bta/3" + ], + [ + "WC Wunderbach", + "Rough Bta", + "WCWunderbachRoughBta", + 1, + 16, + "fs/wc-wunderbach-bta/2" + ], + [ + "WC Wunderbach", + "Rounded", + "WCWunderbachRounded", + 1, + 16, + "fs/wc-wunderbach-bta/1" + ], + [ + "Wagnasty", + "Regular", + "Wagnasty", + 0, + 6, + "fs/Wagnasty/0" + ], + [ + "Waiting for the Sunrise", + "Regular", + "WaitingfortheSunrise", + 3, + 6, + "gf/Waiting for the Sunrise/0" + ], + [ + "Walkway", + "Black", + "WalkwayBlack", + 1, + 12, + "fs/Walkway/3" + ], + [ + "Walkway", + "Bold", + "WalkwayBold", + 1, + 12, + "fs/Walkway/1" + ], + [ + "Walkway", + "Oblique", + "WalkwayOblique", + 1, + 12, + "fs/Walkway/4" + ], + [ + "Walkway", + "Oblique Black", + "WalkwayObliqueBlack", + 1, + 12, + "fs/Walkway/8" + ], + [ + "Walkway", + "Oblique Bold", + "WalkwayObliqueBold", + 1, + 12, + "fs/Walkway/6" + ], + [ + "Walkway", + "Oblique SemiBold", + "WalkwayObliqueSemiBold", + 1, + 12, + "fs/Walkway/5" + ], + [ + "Walkway", + "Oblique UltraBold", + "WalkwayObliqueUltraBold", + 1, + 12, + "fs/Walkway/7" + ], + [ + "Walkway", + "SemiBold", + "WalkwaySemiBold", + 1, + 12, + "fs/Walkway/0" + ], + [ + "Walkway", + "UltraBold", + "WalkwayUltraBold", + 1, + 12, + "fs/Walkway/2" + ], + [ + "Walleye", + "Regular", + "Walleye", + 15, + 14, + "fs/walleye/0" + ], + [ + "Walleye", + "Bold", + "Walleye-Bold", + 15, + 14, + "fs/walleye/2" + ], + [ + "Walleye", + "Bold Italic", + "Walleye-BoldItalic", + 15, + 14, + "fs/walleye/3" + ], + [ + "Walleye", + "Italic", + "Walleye-Italic", + 15, + 14, + "fs/walleye/1" + ], + [ + "Wallpoet", + "Regular", + "Wallpoet", + 1, + 4, + "gf/Wallpoet/0" + ], + [ + "Walter Turncoat", + "Regular", + "WalterTurncoat", + 1, + 13, + "fs/walter-turncoat/0" + ], + [ + "Walter Turncoat", + "Regular", + "WalterTurncoat-Regular", + 1, + 6, + "gf/Walter Turncoat/0" + ], + [ + "Warnes", + "Regular", + "Warnes-Regular", + 1, + 4, + "gf/Warnes/0" + ], + [ + "Water Street", + "Regular", + "WaterStreet", + 0, + 4, + "fs/Water-Street/0" + ], + [ + "Water Street Detour", + "Regular", + "WaterStreetDetour", + 0, + 4, + "fs/Water-Street/1" + ], + [ + "WebHostingHub-Glyphs", + "Regular", + "WebHostingHub-Glyphs", + 0, + 3, + "fs/webhostinghub-glyphs/0" + ], + [ + "Web Serveroff", + "Regular", + "WebServeroff", + 11, + 12, + "fs/web-serveroff/0" + ], + [ + "Web Serveroff", + "Italic", + "WebServeroff-Italic", + 11, + 12, + "fs/web-serveroff/1" + ], + [ + "Web Symbols", + "Regular", + "WebSymbols-Regular", + 0, + 3, + "fs/web-symbols/0" + ], + [ + "Wellfleet", + "Regular", + "Wellfleet-Regular", + 3, + 4, + "fs/wellfleet/0" + ], + [ + "Wendy One", + "Regular", + "WendyOne-Regular", + 1, + 12, + "gf/Wendy One/0" + ], + [ + "White Rabbit", + "Regular", + "WhiteRabbit", + 0, + 12, + "fs/white-rabbit/0" + ], + [ + "Whitehall", + "Regular", + "Whitehall", + 0, + 4, + "fs/Whitehall/0" + ], + [ + "Windsong", + "Regular", + "Windsong", + 1, + 13, + "fs/Windsong/0" + ], + [ + "WinterthurCondensed", + "Regular", + "WinterthurCondensed", + 1, + 12, + "fs/WinterthurCondensed/0" + ], + [ + "WinterthurCondensed", + "Italic", + "WinterthurCondensedOblique", + 1, + 12, + "fs/WinterthurCondensed/1" + ], + [ + "Wire One", + "Regular", + "WireOne", + 1, + 12, + "gf/Wire One/0" + ], + [ + "WoodenNickelBlack", + "Regular", + "WoodenNickelBlack", + 1, + 11, + "fs/WoodenNickelBlack/0" + ], + [ + "Work Sans", + "Black", + "WorkSans-Black", + 3, + 12, + "fs/work-sans/9" + ], + [ + "Work Sans", + "Bold", + "WorkSans-Bold", + 3, + 12, + "fs/work-sans/7" + ], + [ + "Work Sans", + "ExtraBold", + "WorkSans-ExtraBold", + 3, + 12, + "fs/work-sans/8" + ], + [ + "Work Sans", + "ExtraLight", + "WorkSans-ExtraLight", + 3, + 12, + "fs/work-sans/2" + ], + [ + "Work Sans", + "Hairline", + "WorkSans-Hairline", + 3, + 12, + "fs/work-sans/0" + ], + [ + "Work Sans", + "Light", + "WorkSans-Light", + 3, + 12, + "fs/work-sans/3" + ], + [ + "Work Sans", + "Medium", + "WorkSans-Medium", + 3, + 12, + "fs/work-sans/5" + ], + [ + "Work Sans", + "Regular", + "WorkSans-Regular", + 3, + 12, + "fs/work-sans/4" + ], + [ + "Work Sans", + "SemiBold", + "WorkSans-SemiBold", + 3, + 12, + "fs/work-sans/6" + ], + [ + "Work Sans", + "Thin", + "WorkSans-Thin", + 3, + 12, + "fs/work-sans/1" + ], + [ + "Xenophone", + "Regular", + "Xenophone", + 0, + 4, + "fs/Xenophone/0" + ], + [ + "Yanone Kaffeesatz", + "Bold", + "YanoneKaffeesatz-Bold", + 11, + 12, + "fs/yanone-kaffeesatz/3" + ], + [ + "Yanone Kaffeesatz", + "Extra Light", + "YanoneKaffeesatz-ExtraLight", + 11, + 12, + "fs/yanone-kaffeesatz/0" + ], + [ + "Yanone Kaffeesatz", + "Light", + "YanoneKaffeesatz-Light", + 11, + 12, + "fs/yanone-kaffeesatz/1" + ], + [ + "Yanone Kaffeesatz", + "Regular", + "YanoneKaffeesatz-Regular", + 11, + 12, + "fs/yanone-kaffeesatz/2" + ], + [ + "Yantramanav", + "Black", + "Yantramanav-Black", + 513, + 12, + "fs/yantramanav/5" + ], + [ + "Yantramanav", + "Bold", + "Yantramanav-Bold", + 513, + 12, + "fs/yantramanav/4" + ], + [ + "Yantramanav", + "Light", + "Yantramanav-Light", + 513, + 12, + "fs/yantramanav/1" + ], + [ + "Yantramanav", + "Medium", + "Yantramanav-Medium", + 513, + 12, + "fs/yantramanav/3" + ], + [ + "Yantramanav", + "Regular", + "Yantramanav-Regular", + 513, + 12, + "fs/yantramanav/2" + ], + [ + "Yantramanav", + "Thin", + "Yantramanav-Thin", + 513, + 12, + "fs/yantramanav/0" + ], + [ + "Yataghan", + "Regular", + "Yataghan", + 1, + 4, + "fs/Yataghan/0" + ], + [ + "Yatra One", + "Regular", + "YatraOne-Regular", + 513, + 4, + "gf/Yatra One/0" + ], + [ + "Yellow Magician", + "Regular", + "YellowMagician", + 1, + 4, + "fs/Yellow-Magician/0" + ], + [ + "Yellowtail", + "Regular", + "Yellowtail", + 3, + 6, + "fs/yellowtail/0" + ], + [ + "Yellowtail", + "Regular", + "Yellowtail-Regular", + 3, + 6, + "gf/Yellowtail/0" + ], + [ + "Yeon Sung", + "Regular", + "YeonSung-Regular", + 64, + 4, + "gf/Yeon Sung/0" + ], + [ + "Yeseva One", + "Regular", + "YesevaOne", + 11, + 4, + "fs/yeseva-one/0" + ], + [ + "Yeseva One", + "Regular", + "YesevaOne-Regular", + 11, + 4, + "gf/Yeseva One/0" + ], + [ + "Yesteryear", + "Regular", + "Yesteryear-Regular", + 3, + 6, + "gf/Yesteryear/0" + ], + [ + "Yew Basturd", + "Bold", + "YewBasturdBold", + 0, + 2, + "fs/Yew-Basturd/2" + ], + [ + "Yew Basturd", + "BoldItalic", + "YewBasturdBoldItalic", + 0, + 2, + "fs/Yew-Basturd/3" + ], + [ + "Yew Basturd", + "Italic", + "YewBasturdItalic", + 0, + 2, + "fs/Yew-Basturd/1" + ], + [ + "Yew Basturd", + "Normal", + "YewBasturdNormal", + 0, + 2, + "fs/Yew-Basturd/0" + ], + [ + "Yokawerad", + "Regular", + "Yokawerad", + 11, + 14, + "fs/yokawerad/0" + ], + [ + "YoungSerif", + "Regular", + "YoungSerif-Regular", + 3, + 14, + "fs/youngserif/0" + ], + [ + "Yrsa", + "Bold", + "Yrsa-Bold", + 3, + 14, + "fs/yrsa/4" + ], + [ + "Yrsa", + "Light", + "Yrsa-Light", + 3, + 14, + "fs/yrsa/0" + ], + [ + "Yrsa", + "Medium", + "Yrsa-Medium", + 3, + 14, + "fs/yrsa/2" + ], + [ + "Yrsa", + "Regular", + "Yrsa-Regular", + 3, + 14, + "fs/yrsa/1" + ], + [ + "Yrsa", + "SemiBold", + "Yrsa-SemiBold", + 3, + 14, + "fs/yrsa/3" + ], + [ + "Yukarimobile", + "Regular", + "Yukarimobile", + 0, + 4, + "fs/Yukarimobile/0" + ], + [ + "Zambajoun", + "Regular", + "Zambajoun", + 0, + 8, + "fs/zambajoun/0" + ], + [ + "Zantroke", + "Regular", + "Zantroke", + 11, + 15, + "fs/zantroke/0" + ], + [ + "Zenda", + "Regular", + "Zenda", + 0, + 0, + "fs/Zenda/0" + ], + [ + "Zero & Zero Is", + "Regular", + "Zero&Zero-Is", + 0, + 4, + "fs/Zero-Zero-Is/0" + ], + [ + "Zeyada", + "Regular", + "Zeyada", + 3, + 6, + "gf/Zeyada/0" + ], + [ + "Zilla Slab", + "Bold", + "ZillaSlab-Bold", + 3, + 15, + "fs/zilla-slab/9" + ], + [ + "Zilla Slab", + "Bold Italic", + "ZillaSlab-BoldItalic", + 3, + 15, + "fs/zilla-slab/8" + ], + [ + "Zilla Slab", + "Italic", + "ZillaSlab-Italic", + 3, + 14, + "gf/Zilla Slab/6" + ], + [ + "Zilla Slab", + "Light", + "ZillaSlab-Light", + 3, + 15, + "fs/zilla-slab/0" + ], + [ + "Zilla Slab", + "Light Italic", + "ZillaSlab-LightItalic", + 3, + 15, + "fs/zilla-slab/1" + ], + [ + "Zilla Slab", + "Medium", + "ZillaSlab-Medium", + 3, + 15, + "fs/zilla-slab/4" + ], + [ + "Zilla Slab", + "Medium Italic", + "ZillaSlab-MediumItalic", + 3, + 15, + "fs/zilla-slab/5" + ], + [ + "Zilla Slab", + "Regular", + "ZillaSlab-Regular", + 3, + 14, + "gf/Zilla Slab/5" + ], + [ + "Zilla Slab", + "Regular Italic", + "ZillaSlab-RegularItalic", + 3, + 15, + "fs/zilla-slab/3" + ], + [ + "Zilla Slab", + "SemiBold", + "ZillaSlab-SemiBold", + 3, + 15, + "fs/zilla-slab/6" + ], + [ + "Zilla Slab", + "SemiBold Italic", + "ZillaSlab-SemiBoldItalic", + 3, + 15, + "fs/zilla-slab/7" + ], + [ + "Zilla Slab Highlight", + "Bold", + "ZillaSlabHighlight-Bold", + 3, + 15, + "fs/zilla-slab/11" + ], + [ + "Zilla Slab Highlight", + "Regular", + "ZillaSlabHighlight-Regular", + 3, + 15, + "fs/zilla-slab/10" + ], + [ + "Zilla Slab", + "Regular", + "ZillaSlabRegular", + 3, + 15, + "fs/zilla-slab/2" + ], + [ + "Znikomit", + "Regular", + "Znikomit", + 11, + 14, + "fs/znikomit/0" + ], + [ + "ZnikomitNo24", + "Regular", + "ZnikomitNo24", + 11, + 4, + "fs/znikomitno24/0" + ], + [ + "exotica", + "Medium", + "exotica-Medium", + 0, + 4, + "fs/exotica/0" + ], + [ + "Heydings Controls", + "Regular", + "font3933", + 0, + 3, + "fs/heydings-controls/0" + ], + [ + "iA Writer Duospace", + "Bold", + "iAWriterDuospace-Bold", + 3, + 12, + "fs/ia-writer-duospace/2" + ], + [ + "iA Writer Duospace", + "BoldItalic", + "iAWriterDuospace-BoldItalic", + 3, + 12, + "fs/ia-writer-duospace/3" + ], + [ + "iA Writer Duospace", + "Regular", + "iAWriterDuospace-Regular", + 3, + 12, + "fs/ia-writer-duospace/0" + ], + [ + "iA Writer Duospace", + "RegularItalic", + "iAWriterDuospace-RegularItalic", + 3, + 12, + "fs/ia-writer-duospace/1" + ], + [ + "itsadzoke", + "Regular", + "itsadzoke", + 3, + 4, + "fs/itsadzoke/0" + ], + [ + "itsadzoke", + "S01", + "itsadzokeS01", + 3, + 4, + "fs/itsadzoke/1" + ], + [ + "kawoszeh", + "Medium", + "kawoszeh", + 3, + 14, + "fs/kawoszeh/0" + ], + [ + "konstytucyja", + "Medium", + "konstytucyja", + 3, + 13, + "fs/konstytucyja/0" + ], + [ + "mirror 82", + "Regular", + "mirror82", + 9, + 12, + "fs/mirror-82/0" + ], + [ + "M+ 1c", + "black", + "mplus-1c-black", + 128, + 12, + "fs/M-1c/6" + ], + [ + "M+ 1c", + "bold", + "mplus-1c-bold", + 128, + 12, + "fs/M-1c/4" + ], + [ + "M+ 1c", + "heavy", + "mplus-1c-heavy", + 128, + 12, + "fs/M-1c/5" + ], + [ + "M+ 1c", + "light", + "mplus-1c-light", + 128, + 12, + "fs/M-1c/1" + ], + [ + "M+ 1c", + "medium", + "mplus-1c-medium", + 128, + 12, + "fs/M-1c/3" + ], + [ + "M+ 1c", + "regular", + "mplus-1c-regular", + 128, + 12, + "fs/M-1c/2" + ], + [ + "M+ 1c", + "thin", + "mplus-1c-thin", + 128, + 12, + "fs/M-1c/0" + ], + [ + "M+ 1m", + "bold", + "mplus-1m-bold", + 128, + 7, + "fs/M-1m/4" + ], + [ + "M+ 1m", + "light", + "mplus-1m-light", + 128, + 7, + "fs/M-1m/1" + ], + [ + "M+ 1m", + "medium", + "mplus-1m-medium", + 128, + 7, + "fs/M-1m/3" + ], + [ + "M+ 1m", + "regular", + "mplus-1m-regular", + 128, + 7, + "fs/M-1m/2" + ], + [ + "M+ 1m", + "thin", + "mplus-1m-thin", + 128, + 7, + "fs/M-1m/0" + ], + [ + "odstemplik", + "Regular", + "odstemplik", + 3, + 13, + "fs/odstemplik/0" + ], + [ + "odstemplik", + "Bold", + "odstemplikBold", + 3, + 13, + "fs/odstemplik/1" + ], + [ + "okolaks", + "Bold", + "okolaksBold", + 11, + 14, + "fs/okolaks/2" + ], + [ + "okolaks", + "BoldItalic", + "okolaksBoldItalic", + 11, + 14, + "fs/okolaks/3" + ], + [ + "okolaks", + "Regular", + "okolaksRegular", + 11, + 14, + "fs/okolaks/0" + ], + [ + "okolaks", + "RegularItalic", + "okolaksRegularItalic", + 11, + 14, + "fs/okolaks/1" + ], + [ + "saxMono", + "Regular", + "saxMono", + 3, + 7, + "fs/saxMono/0" + ], + [ + "spinwerad", + "Bold", + "spinweradBold", + 3, + 14, + "fs/spinwerad/0" + ], + [ + "spinweradC", + "Bold", + "spinweradCBold", + 3, + 14, + "fs/spinwerad/1" + ] + ] +} \ No newline at end of file diff --git a/tools/Open-Photopea/code/LNG2.js b/tools/Open-Photopea/code/LNG2.js new file mode 100644 index 00000000..942aa512 --- /dev/null +++ b/tools/Open-Photopea/code/LNG2.js @@ -0,0 +1,21166 @@ +var LNG = { + "langs": [ + { + "name": "English", + "code": "en", + "table": 0 + }, + { + "name": "Česky", + "code": "cs", + "table": 1 + }, + { + "name": "Español", + "code": "es", + "table": 2 + }, + { + "name": "Deutsch", + "code": "de", + "table": 3 + }, + { + "name": "Français", + "code": "fr", + "table": 4 + }, + { + "name": "العربية", + "code": "ar", + "table": 5 + }, + { + "name": "Português", + "code": "pt", + "table": 6 + }, + { + "name": "Русский", + "code": "ru", + "table": 7 + }, + { + "name": "Українська", + "code": "uk", + "table": 8 + }, + { + "name": "עברית", + "code": "he", + "table": 9 + }, + { + "name": "Hrvatski", + "code": "hr", + "table": 10 + }, + { + "name": "Italiano", + "code": "it", + "table": 11 + }, + { + "name": "Română", + "code": "ro", + "table": 12 + }, + { + "name": "Nederlands", + "code": "nl", + "table": 13 + }, + { + "name": "Svenska", + "code": "sv", + "table": 14 + }, + { + "name": "Suomi", + "code": "fi", + "table": 15 + }, + { + "name": "Türkçe", + "code": "tr", + "table": 16 + }, + { + "name": "Polski", + "code": "pl", + "table": 17 + }, + { + "name": "Bahasa Indonesia", + "code": "id", + "table": 18 + }, + { + "name": "简化字 中文", + "code": "zh-CN", + "table": 19 + }, + { + "name": "正體字 中文", + "code": "zh-HK", + "table": 20 + }, + { + "name": "日本語", + "code": "ja", + "table": 21 + }, + { + "name": "한국어", + "code": "ko", + "table": 22 + }, + { + "name": "Português do Brasil", + "code": "pt-BR", + "table": 23 + }, + { + "name": "Magyar", + "code": "hu", + "table": 24 + }, + { + "name": "Slovenčina", + "code": "sk", + "table": 25 + }, + { + "name": "Български език", + "code": "bg", + "table": 26 + }, + { + "name": "Shqip", + "code": "sq", + "table": 27 + }, + { + "name": "བོད་ཡིག", + "code": "bo", + "table": 28 + }, + { + "name": "Català", + "code": "ca", + "table": 29 + }, + { + "name": "Norsk", + "code": "no", + "table": 30 + } + ], + "tables": [ + [ + [ + "File", + "Edit", + "Image", + "Layer", + "Folder", + "Select", + "Filter", + "View::Top Menu", + "Window", + "Language", + "Log In", + "Log Out", + "Create translation::Click it to get to www.Photopea.com/translate", + [ + "Account", + "Terms of Service", + "Back" + ], + "More", + "Theme", + "Use WebGL" + ], + [ + "Open", + "Publish online (Imgur)", + "Save", + "Save as PSD", + "Print::Press to print on a printer", + "Open from URL", + "Open From Computer", + "Connect With Google Drive", + "Export As", + "Export Assets", + "Script", + "Open & Place::Open a document and insert it into a current document" + ], + [ + "Step Forward::In history of changes", + "Step Backward::In history of changes", + "Clear::Press to clear the selected area", + "Fill::Press to fill the selected area", + "Transform::Transform the image", + "Rotate", + "Flip Horizontally", + "Flip Vertically", + "Undo / Redo", + "Perspective" + ], + "Adjustments", + [ + "Brightness / Contrast", + "Levels::Levels adjustment", + "Curves::Curves adjustment", + "Exposure", + "Vibrance", + "Hue / Saturation", + "Color Balance", + "Black & White", + "Photo Filter", + "Channel Mixer", + "Color Lookup", + "Invert", + "Posterize", + "Threshold", + "Gradient Map", + "Selective Color", + [ + "Auto Tone", + "Auto Contrast", + "Auto Color" + ] + ], + [ + "Cut", + "Copy", + "Paste", + "New", + "Delete", + "Enable", + "Disable", + "Copy Merged::Copy not from a layer, but from all layers (all merged together)", + "Apply::Apply Mask - \"combine\" it with a layer" + ], + [ + "Duplicate Layer", + "New Adjustment Layer", + "Raster Mask", + "Vector Mask", + "Add (Show All)::Add a mask", + "Add (Hide All)::Add a mask", + "Clipping Mask", + "Convert to Smart Object", + "Rasterize::Convert Text layer/vector layer to pixels", + "Group Layers::Put selected layers into a new group", + "Merge Down::Merge a layer with one below it", + "Merge Up::Merge a layer with one above it", + "Merge Layers::Merge selected layers", + "New Layer", + "Enable Raster Mask", + "Disable Raster Mask", + "Enable Vector Mask", + "Disable Vector Mask", + "Enable Clipping Mask", + "Disable Clipping Mask", + "New Folder", + "Add Raster Mask", + "Delete Raster Mask", + "Add Vector Mask", + "Delete Vector Mask", + "Link Raster Mask", + "Unlink Raster Mask", + "Link Vector Mask", + "Unlink Vector Mask", + "Enable Layer Effects", + "Disable Layer Effects", + "Delete Layer", + "Layer Opacity Change", + "Blending Change", + "Rasterize Layer Style", + "Layer Order::Name of the step, when reordering layers", + [ + "Creating Smart Object", + "Updating Smart Object", + "Placing Smart Object" + ], + "Name Change", + "Color Change", + "Edit Adjustment Layer", + "Convert to Shape", + "Enable Filter Mask", + "Disable Filter Mask", + "Enable Smart Filters", + "Disable Smart Filters", + "Add Filter Mask", + "Delete Filter Mask", + "Clear Smart Filters", + [ + [ + "Solid Color Fill", + "Gradient Fill", + "Pattern Fill" + ], + "New Fill Layer", + "Modify Fill Layer" + ], + "Layer Via Copy", + "Filter Mask", + "Delete Layer Style", + "Move Smart Filter", + "Delete Smart Filter", + [ + "Link Layers", + "Unlink Layers" + ], + "Arrange::Arrange layers", + [ + "Bring to Front", + "Bring Forward", + "Send Backward", + "Send to Back" + ], + [ + "Layer is Locked.", + "Lock Change" + ] + ], + [ + "All::As in Select - All", + "Deselect", + "Inverse", + "Modify", + "Expand::Expand Selection", + "Contract", + "Feather::Feather (blur) a Selection", + "Move Selection", + "Color Range", + "Border::The border of a Selection", + "Transform Selection", + "Refine Edge::A tool for improving the edge of a selection", + "Heal Selection" + ], + [ + "Zoom In", + "Zoom Out", + "Guides::Vertical and horizontal lines over the image, to help us be more precise", + "Rulers", + "Grid", + "Snap::When moving objects, they will \"stick\" to other objects, guides, etc.", + "Snap To", + "Document Bounds", + "Pixel Grid", + "Paths::Elements of vector graphics" + ], + [ + "History::History of steps", + "Layers", + "Properties", + "Brush::A brush tool", + "Character::= a Letter (like a, b, c, ...)", + "Paragraph", + "Info", + "Layer Comps::Compositions of layers", + "Swatches::Gallery of colors" + ], + [ + "Brush Tool", + "Clone Tool", + "Crop Tool", + "Eraser Tool", + "Ellipse Select", + "Eyedropper::A tool to pick color from the image", + "Gradient Tool", + "Hand Tool::To move (pan) across the image area", + "Type Tool", + "Lasso Select", + "Magnetic Lasso Select", + "Move Tool", + "Magic Wand", + "Paint Bucket Tool", + "Polygonal Lasso Select", + "Rectangle Select", + "Free Transform", + "Zoom Tool", + "Blur Tool", + "Sharpen Tool", + "Smudge Tool", + "Dodge Tool::Make Brighter", + "Burn Tool::Make Darker", + "Sponge Tool::Desaturate", + "Spot Healing Brush Tool", + "Healing Brush Tool", + "Patch Tool::Cut from one place and put to another place", + "Path Select::a tool to select / move paths", + "Direct Select::a tool to select / move knots of paths", + "Pen", + "Free Pen::Draw freely with this pen", + "Custom Shape", + "Rectangle", + "Ellipse", + "Parametric Shape", + "Line", + "Ruler::A ruler tool to measure distances", + "Quick Selection", + "Pencil Tool" + ], + [ + "Take a picture::Press the button to take a picture", + "Color Picker", + "Contour Editor", + "Canvas Size", + "Duplicate Into ...", + "Gradient Editor", + "Layer Style", + "New Project", + "Save for web", + "Warp", + "Image Size", + "Vectorize Bitmap::Convert raster pixels into vector paths", + "Trim::cut away an empty area around the object", + "Keyboard Shortcuts" + ], + [ + "Opacity", + "Effects", + "Brightness", + "Contrast", + "Channel::Color Channel", + "Exposure", + "Offset", + "Gamma correction", + "Hue", + "Saturation", + "Lightness", + "Colorize", + "Range", + "Vibrance", + "Size", + "Angle", + "Roundness", + "Hardness", + "Spacing", + "Blend Mode", + "Sample Size", + "Contour", + "Style", + "Reverse", + "Tolerance", + "Contiguous", + "Fill::The content (filling) of something.", + "Use global angle", + "Distance", + "Spread::Spread the effected area", + "Noise::add random image noise", + "Knock out drop shadow::No drop shadow behind the object", + "Technique", + "Direction", + "Depth", + "Soften", + "Mode::One of possible modes of the effect", + "Gradient::from one color to another", + "Scale::scale the content - 10% or even 200%", + "Align with layer", + "Position::Position of the effect", + "Width", + "Height", + "Destination", + "Type", + "Foreground", + "Background", + "Custom::Color: not foreground or background, but a custom color", + "Name::Name of something", + "Create", + "Format", + "Keep Aspect Ratio", + "Quality", + "Duplicate", + "Move::When you move layers, the Move step will be added to History", + "Smart Filters", + "Radius", + "Amount::Strength of the effect (0 ... 100)", + "Distribution", + [ + "Uniform::uniform random distribution", + "Gaussian" + ], + "Monochromatic", + "Cell Size::Mosaic filter creates \"cells\"", + "Pattern", + "Flow::A brush has the opacity and the flow", + "Strength", + "Protect Detail", + "Fill Type", + "Texture", + "Jitter::Add Noise in Outer Glow", + "Edge::The inner glow is either from the center, or from the Edge", + "Source", + "Target", + "Channels", + "Mask", + "Density", + "Aligned", + [ + "Path", + "Shape", + "Pixels" + ], + "Shapes", + "Sides", + "Preferences", + [ + "Length", + "Ratio", + "Any::Any ratio of a rectangle" + ], + "Reduce noise", + "Colors", + "Distances", + "Rate::Liquify filter: Rate of modification", + "Auto-Select::Move tool option: click the object to select its layer", + "Find", + "Define New", + [ + "Photo", + "Screen::computer screen", + "Mobile::Mobile device", + "Ads::Advertisement" + ], + [ + "Free::Not Restricted / Limited", + "Fixed Ratio", + "Fixed Size" + ], + "Help", + [ + "Live Shapes::Shapes, that can be regenerated any time", + "Edit Live Shape", + "Same Radii::all radiuses of a rectangle should be the same" + ] + ], + [ + "Color", + [ + "None::No Color", + "Red", + "Orange", + "Yellow", + "Green", + "Blue", + "Purple", + "Gray", + "White", + "Transparent", + "Black" + ] + ], + [ + "Drop Shadow", + "Inner Shadow", + "Outer Glow", + "Inner Glow", + "Bevel and Emboss", + "Color Overlay", + "Gradient Overlay", + "Pattern Overlay", + "Satin", + "Stroke", + "Blending Options" + ], + [ + "Tip Shape", + "Tip Dynamics", + "Scatter::dont put brush exactly, but randomly around the target spot", + "Color Dynamics", + [ + "Size Jitter::change the size randomly", + "Minimal Diameter", + "Angle Jitter::change the angle randomly", + "Roundness Jitter::change the roundness randomly", + "Minimal Roundness" + ], + [ + "Position Jitter", + "Count::The number of brushes", + "Count Jitter" + ], + [ + "Foreground/Background Jitter", + "Hue Jitter", + "Saturation Jitter", + "Brightness Jitter" + ], + [ + "Select clone source by holding Alt (or K) and clicking on the image.", + "Mark Foreground with White, Background with Black, and the unknown area with Gray.", + "Layer is not editable.", + "Text Layer must be rasterized first", + "Smart Object must be rasterized first", + "Select multiple layers" + ] + ], + [ + "Leading::Text style - vertical distance between lines", + "Tracking::Text style - horizontal spacing between characters", + "Baseline shift::Move the bottom line of the text" + ], + [ + "All Layers", + "Current Layer", + "Selection", + "Current & Below::Current layers and all layers below it" + ], + [ + "Replace::The new thing replaces the old one", + "Unite", + "Subtract", + "Intersect", + "Exclude" + ], + [ + [ + "Linear", + "Radial", + "Angle", + "Reflected", + "Diamond", + "Shape Burst" + ], + [ + "Softer", + "Precise" + ], + [ + "Outer Bevel", + "Inner Bevel", + "Emboss", + "Pillow Emboss", + "Stroke Emboss" + ], + [ + "Smooth", + "Chisel Hard", + "Chisel Soft" + ], + [ + "Up", + "Down" + ], + [ + "Outside", + "Center", + "Inside" + ], + [ + "Shadows", + "Midtones", + "Highlights" + ], + [ + "Desaturate", + "Saturate" + ], + [ + "Small", + "Medium", + "Large" + ] + ], + [ + "Choose the object under the cursor", + "Transform controls", + "Pixel to Pixel::Zoom the image to 100% (1 image pixel = 1 screen pixel)", + "Fit The Area", + [ + "Align Left Edges", + "Center Horizontally", + "Align Right Edges", + "Align Top Edges", + "Center Vertically", + "Align Bottom Edges", + "Equal Gaps::Equal spacing between objects" + ] + ], + [ + "Place into::Place the new photo into:", + "Current Project", + "New Project", + "Resolution", + "Added into the current project.", + "A new project was created.", + "Access to the camera was denied." + ], + [ + "Orientation::Vertical or horizontal", + "Bend::Text warping: bend the text to a wave, etc.", + "Horizontal Distortion", + "Vertical Distortion", + [ + "Horizontal", + "Vertical" + ], + [ + "None::No Warp", + "Arc", + "Arc Lower", + "Arc Upper", + "Arch", + "Bulge", + "Shell Lower", + "Shell Upper", + "Flag", + "Wave", + "Fish", + "Rise", + "Fish Eye", + "Inflate", + "Squeeze", + "Twist", + "Custom" + ], + [ + "Font", + "is not available", + "Will be rendered using" + ], + [ + "Swap Colors", + "Default: White and Black" + ] + ], + [ + "loaded::File was loaded", + "added::Font was added", + "Move Guide", + "Delete Guide", + "Add Guide", + "Loading" + ], + [ + "Filter Gallery", + [ + [ + "Liquify::A filter", + [ + "Smudge::Draw over image to spread colors along your stroke", + "Reconstruct::Recover to original state", + "Smoothen::Make the effect more smooth", + "Twirl::Rotate in a spiral", + "Shrink::Make smaller", + "Blow::Make bigger", + "Push Left::ush colors to the left along the stroke", + "Freeze", + "Unfreeze" + ] + ], + [ + "Lens Correction" + ] + ], + "Blur", + [ + "Average::Average filter - fills the image with an average color", + "Blur", + "Blur More", + "Box Blur", + "Gaussian Blur", + "Lens Blur", + "Motion Blur", + "Radial Blur", + "Shape Blur", + "Smart Blur", + "Surface Blur" + ], + "Distort", + [ + "Displace::Filter: move parts of image according to the brightness from another image", + "Pinch::Blow or shring around the center", + "Polar Coordinates", + "Ripple::Add tiny waves to the image", + "Shear", + "Spherize", + "Wave" + ], + "Noise", + [ + "Add Noise", + "Despeckle", + "Dust & Scratches", + "Median" + ], + "Pixelate", + [ + "Color Halftone", + "Crystallize", + "Facet", + "Fragment", + "Mezzotint", + "Mosaic", + "Pointillize" + ], + "Render", + [ + "Clouds", + "Difference Clouds" + ], + "Sharpen", + [ + "Sharpen", + "Sharpen Edges", + "Sharpen More", + "Smart Sharpen", + "Unsharp Mask" + ], + "Stylize", + [ + "Diffuse", + "Emboss", + "Extrude", + "Find Edges" + ], + "Other", + [ + "Custom::A Custom kernel of the convolution", + "High Pass", + "Maximum", + "Minimum", + "Offset::Filter: shift the image horizontally and vertically", + "Repeat::Filter: Repeat the image many times" + ], + [ + "Undefined Area", + "Set to Transparent", + "Repeat Edge Pixels", + "Wrap Around", + "Last Filter" + ] + ] + ], + [ + [ + "Soubor", + "Úpravy", + "Obraz", + "Vrstva", + "Složka", + "Výběr", + "Filtr", + "Zobrazení", + "Okno", + "Jazyk", + "Přihlášení", + "Odhlášení", + "Přeložit", + [ + "Účet", + "Podmínky služby", + "Zpět" + ], + "Více", + "Motiv vzhledu", + "Použít WebGL" + ], + [ + "Otevřít", + "Zveřejnit online (Imgur)", + "Uložit", + "Uložit jako PSD", + "Tisk", + "Otevřít z URL", + "Otevřít z počítače", + "Spojit s Google Drive", + "Uložit jako", + "Exportovat grafiku", + "Skript", + "Otevřít a Umístit" + ], + [ + "Krok vpřed", + "Krok zpět", + "Vyčistit", + "Vyplnit", + "Transformace", + "Natočit", + "Převrátit vodorovně", + "Převrátit svisle", + "Vpřed / Zpět", + "Perspektivní" + ], + "Úpravy", + [ + "Jas / Kontrast", + "Úrovně", + "Křivky", + "Expozice", + "Živost", + "Odstín / Sytost", + "Vyvážení barev", + "Černobílé", + "Fotografický filtr", + "Míchání kanálů", + "Vyhledání Barev", + "Invertovat", + "Posterizovat", + "Práh", + "Mapa na přechod", + "Selektivní barva", + [ + "Auto Tón", + "Auto Kontrast", + "Auto Barvy" + ] + ], + [ + "Vyjmout", + "Kopírovat", + "Vložit", + "Nový", + "Smazat", + "Zapnout", + "Vypnout", + "Kopírovat z celku", + "Aplikovat" + ], + [ + "Duplikovat vrstvu", + "Nová vrstva úprav", + "Rastrová maska", + "Vektorová maska", + "Přidat (zobrazit vše)", + "Přidat (skrýt vše)", + "Maska Ořezu", + "Převést na Smart Object", + "Rastrovat", + "Seskupit vrstvy", + "Sloučit dolů", + "Sloučit nahoru", + "Sloučit vrstvy", + "Nová vrstva", + "Zapnout rastrovou masku", + "Vypnout rastrovou masku", + "Zapnout vektorovou masku", + "Vypnout vektorovou masku", + "Zapnout ořezovou masku", + "Vypnout ořezovou masku", + "Nová složka", + "Přidat rastrovou masku", + "Smazat rastrovou masku", + "Přidat vektorovou masku", + "Smazat vektorovou masku", + "Připojit rastrovou masku", + "Odpojit rastrovou masku", + "Připojit vektorovou masku", + "Odpojit vektorovou masku", + "Zapnout efekty vrstvy", + "Vypnout efekty vrstvy", + "Smazat vrstvu", + "Změna průhlednost vrstvy", + "Změna režimu prolnutí", + "Rastrovat styl vrstvy", + "Pořadí vrstev", + [ + "Vytváření Smart Object", + "Aktualizace Smart Object", + "Vkládání Smart Object" + ], + "Změna názvu", + "Změna barvy", + "Změna vrstvy úprav", + "Převést na tvar", + "Zapnout masku filtrů", + "Vypnout masku filtrů", + "Zapnout chytré filtry", + "Vypnout chytré filtry", + "Přidat masku filtrů", + "Smazat masku filtrů", + "Smazat chytré filtry", + [ + [ + "Vyplnění jednolitou barvou", + "Vyplnění přechodem", + "Vyplnění vzorkem" + ], + "Nová krycí vrstva", + "Úprava krycí vrstvy" + ], + "Vrstva zkopírováním", + "Maska filtru", + "Smazat styl vrstvy", + "Přesun smart filtru", + "Smazat smart filtr", + [ + "Propojit vrstvy", + "Zrušit propojení vrstev" + ], + "Uspořádat", + [ + "Poslat na Začátek", + "Poslat Dopředu", + "Poslat Dozadu", + "Poslat na Konec" + ], + [ + "Vrstva je Zamčená.", + "Změna Zámku" + ] + ], + [ + "Vše", + "Odznačit", + "Invertovat", + "Upravit", + "Rozšířit", + "Zúžit", + "Změkčit okraj", + "Posunout výběr", + "Barevný rozsah", + "Okraj", + "Transformovat výběr", + "Vylepšit Hrany", + "Opravit výběr" + ], + [ + "Přiblížit", + "Oddálit", + "Vodítka", + "Pravítka", + "Mřížka", + "Přichytávání", + "Přichytávat k", + "Okraj dokumentu", + "Pixelová mřížka", + "Cesty" + ], + [ + "Historie", + "Vrstvy", + "Vlastnosti", + "Štětec", + "Znak", + "Odstavec", + "Info", + "Kompozice", + "Vzorky" + ], + [ + "Štětec", + "Klonovací razítko", + "Ořez", + "Guma", + "Eliptický výběr", + "Kapátko", + "Přechod", + "Ručička", + "Vodorovný text", + "Laso", + "Magnetické laso", + "Přesun", + "Kouzelná hůlka", + "Kyblík barvy", + "Mnohoúhelníkové laso", + "Obdélníkový výběr", + "Volná transformace", + "Lupa", + "Rozostření", + "Zostření", + "Rozmazání", + "Zesvětlení", + "Ztmavení", + "Houba", + "Bodový retušovací štětec", + "Retušovací štětec", + "Záplata", + "Výběr cesty", + "Přímý výběr", + "Pero", + "Pero od ruky", + "Jiný tvar", + "Obdélník", + "Elipsa", + "Tvar s parametry", + "Čára", + "Pravítko", + "Rychlý Výběr", + "Tužka" + ], + [ + "Vyfotit", + "Výběr barvy", + "Editor kontur", + "Velikost plátna", + "Duplikovat do…", + "Editor přechodu", + "Styl vrstvy", + "Nový projekt", + "Uložit pro web", + "Pokřivení", + "Velikost obrazu", + "Vektorizovat bitmapu", + "Oříznout", + "Klávesové zkratky" + ], + [ + "Krytí", + "Efekty", + "Jas", + "Kontrast", + "Kanál", + "Expozice", + "Posun", + "Gama korekce", + "Odstín", + "Sytost", + "Světlost", + "Obarvit", + "Rozsah", + "Živost", + "Velikost", + "Úhel", + "Zaoblení", + "Tvrdost", + "Mezery", + "Režim prolnutí", + "Velikost vzorku", + "Kontura", + "Styl", + "Otočit", + "Tolerance", + "Souvislé", + "Výplň", + "Použít globální úhel", + "Vzdálenost", + "Rozšíření", + "Šum", + "Vyseknout vržený stín", + "Metoda", + "Směr", + "Hloubka", + "Změkčit", + "Režim", + "Přechod", + "Velikost", + "Zarovnat s vrstvou", + "Poloha", + "Šířka", + "Výška", + "Cíl", + "Typ", + "Popředí", + "Pozadí", + "Vlastní", + "Název", + "Vytvořit", + "Formát", + "Zachovat poměr stran", + "Kvalita", + "Duplikovat", + "Přesun", + "Chytré filtry", + "Poloměr", + "Míra", + "Distribuce", + [ + "Rovnoměrná", + "Gaussovská" + ], + "Monochromatický", + "Velikost buňky", + "Vzorek", + "Hustota", + "Síla", + "Zachovat detaily", + "Typ výplně", + "Textura", + "Šum", + "Hrana", + "Zdroj", + "Cíl", + "Kanály", + "Maska", + "Hustota", + "Zarovnaný", + [ + "Cesta", + "Tvar", + "Pixely" + ], + "Tvary", + "Strany", + "Předvolby", + [ + "Délka", + "Poměr", + "Libovolný" + ], + "Redukovat šum", + "Barvy", + "Vzdálenosti", + "Míra", + "Auto-výběr", + "Najít", + "Definovat nový", + [ + "Foto", + "Obrazovka", + "Mobil", + "Reklamy" + ], + [ + "Volný", + "Pevný poměr", + "Pevná velikost" + ], + "Nápověda", + [ + "Živé Tvary", + "Úprava Živých Tvarů", + "Stejné Poloměry" + ] + ], + [ + "Barva", + [ + "Žádná", + "Červená", + "Oranžová", + "Žlutá", + "Zelená", + "Modrá", + "Fialová", + "Šedá", + "Bílá", + "Průhledná", + "Černá" + ] + ], + [ + "Vržený stín", + "Vnitřní stín", + "Vnější záře", + "Vnitřní záře", + "Úkos a reliéf", + "Překrytí barvou", + "Překrytí přechodem", + "Překrytí vzorkem", + "Satén", + "Vytažení", + "Možnosti prolnutí" + ], + [ + "Tvar špičky", + "Dynamika špičky", + "Rozptyl", + "Dynamika barvy", + [ + "Kolísání velikosti", + "Minimální průměr", + "Kolísání úhlu", + "Kolísání zaoblení", + "Minimální zaoblení" + ], + [ + "Rozptyl polohy", + "Počet", + "Kolísání počtu" + ], + [ + "Kolísání popředí/pozadí", + "Kolísání odstínu", + "Kolísání sytosti", + "Kolísání jasu" + ], + [ + "Zvolte zdroj klonování přidržením Alt a kliknutím do obrazu.", + "Označte popředí Bílou, pozadí Černou a neznámou oblast Šedou.", + "Vrstvu nelze upravovat.", + "Textovou vrstvu je nejprve třeba rasterizovat", + "Smart Objekt je nejprve třeba rasterizovat", + "Vyberte několik vrstev" + ] + ], + [ + "Proklad", + "Prostrkání", + "Posun účaří" + ], + [ + "Veškerý obsah", + "Stávající vrstva", + "Výběr", + "Vrstva a ty pod ní" + ], + [ + "Nahradit", + "Spojit", + "Odečtení", + "Průnik", + "XOR" + ], + [ + [ + "Lineární", + "Kruhový", + "Úhlový", + "Zrcadlený", + "Diamant", + "Podle tvaru" + ], + [ + "Měkčí", + "Přesná" + ], + [ + "Vnější úkos", + "Vnitřní úkos", + "Reliéf", + "Poduškový reliéf", + "Reliéfní tah" + ], + [ + "Vyhladit", + "Tvrdá", + "Měkká" + ], + [ + "Nahoru", + "Dolů" + ], + [ + "Vně", + "Na střed", + "Uvnitř" + ], + [ + "Stíny", + "Střední tóny", + "Odlesky" + ], + [ + "Snížit Sytost", + "Zvýšit Sytost" + ], + [ + "Malý", + "Střední", + "Velký" + ] + ], + [ + "Vybrat objekt pod kurzorem", + "Ovládací prvky transformace", + "Skutečné pixely", + "Přizpůsobit obrazovce", + [ + "Zarovnat levé hrany", + "Vodorovně na střed", + "Zarovnat pravé hrany", + "Zarovnat horní hrany", + "Svisle na střed", + "Zarovnat spodní hrany", + "Stejné mezery" + ] + ], + [ + "Vložit do", + "Současný projekt", + "Nový projekt", + "Rozlišení", + "Přidáno do současného projektu.", + "Nový projekt vytvořen.", + "Nepovolen přístup ke kameře." + ], + [ + "Orientace", + "Prohnutí", + "Vodorovná deformace", + "Svislá deformace", + [ + "Vodorovně", + "Svisle" + ], + [ + "Žádné", + "Oblouk", + "Dolní oblouk", + "Horní oblouk", + "Klenba", + "Vyboulení", + "Mušle dolů", + "Mušle nahoru", + "Vlajka", + "Vlna", + "Ryba", + "Vyvýšení", + "Rybí oko", + "Nafouknutí", + "Zmáčknutí", + "Zkroucení", + "Vlastní" + ], + [ + "Písmo", + "není dostupný", + "Pro vykreslení se použije" + ], + [ + "Prohodit barvy", + "Základní: černobílá" + ] + ], + [ + "načten", + "přidány", + "Posun vodítka", + "Smazání vodítka", + "Přidání vodítka", + "Načítání" + ], + [ + "Galerie filtrů", + [ + [ + "Zkapalnit", + [ + "Rozmazat", + "Obnovit", + "Vyhladit", + "Zatočit", + "Smrsknout", + "Nafouknout", + "Posun doleva", + "Zmrazit", + "Rozmrazit" + ] + ], + [ + "Korekce Čočky Objektivu" + ] + ], + "Rozostření", + [ + "Průměr", + "Rozostřit", + "Rozostřit více", + "Hranolové rozostření", + "Gaussovské rozostření", + "Rozostření čočkou", + "Rozostření pohybem", + "Kruhové rozostření", + "Rozostření tvarem", + "Chytré rozostření", + "Rozostření povrchu" + ], + "Zkreslení", + [ + "Pokřivit", + "Štípnout", + "Polární Souřadnice", + "Zvlnit", + "Střihnout", + "Zakulatit", + "Vlna" + ], + "Šum", + [ + "Přidat šum", + "Vyhladit", + "Prach a škrábance", + "Medián" + ], + "Pixelizace", + [ + "Barevné půltónování", + "Krystalizace", + "Faseta", + "Fragment", + "Mezinádech", + "Mozaika", + "Vytečkovat" + ], + "Vykreslit", + [ + "Mraky", + "Mraky: Rozdíl" + ], + "Zaostřit", + [ + "Zaostřit", + "Zaostřit hrany", + "Zaostřit více", + "Chytré zaostření", + "Maska zaostření" + ], + "Stylizace", + [ + "Difúze", + "Reliéf", + "Vytáhnout", + "Najít hrany" + ], + "Ostatní", + [ + "Vlastní", + "Výšky", + "Maximum", + "Minimum", + "Posun", + "Opakovat" + ], + [ + "Oblast okolo", + "Zprůhlednit", + "Zopakovat pixely na hraně", + "Zopakovat obrázek", + "Poslední Filtr" + ] + ] + ], + [ + [ + "Archivo", + "Editar", + "Imagen", + "Capa", + "Carpeta", + "Seleccionar", + "Filtro", + "Vista", + "Ventana", + "Lenguaje", + "Iniciar sesión", + "Cerrar sesión", + "Crear traducción", + [ + "Cuenta", + "Términos del Servicio", + "Volver" + ], + "Más", + "Tema", + "Usar WebGL" + ], + [ + "Abrir", + "Publicar en línea (Imgur)", + "Guardar", + "Guardar como PSD", + "Imprimir", + "Abrir desde URL", + "Abrir desde computadora", + "Conectar con Google Drive", + "Exportar como", + "Español", + "Script", + "Abrir y Colocar" + ], + [ + "Paso Adelante", + "Paso Atras", + "Transparente", + "Rellenar", + "Transformar", + "Rotar", + "Voltear Horizontalmente", + "Voltear Verticalmente", + "Deshacer / Rehacer", + "Perspectiva" + ], + "Ajustes", + [ + "Brillo/ Contraste", + "Niveles", + "Curvas", + "Exposición", + "Vibración", + "Tono/ Saturacion", + "Balance de color", + "Negro & Blanco", + "Filtro de Foto", + "Mezclador de canales", + "Búsqueda de color", + "Invertir", + "Posterizar", + "Umbral", + "Mapa de degradado", + "Color selectivo", + [ + "Tono automático", + "Contraste automático", + "Color Automático" + ] + ], + [ + "Cortar", + "Copiar", + "Pegar", + "Nuevo", + "Borrar", + "Habilitar", + "Desactivar", + "Copiar acoplados", + "Aplicar" + ], + [ + "Duplicar Capa", + "Nueva Capa de Ajuste", + "Rasterizar Máscara", + "Vectorizar Mascara", + "Añadir (Mostrar Todo)", + "Añadir (ocultar)", + "Máscara de recorte", + "Convertir a Objeto Inteligente", + "Rasterizar", + "Agrupar Capas", + "Combinar Hacia Abajo", + "Combinar Hacia Arriba", + "Combinar Capas", + "Nueva Capa", + "Activar Máscara Ráster", + "Desactivar Máscara Ráster", + "Activar Máscara Vectorial", + "Desactivar Máscara Vectorial", + "Activar la Máscara de Recorte", + "Desctivar la Máscara de Recorte", + "Nueva Carpeta", + "Añadir Máscara Ráster", + "Borrar Máscara Ráster", + "Añadir Máscara Vectorial", + "Borrar Máscara Vectorial", + "Enlazar Máscara Ráster", + "Desenlazar Máscara Ráster", + "Enlazar Máscara Vectorial", + "Desenlazar Máscara Vectorial", + "Habilitar Efectos de Capa", + "Deshabilitar Efectos de Capa", + "Borrar Capa", + "Cambiar Opacidad de Capa", + "Cambiar Fundido", + "Rasterizar el Estilo de la Capa", + "Orden de Capa", + [ + "Crear Objeto Inteligente", + "Actualizar Objeto Inteligente", + "Colocar Objeto Inteligente" + ], + "Cambiar Nombre", + "Cambiar Color", + "Editar Ajustes de Capa", + "Convertir a Figura", + "Habilitar Filtro de Máscara", + "Deshabilitar Filtro de Máscara", + "Habilitar Filtros Inteligentes", + "Deshabilitar Filtros Inteligentes", + "Poner Filtro de Máscara", + "Borrar Filtro de Máscara", + "Limpiar Filtros Inteligentes", + [ + [ + "Relleno de color sólido", + "Relleno de degradado", + "Relleno de patrón" + ], + "Nueva capa de relleno", + "Modificar la capa de relleno" + ], + "Capa a través de la copia", + "Máscara de filtro", + "Borrar estilo de capa", + "Move Smart Filter", + "Borre fulgor", + [ + "Capas", + "Capas sin desbloquear" + ], + "Organizar", + [ + "QUE???", + "wtft", + "3rc43", + "r4c3c" + ], + [ + "La capa está bloqueada", + null + ] + ], + [ + "Todo", + "deseleccionar", + "Invertir", + "Modificar", + "Expandir", + "Contraer", + "Calar", + "Mover Selección", + "Rango de colores", + "borde", + "Transformar selección", + "4c4r2", + "4tv" + ], + [ + "Acercar", + "Alejar", + "Guías", + "Reglas", + "Cuadrícula", + "Tomar", + "Tomar de", + "Límites de documentos", + "Cuadrícula de Píxeles", + "Ruta" + ], + [ + "Historial", + "Capas", + "Propiedades", + "Pincel", + "Carácter", + "Párrafo", + "tv", + "vt4", + "tv4vf2" + ], + [ + "Pincel", + "Clonar", + "Recorte", + "Goma", + "Selección Elíptica", + "Gotero", + "Gradiente", + "Mano", + "Texto", + "Selección de Lazo", + "Selección de Lazo Magnético", + "Mover", + "Varita Mágica", + "Rellenar", + "Selección de Lazo Polygonal", + "Selección Rectangular", + "Transformación Libre", + "Lupa", + "Herramienta de desenfoque", + "Sacapuntas", + "Herramienta de borrado", + "Herramienta de esquivado", + "Herramienta de grabación", + "Herramienta Esponja", + "Pincel corrector de punto", + "Pincel corrector", + "Herramienta Parche", + "Selección de Trazado", + "Selección directa", + "Pluma", + "Pluma libre", + "Forma personalizada", + "Rectangulo", + "Elipse", + "Forma Paramétrica", + "Línea", + "Regla", + "Selección rápida", + "Herramienta de Lápiz" + ], + [ + "Tomar una foto", + "Elegir Color", + "Editor de Contorno", + "Tamaño del Lienzo", + "Duplicar en ...", + "Editor de Gradiente", + "Estilo de Capa", + "Nuevo Proyecto", + "Guardar Como...", + "Deformar", + "Tamaño de la Imagen", + "Vectorizar Imagen", + "Recortar", + "gt4fr" + ], + [ + "Opacidad", + "Efectos", + "Luminosidad", + "Contraste", + "Canal", + "Exposición", + "Desplazamiento", + "Correción de Gama", + "Matiz", + "Saturación", + "Brillo", + "Colorear", + "Rango", + "Vibración", + "Tamaño", + "Ángulo", + "Redondez", + "Dureza", + "Espaciar", + "Modo de Fusión", + "Tamaño de Muestra", + "Contorno", + "Estilo", + "Revertir", + "Tolerancia", + "Contiguo", + "Llenar", + "Usar ángulo global", + "Distancia", + "Dispersión", + "Ruido", + "Ocultar sombra paralela", + "Técnica", + "Dirección", + "Profundidad", + "Suavizar", + "Modo", + "Gradiente", + "Escala", + "Alinear con capa", + "Posición", + "Ancho", + "Alto", + "Destinación", + "Tipo", + "Primer Plano", + "Fondo", + "Personalizado", + "Nombre", + "Crear", + "Formato", + "Mantener Relación de Aspecto", + "Calidad", + "Duplicar", + "Mover", + "Filtros Inteligentes", + "Radio", + "Cantidad", + "Distribución", + [ + "Uniforme", + "Gaussiano" + ], + "Monocromático", + "Tamaño de la Celda", + "Relleno", + "Flujo", + "Fuerza", + "Proteger Detalle", + "Tipo de relleno", + "Textura", + "Estar nervioso", + "Borde", + "Fuente", + "Destino", + "Canales", + "Máscara", + "Densidad", + "Alineado", + [ + "Ruta", + "Forma", + "Pixeles" + ], + "Formas", + "Lados", + "Preferencias", + [ + "Longitud", + "Proporción", + "Cualquiera" + ], + "Reducir Ruido", + "Colores", + "Distancia", + "Calificar", + "Seleccion automatica", + "Buscar", + "Definir Nuevo", + [ + "Foto", + "Pantalla", + "Móvil", + "Anuncios" + ], + [ + null, + null, + null + ], + "Ayuda", + [ + null, + null, + null + ] + ], + [ + "Color", + [ + "Ninguno", + "Rojo", + "Naranja", + "Amarillo", + "Verde", + "Azul", + "Violeta", + "Gris", + "Blanco", + "Transparente", + "Negro" + ] + ], + [ + "Sombra Paralela", + "Sombra Interior", + "Resplandor Exterior", + "Resplandor Interior", + "Bisel y Relieve", + "Superposición de Colores", + "Superposición de Degradado", + "Superposición de Motivo", + "Satinado", + "Trazo", + "Opciones de Fusión" + ], + [ + "Forma de la Punta", + "Dinámica de la Punta", + "Dispersión", + "Dinámicas de Color", + [ + "Tamaño del Difuminado", + "Diámetro Mínimo", + "Ángulo del Difuminado", + "Redondez del Difuminado", + "Redondez Mínima" + ], + [ + "Posición del Difuminado", + "Contar", + "Cuenta del Difuminado" + ], + [ + "Primer Plano/Fondo del Difuminado", + "Tono del Difuminado", + "Saturación del Difuminado", + "Brillo del Difuminado" + ], + [ + "Selecciona la fuente de clonado manteniendo Alt (o K) y dando clic sobre la imagen", + null, + null, + null, + null, + null + ] + ], + [ + "Iniciar", + "Rastrear", + "Cambio de la Línea de Base" + ], + [ + "Contenido Total", + "Capa Actual", + "Selección", + null + ], + [ + "Reemplazar", + "Unión", + "Diferencia", + "Intersección", + "Excluir" + ], + [ + [ + "Lineal", + "Radial", + "Angular", + "Reflejado", + "Diamante", + "Explosión de forma" + ], + [ + "Suavizar", + "Precisar" + ], + [ + "Bisel Externo", + "Bisel Interno", + "Relieve", + "Relieve tipo Almohada", + "Relieve del Trazo" + ], + [ + "Suavizar", + "Cincel Duro", + "Cincel Suave" + ], + [ + "Arriba", + "Abajo" + ], + [ + "Afuera", + "Centrado", + "Adentro" + ], + [ + "Sombras", + "Tonos medios", + "Reflejos" + ], + [ + "Desaturar", + "Saturar" + ], + [ + null, + null, + null + ] + ], + [ + "Selecciona el objeto bajo el cursor", + "Controles de Transformación", + "Pixel por Pixel", + "Ajustar al Área", + [ + "Alinear Bordes Izquierdos", + "Centrar Horizontalmente", + "Alinear Bordes Derechos", + "Alinear Bordes Superiores", + "Centrar verticalmente", + "Alinear Bordes Inferiores", + null + ] + ], + [ + "Insertar en", + "Proyecto Actual", + "Nuevo Proyecto", + "Resolución", + "Añadido a el proyecto actual.", + "Un nuevo proyecto a sido creado.", + "El acceso a la cámara fue denegado." + ], + [ + "Orientación", + "Curvar", + "Distorsión Horizontal", + "Distorsión Vertical", + [ + "Horizontal", + "Vertical" + ], + [ + "Ninguno", + "Arco", + "Arco Inferior", + "Arco Superior", + "Arquear", + "Bulto", + "Capa inferior", + "Capa superior", + "Bandera", + "Ola", + "Pez", + "Aumentar", + "Ojo de pez", + "Inflar", + "Exprimir", + "Giro", + "Personalizado" + ], + [ + "Fuente", + "no está disponible", + "Se renderizará utilizando" + ], + [ + "Intercambiar Colores", + "Predefinido: Blanco y Negro" + ] + ], + [ + "cargado", + "agregado", + "Mover Guía", + "Borrar Guía", + "Añadir Guía", + "Cargando" + ], + [ + "Galería de Filtros", + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "Desenfoque", + [ + "Promedio", + "Desenfoque", + "Desenfocar más", + "Desenfoque de Caja", + "Desenfoque Gaussiano", + "Desenfoque de Lente", + "Desenfoque de Movimiento", + "Desenfoque Radial", + "Desenfoque de Forma", + "Desenfoque Inteligente", + "Desenfoque de Superficie" + ], + "Distorsionar", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Ruido", + [ + "Añadir Ruido", + "Eliminar", + "Polvo y Rascaduras", + "Mediana" + ], + "Pixelar", + [ + "Medios tonos de color", + "Cristalizar", + "Faceta", + "Fragmentos", + "Grabado mezzotinto", + "Mosaico", + "Puntillismo" + ], + "Hacer", + [ + "Nubes", + null + ], + "Afilar", + [ + "Afilar", + "Agudizar los bordes", + "Afilar más", + "Afilado Inteligente", + "Máscara de enfoque" + ], + "Estilizar", + [ + "Difusión", + "Realzar", + "Extrusión", + "Encontrar Bordes" + ], + "Otro", + [ + "Personalizado", + "Paso alto", + "Máximo", + "Mínimo", + "Compensar", + "Repeteix" + ], + [ + "Área indefinida", + "Establecer como transparente", + "Repita los píxeles de los bordes", + "Envolver alrededor", + "Último filtro" + ] + ] + ], + [ + [ + "Datei", + "Bearbeiten", + "Bild", + "Ebene", + "Ordner", + "Auswählen", + "Filter", + "Ansicht", + "Fenster", + "Sprache", + "Login", + "Logout", + "Übersetzung erstellen", + [ + "Account", + "Nutzungsbedingungen", + "Zurück" + ], + "Mehr", + "Farbschema", + "WebGL benutzen" + ], + [ + "Öffnen", + "Online veröffentlichten (Imgur)", + "Speichern", + "Speichern als PSD", + "Drucken", + "Von URL öffnen", + "Vom Computer öffnen", + "Mit Google Drive verbinden", + "Exportieren als", + "Ebenen exportieren", + "Skripten", + "Öffnen & Einfügen" + ], + [ + "Schritt vorwärts", + "Schritt zurück", + "Löschen", + "Füllen", + "Transformieren", + "Drehen", + "Horizontal spiegeln", + "Vertikal spiegeln", + "Rückgängig / Wiederholen", + "Perspektive" + ], + "Anpassungen", + [ + "Helligkeit / Kontrast", + "Tonwertkorrektur", + "Gradationskurven", + "Belichtung", + "Dynamik", + "Sättigung", + "Farbbalance", + "Schwarz & Weiß", + "Fotofilter", + "Kanalmixer", + "Farbfinder", + "Invertieren", + "Tontrennung", + "Schwellwert", + "Gradientenkarte", + "Selektive Farbkorrektur", + [ + "Auto-Farbton", + "Auto-Kontrast", + "Auto-Farbe" + ] + ], + [ + "Ausschneiden", + "Kopieren", + "Einfügen", + "Neu", + "Löschen", + "Aktivieren", + "Deaktivieren", + "Auf eine Ebene reduziert kopieren", + "Anwenden" + ], + [ + "Ebene duplizieren", + "Neue Einstellungsebene", + "Maske rastern", + "Vektormakse", + "Hinzufügen (alle anzeigen)", + "Hinzufügen (alle ausblenden)", + "Schnittmaske", + "In Smartobjekt konvertieren", + "Rastern", + "Gruppe aus Ebenen", + "Mit darunterliegender auf eine Ebene reduzieren", + "Mit darüberliegender auf eine Ebene reduzieren", + "Ebenen reduzieren", + "Neue Ebene", + "Aktiviere Rasermaske", + "Deaktiviere Rastermaske", + "Aktiviere Vektoremaske", + "Deaktiviere Vektormaske", + "Aktiviere Schnittmaske", + "Deaktiviere Schnittmaske", + "Neuer Ordner", + "Rastermaske hinzufügen", + "Rastermaske entfernen", + "Vektormaske hinzufügen", + "Vektormaske entfernen", + "Rastermaske verbinden", + "Rastermaske trennen", + "Vektormaske verbinden", + "Vektormaske trennen", + "Ebeneneffekte aktivieren", + "Ebeneneffekte deaktivieren", + "Ebene löschen", + "Ebenendeckkraft ändern", + "Ebenenmodus", + "Raster Ebenenstile", + "Ebenenreihenfolge", + [ + "Smartobjekt erstellen", + "Smartobjekt aktualisieren", + "Smartobjekt platzieren" + ], + "Namen ändern", + "Farbe ändern", + "Ebenenkorrektur bearbeiten", + "Zu Form umwandeln", + "Filtermaske aktivieren", + "Filtermaske deaktivieren", + "Smartfilter aktivieren", + "Smartfilter deaktivieren", + "Filtermaske hinzufügen", + "Filtermaske entfernen", + "Smart Filter Leeren", + [ + [ + "Mit Vollfarbe füllen", + "Mit Gradient füllen", + "Musterfüllung" + ], + "Neue Füllebene", + "Füllebene bearbeiten" + ], + "Ebene aus Kopie", + "Filtermaske", + "Ebenenstil entfernen", + "Smartfilter verschieben", + "Smartfilter entfernen", + [ + "Ebenen verbinden", + "Verbindung aufheben" + ], + "Anordnen", + [ + "Nach vorne bringen", + "Schrittweise vorwärts", + "Schrittweise rückwärts", + "Nach hinten stellen" + ], + [ + "Ebene gesperrt", + "Änderung sperren" + ] + ], + [ + "Alles", + "Abwählen", + "Umkehren", + "Bearbeiten", + "Ausweiten", + "Zusammenziehen", + "Feder", + "Auswahl bewegen", + "Farbbereich", + "Umrandung", + "Auswahl transformieren", + "Kante verbessern", + "Auswahl verbessern" + ], + [ + "Vergrössern", + "Verkleinern", + "Anleitungen", + "Lineale", + "Raster", + "Ausrichten", + "Ausrichten an", + "Dokumentenbegrenzung", + "Pixelgitter", + "Pfade" + ], + [ + "Verlauf", + "Ebenen", + "Eigenschaften", + "Pinsel", + "Text", + "Absatz", + "Informationen", + "Komposition schichten", + "Muster" + ], + [ + "Zeichenstift-Werkzeug", + "Stempel", + "Zuschneide-Werkzeug", + "Radiergummi-Werkzeug", + "Ellipsenauswahl", + "Farbauswahl", + "Verlaufwerkzeug", + "Hand-Werkzeug", + "Horizontales Textwerkzeug", + "Lasso Auswahl", + "Magnetisches Lasso", + "Verschiebe-Werkzeug", + "Zauberstab-Werkzeug", + "Füllwerkzeug", + "Polygon-Lasso-Werkzeug", + "Rechteck Auswahl", + "Frei Transformieren", + "Zoom-Werkzeug", + "Weichzeichner-Werkzeug", + "Schärfen-Werkzeug", + "Wischfinger-Werkzeug", + "Auswedeln", + "Nachbelichter-Werkzeug", + "Schwamm-Werkzeug", + "Punktförmiger Reparaturpinsel", + "Reparaturpinsel", + "Ausbessern-Werkzeug", + "Pfadauswahl", + "Direkte Auswahl", + "Stift", + "Freihand Stift", + "Eigene Form festlegen", + "Rechteck", + "Ellipse", + "Parametrische Form", + "Linie", + "Lineal", + "Schnellauswahl", + "Bleistift-Tool" + ], + [ + "Foto aufnehmen", + "Farbwähler", + "Konturen", + "Dokumentgrösse", + "Duplizieren in...", + "Verlaufseditor", + "Ebenenstil", + "Neues Projekt", + "Für Web speichern", + "Wölben", + "Bildgrösse", + "Bitmap vektorisieren", + "Trimmen", + "Tastaturkürzel" + ], + [ + "Transparenz", + "Effekte", + "Helligkeit", + "Kontrast", + "Kanal", + "Belichtung", + "Verschiebungseffekt", + "Gammakorrektur", + "Farbton", + "Sättigung", + "Helligkeit", + "Färben", + "Bereich", + "Lebendigkeit", + "Größe", + "Winkel", + "Rundung", + "Härte", + "Abstand", + "Überblendungsmodus", + "Beispielgrösse", + "Kontur", + "Stil", + "Rückwärts", + "Toleranz", + "Aufeinander folgend", + "Füllen", + "Globaler Winkel verwenden", + "Distanz", + "streuen", + "Rauschen", + "Schlagschatten maskieren", + "Technik", + "Richtung", + "Tiefe", + "dämpfen", + "Modus", + "Farbverlauf", + "Skalieren", + "an Ebene ausrichten", + "Position", + "Breite", + "Höhe", + "Zielort", + "Typ", + "Vordergrund", + "Hintergrund", + "Benutzerdefiniert", + "Name", + "erstellen", + "Format", + "Seitenverhältnis beibehalten", + "Qualität", + "Duplizieren", + "Bewegen", + "Smart Filter", + "Radius", + "Anzahl", + "Verteilung", + [ + "Uniform", + "Gaussian" + ], + "Monochromatisch", + "Zellengröße", + "Muster", + "Fluss", + "Stärke", + "Detail schützen", + "Füllart", + "Textur", + "Jitter", + "Ecke", + "Quelle", + "Ziel", + "Kanäle", + "Maske", + "Dichte", + "Ausgerichtet", + [ + "Pfad", + "Form", + "Pixel" + ], + "Formen", + "Ränder", + "Einstellungen", + [ + "Länge", + "Verhältnis", + "Beliebig" + ], + "Lärm reduzieren", + "Farben", + "Entfernungen", + "Bewerten", + "Automatisch auswählen", + "Suchen", + "Neues definieren", + [ + "Foto", + "Bildschirm", + "Mobil", + "Werbung" + ], + [ + null, + "Verhältnis fixieren", + "Größe fixieren" + ], + "Hilfe", + [ + "Echtzeit Formen", + "Echtzeit Form bearbeiten", + "Gleiche Radien" + ] + ], + [ + "Farbe", + [ + "nicht vorhanden", + "Rot", + "Orange", + "Gelb", + "Grün", + "Blau", + "Lila", + "Grau", + "Weiß", + "Transparent", + "Schwarz" + ] + ], + [ + "Schlagschatten", + "Schatten nach innen", + "Schein außen", + "Schein innen", + "Abgeflachte Kante und Relief", + "Farbüberlagerung", + "Verlaufsüberlagerung", + "Musterüberlagerung", + "Satin", + "Schlag", + "Blendoptionen" + ], + [ + "Kantenform", + "Kantendynamik", + "Stückelung", + "Farbdynamik", + [ + "Zufalls-Variationen", + "Minimaler Durchmesser", + "Winkelvariation", + "Rundheit Variation", + "Minimale Abrundung" + ], + [ + "Positions Variation", + "Anzahl", + "Anzahl Variationen" + ], + [ + "Vorder- /Hintergrund Variation", + "Farbton Variation", + "Sättigung Variation", + "Helligkeit Variation" + ], + [ + "Wähle die zu clonende Quelle mit Alt plus klick auf das Bild.", + "Markiere den Vordergrund mit Weiß, Hintergrund mit Schwarz und die unbekannte Fläche mit Grau.", + "Ebene ist nicht veränderbar.", + "Textebene muss zuerst gerastert werden.", + "Smart-Objekt muss zuerst gerastert werden.", + "wähle mehrere Ebenen" + ] + ], + [ + "Führung", + "Verfolgung", + "Grundlinienanhebung" + ], + [ + "Kompletter Inhalt", + "Aktuelle Ebene", + "Auswahl", + "Aktuelle & darunterliegende" + ], + [ + "Ersetzen", + "Vereinen", + "Unterschied", + "Knotenpunkt", + "oder" + ], + [ + [ + "Linear", + "Radial", + "Winkel", + "Reflektiert", + "Diamant", + "Form Burst" + ], + [ + "Weicher", + "Präzise" + ], + [ + "Äußerer Kegel", + "Innerer Kegel", + "Einstanzen", + "Kegel Auffüllung", + "Kantenauffüllung" + ], + [ + "abmildern", + "Hart meißeln", + "weich meißeln" + ], + [ + "oben", + "unten" + ], + [ + "Außerhalb", + "zentriert", + "innerhalb" + ], + [ + "Schatten", + "Mitten", + "Lichter" + ], + [ + "Entsättigen", + "Sättigen" + ], + [ + "Klein", + "Mittel", + "Groß" + ] + ], + [ + "Bitte wähle ein Objekt unter dem Cursor", + "Transformations-Einstellungen", + "Pixel zu Pixel", + "passend", + [ + "Ausrichten Links", + "Waagerecht zentrieren", + "Rechts ausrichten", + "Oben ausrichten", + "Senkrecht zentrieren", + "Unten ausrichten", + "gleiche Abstände" + ] + ], + [ + "Einfügen in", + "Aktuelles Projekt", + "Neues Projekt", + "Auflösung", + "zum aktuellen Projekt hinzugefügt", + "Ein neues Projekt wurde erstellt.", + "Der Zugriff auf die Kamera wurde nicht gestattet." + ], + [ + "Orientierung", + "Biegen", + "Horizontale Störungen", + "Vertikale Störung", + [ + "Horizontal", + "Vertikal" + ], + [ + "keine", + "Bogen", + "Bogen nach unten", + "Bogen nach oben", + "Bogen", + "Ausbeulen", + "Muschel unten", + "Muschel oben", + "Flagge", + "Welle", + "Fisch", + "Ansteigend", + "Fischauge", + "Abfallend", + "Stauchen", + "Wirbel", + "Angepasst" + ], + [ + "Schrift", + "ist nicht verfügbar", + "wird mit folgenden Einstellungen gerendert" + ], + [ + "Farben tauschen", + "Standard: Schwarzweiß" + ] + ], + [ + "geladen", + "Hinzugefügt", + "Hilfslinie bewegen", + "Hilfslinie löschen", + "Hilfslinie hinzufügen", + "Laden" + ], + [ + "Filter Gallerie", + [ + [ + "Verflüssigen", + [ + "Verschmieren", + "Nachstellen", + "Glätten", + "Wirbeln", + "Verkleinern", + "Aufblasen", + "Nach-links-schieben", + "Fixieren", + "Fixierung aufheben" + ] + ], + [ + null + ] + ], + "Weichzeichnungsfilter", + [ + "Durchschnitt", + "Weichzeichnungsfilter", + "mehr weichzeichnen", + "Box-Weichzeichnung", + "Gausscher Weichzeichnungsfilter", + "Linsenweichzeichnung", + "Bewegungsunschärfe", + "Radialer Weichzeichner", + "Objektunschärfe", + "Selektiver Weichzeichner", + "Sarvase Bur" + ], + "Verzerren", + [ + "Versetzen", + "Distorsion", + "Polarkoordinaten", + "Kräuseln", + "Verbiegen", + "Wölben", + "Schwingungen" + ], + "Rauschen", + [ + "Rauschen hinzufügen", + "Störungen entfernen", + "Staub & Kratzer", + "Helligkeit interpolieren" + ], + "Verpixeln", + [ + "Farbraster", + "Kristallisieren", + "Facetteneffekt", + "Verwackelungseffekt", + "Mezzotint", + "Mosaik", + "Punktieren" + ], + "Renderingfilter", + [ + "Wolken", + "Differenzwolken" + ], + "Scharfzeichnungsfilter", + [ + "Scharfzeichnen", + "Kanten schärfen", + "Stärker schärfen", + "Selektiver Scharfzeichner", + "Unscharf maskieren" + ], + "Stilisierungsfilter", + [ + "Korneffekt", + "Relief", + "Extrudieren", + "Kanten finden" + ], + "Andere", + [ + "Angepasst", + "Hochpass", + "Maximum", + "Minimum", + "Verschiebungseffekt", + "Wiederholen" + ], + [ + "Undefinierter Bereich", + "Auf transparent setzen", + "Pixel wiederholung ecke", + "WAR As", + "mahabur" + ] + ] + ], + [ + [ + "Fichier", + "Édition", + "Image", + "Calque", + "Dossier", + "Sélection", + "Filtre", + "Présentation", + "Fenêtre", + "Langue", + "Se connecter", + "Se déconnecter", + "Créer une traduction", + [ + "Compte utilisateur", + "Conditions d'utilisation", + "Retour" + ], + "Plus", + "Thème", + "Utiliser WebGL" + ], + [ + "Ouvrir", + "Publier en ligne (Imgur)", + "Sauvegarder", + "Sauvegarder en tant que PSD", + "Imprimer", + "Ouvrir depuis une URL", + "Ouvrir Depuis l'Ordinateur", + "Connexion Avec Google Drive", + "Exporter à", + "Exporter des fichiers", + "Texte", + "Ouvrir & Placer" + ], + [ + "Etape suivante", + "Étape précédente", + "Effacer", + "Remplir", + "Transformer", + "Rotation", + "Symétrie Horizontale", + "Symétrie Verticale", + "Annuler / Restaurer", + "Point de vue" + ], + "Ajustements", + [ + "Luminosité / Contraste", + "Niveaux", + "Courbes", + "Exposition", + "Vibrance", + "Teinte / Saturation", + "Balance de couleur", + "Noir & Blanc", + "Filtre Photo", + "Mélangeur de Canaux", + "Recherche de Couleur", + "Inverser", + "Postériser", + "Seuil", + "Courbe de transfert de dégradé", + "Couleur Sélective", + [ + "Teinte auto", + "Constraste Auto", + "Couleur Auto" + ] + ], + [ + "Couper", + "Copier", + "Coller", + "Nouveau", + "Supprimer", + "Activer", + "Désactiver", + "Copie fusionnée", + "Appliquer" + ], + [ + "Dupliquer le Calque", + "Nouveau Calque d'Ajustement", + "Masque de Fusion", + "Masque Vectoriel", + "Ajouter (Tout Montrer)", + "Ajouter (Tout Cacher)", + "Masque d'Écrêtage", + "Convertir en Objet Intelligent", + "Convertir (Pixeliser)", + "Grouper les Calques", + "Fusionner vers le Bas", + "Fusionner vers le Haut", + "Fusionner les Calques", + "Nouveau Calque", + "Appliquer le masque de fusion", + "Désactiver le Masque de Fusion", + "Activer le Masque Vectoriel", + "Désactiver le Masque Vectoriel", + "Activer le Masque d'Écrêtage", + "Désactiver le Masque d'Écrêtage", + "New AnZzia", + "Ajouter un Masque de Fusion", + "Supprimer un Masque de Fusion", + "Ajouter un Masque Vectoriel", + "Supprimer un Masque Vectoriel", + "Lier le Masque de Fusion", + "Délier le Masque de Fusion", + "Lier le Masque Vectoriel", + "Délier le Masque Vectoriel", + "Activer le Calque d'Effets", + "Désactiver le Calque d'Effets", + "Supprimer le Calque", + "Modifier l'Opacité du Calque", + "Modifier le Mode de Fusion", + "Vectoriser un calque de style", + "Ordre des Calques", + [ + "Créer un objet dynamique", + "Mettre à jour un objet dynamique", + "Placer un objet dynamique" + ], + "Modifier le nom", + "Modifier la couleur", + "Modifier le calque de réglages", + "Convertir en forme", + "Activer le filtre Masque", + "Désactiver le filtre Masque", + "Activer les filtres dynamiques", + "Désactiver les filtres dynamiques", + "Ajouter un masque", + "Supprimer un masque", + "Effacer un filtre dynamique", + [ + [ + "Remplissage couleur unie", + "Remplissage degradé", + "Paterne de remplissage ??" + ], + "Nouveau calque de remplissage", + "Modifier la couche de remplisage" + ], + "Couche par copie", + "Masque de filtre", + "Suppr. Style Calque", + "Déplacer Smart Filter", + "Suppr. Smart Filter", + [ + "Lier les Calques", + "Délier les Calques" + ], + "Arranger", + [ + "Déplacer devant", + "Déplacer vers l'avant", + "Déplacer vers l'arrière", + "Déplacer derrière" + ], + [ + "Le calque est vérouillé", + "Changer le vérouillage" + ] + ], + [ + "Tout", + "Désélectionner", + "Inverser", + "Modifier", + "Étendre", + "Contracter", + "Plume", + "Déplacer la sélection", + "Intervalle de couleur", + "Contour", + "Modifier la sélection", + "Affiner le contour", + "Reconstruire la sélection" + ], + [ + "Zoomer", + "Zoomer en arrière", + "Guides", + "Règles", + "Grille", + "Capturer", + "Capturer vers", + "Limites du document", + "Grille par Pixel", + "Chemins" + ], + [ + "Historique", + "Calques", + "Propriétés", + "Pinceau", + "Caractères", + "Paragraphes", + "Informations", + "Composition de calque", + "Nuancier" + ], + [ + "Outil Pinceau", + "Outil Duplication", + "Outil Recadrage", + "Outil Gomme", + "Sélection en ellipse", + "Pipette", + "Outil Dégradé", + "Outil Main", + "Outil Texte", + "Sélection avec lasso", + "Sélection avec lasso magnétique", + "Outil Déplacement", + "Baguette magique", + "Outil Pot de peinture", + "Sélection avec lasso polygonal", + "Sélection en rectangle", + "Transformation libre", + "Outil Zoom", + "Outil de Flou", + "Outil de netteté", + null, + null, + null, + "Eponge", + null, + "Pinceau correcteur", + "Outil tampon", + "Sélectionner le tracé", + "Sélection directe", + "Crayon", + "Crayon libre", + "Forme personnalisée", + "Rectangle", + "Ellipse", + "Forme parametrique", + "Ligne", + "Règle", + "Sélection rapide", + "Crayon" + ], + [ + "Prendre une photo", + "Sélecteur de couleur", + "Éditeur de contour", + "Taille du Canvas", + "Dupliquer vers …", + "Éditeur de dégradés", + "Style de calque", + "Nouveau projet", + "Enregistrer pour le Web", + "Chaîner", + "Taille de l'image", + "Vectoriser Bitmap", + "Tailler", + "Raccourcis clavier" + ], + [ + "Opacité", + "Effets", + "Luminosité", + "Contraste", + "Canal", + "Exposition", + "Ajustement", + "Correction Gamma", + "Teinte", + "Saturation", + "Luminosité", + "Colorisation", + "Gamme", + "Eclat", + "Taille", + "Angle", + "Rondeur", + "Dureté", + "Espacement", + "Mode de fusion", + "Taille de l'échantillon", + "Contour", + "Style", + "Inverser", + "Tolérance", + "Contigu", + "Remplir", + "Utilisez angle global", + "Distance", + "Propager", + "Bruit", + "Ombre portée", + "Technique", + "Direction", + "Profondeur", + "Adoucir", + "Mode", + "Pente", + "Echelle", + "Aligner avec la couche", + "Position", + "Largeur", + "Hauteur", + "Destination", + "Caractère", + "Premier plan", + "Arrière plan", + "Personnalisé", + "Nom", + "Créer", + "Format", + "Garder les proportions", + "Qualité", + "Dupliquer", + "Déplacer", + "Filtres dynamiques", + "Angle", + "Taux", + "Répartition", + [ + "Uniforme", + "Gaussien" + ], + "Monochrome", + "Taille de la cellule", + "Modèle", + "Flux", + "Dureté", + "Protéger les détails", + "Remplir Type", + "Texture", + "Instabilité", + "Contour", + "Source", + "Cible", + "Canaux", + "Masque", + "Densité", + "Aligné", + [ + "Chemin", + "Forme", + "Pixels" + ], + "Formes", + "Côtés", + "Préférences", + [ + "Longueur", + "Ratio", + "Tous" + ], + "Réduire le bruit", + "Couleurs", + "Distances", + "Taux", + "Sélection Auto", + "Trouver", + "Définir Nouveau", + [ + "Photo", + "Ecran", + "Mobile", + "Annonces publicitaires" + ], + [ + "Libre", + "Ratio fixé", + "Taille fixée" + ], + "Aide", + [ + null, + null, + null + ] + ], + [ + "Couleur", + [ + "Aucun", + "Rouge", + "Orange", + "Jaune", + "Vert", + "Bleu", + "Violet", + "Gris", + "Blanc", + "Transparent", + "Noir" + ] + ], + [ + "Ombre portée", + "Ombre interne", + "Lueur externe", + "Lueur interne", + "Biseautage & estampage", + "Incrustation couleur", + "Incrustation en dégradé", + "Incrustation de motif", + "Satin", + "Contour", + "Options de fusion" + ], + [ + "Forme de la pointe", + "Dynamique de forme", + "Diffusion", + "Dynamique de la couleur", + [ + "Variation de la taille", + "Diamètre minimal", + "Variation de l'angle", + "Variation de l'arrondi", + "Arrondi minimal" + ], + [ + "Diffusion", + "Nombre", + "Variation numérique" + ], + [ + "Variation premier plan/arrière plan", + "Variation de teinte", + "Variation de la saturation", + "Variation de la luminosité" + ], + [ + "Sélectionner la source de duplication en maintenant la touche Alt (ou K) et en cliquant sur l'image", + "Marquer premier plan en blanc, arrière-plan en noir, et zone inconnue en gris.", + "Calque non modifiable", + "Calque texte doit être rasteriser en premier", + "Smart Object doit être rasteriser en premier", + "Sélectionner plusieurs calques" + ] + ], + [ + "Marqueur", + "Suivi", + "Déplacement de la Ligne de base" + ], + [ + "Contenu total", + "Calque actuel", + "Sélection", + "Avant/Après" + ], + [ + "Remplacer", + "Union", + "Différence", + "Intersection", + "OU Exclusif" + ], + [ + [ + "Linéaire", + "Radial", + "Angle", + "Reflété", + "Diamant", + "Éclater la forme" + ], + [ + "Tamisé", + "Précis" + ], + [ + "Biseau Externe", + "Biseau Interne", + "Estampage", + "Estampage Oreiller", + "Estampage de Contour" + ], + [ + "Lissage", + null, + null + ], + [ + "Haut", + "Bas" + ], + [ + "Extérieur", + "Centre", + "Interieur" + ], + [ + "Ombres", + "Demi-teintes", + "Hautes lumières" + ], + [ + "Désaturer", + "Saturer" + ], + [ + "Petit", + "Moyen", + "Grand" + ] + ], + [ + "Choisir l'objet sous le pointeur", + "Controles de transformation", + "Pixel à Pixel", + "Ajuster à la zone", + [ + "Aligner sur le côté gauche", + "Centrer horizontalement", + "Aligner sur le côté droit", + "Aligner en haut", + "Centrer verticalement", + "Aligner en bas", + "Ecarts égaux" + ] + ], + [ + "Insérer dans", + "Projet Actuel", + "Nouveau Projet", + "Resolution", + "Ajouté dans le projet actuel/courant.", + "Un nouveau projet a été créé.", + "L'accès à la caméra à été refusé." + ], + [ + "Orientation", + "Courbure", + "Distortion Horizontale", + "Distortion Verticale", + [ + "Horizontal", + "Vertical" + ], + [ + "Sans", + "Arc", + "Arc Inférieur", + "Arc Supérieur", + "Voûte", + null, + null, + null, + "Marqueur", + "Vague", + null, + "Elever", + "Fish Eye", + "Gonfler", + "Comprimer", + "Tordre", + "Personnalisé" + ], + [ + "Police", + "n'est pas disponible", + "Va être rendu avec" + ], + [ + "Echanger couleurs", + "Défaut : Blanc et Noir" + ] + ], + [ + "chargé", + "ajouté", + "Déplacement du guide", + "Suppression du guide", + "Ajout d'un guide", + "Chargement" + ], + [ + "Gallerie de Filtres", + [ + [ + "Liquéfier", + [ + null, + "Reconstruire", + "Lisser", + null, + "Diminuer", + null, + null, + "Figer", + "Défiger" + ] + ], + [ + null + ] + ], + "Flou", + [ + "Moyenne", + "Flouter", + "Flouter encore plus", + "Flou Linéaire", + "Flou Gaussien", + "Flou d'Objectif", + "Flou de mouvement", + "Flou Radial", + "Flou de forme", + "Flou Intelligent", + "Flou de surface" + ], + "Distortion", + [ + "Déplacer", + null, + null, + "Onduler", + null, + null, + "Onduler" + ], + "Bruit", + [ + "Ajouter du Bruit", + "Éliminer (Despeckle)", + "Poussière et Rayures", + "Median" + ], + "Pixeliser", + [ + null, + "Cristalliser", + null, + null, + "Demi-teinte", + "Mosaïque", + "Pointillisme" + ], + "Rendu", + [ + "Nuages", + null + ], + "Netteté", + [ + "Plus nette", + "Netteté des contours", + "Encore plus net", + "Netteté Intelligente", + "Masque flou" + ], + "Stylisation", + [ + "Diffuser", + "Estampe", + "Extruder", + "Détection des Contours" + ], + "Autre", + [ + "Personnalisé", + "Passe-Haut", + "Maximum", + "Minimum", + "Décalage", + "Répéter" + ], + [ + "Zone indéfinie", + "Définir à Transparent", + "Répéter les Pixels des Bords", + "Envelopper Autour", + "Dernier filtre" + ] + ] + ], + [ + [ + "ملف", + "تحرير", + "صورة", + "طبقة", + "مجلد", + "تحديد", + "مرشح", + "عرض", + "نافذة", + "اللغة", + "تسجيل الدخول", + "تسجيل الخروج", + "إنشاء ترجمة", + [ + "الحساب", + "سياسة الخصوصية", + "الخلف" + ], + "المزيد", + "سمة", + "webgl" + ], + [ + "فتح", + "(Imgur) نشر على الوب", + "حفظ", + "حفظ كملف PSD", + "طباعة", + "فتح من رابط URL", + "فتح ملف من الحاسب", + "جلب ملفات من جوجل درايف", + "يس", + null, + null, + "فتح والصاق" + ], + [ + "للأمام", + "للخلف", + "مسح", + "ملء", + "تدوير / تحويل", + "تدوير", + "تدوير أفقي", + "تدوير عمودي", + "رجوع", + "منظور" + ], + "تعديلات", + [ + "الإضاءة", + "مستويات", + "مُنحنيات", + "تعريض", + "حيويتها", + "123", + "توازن الالوان", + "ابيض واسود", + "فلتر صور", + "خلاط القنوات", + "بحث عن لون", + "عكس", + "تتال", + "عتبة", + "خريطة التدرج", + "لون انتقائي", + [ + null, + null, + "تلوين تلقائي" + ] + ], + [ + "قطع", + "نسخ", + "لصق", + "جديد", + "حذف", + "تفعيل", + "تعطيل", + "نسخ مدمج", + "تطبيق" + ], + [ + "نسخ الطبقة", + "طبقة تعديل جديدة", + "قناع النقطية", + "قناع الفيكتور", + "اضافة(اظهار الجميع)", + "اضافة (اخفاء الجميع)", + "قناع التشذيب", + "حول إلى عنصر ذكي", + "دمج", + "تجميع الطبقات", + "دمج للاسفل", + "دمج للاعلى", + "دمج الطبقات", + "طبقة جديدة", + "تمكين قناع النقطية", + "تعطيل قناع النقطية", + "تمكين قناع المتجهات", + "تعطيل قناع المتجهات", + "تمكين قناع القصاصة", + "تعطيل قناع القصاصة", + "مجلد جديد", + "Add Raster Mask", + "(Swimming)", + "إضافة قناع فيكتور", + "حذف قناع فيكتور", + "ربط القناع النقطي", + "عدم ربط القناع النقطي", + "ربط قناع فيكتور", + "عدم ربط قناع فيكتور", + "تفعيل تأثيرات الطبقة", + "تعطيل تأثيرات الطبقة", + "حذف الطبقة", + "تغيير شفافية الطبقة", + "تغيير المزج", + "تنقيط نمط الطبقة", + "ترتيب الطبقة", + [ + "انشاء عنصر ذكي", + "تحديث عنصر ذكي", + "وضع هدف ذكي" + ], + "تغيير الاسم", + "تغيير اللون", + "تعديل تنظيم الطبقة", + "تحويل إلى شكل", + "تفعيل قناع الفلتر", + "الغاء قناع الفلتر", + "تفعيل الفلتر الذكي", + "الغاء تفعيل الفلاتر الذكية", + "اضافة قناع للفلتر", + "مسح فلتر القناع", + "فلاتر نقية وذكية", + [ + [ + "تلوين مصمت", + "تلوين متدرج", + "الملء النمطي" + ], + "ملئ لون جديد", + "تعديل طبقة التلوين" + ], + "طبقة عبر النسخ", + "وجه الفلترة", + "حذف استايل الطبقة", + "تحريك الفلتر الذكي", + "حذف الفلتر", + [ + "ربط الطبقات", + null + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "الكل", + "إلغاء", + "قلب", + "تعديل", + "توسيع", + "انكماش", + "ترييش", + "تحريك المحدد", + "مدى اللون", + "حد", + "خيار التحول", + "تحسين الحواف", + null + ], + [ + "تقريب", + "تكبير", + "الخطوط الإرشادية", + "مساطر", + "شبكة", + "لقطة", + "التقط إلى", + "حدود المستند", + "شبكة بيكسل (عند التكبير)", + "مسارات" + ], + [ + "السجل", + "الطبقات", + "خصائص", + "فرشة", + "حرف", + "فقرة", + "معلومات", + null, + null + ], + [ + "أداة الفرشة", + "اداة النسخ", + "أداة القطع", + "اداة الممحاة", + "اختر الإهليلج", + "قطارة", + "أداة التدريج", + "أداة اليد", + "اداة الكتابة", + "اختيار بالوهق", + "اختيار بالوهق الجاذب", + "اداة التحريك", + "عصا سحرية", + "أداة دلو الدهن", + "اختيار بالوهق الكثير الضلع", + "اختيار مستطيل", + "تحول حر", + "أداة التكبير", + "اداة الضبابية", + "اداة الحدة", + "اداة الطمس", + "اداة التفادي", + "اداة الحرق", + "اداة الاسفنجه", + "فرشاة معالجة البقع", + "فرشاة المعالجة", + "أداة التصحيح", + "اختيار المسار", + "اختيار تلقائي", + "قلم", + "قلم حر", + "هاي", + "مستطيل", + "بيضاوي", + "شكل حدودي", + "خط", + "مسطرة", + "تحديد سريع", + "اداة القلم" + ], + [ + "لون", + "لاقط اللون", + "محرر الحدود", + "حجم الاطار", + "التكرار داخل...", + "محرر التدرج اللوني", + "نمط الطبقه", + "مشروع جديد", + "حفظ للويب", + "إلتواء", + "حجم الصورة", + "تحويل الى صورة متجهة", + "قص", + "اختصارات لوحة المفاتيح" + ], + [ + "الشفافية", + "تأثيرات", + "السطوع", + "التباين", + "قناة", + "التعريض", + "الازاحة", + "تعديل جاما", + "الدرجة اللونية", + "تشبع", + "الاضاءة", + "تلوين", + "مدى", + "حيوية", + "الحجم", + "زاوية", + "استداره", + "الحدة", + "مباعدة", + "وضع الدمج", + "حجم العينة", + "هله", + "تصميم", + "عكسي", + "التباين", + "التلامس", + "ملء", + "استخدام زاوية شامله", + "منانت", + "انتشار", + "ضجيج", + "عدم عرض التظليل", + "تقنية", + "اتجاه", + "عمق", + "تنعيم", + "الوضع", + "ميل", + "مقياس", + "محاذاة مع طبقة", + "مركز", + "العرض", + "الطول", + "المكان المقصود", + "النوع", + "المقدمة", + "خلفية", + "محدد", + "اسم", + "إنشاء", + "التنسيق", + "إبقاء نسبة القياس", + "الجودة", + "تكرار", + "نقل", + "الفلاتر الذكية", + "نصف القطر", + "كمية", + "التوزيع", + [ + "منتظم", + "تمويه" + ], + "أحادي اللون", + "حجم الخلية", + "نمط", + "تدفق", + "سَمِيك", + "حماية التفاصيل", + "نوع الملء", + "النقش", + "تقطع", + "حافة", + "المصدر", + "هدف", + "قنوات", + "قناع", + "كثافة", + "الانحياز", + [ + "مسار", + "شكل", + "بكسل" + ], + "الأشكال", + "الجوانب", + "التفضيلات", + [ + "الطول", + "النسبة", + "أيّ" + ], + "تقليل التشويش", + "ألوان", + "المسافات", + null, + "تحديد تلقائي", + "بحث", + null, + [ + "صورة", + "شاشة", + "هاتف ذكي", + "اعلانات" + ], + [ + null, + null, + "حجم ثابت" + ], + null, + [ + null, + null, + null + ] + ], + [ + "لون", + [ + "لا شيء", + "أحمر", + "برتقالي", + "اصفر", + "اخضر", + "ازرق", + "أرجواني", + "الرمادي", + "أبيض", + "شفاف", + null + ] + ], + [ + "الظل الساقط", + "التظليل الداخلي", + "التوهج الخارجي", + "التوهج الداخلي", + "تشطيب وزخرفة", + "تراكيب الالوان", + "تأثير تدريج لوني", + "نمط تراكب", + "صقيل", + "جرة قلم", + "خيارات المزج" + ], + [ + "شكل التلميح", + "ديناميكية التلميحات", + "بعثرة", + "ديناميكية اللون", + [ + "حجم الغضب", + "الحد الأدنى من القطر", + "زاوية القطع", + "القطع الدائري", + "الحد الأدنى من الاستدارة" + ], + [ + "وضع القطع", + "عَدّ", + "عد القطع" + ], + [ + "مقدمة\\خلفية القطع", + "درجة ألوان القطع", + "تشبع القطع", + "سطوع القطع" + ], + [ + "حدد مصدر النسخ عن طريق الضغط على Alt (أو K) والنقر فوق الصورة", + null, + null, + null, + null, + null + ] + ], + [ + "تقديم", + "تتبع", + "التحول الأساسي" + ], + [ + "إجمالي المحتوى", + "الطبقة الحالية", + "التحديد", + null + ], + [ + "إستبدال", + "جمع", + "خصم", + "تقاطع", + "استبعاد" + ], + [ + [ + "خطي", + "شعاعي", + "زاوية", + "منعكس", + "ماسي", + "شكل انفجار" + ], + [ + "انعم", + "تدقيق" + ], + [ + "الحافة الخارجية", + "الحافة الداخلية", + "منقوش", + "وسادة منقوشة", + "ضرب الوسادة" + ], + [ + "ناعم", + "إزميل معقد", + "إزميل سهل" + ], + [ + "أعلى", + "أسفل" + ], + [ + "خارج", + "وسط", + "داخل" + ], + [ + "الظلال", + "الدرجات اللونية المتوسطة", + "تسليط الضوء" + ], + [ + "تشبع", + "نقع" + ], + [ + null, + null, + null + ] + ], + [ + "اختر الشكل تحت المؤشر", + "ضوابط التحول", + "بكسل إلي بكسل", + "تناسب المنطقة", + [ + "محاذاة الحواف اليسرى", + "منتصف أفقي", + "hd", + "محاذاة أعلى الحواف", + "ر", + "محاذاة الحواف السفلية", + null + ] + ], + [ + "ادخل في", + "المشروع الحالي", + "مشروع جديد", + "دقة", + "يضاف إلى المشروع الحالي", + "تم إنشاء مشروع جديد", + "تم منع الدخول للكاميرا" + ], + [ + "الاتجاه", + "انحناء", + "تشويه أفقي", + "تشويه عمودي", + [ + "أفقي", + "عمودي" + ], + [ + "لا شيء", + "قوس", + "قوس السفلى", + "قوس الاعلى", + "قوس", + "انتفاخ", + "صدف أسفلي", + "صدف علوي", + "علم", + "موج", + "تصيد", + "ترتفع", + null, + "تضخيم", + null, + null, + "مخصوص" + ], + [ + "خط", + "غير متوفر", + null + ], + [ + null, + "الإفتراضى: ابيض واسود" + ] + ], + [ + "تحميل", + "اضافة", + null, + null, + null, + null + ], + [ + null, + [ + [ + null, + [ + null, + null, + null, + null, + "تقليص", + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "التشويش", + [ + "متوسط", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null + ], + "حدة", + [ + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + "اوجد الحواف" + ], + "غير ذلك", + [ + null, + null, + "اقصى قيمة", + "ادنى قيمة", + "إزاحة", + null + ], + [ + "منطقة غير معرفة", + "اجعله شفاف" + ] + ] + ], + [ + [ + "Arquivo photopea", + "Editar", + "Imagem", + "Camada", + "Pasta", + "Selecionar", + "Filtrar", + "Ver", + "Janela", + "Idioma", + "Iniciar Sessão", + "Terminar Sessão", + "Criar tradução", + [ + "Conta", + "Termos de Uso", + "Voltar" + ], + "Mais", + "Tema", + "Usar WebGL" + ], + [ + "Abrir", + "Publicar Online (Imgur)", + "Gravar", + "Gravar como PSD", + "Imprimir", + "Abrir de URL", + "Abrir do computador", + "Conectar com Google Drive", + "Exportar como", + null, + "Script", + null + ], + [ + "Avançar", + "Retroceder", + "Limpar", + "Preencher", + "Transformar", + "Rodar", + "Inverter Horizontalmente", + "Inverter Verticalmente", + "Anular / Refazer", + null + ], + "Ajustamentos", + [ + "Brilho/Contraste", + "Níveis", + "Curvas", + "Exposição", + "Vibração", + "Matiz / Saturação", + "Balanço de Cores", + "Preto e Branco", + "Filtro Fotográfico", + "Misturador de Canais", + "Procura de Cor", + "Inverter", + "Posterizar", + "Limite", + "Mapa Gradiente", + "Cor Seletiva", + [ + null, + null, + null + ] + ], + [ + "Cortar", + "Copiar", + "Colar", + "Novo(a)", + "Apagar", + "Ativar", + "Desativar", + "Cópia Mesclada", + null + ], + [ + "Duplicar Camada", + "Nova Camada de Ajustamento", + "Máscara de Rasterização", + "Máscara Vectorial", + "Adicionar (Ver Tudo)", + "Adicionar (Esconder Tudo)", + "Máscara de Recorte", + "Converter para Objeto Inteligente", + "Rasterizar", + "Agrupar Camadas", + "Fundir para Baixo", + "Fundir para Cima", + "Fundir Camadas", + "Nova Camada", + "Ativar Camada de Rasterização", + "Desativar Camada de Rasterização", + "Ativar Máscara Vetorial", + "Desativar Máscara Vetorial", + "Ativar Máscara de Recorte", + "Desativar Máscara de Recorte", + "Nova Pasta", + "Adicionar Máscara de Rasterização", + "Apagar Máscara de Rasterização", + "Adicionar Máscara Vetorial", + "Apagar Máscara Vetorial", + "Conectar Máscara de Rasterização", + "Desconectar Máscara de Rasterização", + "Conectar Máscara Vetorial", + "Desconectar Máscara Vetorial", + "Ativar Efeitos de Camada", + "Desativar Efeitos de Camada", + "Apagar Camada", + "Mudança de Opacidade da Camada", + "Mudança de Mistura", + "Estilo de Camada de Rasterização", + "Ordem de Camadas", + [ + "Criar Objeto Inteligente", + "A Atualizar Objeto Inteligente", + "A Colocar Objeto Inteligente" + ], + "Mudança de Nome", + "Mudança de Cor", + "Editar Camada de Ajustamento", + "Converter para Forma", + "Ativar Máscara de Filtro", + "Desativar Máscara de Filtro", + "Ativar Filtros Inteligentes", + "Desativar Filtros Inteligentes", + "Adicionar Máscara de Filtro", + "Apagar Máscara de Filtro", + "Limpar Filtros Inteligentes", + [ + [ + "Preenchimento cor sólida", + "Preenchimento gradiente", + "Preenchimento com padrão" + ], + "Nova camada de preenchimento", + "Modificar camada de preenchimento" + ], + "Nova camada através de cópia", + "Filtro de mascara", + "Excluir Estilo de camada", + "Mover o Filtro Inteligente", + null, + [ + null, + null + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Tudo", + "Anular Seleção", + "Inverter", + "Modificar", + "Expandir", + "Contrair", + "Suavizar", + "Mover Seleção", + "Gama de Coresa", + "Borda", + "Doritos", + null, + null + ], + [ + "Ampliar", + "Diminuir", + "Guias", + "Réguas", + "Grelha", + "Encaixar", + "Encaixar a", + null, + null, + null + ], + [ + "Histórico", + "Camadas", + "Propriedades", + "Pincel", + "Caractere", + "Parágrafo", + null, + null, + null + ], + [ + "Pincel", + "Clonagem", + "Corte", + "Borracha", + "Seleção Elipsoidal", + "Conta-gotas", + "Gradiente", + "Mão", + "Texto", + "Seleção por Laço", + "Seleção por Laço Magnético", + "Mover", + "Varinha Mágica", + "Balde de Tinta", + "Seleção por Laço Poligonal", + "Seleção Retangular", + "Transformação Livre", + "Ampliar", + "Ferramenta de desfocar", + "Ferramenta de focar", + "Ferramenta de borratar", + "Ferramenta de exposição", + "Ferramentas de queimar", + "Ferramenta de esponja", + "Ferramenta de cura localizada", + "Ferramenta de cura", + "Ferramenta de remendo", + "Selecionar path", + "Selecção directa", + "Caneta", + "Caneta livre", + "Forma personalizada", + "Rectângulo", + "Elipse", + "Forma paramétrica", + "Linha", + "MR Facker", + "kek sektia", + null + ], + [ + "Tirar Foto", + "Escolher Cor", + "Editor de Contornos", + "Tamanho da Tela", + "Duplicar para...", + "Editor de Gradiente", + "Estilo da Camada", + "Novo Projeto", + "Gravar para a Web", + "Distorcer", + "Tamanho da Imagem", + null, + null, + null + ], + [ + "Opacidade", + "Efeitos", + "Brilho", + "Constraste", + "Canal", + "Exposição", + "Compensação", + "Correção de Gama", + "Matiz", + "Saturação", + "Luminusidade", + "Colorir", + "Extensão", + "Vibração", + "Tamanho", + "Ângulo", + "Circularidade", + "Dureza", + "Espaçamento", + "Modo de Mistura", + "Tamanho da Amostra", + "Contorno", + "Estilo", + "Reverter", + "Tolerância", + "Contíguo", + "Preenchimento", + "Usar ângulo global", + "Distância", + "Espalhamento", + "Ruído", + "Cortar Sombra", + "Técnica", + "Direção", + "Profundidade", + "Suavizar", + "Modo", + "Gradiente", + "Escala", + "Alinhar com Camada", + "Posição", + "Largura", + "Altura", + "Destino", + "Tipo", + "Primeiro Plano", + "Fundo", + "Personalizado", + "Nome", + "Criar", + "Formatar", + "Manter Aspeto", + "Qualidade", + "Duplicar", + "Mover", + "Filtros Inteligentes", + "Raio", + "Quantidade", + "Distribuição", + [ + "Uniforme", + "Gaussian" + ], + "Monocromático", + "Tamanho da célula", + "Padrão", + "Corrente", + "Força", + "Proteger detalhe", + "Tipo de preenchimento", + "Textura", + "Jitter", + "Aresta", + "Fonte", + "Alvo", + "Canais", + "Máscara", + "Densidade", + "Alinhado", + [ + "Caminho", + "Forma", + "Píxeis" + ], + "Formas", + "Lados", + "Preferências", + [ + "lange", + null, + null + ], + null, + "Cores", + null, + null, + null, + null, + null, + [ + null, + null, + null, + null + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Cor", + [ + "Nenhum(a)", + "Vermelho", + "Laranja", + "Amarelo", + "Verde", + "Azul", + "Roxo", + "Cinzento", + "Branco", + "Transparente", + null + ] + ], + [ + "Sombra", + "Sombra Interna", + "Brilho Exterior", + "Brilho Interior", + "Bisel e Relevo", + "Sobreposição de Cor", + "Sobreposição de Gradiente", + "Sobreposição de Padrão", + "Cetim", + "Risco", + "Opções de Mistura" + ], + [ + "Forma da Ponta", + "Dinâmica da Ponta", + "Espalhamento", + "Dinâmica de Cor", + [ + "Variação do Tamanho", + "Diâmetro Mínimo", + "Variação do Ângulo", + "Variação da Circularidade", + "Circularidade Mínima" + ], + [ + "Variação da Posição", + "Quantidade", + "Variação da Quantidade" + ], + [ + "Variação entre Primeiro Plano e Fundo", + "Variação de Matiz", + "Variação de Saturação", + "Variação de Brilho" + ], + [ + "Selecione a fonte de clonagem segurando Alt (ou K) e clicando na imagem.", + null, + null, + null, + null, + null + ] + ], + [ + "Liderança", + "Encalço", + "Desvio da Base" + ], + [ + "Conteúdo Total", + "Camada Atual", + "Seleção", + null + ], + [ + "Substituir", + "União", + "Diferença", + "Intersecção", + "XOR" + ], + [ + [ + "Linear", + "Radial", + "Ângulo", + "Reflectido", + "Diamante", + null + ], + [ + "Mais Macio", + "Preciso" + ], + [ + "Bisel Exterior", + "Bisel Interior", + "Relevo", + "Relevo Travesseiro", + "Relevo de Risco" + ], + [ + "Suavizar", + "Cinzel Duro", + "Cinzel Macio" + ], + [ + "Cima", + "Baixo" + ], + [ + "Fora", + "Centro", + "Dentro" + ], + [ + "Sombras", + null, + null + ], + [ + "Dessaturação", + "Saturar" + ], + [ + null, + null, + null + ] + ], + [ + "Escolher o objeto debaixo do cursor", + "Controlos de Transformação", + "Pixel a Pixel", + "Ajustar à Área", + [ + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + "Insira dentro de", + "Projeto Atual", + "Novo Projeto", + "Resolução", + "Adicionado ao projeto atual.", + "Um novo projeto foi criado.", + "O acesso à câmera foi negado." + ], + [ + "Orientação", + "Dobrar", + "Distorção Horizontal", + "Distorção Vertical", + [ + "Horizontal", + "Vertical" + ], + [ + "Nenhum(a)", + "Arco", + "Arco Inferior", + "Arco Superior", + "Arquear", + "Protuberância", + "Escudo Inferior", + "Escudo Superior", + "Bandeira", + "Onda", + "Peixe", + "Subir", + "Olho de Peixe", + "Esticar", + "Apertar", + "Torcer", + "Customizado" + ], + [ + "Tipo de Letra", + "não está disponível", + "Vai ser desenhado usando" + ], + [ + "Permutar Cores", + "Padrão: Branco e Preto" + ] + ], + [ + "carregado", + "adicionado", + "Mover Guia", + "Apagar Guia", + "Adicionar Guia", + "Carregando" + ], + [ + "Galeria de Filtros", + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "Desfoque", + [ + "Média", + "Desfocar", + "Desfocar Mais", + "Desfoque de Caixa", + "Desfoque Gaussiano", + "Desfoque de lente", + "Desfoque de Movimento", + "Desfoque Circular", + "Desfoque de Forma", + "Desfoque Mínimo", + "Desfoque Superficial" + ], + "Distorcer", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Ruído", + [ + "Adicionar Ruído", + "oi", + "Poeira e Rabiscos", + "Mediana" + ], + "Pixelizar", + [ + "Meio-tom de cor", + "Cristalizar", + null, + "Fragmento", + null, + "Mosaico", + null + ], + "Renderizar", + [ + "Nuvens", + null + ], + "Aumentar Nitidez", + [ + "Aumentar Nitidez", + "Aumentar Nitidez das Extremidades", + "Aumentar Mais Nitidez", + null, + "Máscara de nitidez" + ], + "Estilizar", + [ + "Difundir", + "Realçar", + "Expelir", + "Encontrar Extremidades" + ], + "Outro", + [ + "Customizado", + null, + "Máximo", + "Mínimo" + ] + ] + ], + [ + [ + "Файл", + "Редактирование", + "Изображение", + "Слой", + "Папка", + "Выделить", + "Фильтр", + "Просмотр", + "Окно", + "Язык", + "Войти", + "Выйти", + "Перевести", + [ + "Аккаунт", + "Правила использования", + "Назад" + ], + "Больше", + "Тема", + "Использовать WebGL" + ], + [ + "Открыть", + "Опубликовать в интернете (Imgur)", + "Сохранить", + "Сохранить как PSD", + null, + "Открыть по URL", + "Открыть с компьютера", + "Подключение к Google Диску", + "Экспортировать как", + "Экспорт Активов", + "Скрипт", + null + ], + [ + "Шаг вперёд", + "Шаг назад", + "Очистить", + "Заполнить", + "Трансформация", + "Поворот", + "Отразить по горизонтали", + "Отразить по вертикали", + "Отменить / Повторить", + null + ], + "Коррекция", + [ + "Яркость / Контрастность", + "Уровни", + "Кривые", + "Экспозиция", + "Сочность", + "Цветовой тон / Насыщенность", + "Цветовой баланс", + "Чёрное & Белое", + "Фотофильтр", + "Миксер каналов", + "Поиск цвета", + "Инвертировать", + "Постеризация", + "Порог", + "Карта градиента", + "Выборочный цвет", + [ + "Автотон", + "Авто Контраст", + "Авто Цвет.корр." + ] + ], + [ + "Вырезать", + "Копировать", + "Вставить", + "Создать", + "Удалить", + "Включить", + "Выключить", + "Объединение копий", + "Применить" + ], + [ + "Дублировать слой", + "Новый корректирующий слой", + "Растровая маска", + "Векторная маска", + "Добавить (показать все)", + "Добавить (скрыть все)", + "Маска отсечения", + "Конвертировать в Смарт-объект", + "Растрирование", + "Группа слоёв", + "Объединить с нижним слоем", + "Объединить с верхним слоем", + "Объединить слои", + "Новый слой", + "Включить растровую маску", + "Выключить растровую маску", + "Включить векторную маску", + "Выключить векторную маску", + "Включить маску отсечения", + "Выключить маску отсечения", + "Новая папка", + "Добавить растровую маску", + "Удалить растровую маску", + "Добавить векторную маску", + "Удалить векторную маску", + "Привязать растровую маску", + "Отвязать растровую маску", + "Привязать векторную маску", + "Отвязать векторную маску", + "Включить эффекты слоев", + "Выключить эффекты слоев", + "Удалить слой", + "Прозрачность слоя", + "Изменение смешивания", + "Растеризовать стиль слоя", + "Порядок слоёв", + [ + "Создание Смарт-объекта", + "Обновление Смарт-объекта", + "Размещение Смарт-объекта" + ], + "Изменение названия", + "Изменение цвета", + "Редактировать корректирующий слой", + "Преобразовать в Форму", + "Включить маску фильтра", + "Выключить маску фильтра", + "Включить умные фильтры", + "Выключить умные фильтры", + "Добавить маску фильтра", + "Удалить маску фильтра", + "Очистить умные фильтры", + [ + [ + "Заливка сплошным цветом", + "Градиентная заливка", + "Заливка шаблоном" + ], + "Новый заполняющий слой", + "Изменить заполнениние слоя" + ], + "Слой через копию", + "Маска фильтра", + "Удалить стиль слоя", + "Передвинуть Смарт фильтр", + "Удалить смарт фильтр", + [ + "Объединить слои", + "Разделить слои" + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Все", + "Отменить выделение", + "Инвертировать", + "Изменить", + "Развернуть", + "Стягивать", + "Перо", + "Передвинуть выделение", + "Цветовая гамма", + "Граница", + "Трансформировать выделение", + "Улучшить края", + "Пометить выбранное" + ], + [ + "Приблизить", + "Отдалить", + "Инструкции", + "Линейки", + "Сетка", + "Привязка", + "Привязка к", + "Границы документа", + "Пиксельная сетка", + "Пути" + ], + [ + "История", + "Слои", + "Свойства", + "Кисть", + "Характер", + "Параграф", + "Инфо", + "Наборы слоев", + null + ], + [ + "Кисть", + "Штамп", + "Обрезка", + "Ластик", + "Выделение в форме эллипса", + "Пипетка", + "Градиент", + "Рука", + "Текст", + "Выделение лассо", + "Выделение магнитное лассо", + "Перемещение", + "Волшебная палочка", + "Заливка", + "Выделение полигональное лассо", + "Прямоугольное выделение", + "Свободное трансформирование", + "Лупа", + "Инструмент «Размытие»", + "Инструмент «Резкость»", + "Инструмент «Палец»", + "Инструмент «Осветлитель»", + "Инструмент «Затемнитель»", + "Губка Инструмент", + "Точечная восстанавливающая кисть", + "Восстанавливающая кисть", + "Заплатка", + "Выделение контура", + "Прямой выбор", + "Ручка", + "Свободная ручка", + "Произвольная фигура", + "Прямоугольник", + "Эллипс", + "Параметрическая Форма", + "Линия", + "Линейка", + "Быстрое выделение", + "Карандаш" + ], + [ + "Сделать снимок", + "Выбор цвета", + "Редактор контура", + "Размер холста", + "Дублировать в ...", + "Редактор градиента", + "Стиль слоя", + "Новый проект", + "Сохранить для web", + "Перекос", + "Размер картинки", + "Трассировка", + "Обрезать", + "Горячие клавиши" + ], + [ + "Непрозр.", + "Эффекты", + "Яркость", + "Контраст", + "Канал", + "Выдержка", + "Отступ", + "Коррекция гаммы", + "Оттенок", + "Насыщенность", + "Освещенность", + "Раскрасить", + "Диапозон", + "Сочность", + "Размер", + "Угол", + "Скругленность", + "Жесткость", + "Интервал", + "Режим смешивания", + "Размер образца", + "Контур", + "Стиль", + "Обратить", + "Допуск", + "Непрерывный", + "Заполнить", + "Использовать глобальный угол", + "Дистанция", + "Разброс", + "Шум", + "Убрать тень", + "Метод", + "Направление", + "Глубина", + "Смягчать", + "Режим", + "Градиент", + "Масштаб", + "Выровнять по слою", + "Позиция", + "Ширина", + "Высота", + "Цель", + "Тип", + "Передний план", + "Задний план", + "Специальный", + "Имя", + "Создать", + "Формат", + "Сохранять пропорции", + "Качество", + "Дублировать", + "Двигать", + "Умные фильтры", + "Радиус", + "Количество", + "Дистрибуция", + [ + "Форма", + "По Гауссу" + ], + "Однотонный", + "Размер Ячейки", + "Шаблон", + "Нажим", + "Сила", + "Защитить детали", + "Тип обводки", + "Текстура", + "Колебание", + "край", + "Источник", + "Цель", + "Каналы", + "Маска", + "Плотность", + "Выравнивание", + [ + "Путь", + "форма", + "Пиксели" + ], + "Формы", + "Стороны", + "Предпочтения", + [ + "Длина", + "Соотношение", + "Любой" + ], + "Уменьшить шум", + "Краски", + "Расстояния", + "Рейтинг", + "Авто-выбор", + "Поиск", + "Определить новый", + [ + "Фото", + "Экран", + "Мобильный", + "Реклама" + ], + [ + null, + "Фикс.соотношение", + "Фикс. размер" + ], + "Помощь", + [ + null, + null, + null + ] + ], + [ + "Цвет", + [ + "Отсутствует", + "Красный", + "Оранжевый", + "Желтый", + "Зеленый", + "Синий", + "Фиолетовый", + "Серый", + "Белый", + "Прозрачный", + null + ] + ], + [ + "Тень", + "Внутренняя тень", + "Внешнее свечение", + "Внутреннее свечение", + "Тиснение", + "Наложение цвета", + "Наложение градиента", + "Наложение узора", + "Глянец", + "Обводка", + "Параметры наложения" + ], + [ + "Форма кончика", + "Динамический советник", + "разброс", + "Цветовая динамика", + [ + "Размер Джиттер", + "Минимальный диаметр", + "Угол дрожания", + "Округлость дрожания", + "Минимальная окружность" + ], + [ + "Позиция угла", + "Подсчёт", + "Подсчёт углов" + ], + [ + "Переднего/Заднего плана угла", + "Оттенок угла", + "Колебание насыщенности", + "Колебание яркости" + ], + [ + "Выберите источник клонирования, удерживая Alt и нажав на изображение.", + "Выбрать цвет переднего плана Белым, заднего плана Черным и не известную зону Серым", + "Слой не редактируемый", + "Слой с текстом должен быть растрирован вначале", + "Смарт-объект должен быть сначала растрирован", + "Выбор нескольких слоев" + ] + ], + [ + "Интерлиньяж", + "Отслеживание", + "Смещение базовой линии" + ], + [ + "Общее Содержание", + "Текущий Слой", + "Выбор", + null + ], + [ + "Заменить", + "Объединение", + "Разница", + "Пересечение", + "Исключающее ИЛИ" + ], + [ + [ + "Линейный", + "Радиальные", + "Угол", + "Отражение", + "Алмаз", + "Разбивка фигуры" + ], + [ + "Мягче", + "Точное" + ], + [ + "Внешний скос", + "Внутренний Скос", + "рельеф", + "Выпуклый рельеф", + "Рельефная кайма" + ], + [ + "Гладко", + "Твердый резец", + "Мягкий резец" + ], + [ + "Вверх", + "Вниз" + ], + [ + "Снаружи", + "Центр", + "Внутри" + ], + [ + "Тени", + "Средние тоны", + "Особенности" + ], + [ + "Десатурация", + "Сатурация" + ], + [ + null, + null, + null + ] + ], + [ + "Выбрать объект под курсором", + "Контроль трансформации", + "Пиксель в пиксель", + "Подогнать площадь", + [ + "Выровнять левые края", + "Горизонтально по центру", + "Выровнять правые края", + "Выровнять верхние края", + "Вертикально по центру", + "Выровнять нижние края", + "Равные пробелы" + ] + ], + [ + "Вставить в", + "Текущий Проект", + "Новый Проект", + "Разрешение", + "Добавлено в текущий проект", + "Был создан новый проект.", + "Доступ к камере было отказано." + ], + [ + "Ориентация", + "Изгиб", + "Горизонтальное Искажение", + "Вертикальное Искажение", + [ + "Горизонтальная", + "Вертикальная" + ], + [ + "Нет", + "Дуга", + "Дуга вниз", + "Дуга вверх", + "Арка", + "выпуклость", + "Нижняя оболочка", + "Верхняя оболочка", + "Флаг", + "Волна", + "Рыба", + "Рост", + "Рыбий Глаз", + "Надуть", + "Выжать", + "Поворот", + "Пользовательский" + ], + [ + "Шрифт", + "недоступно", + "Будет отображаться с использованием" + ], + [ + "Замена цветов", + "По умолчанию: Белое и черное" + ] + ], + [ + "загружается", + "Добавлено", + "Переместить Направляющую", + "Удалить направляющую", + "Добавить направляющую", + "Загрузка" + ], + [ + "Галерея фильтров", + [ + [ + "Жидкий", + [ + "Смазать", + "Перестроить", + "Разглаживать", + "Скручивать", + "Сжать", + "Задувка", + null, + null, + null + ] + ], + [ + null + ] + ], + "Размытие", + [ + "Среднее", + "Размытие", + "Больше размытия", + "Размытие по рамке", + "Размытие по Гауссу", + "Размытие", + "Размытость", + "радиальное размытие", + "Формы Размытия", + "Интеллектуальная Размытость", + "Поверхностное размытие" + ], + "Исказить", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Шум", + [ + "Добавить шум", + "Удаление пятен", + "Пыль и Царапины", + "Медиана" + ], + "Оформление", + [ + "Цвет Полутонов", + "кристаллизовать", + "Фасет", + "Фрагмент", + "глубокая печать", + "Мозаика", + "Акварель" + ], + "Рендеринг", + [ + "Облака", + null + ], + "Резкость", + [ + "Резкость", + "Резкие границы", + "Больше резкости", + "Умная Резкость", + "Нерезкая Маска" + ], + "Стилизовать", + [ + "Рассеить", + "Тиснение", + "Вытянуть", + "Найти края" + ], + "Другие", + [ + "Настройка", + "Цветовой контраст", + "Максимум", + "Минимум", + "Смещение", + null + ], + [ + "Неопределенная Область", + "Набор прозрачных", + "Повторить Крайние Пиксели", + "Обернуть Вокруг" + ] + ] + ], + [ + [ + "Файл", + "Редагувати", + "Зображення", + "Шар", + "Папка", + "Виділити", + "Фільтр", + "Перегляд", + "Вікно", + "Мова", + "Увійти", + "Вийти", + "Створення перекладу", + [ + "Акаунт", + "Умови використання", + "Назад" + ], + "Більше", + "Тема", + "7y" + ], + [ + "Відкрити", + "Опублікувати онлайн (Imgur)", + "Зберегти", + "Зберегти PSD", + "Друк", + "Відкрити з URL", + "Відкрити з комп'ютера", + "Під'єднатись до Google Drive", + "Експортувати як", + null, + "Скрипт", + null + ], + [ + "Крок Вперед", + "Крок Назад", + "Очистити", + "Заповнити", + "Трансформувати", + "Поворот", + "Фліп По Горизонталі", + "Фліп Вертикально", + "Відмінити / Повторити", + "Перспектива" + ], + "Коригування", + [ + "Яскравість / Контрастність", + "Рівні", + "Криві", + "Експозиція", + "Соковитість", + "Відтінок / Насиченість", + "Баланс Кольорів", + "Чорний І Білий", + "Фільтр Фото", + "Мікшер каналів", + "Пошук кольорів", + "Інвертувати", + "Постеризація", + "Поріг", + "Градієнтна Карта", + "Вибірковий колір", + [ + null, + null, + null + ] + ], + [ + "Вирізати", + "Копіювати", + "Вставити", + "Створити", + "Видалити", + "Увімкнути", + "Вимкнути", + "Копіювати об'єднано", + null + ], + [ + "Копіювати шар", + "Новий шар корекції", + "Растрова маска", + "Векторна маска", + "Додати (показати все)", + "Додати (сховати все)", + "Маска відсікання", + "Перетворити на Смарт-об'єкт", + "Растрування", + "Група шарів", + "Злити з нижнім шаром", + "Злити з верхнім шаром", + "Злити шари", + "Новий шар", + "Ввімкнути растрову маску", + "Вимкнути растрову маску", + "Ввімкнути векторну маску", + "Вимкнути векторну маску", + "Ввімкнути відсічну маску", + "Вимкнути відсічну маску", + "Нова тека", + "Додати растрову маску", + "Видалити растрову маску", + "Додати векторну маску", + "Видалити векторну маску", + "Пов'язати растрову маску", + "Від’єднати растрову маску", + "Пов'язати векторну маску", + "Від’єднати векторну маску", + "Увімкнути ефекти шарів", + "Вимкнути ефекти шарів", + "Видалити шар", + "Зміна прозорості шару", + "Зміна змішування", + "Растеризувати стиль шару", + "Порядок шарів", + [ + "Створення смарт-об'єкта", + "Оновлення смарт-об'єкта", + "Розміщення смарт-об'єкта" + ], + "Перейменування", + "Зміна кольору", + "Редагувати шар коригування", + "Перетворити на фігуру", + "Увімкнути маску фільтра", + "Вимкнути маску фільтра", + "Увімкнути розумні фільтри", + "Вимкнути розумні фільтри", + "Додати маску фільтра", + "Видалити маску фільтра", + "Очистити розумні фільтри", + [ + [ + "Заповнення суцільним кольором", + "Заповнення градієнтом", + "Заповнення патерном" + ], + "Новий шар заповнення", + "Змінити шар заповнення" + ], + "Скопіювати на новий шар", + "Маска фільтра", + "Видалити стиль шару", + "Пересунути смарт фільтр", + "Видалити смарт фільтр", + [ + null, + null + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Усе", + "Скасувати виділення", + "Інвертувати", + "Змінити", + "Розгорнути", + "Стиснути", + "Перо", + "Перемістити Виділення", + "Діапазон кольору", + "Межа", + "Перетворити Виділення", + null, + null + ], + [ + "Збільшити масштаб", + "Зменшити масштаб", + "Напрямні", + "Лінійки", + "Сітка", + "Фіксувати", + "Прив'язати к", + null, + null, + null + ], + [ + "Історія", + "Шари", + "Властивості", + "Пензель", + "Символ", + "Параграф", + null, + null, + null + ], + [ + "Інструмент \"Пензель\"", + "Інструмент клонування", + "Інструмент \"Кадр\"", + "Інструмент \"Гумка\"", + "Вибір еліпсом", + "Піпетка", + "Інструмент \"Градієнт\"", + "Інструмент \"Рука\"", + "Інструмент \"Текст\"", + "Вибір ласо", + "Вибір магнітним ласо", + "Інструмент \"Переміщення\"", + "Чарівна Паличка", + "Інструмент \"Заливка\"", + "Виділення багатокутним ласо", + "Вибір прямокутником", + "Вільне трансформування", + "Лупа", + "Інструмент Розмивання", + "Інструмент \"Різкость\"", + "Інструмент \"Палець\"", + "Інструмент \"Освітлювач\"", + "Інструмент \"Випалювання\"", + "Інструмент \"Губка\"", + "Інструмент \"Точковий пензель відновлення\"", + "Інструмент \"Пензель відновлення\"", + "Інструмент \"Латка\"", + "Виділення Контуру", + "Виділення Вузла", + "Ручка", + "Вільна ручка", + "Довільна фігура", + "Прямокутник", + "Еліпс", + "Параметрична форма", + "Лінія", + "Лінійка", + "Швидке виділення", + null + ], + [ + "Зробити знімок", + "Вибір кольору", + "Редактор контуру", + "Розмір полотна", + "Дублювати в ...", + "Редактор градієнта", + "Стиль шару", + "Новий проект", + "Зберегти для web", + "Деформація", + "Розмір зображення", + "Перевести картинку в вектор", + null, + null + ], + [ + "Непрозорість", + "Ефекти", + "Яскравість", + "Контраст", + "Канал", + "Експозиція", + "Зсув", + "Корекція гами", + "Відтінок", + "Насиченість", + "Яскравість", + "Розфарбувати", + "Діапазон", + "Соковитість", + "Розмір", + "Кут", + "Заокругленість", + "Твердість", + "Інтервал", + "Режим Накладення", + "Розмір Зразка", + "Контур", + "Стиль", + "Реверс", + "Толерантність", + "Безперервний", + "Заповнити", + "Використати глобальний кут", + "Відстань", + "Рознести", + "Шум", + "Подолати тінь", + "Техніка", + "Напрям", + "Глибина", + "Зменшити різкість", + "Режим", + "Градієнт", + "Масштаб", + "Вирівняти з шаром", + "Розташування", + "Ширина", + "Висота", + "Призначення", + "Тип", + "Передній план", + "Тло", + "Настроюваний", + "Ім'я", + "Створити", + "Формат", + "Зберегти Коефіцієнт Пропорційності", + "Якість", + "Дублювати", + "Перемістити", + "Розумні фільтри", + "Радіус", + "Кількість", + "Розподіл", + [ + "Рівномірний", + "Гаус" + ], + "Одноколірний", + "Розмір комірки", + "Візерунок", + "Потік", + "Міцність", + "Захистити деталі", + "Тип заповнення", + "Текстура", + "Тремтіння", + "Край", + "Джерело", + "Мета", + "Канали", + "Маска", + "Густина", + "Вирівняний", + [ + "Шлях", + "Форма", + "Пікселі" + ], + "Фігури", + "Сторони", + "Налаштування", + [ + "Довжина", + null, + null + ], + "Зменшити шум", + "Кольори", + "Відстані", + null, + null, + null, + null, + [ + "Фото", + null, + null, + null + ], + [ + null, + null, + null + ], + "Допомога", + [ + null, + null, + null + ] + ], + [ + "Колір", + [ + "Немає", + "Червоний", + "Оранжевий", + "Жовтий", + "Зелений", + "Синій", + "Фіолетовий", + "Сірий", + "Білий", + "Прозорий", + null + ] + ], + [ + "Тінь", + "Внутрішня тінь", + "Зовнішнє сяйво", + "Внутрішнє сяйво", + "Тиснення", + "Накладання кольору", + "Градієнтне накладання", + "Накладання візерунком", + "Атлас", + "Штрих", + "Параметри накладання" + ], + [ + "Форма наконечника", + "Динаміка наконечника", + "Точкова", + "Динаміка кольору", + [ + "Коливання розміру", + "Мінімальний діаметр", + "Коливання кута", + "Коливання заокругленості", + "Мінімальна заокругленість" + ], + [ + "Коливання розташування", + "Кількість", + "Кількість коливань" + ], + [ + "Коливання Переднього плану/Тла", + "Коливання відтінку", + "Коливання насиченості", + "Коливання яскравості" + ], + [ + "Виберіть джерело клонування, тримаючи Alt (або K) та клацаючи на зображення.", + null, + null, + null, + null, + null + ] + ], + [ + "Провідний", + "Відстеження", + "Базовий зсув" + ], + [ + "Загальний вміст", + "Поточний шар", + "Виділення", + null + ], + [ + "Замінити", + "Об'єднати", + "Відняти", + "Перетин", + "Виключити" + ], + [ + [ + "Лінійний", + "Радіальний", + "Кут", + "Відбитий", + "Ромб", + "Форма вибух" + ], + [ + "М'якіше", + "Точно" + ], + [ + "Зовнішня рамка", + "Внутрішня рамка", + "Тиснення", + "Тиснення подушка", + "Ударний рельєф" + ], + [ + "Згладження", + "Жорстке витісування", + "М'яке витісування" + ], + [ + "Вгору", + "Вниз" + ], + [ + "Ззовні", + "По центру", + "Усередині" + ], + [ + "Тіні", + "Півтони", + "Виділення" + ], + [ + "Знебарвлення", + "Наситити" + ], + [ + null, + null, + null + ] + ], + [ + "Виберіть об'єкт під курсором", + "Елементи трансформації", + "Піксел до піксела", + "Підібрати під розмір області", + [ + "Вирівняти по лівому краю", + "Відцентрувати горизонтально", + "Вирівняти по правому краю", + "Вирівняти верхні краї", + "Відцентрувати вертикально", + "Вирівняти по нижньому краю", + null + ] + ], + [ + "Вставити в", + "Поточний проект", + "Новий проект", + "Роздільна здатність", + "Додано до поточного проекту.", + "Було створено новий проект.", + "Доступ до камери було заборонено." + ], + [ + "Орієнтація", + "Вигин", + "Горизонтальне спотворення", + "Вертикальне спотворення", + [ + "Горизональний", + "Вертикальний" + ], + [ + "Немає", + "Дуга", + "Нижня Дуга", + "Верхня Дуга", + "Арка", + "Випуклість", + "Нижня Оболонка", + "Верхня Оболонка", + "Позначка", + "Хвиля", + "Риба", + "Підйом", + "Рибне Око", + "Опукла Лінза", + "Стиснення", + "Крутіння", + "Настроюваний" + ], + [ + "Шрифт", + "недоступно", + "Буде відмальовано за допомогою" + ], + [ + "Обміняти Кольори", + "Стандартно: Білий та Чорний" + ] + ], + [ + "завантажено", + "додано", + "Переместити Напрямну", + "Видалити Напрямну", + "Додати Напрямну", + "Завантаження" + ], + [ + "Галерея фільтрів", + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "Розмивання", + [ + "Середнє значення", + "Розмивання", + "Розмити більше", + "Розмивання Квадратом", + "Розмивання Гауса", + "Розмивання при малій глибині різкості", + "Розмивання в Русі", + "Радіальне Розмиття", + "Розмивання за Фігурою", + "\"Розумне\" Розмивання", + "Розмивання по Поверхні" + ], + "Спотворення", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Шум", + [ + "Додати Шум", + "Ретуш", + "Пил та Подряпини", + "Медіана" + ], + "Оформлення", + [ + "Півтон кольору", + "Кристалізувати", + "Грань", + "Фрагмент", + "Меццо-тінто", + "Мозаїка", + "Пуантілізм" + ], + "Відмалювати", + [ + "Хмари", + null + ], + "Посилити різкість", + [ + "Посилити різкість", + "Посилити різкість країв", + "Ще Посилити різкість", + "\"Розумна\" Різкість", + "Контурна Різкість" + ], + "Стилізувати", + [ + "Діффузія", + "Тиснення", + "Видавлення", + "Виявлення Контурів" + ], + "Інше", + [ + "Настроюваний", + "Кольоровий Контраст", + "Максимум", + "Мінімум", + "Зсув", + null + ], + [ + "Невизначений Район", + "Встановити як Прозорий", + "Повторити Пікселі Країв", + "Огорнути" + ] + ] + ], + [ + [ + "קובץ", + "ערוך", + "תמונה", + "שכבה", + "תיקייה", + "בחר", + "מסנן", + "תצוגה", + "חלון", + "שפה", + "היכנס", + "צא", + "צור תרגום", + [ + "חשבון", + "תנאי שימוש", + "חזור" + ], + "עוד", + "נושא", + "השתמש בספריה מקוונת" + ], + [ + "פתח", + "פרסם ברשת (Imgur)", + "שמור", + "שמור כקובץ PSD", + "הדפס", + "פתח מכתובת רשת", + "תפתח מהמחשב שלך", + "התחבר עם גוגל דרייב", + "יצא כקובץ", + "יצא רכיבים", + "תסריט", + "פתח ומקם" + ], + [ + "קדימה", + "אחורה", + "נקה", + "מלא", + "המר", + "סובב", + "הפוך אופקית", + "הפוך אנכית", + "לבטל", + "פרספקטיבה" + ], + "התאמות", + [ + "בהירות / ניגודיות", + "דרגות", + "עקומות", + "חשיפה", + "חיוניות", + "גוון / רוויה", + "איזון צבע", + "שחור לבן", + "מסנן תמונה", + "מערבל ערוצים", + "חיפוש צבע", + "הפוך", + "פוסטריזציה", + "סף", + "מפת מעבר צבע", + "התאמת צבעים", + [ + "גוון אוטומטי", + "ניגודיות אוטומטית", + "צבע אוטומטי" + ] + ], + [ + "גזור", + "העתק", + "הדבק", + "חדש", + "מחק", + "אפשר", + "השבת", + "העתק מאוחדים", + "החל" + ], + [ + "שכפל שכבה", + "שכבת התאמה חדשה", + "שורון סריקה", + "מסיכה וקטורית", + "הוסף (הראה הכול)", + "הוסף (הסתר הכול)", + "מסיכת חיתוך", + "המר לעצם חכם", + "הפוך למפת סיביות", + "קבץ שכבות", + "מזג מטה", + "מזג מעלה", + "מזג שכבות", + "שכבה חדשה", + "אפשר מסיכת סיביות", + "בטל מסיכת סיביות", + "אפשר מסיכת וקטור", + "בטל מסיכת וקטור", + "אפשר מסיכת חיתוך", + "בטל מסיכת חיתוך", + "תיקייה חדשה", + "הוסף מסיכת סיביות", + "מחק מסיכת סיביות", + "הוסף מסיכת וקטור", + "בטל מסיכת וקטור", + "קשר מסיכת סיביות", + "נתק מסיכת סיביות", + "חבר מסיכת וקטור", + "נתק מסיכת וקטור", + "אפשר אפקטי שכבה", + "השבת אפקטי שכבה", + "מחק שכבה", + "שינוי שקיפות שכבה", + "שינוי ערבוב", + "הפוך שכבת סגנון לפיקסלים", + "סדר שכבות", + [ + "יצירת עצם חכם", + "עדכון עצם חכם", + "הצבת עצם חכם" + ], + "שינוי שם", + "שינוי צבע", + "ערוך שכבת התאמה", + "המר לצורה", + "אפשר מסיכת פילטר", + "בטל מסיכת פילטר", + "אפשר מסננים חכמים", + "השבת מסננים חכמים", + "הוסף מסיכת פילטר", + "מחק מסיכת פילטר", + "נקה מסננים חכמים", + [ + [ + "מילוי צבע אחיד", + "מילוי הדרגתי", + "מילוי דוגמה" + ], + "שכבת מילוי חדשה", + "שנה שכבת מילוי" + ], + "שכבה דרך העתקה", + "מסיכת פילטר", + "מחק שכבת סגנון", + "הזז פילטר חכם", + "מחק פילטר חכם", + [ + "קשר שכבות", + "בטל קישור שכבות" + ], + "סדר", + [ + "הבא לקדמה", + "הבא קדימה", + "שלח אחורה", + "שלח לרקע" + ], + [ + null, + null + ] + ], + [ + "הכול", + "בטל בחירה", + "הפוך בחירה", + "שנה", + "הרחב", + "צמצם", + "נוצה", + "הזז בחירה", + "טווח צבעים", + "גבול", + "הזז בחירה", + "לטש קצוות", + "אחה בחירה" + ], + [ + "הגדל", + "הקטן", + "קווי עזר", + "סרגלים", + "רשת", + "צלם", + "צלם אל", + "גבולות מסמך", + "רשת פיקסלים", + "שבילים" + ], + [ + "היסטוריה", + "שכבות", + "מאפיינים", + "מברשת", + "אות", + "פסקה", + "מידע", + "מרכיבי שכבה", + "דוגמיות" + ], + [ + "כלי מברשת", + "כלי שכפול", + "כלי גזירה", + "כלי מחק", + "בחירה אליפטית", + "טפטפת", + "כלי גרדיאנט", + "כלי יד", + "כלי דפוס", + "בחירת לאסו", + "בחירת לאסו מגנטי", + "כלי הזזה", + "מטה קסמים", + "כלי דלי צבע", + "בחירת לאסו פוליגוני", + "בחירה מלבנית", + "שינוי חופשי", + "זכוכית מגדלת", + "כלי עירפול", + "כלי חידוד", + "כלי מריחה", + "כלי הבהרה", + "כלי שריפה", + "כלי ספוג", + "כלי מברשת איחוי כתמים", + "כלי מברשת איחוי", + "כלי טלאי", + "בחירת נתיב", + "בחירה ישירה", + "עט", + "עט חופשי", + "צורה מותאמת אישית", + "מרובע", + "אליפסה", + "צורה פרמטרית", + "קו", + "סרגל", + "בחירה מהירה", + "עפרון" + ], + [ + "צלם תמונה", + "בוחר צבע", + "עורך קו מתאר", + "גודל בד ציור", + "שכפל לתוך ...", + "עורך גרדיאנט", + "סגנון שכבה", + "מיזם חדש", + "שמור עבור הצגה ברשת", + "עוות", + "גודל תמונה", + "הפוך מפת סיביות לוקטור", + "קצץ", + "קיצורי מקלדת" + ], + [ + "שקיפות", + "אפקטים", + "בהירות", + "ניגודיות", + "ערוץ", + "חשיפה", + "היסט", + "תיקון גמא", + "גוון", + "רוויה", + "בהירות", + "צבע", + "טווח", + "חיוניות", + "גודל", + "זווית", + "עגלגלות", + "קשיות", + "ריווח", + "סגנון ערבוב", + "גודל דגימה", + "קונטור", + "סגנון", + "הפוך", + "סבילות", + "רציף", + "מלא", + "השתמש בזווית גלובלית", + "מרחק", + "פרוס", + "רעש", + "הפל את הצל", + "טכניקה", + "כיוון", + "עומק", + "ריכוך", + "מצב", + "גרדיאנט", + "קנה מידה", + "יישר בהתאם לשכבה", + "מיקום", + "רוחב", + "גובה", + "יעד", + "הקלד", + "רקע קדמי", + "רקע", + "התאמה אישית", + "שם", + "צור", + "תבנית", + "שמור יחס רוחב גובה", + "איכות", + "שכפל", + "הזז", + "מסננים חכמים", + "מחוג", + "כמות", + "תפרוסת", + [ + "אחד", + "פרוס" + ], + "חד גוני", + "גודל תא", + "דוגמה", + "זרימה", + "חוזק", + "הגן על פרט", + "סוג מילוי", + "מרקם", + "ריצוד", + "קצה", + "מקור", + "יעד", + "ערוצים", + "מסיכה", + "צפיפות", + "מיושר", + [ + "שביל", + "צורה", + "פיקסלים" + ], + "צורות", + "צדדים", + "העדפות", + [ + "אורך", + "יחס", + "הכול" + ], + "הפחת רעש", + "צבעים", + "מרחקים", + "דרג", + "בחר אוטומטית", + "מצא", + "הגדר חדש", + [ + "תמונה", + "מסך", + "נייד", + "פרסומות" + ], + [ + "חינם", + "יחס קבוע", + "גודל קבוע" + ], + "עזרה", + [ + "צורות חיות", + "ערוך צורות חיות", + "אותם רדיוסים" + ] + ], + [ + "צבע", + [ + "כלום", + "אדום", + "כתום", + "צהוב", + "ירוק", + "כחול", + "סגול", + "אפור", + "לבן", + "שקוף", + "שחור" + ] + ], + [ + "הטל צל", + "צל פנימי", + "זוהר חיצוני", + "זוהר פנימי", + null, + null, + null, + null, + null, + "משיכת קולמוס", + "אפשרויות מיזוג" + ], + [ + "צורת חוד", + null, + "פיזור", + "דינמיקות צבע", + [ + null, + "קוטר מזערי", + null, + null, + "עגלגלות מזערית" + ], + [ + null, + null, + null + ], + [ + null, + null, + null, + null + ], + [ + "בחר מקור לשכפול על ידי החזקת מקש Alt ולחיצה על התמונה", + "סמן רקע קדמי בלבן, רקע אחורי בשחור ואזור לא ידוע באפור", + "שכבה אינה ניתנת לעריכה", + "עליך קודם להפוך את שכבת הטקסט לפיקסלים", + "עליך קודם להפוך את האובייקט החכם לפיקסלים", + "בחר שכבות מרובות" + ] + ], + [ + null, + null, + null + ], + [ + "תוכן כולל", + "שכבה נוכחית", + "בחירה", + null + ], + [ + "החלף", + "איחוד", + "הבדל", + "הצטלבות", + "או' בררני'" + ], + [ + [ + "קווי", + "מחוגי", + "זווית", + null, + null, + null + ], + [ + null, + "מדויק" + ], + [ + null, + null, + "תבליט", + null, + null + ], + [ + "החלק", + null, + null + ], + [ + "מעלה", + "מטה" + ], + [ + "חוץ", + "מרכז", + "פנים" + ], + [ + null, + null, + null + ], + [ + null, + null + ], + [ + null, + null, + null + ] + ], + [ + "בחר את העצם תחת הסמן", + null, + null, + "התאם את השטח", + [ + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null, + "מיזם נוכחי", + "מיזם חדש", + "כושר אבחנה", + "התווסף אל המיזם הנוכחי.", + "מיזם חדש נוצר.", + "גישה אל המצלמה נדחתה." + ], + [ + "כיוון", + "כופף", + "עיוות אופקי", + "עיוות אנכי", + [ + "אופקי", + "אנכי" + ], + [ + "כלום", + "קשת", + null, + null, + null, + "בליטה", + null, + null, + null, + "גל", + "דג", + "עלייה", + "עין הדג", + "נפח", + "מחץ", + null, + "מותאם אישית" + ], + [ + "גופן", + "אינו זמין", + "יעובד באמצעות" + ], + [ + null, + "ברירת מחדל: לבן ושחור" + ] + ], + [ + "טעון", + "נוסף", + "הזז קו עזר", + "הסר קו עזר", + "הוסף קו עזר", + null + ], + [ + null, + [ + [ + null, + [ + null, + null, + "החלק", + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "טשטוש", + [ + "ממוצע", + "טשטש", + "טשטש עוד", + null, + "טשטוש מתפרש", + "טשטוש עדשה", + "טשטוש תנועה", + "טשטוש מחוגי", + "טשטש צורה", + "טשטוש חכם", + "טשטש משטח" + ], + "עוות", + [ + null, + null, + null, + null, + null, + null, + null + ], + "רעש", + [ + "הוסף רעש", + "הסר כתמים", + "אבק ושריטות", + "חציון" + ], + "פקסל", + [ + null, + null, + null, + "קטע", + "מצוטינט", + "פסיפס", + "הפוך לנקודות" + ], + "עבד", + [ + "עננים", + null + ], + "חדד", + [ + "חדד", + "חדד קצוות", + "חדד עוד", + "חידוד חכם", + "מסיכה ללא חידוד" + ], + "סגנן", + [ + null, + null, + null, + "מצא קצוות" + ], + "אחר", + [ + "התאמה אישית", + null, + null, + "מינימום", + "היסט", + null + ], + [ + "אזור לא מוגדר", + "קבע כשקוף", + null, + "עטוף סביב" + ] + ] + ], + [ + [ + "Datoteka", + "Uređivanje", + "Slika", + "Sloj", + "Mapa", + "Odabir", + "Filter", + "Prikaz", + "Prozor", + "Jezik", + "Prijava", + "Odjava", + "Stvori prijevod", + [ + "Račun", + "Uvjeti korištenja", + "Natrag" + ], + "Ostalo", + "Tema", + "Koristi WebGL" + ], + [ + "Otvori", + "Objavi (Imgur)", + "Spremi", + "Spremi kao PSD", + "Ispiši", + "Otvori URL", + "Učitati s računala", + "Poveži s Google Drive", + "Izvezi kao", + "Izvezi Resurse", + "Skripta", + "Otvori i Postavi" + ], + [ + "Korak Naprijed", + "Korak natrag", + "Očisti", + "Ispuna", + "Transformacija", + "Okreni", + "Okreni horizontalno", + "Okreni vertikalno", + "Poništi / Ponovi", + "Perspektiva" + ], + "Prilagođavanja", + [ + "Svjetlost / Kontrast", + "Razine", + "Krivulje", + "Ekspozicija", + "Živost boja", + "Nijansa / Zasićenje", + "Balans boje", + "Crno i bijelo", + "Filter fotografije", + "Mikser kanala", + "Pronalaženje boja", + "Obrni", + "Posteriziraj", + "Prag", + "Karta gradijenta", + "Selektivna boja", + [ + "Automatski Ton", + "Automatski Kontrast", + "Automatska Boja" + ] + ], + [ + "Izreži", + "Kopiraj", + "Zalijepi", + "Novo", + "Izbriši", + "Uključi", + "Isključi", + "Kopiraj stopljeno", + "Primjeni" + ], + [ + "Dupliciraj sloj", + "Novi podešavajući sloj", + "Rasterska maska", + "Vektorska maska", + "Dodaj (Prikaži sve)", + "Dodaj (Sakrij sve)", + "Maska isječka", + "Pretvori u pametni objekt", + "Rasteriziraj", + "Grupiraj slojeve", + "Spoji donje", + "Spoji gornje", + "Spoji slojeve", + "Novi sloj", + "Omogući rastersku masku", + "Onemogući Raster Masku", + "Omogući Vektor Masku", + "Onemogući Vektor Masku", + "Uključi Masku Isječka", + "Isključi Masku Isječka", + "Nova Mapa", + "Dodaj Raster Masku", + "Izbriši Raster Masku", + "Dodaj Vektor Masku", + "Izbriši Vektor Masku", + "Poveži Raster Masku", + "Prekini Vezu Raster Maske", + "Poveži Vektor Masku", + "Prekini Vezu Vektor Maske", + "Omogući Efekte Sloja", + "Onemogući Efekte Sloja", + "Izbriši Sloj", + "Promjena Providnosti Sloja", + "Promjena Pretapanja", + "Rasteriziraj Stil Sloja", + "Redoslijed Slojeva", + [ + "Stvaram Pametni Objekt", + "Osvježavam Pametni Objekt", + "Postavljam Pametni Objekt" + ], + "Promjena imena", + "Promjena Boje", + "Uredi Sloj za Postavke", + "Pretvori u Oblik", + "Omogući Masku Filtera", + "Onemogući Masku Filtera", + "Omogući Pametne Filtere", + "Onemogući Pametne Filtere", + "Dodaj Masku Filtera", + "Obriši Masku Filtera", + "Očisti pametne filtere", + [ + [ + "Ispunjenje punom bojom", + "Popuna Gradijentom", + "Ispunjenje uzorkom" + ], + "Novi sloj popune", + "Uredi sloj popune" + ], + "Sloj preko kopiranja", + "Maska Filtera", + "Obriši stil sloja", + "Pomakni pametni filter", + "Izbriši pametni filter", + [ + "Poveži Slojeve", + "Odvoji Slojeve" + ], + "Posloži", + [ + "Pomakni na Vrh", + "Pomakni Naprijed", + "Pomakni Nazad", + "Pomakni na Kraj" + ], + [ + null, + null + ] + ], + [ + "Sve", + "Odznači", + "Inverzija", + "Promjeni", + "Proširi", + "Suzi", + "Pero", + "Pomjeri označeno", + "Raspon Boja", + "Rub", + "Preobrazi označeno", + "Poboljšaj Rub", + "Zaliječi Označeno" + ], + [ + "Približi", + "Udalji", + "Vodilice", + "Ravnala", + "Mreža", + "Puckanje", + "Zalijepi za", + "Granice Dokumenta", + "Polje Piksela", + "Putanje" + ], + [ + "Povijest", + "Slojevi", + "Prilagodi", + "Četka", + "Znak", + "Paragraf", + "Informacije", + "Kompozicije Sloja", + "Boje" + ], + [ + "Četka", + "Alat za kloniranje", + "Alat za rezanje", + "Alat za brisanje", + "Odabir elipse", + "Kapaljka", + "Alat za gradijent", + "Ruka (slobodno pomjeranje)", + "Tekst", + "Laso", + "Magnetni laso", + "Pomicanje", + "Magični štapić", + "Kantica s bojom", + "Poligonalni laso odabir", + "Pravokutni odabir", + "Slobodna transformacija", + "Zumiranje", + "Zamagljivanje", + "Izoštravanje", + "Razmazivanje", + "Alat za zatamnjivanje", + "Alat za posvjetljavanje", + "Spužva", + "Liječenje mrlje", + "Četka za liječenje", + "Alat za krpanje", + "Odabir staze", + "Direktni odabir", + "Kemijska", + "Slobodna kemijska", + "Prilagođen oblik", + "Pravokutnik", + "Elipsa", + "Parametarski oblik", + "Linija", + "Ravnalo", + "Brzi odabir", + "Olovka" + ], + [ + "Snimite fotografiju", + "Birač boje", + "Uređivač obrisa", + "Veličina radne površine", + "Napravi kopiju", + "Uređivač prijelaza", + "Stil Sloja", + "Novi Projekt", + "Spremi za web", + "Iskrivi", + "Veličina slike", + "Vektoriziraj bitnu mapu", + "Skrati", + "Tipkovničke Prečice" + ], + [ + "Providnost", + "Efekti", + "Svjetlina", + "Kontrast", + "Kanal", + "Ekspozicija", + "Ofset", + "Gama ispravak", + "Nijansa", + "Zasićenost", + "Svjetlina", + "Kolorizacija", + "Domet", + "Živost boja", + "Veličina", + "Kut", + "Oblina", + "Tvrdoća", + "Razmaci", + "Vrsta Pretapanja", + "Veličina uzorka", + "Kontura", + "Stil", + "Preokreni", + "Tolerancija", + "Granični", + "Ispuniti", + "Koristi globalni kut", + "Udaljenost", + "Proširi", + "Šum", + "Izbaci padnu sjenu", + "Tehnika", + "Smjer", + "Dubina", + "Ublaži", + "Način", + "Gradijent", + "Skala", + "Uskladi sa slojem", + "Pozicija", + "Širina", + "Visina", + "Destinacija", + "Vrsta", + "Prvi plan", + "Pozadina", + "Prilagođeno", + "Naziv", + "Stvori", + "Format", + "Zadrži Omjer", + "Kvaliteta", + "Napravi duplikat", + "Pomjeri", + "Pametni Filtri", + "Radius", + "Količina", + "Raspodjela", + [ + "Jednolično", + "Gaussov" + ], + "Monokromatski", + "Veličina Ćelije", + "Uzorak", + "Tok", + "Snaga", + "Zaštiti detalj", + "Vrsta Ispune", + "Tekstura", + "Nervoza", + "Rub", + "Izvor", + "Cilj", + "Kanali", + "Maska", + "Gustoća", + "Poravnanje", + [ + "Put", + "Oblik", + "Pikseli" + ], + "Oblici", + "Strane", + "Postavke", + [ + "Dužina", + "Omjer", + "Bilokoji" + ], + "Smanji šum", + "Boje", + "Udaljenosti", + null, + "Automatski odabir", + "Nađi", + "Definiraj novi", + [ + "Slika", + "Zaslon", + "Mobitel", + "Reklame" + ], + [ + null, + "Fiksni omjer", + "Fiksna veličina" + ], + "Upomoć", + [ + null, + null, + null + ] + ], + [ + "Boja", + [ + "Ništa", + "Crvena", + "Narančasta", + "Žuta", + "Zelena", + "Plava", + "Ljubičasta", + "Siva", + "Bijela", + "Prozirno", + "Crna" + ] + ], + [ + "Padna sjena", + "Unutarnja sjena", + "Vanjska sjena", + "Unutarnji sjaj", + "Nagib i klesanje", + "Overlay boja", + "Overlay gradijenta", + "Overlay uzorka", + "Saten", + "Zamah", + "Mogućnosti miješanja" + ], + [ + "Oblik ruba", + "Dinamičnost ruba", + "Rasprši", + "Dinamičnosti boja", + [ + "Vibracija veličine", + "Minimalni promjer", + "Vibracija ugla", + "Vibracija obline", + "Minimalna oblina" + ], + [ + "Vibracija položaja", + "Zbroj", + "Vibracija broja" + ], + [ + "Vibracija prednje strane i pozadine", + "Vibracija boje", + "Vibracija zasićenosti", + "Vibracija svjetlosti" + ], + [ + "Odaberite izvor klonova tako da držite Alt (ili K) i kliknete na sliku.", + null, + "Sloj se ne može uređivati.", + "Tekstni sloj mora biti prvo rasteriziran", + null, + "Odaberite više slojeva" + ] + ], + [ + "Vodeće", + "Praćenje", + "Osnovna smjena" + ], + [ + "Ukupni sadržaj", + "Trenutni sloj", + "Odabir", + "Trenutačno & Ispod" + ], + [ + "Zamijeni", + "Ujedini", + "Razlika", + "Presjek", + "XOR" + ], + [ + [ + "Linearno", + "Radijalno", + "Kut", + "Odraženo", + "Dijamant", + "Prasak oblika" + ], + [ + "Mekše", + "Precizno" + ], + [ + "Vanjski nagib", + "Unutarnji nagib", + "Reljef", + "Uzglavni reljef", + "Udarni reljef" + ], + [ + "Glatkost", + "Teško izdubi", + "Lagano izdubi" + ], + [ + "Gore", + "Dole" + ], + [ + "Vani", + "Sredina", + "Unutrašnjost" + ], + [ + "Sjenke", + "Srednji tonovi", + "Naglasci" + ], + [ + "Manje zasićenje", + "Zasićenje" + ], + [ + "Mali", + "Srednji", + "Veliki" + ] + ], + [ + "Odaberi objekt ispod kursora", + "Kontrole transformacije", + "Piksel do piksela", + "Ispuni površinu", + [ + "Uskladi lijeve rubove", + "Centriraj horizontalno", + "Uskladi desne rubove", + "Uskladi gornje rubove", + "Poravnaj vertikalno", + "Uskladi donje rubove", + "Jednake praznine" + ] + ], + [ + "Umetnuti u", + "Trenutni projekat", + "Novi Projekt", + "Rezolucija", + "Dodano u trenutni projekat", + "Novi projekt je stvoren.", + "Pristup kameri odbijen." + ], + [ + "Orijentacija", + "Iskrivi", + "Horizontalno iskrivljenje", + "Vertikalno iskrivljenje", + [ + "Horizontalno", + "Vertikalno" + ], + [ + "Ništa", + "Luk", + "Donji luk", + "Gornji luk", + "Luk", + "Izbočina", + "Donja ljuska", + "Gornja ljuska", + "Zastava", + "Val", + "Riba", + "Uspon", + "Riblje Oko", + "Napuhati", + "Iscijediti", + "Uviti", + "Prilagođeno" + ], + [ + "Font", + "nije dostupno", + "Izvršiti će se pomoću" + ], + [ + "Razmijeni boje", + "Zadano: bijelo i crno" + ] + ], + [ + "učitano", + "Dodano", + "Vodič za pomicanje", + "Vodič za brisanje", + "Vodič za dodavanje", + "Učitavanje" + ], + [ + "Filtriraj galeriju", + [ + [ + null, + [ + null, + null, + null, + null, + "Smanji", + null, + null, + "Zamrzni", + null + ] + ], + [ + null + ] + ], + "Zamagli", + [ + "Prosječno", + "Zamagliti", + "Zamagli više", + "Kvadratno zamagljivanje", + "Gaussovo zamagljivanje", + "Objektivno zamagljivanje", + "Pokretno zamagljivanje", + "Radijalno zamaglivanje", + "Oblikovno zamagljivanje", + "Pametno zamagljivanje", + "Površno zamagljivanje" + ], + "Izobličavanje", + [ + null, + null, + "Polarne koordinate", + null, + null, + null, + null + ], + "Šum", + [ + "Dodaj šum", + "Smanji efekt pjega", + "Prašina i ogrebotine", + "Srednja linija" + ], + "Pikselizacija", + [ + "Poluton boja", + "Kristalizacija", + "Aspekt", + "Fragmentiranje", + "Mecotinta", + "Mozaik", + "Efekt uboda" + ], + "Izvrši", + [ + "Oblaci", + null + ], + "Izoštriti", + [ + "Izoštri", + "Izoštri rubove", + "Izoštri više", + "Pametno izoštravanje", + "Smanji izoštrenost maske" + ], + "Podesiti prema stilu", + [ + "Difuzno", + "Reljef", + "Utiskivanje", + "Pronađi rubove" + ], + "Drugo", + [ + "Prilagođeno", + "Visina", + "Maksimum", + "Minimum", + "Ofset", + "Ponovi" + ], + [ + "Nedefinisano područije", + "Podesi da bude providno", + "Ponovi rubne piksele", + "Zamotavanje", + "Posljednji filter" + ] + ] + ], + [ + [ + "File", + "Modifica", + "Immagine", + "Livello", + "Cartella", + "Seleziona", + "Filtro", + "Vista", + "Finestra", + "Lingua", + "Accesso", + "Disconnetti", + "Crea traduzione", + [ + "Account", + "Termini di servizio", + "Indietro" + ], + "Di più", + "Tema", + "Usa WebGL" + ], + [ + "Apri", + "Pubblica online (Imgur)", + "Salva", + "Salva come PSD", + "Stampa", + "Apri da URL", + "Apri da computer", + "Connetti a Google Drive", + "Esporta come", + "Esporta risorse", + "Script", + "Apri & posiziona" + ], + [ + "Passo Successivo", + "Passo precedente", + "Pulisci", + "Riempi", + "Trasforma", + "Ruota", + "Inverti orizzontalmente", + "Inverti Verticalmente", + "Indietro / Rifai", + "Prospettiva" + ], + "Aggiustamenti", + [ + "Luminosità / Contrasto", + "Livelli", + "Curve", + "Esposizione", + "Vibrance", + "Tinta / Saturazione", + "Bilanciamento del colore", + "Bianco e Nero", + "Filtro Fotografico", + "Mixer di canale", + "Ricerca Colore", + "Inverti", + "Posterizza", + "Soglia", + "Mappa Gradiente", + "Colore Selettivo", + [ + "Tonalità automatica", + "Contrasto automatico", + "Colore automatico" + ] + ], + [ + "Taglia", + "Copia", + "Incolla", + "Nuovo", + "Elimina", + "Abilita", + "Disabilita", + "Copia elementi uniti", + "Applica" + ], + [ + "Duplica livello", + "Nuovo Livello di Aggiustamento", + "Maschera Bitmap", + "Maschera Vettoriale", + "Aggiungi (Mostra Tutto)", + "Aggiungi (Nascondi Tutto)", + "Machera di Ritaglio", + "Converti in Oggetto Smart", + "Rendi in Bitmap", + "Raggruppa Livelli", + "Fondi Sotto", + "Fondi Sopra", + "Includi Livelli", + "Nuovo Livello", + "Abilita Maschera Raster", + "Disabilita Maschera Raster", + "Abilita Maschera Vettoriale", + "Disabilita Maschera Vettoriale", + "Abilita Maschera di Ritaglio", + "Disabilita Maschera di Ritaglio", + "Nuova Cartella", + "Aggiungi Maschera Raster", + "Elimina Maschera Raster", + "Aggiungi Maschera Vettoriale", + "Elimina Maschera Vettoriale", + "Collega Maschera Raster", + "Scollega Maschera Raster", + "Collega Maschera Vettoriale", + "Scollega maschera vettoriale", + "Abilita Effetti del Livello", + "Disabilita Effetti del Livello", + "Elimina Livello", + "Cambia Opacità Livello", + "Cambia Fusione", + "Rasterizza Stile Livello", + "Ordine Livello", + [ + "Creazione Oggetto Smart", + "Aggiornamento Oggetto Smart", + "Posizionamento Oggetto Smart" + ], + "Cambia Nome", + "Cambia Colore", + "Modifica Livello di Aggiustamento", + "Converti in forma", + "Abilita filtro maschera", + "Disabilita filtro maschera", + "Abilita Filtri intelligenti", + "Disabilita filtri intelligenti", + "Aggiungi filtro maschera", + "Elimina filtro maschera", + "Pulisci filtri intelligenti", + [ + [ + "Riempimento di colore uniforme", + "Riempimento a gradiente", + "Modello di riempimento" + ], + "Nuovo livello di riempimento", + "Modificare livello di riempimento" + ], + "Crea livello da copia", + "Maschera", + "Cancella lo stile del livello", + "Muovi filtro intelligente", + "Elimina filtro intelligente", + [ + "Collega livelli", + "Scollega livelli" + ], + "Organizza", + [ + "Porta in cima", + "Porta avanti", + "Porta indietro", + "Manda in fondo" + ], + [ + null, + null + ] + ], + [ + "Tutto", + "Deseleziona", + "Inverso", + "Modifica", + "Espandi", + "Contrai", + "Sfuma", + "Sposta Selezione", + "Range di colori", + "Contorno", + "Trasforma selezione", + "Affina bordi", + "Cura selezione" + ], + [ + "Ingrandisci", + "Riduci", + "Guide", + "Righelli", + "Griglia", + "Attacca", + "Attacca a", + "Limiti del documento", + "Griglia pixel", + "Percorsi" + ], + [ + "Cronologia", + "Livelli", + "Proprietà", + "Pennello", + "Carattere", + "Paragrafo", + "Info", + null, + "Campioni" + ], + [ + "Strumento pennello", + "Strumento clone", + "Strumento ritaglio", + "Strumento gomma", + "Seleziona ellisse", + "Contagocce", + "Strumento gradiente", + "Strumento mano", + "Strumento Font", + "Selezione con Lazo", + "Selezione con Lazo Magnetico", + "Strumento Sposta", + "Bacchetta Magica", + "Strumento Secchio Pittura", + "Seleziona con Lazo Poligonale", + "Seleziona Rettangolo", + "Trasformazione Libera", + "Strumento Ingrandimento", + "Strumento sfocatura", + "Strumento Contrasta", + "Strumento Sfumino", + "Strumento Scherma", + "Strumento Brucia", + "Strumento Spugna", + "Pennello ricostruttore a zona", + "Pennello ricostruttore", + "Strumento Toppa", + "Selezione lazo poligonale", + "Selezione diretta", + "Penna", + "Penna a mano libera", + "Strumento forma personale", + "Rettangolo", + "Ellisse", + "Forma parametrica", + "Linea", + "Righello", + "Selezione Rapida", + "Strumento matita" + ], + [ + "Scatta una Foto", + "Tavoletta Colori", + "Editor Contorni", + "Dimensione Canvas", + "Duplica in ...", + "Editor Gradienti", + "Stile Livello", + "Nuovo Progetto", + "Salva per il web", + "Curva", + "Dimensione Immagine", + "Bitmap vettorizzata", + "Accorcia", + "Scorciatoie da tastiera" + ], + [ + "Opacità", + "Effetti", + "Luminosità", + "Contrasto", + "Canale", + "Esposizione", + "Offset", + "Correzione Gamma", + "Tonalità", + "Saturazione", + "Luminosità", + "Colorare", + "Range", + "Vibrazione", + "Dimensione", + "Angolo", + "Rotondità", + "Durezza", + "Spaziatura", + "Modalità Mix", + "Dimensione di prova", + "Contorno", + "Stile", + "Inverso", + "Tolleranza", + "Contiguo", + "Riempi", + "Usa angolo globale", + "Distanza", + "Propagazione", + "Rumore", + "Setta fuori ombra", + "Tecnica", + "Direzione", + "Profondità", + "Ammorbidire", + "Modalità", + "Gradiente", + "Scala", + "Allinea con livello", + "Posizione", + "Larghezza", + "Altezza", + "Destinazione", + "Tipo", + "Primopiano", + "Sfondo", + "Personale", + "Nome", + "Crea", + "Formato", + "Mantieni proporzioni", + "Qualità", + "Duplica", + "Muovi", + "Filtri intelligenti", + "Raggio", + "Totale", + "Distribuzione", + [ + "Uniforma", + "Sfoca" + ], + "Monocromatico", + "Dimensione cella", + "Pattern", + "Flusso", + "Intensità", + "Protezione dettagli", + "Tipo di riempimento", + "Trama", + "Jitter", + "Margine", + "Fonte", + "Obbiettivo", + "Canali", + "Maschera", + "Densità", + "allineato", + [ + "Sentiero", + "Sfuma", + "Pixels" + ], + "Sfumature", + "Lati", + "Preferenze", + [ + "Lunghezza", + "Rapporto", + null + ], + "Riduci rumore", + "Colori", + "Distanze", + null, + null, + "Trova", + null, + [ + "Foto", + null, + null, + "Pubblicità" + ], + [ + "Libero", + null, + null + ], + "Aiuto", + [ + null, + null, + null + ] + ], + [ + "Colore", + [ + "Vuoto", + "Rosso", + "Arancione", + "Giallo", + "Verde", + "Blu", + "Viola", + "Grigio", + "Bianco", + "Trasparente", + "Nero" + ] + ], + [ + "Ombra", + "Ombra interna", + "Bagliore esterno", + "Bagliore interno", + "Smussatura e rilievo", + "Sovrapposizione colore", + "Sovrapposizione Sfumatura", + "Sovrapposizione Pattern", + "Satinato", + "Contorno", + "Opzioni di Fusione" + ], + [ + "Forma", + "Regolazione Dinamica", + "Diffusione", + "Colore Dinamico", + [ + "Regola dimensione", + "Diametro minimo", + "Regola angolo", + "Regola rotondità", + "Rotondità minima" + ], + [ + "Regola posizione", + "Conta", + "Regola Conteggio" + ], + [ + "Regola Primopiano/Sfondo", + "Regola Tonalità", + "Regola saturazione", + "Regola luminosità" + ], + [ + "Seleziona la sorgente da clonare tenendo premuto Alt e facendo clic sull'immagine.", + null, + "Livello non modificabile.", + null, + null, + null + ] + ], + [ + "Principale", + "Traccia", + "Spostamento della linea di base" + ], + [ + "Contenuto Totale", + "Livello corrente", + "Selezione", + null + ], + [ + "Sostituisci", + "Unione", + "Differenza", + "Intersezione", + "XOR" + ], + [ + [ + "Lineare", + "Radiale", + "Angolo", + "Riflesso", + "Diamante", + "Shape Burst" + ], + [ + "Ammorbidisci", + "Preciso" + ], + [ + "Smusso Esterno", + "Smusso Interno", + "Effetto rilievo", + "Effetto Rilievo Pillow", + "Effetto Rilievo Stroke" + ], + [ + "Sfumato", + "Scalpello (duro)", + "Scalpello (soft)" + ], + [ + "Su", + "Giù" + ], + [ + "Fuori", + "Centro", + "Interno" + ], + [ + "Ombre", + "Mezzi toni", + "Luci" + ], + [ + "Desaturazione", + "Tonalità" + ], + [ + "Piccolo", + "Medio", + "Grande" + ] + ], + [ + "Seleziona l'oggetto sotto il cursore", + "Controlli trasformazione", + "Pixel per pixel", + "Riempi l'area", + [ + "Allinea i bordi a SX", + "Centra orizzontalmente", + "Allinea i bordi a DX", + "Allinea i bordi in alto", + "Centra verticalmente", + "Allinea i bordi in basso", + null + ] + ], + [ + "Inserisci in", + "Progetto attuale", + "Nuovo progetto", + "Risoluzione", + "Aggiunto al corrente progetto", + "Un nuovo progetto è stato creato", + "L'accesso alla cam è stato negato" + ], + [ + "Orientamento", + "Curva", + "Distorsione orizzontale", + "Distorsione verticale", + [ + "Orizzontale", + "Verticale" + ], + [ + "Vuoto", + "Arco", + "Arco inferiore", + "Arco superiore", + "Arco", + "Rigonfiamento", + "Involucro Inferiore", + "Involucro Superiore", + "Flag", + "Onda", + "Fish", + "Incremento", + "Fish Eye", + "Gonfia", + "Strizza", + "Torci", + "Personale" + ], + [ + "Carattere", + "Non disponibile", + "Sarà rappresentato utilizzando" + ], + [ + "Inverti colori", + "Base: bianco e nero" + ] + ], + [ + "caricato", + "aggiunto", + "Muovi Guide", + "Cancella Guide", + "Aggiungi guida", + "Caricamento" + ], + [ + "Galleria Filtri", + [ + [ + null, + [ + null, + "Ricostruisci", + null, + null, + null, + null, + null, + "Ghiacciato", + "Scongelato" + ] + ], + [ + null + ] + ], + "Sfocatura", + [ + "Media", + "Sfocatura", + "Sfoca maggiormente", + "Controllo sfocatura", + "Sfocatura gaussiana", + "Sfocatura lente", + "Sfocatura movimento", + "Sfocatura radiale", + "Sfocatura Forma", + "Sfocatura Intelligente", + "Sfocatura Superficie" + ], + "Distorci", + [ + null, + null, + "Coordinate polari", + null, + null, + null, + "Onda" + ], + "Disturbo", + [ + "Aggiungi disturbo", + "Smacchia", + "Polvere e grana", + "Mediana" + ], + "Effetto pixel", + [ + "Colore Mezzitoni", + "Cristallizza", + "Sfaccettatura", + "Frammenta", + "Mezzetinte", + "Mosaico", + "Puntinatura" + ], + "Rappresenta", + [ + "Nuvole", + "Nuvole differenziali" + ], + "Contrasta", + [ + "Contrasta", + "Contrasta Bordi", + "Contrasta maggiormente", + "Contrasto Intelligente", + "Maschera di contrasto" + ], + "Stilizzazione", + [ + "Diffondi", + "Effetto rilievo", + "Estrusione", + "Trova Bordi" + ], + "Altro", + [ + "Personale", + "Accentua Passaggio", + "Massimo", + "Minimo", + "Sposta", + "Ripeti" + ], + [ + "Area Indefinita", + "Imposta Trasparenza", + "Ripeti pixel del bordo", + "Involucro attorno", + "Ultimo filtro" + ] + ] + ], + [ + [ + "Fișier", + "Editare", + "Imagine", + "Strat", + "Dosar", + "Selectează", + "Filtru", + "Vedere", + "Fereastră", + "Limbă", + "Logare", + "Ieșire", + "Creează traducere", + [ + "Cont", + "Termeni de Utilizare", + "Înapoi" + ], + "Mai mult", + "Opțiuni temă", + "Folosește WebGL" + ], + [ + "Deschide", + "Publică online (Imgur)", + "Salvează", + "Salvează ca .PSD", + "Printează", + "Deschideți URL", + "Răsfoiește imaginea din calculator", + "Conectează-te cu Google Drive", + "Exportează că și", + "Exportează Elementele", + "Script", + "Deschide & Pune" + ], + [ + "Dă cu un pas înainte", + "Dă cu un pas înapoi", + "Curăță", + "Umplere", + "Transformă", + "Rotește", + "Întoarce pe orizontală", + "Întoarce pe verticală", + "Anulează / Refă", + "Perspectivă" + ], + "Ajustări", + [ + "Luminozitate / Contrast", + "Nivele", + "Curbe", + "Expunere", + "Vibranță", + "Nuanță / Saturație", + "Echilibrare culori", + "Alb-negru", + "Filtru de fotografie", + "Mixer de canale", + "Caută culoare", + "Inversează", + "Posterizează", + "Prag", + "Hartă de gradient", + "Culoare selectivă", + [ + "Ton automat", + "Contrast automat", + "Culoare automată" + ] + ], + [ + "Taie", + "Copiază", + "Lipește", + "Nou...", + "Șterge", + "Activează", + "Dezactivează", + "Copiază straturi unite", + "Aplică" + ], + [ + "Multiplică strat", + "Nou strat de ajustare", + "Mască de rasterizare", + "Mască vectorială", + "Adaugă (Arată tot)", + "Adaugă (Ascunde tot)", + "Mască de atașare", + "Schimbă ca obiect Smart", + "Rasterizează", + "Grupează straturile", + "Unește în jos", + "Unește în sus", + "Unește straturile", + "Strat nou", + "Activează Masca de rasterizare", + "Dezactivează Masca de rasterizare", + "Activează Masca vectorială", + "Dezactivează Masca vectorială", + "Activează Masca de atașare", + "Dezactivează Masca de atașare", + "Dosar nou", + "Adaugă Mască de rasterizare", + "Șterge Masca de rasterizare", + "Adaugă Mască vectorială", + "Șterge Masca vectorială", + "Leagă Masca de rasterizare", + "Dezleagă Masca de rasterizare", + "Leagă Masca vectorială", + "Dezleagă Masca vectorială", + "Activează efectele de strat", + "Dezactivează efectele de strat", + "Șterge strat", + "Schimbă opacitatea stratului", + "Schimbă efectele de amestecare", + "Rasterizează stilul stratului", + "Ordinea straturilor", + [ + "Creează obiect Smart", + "Actualizează obiectul Smart", + "Plasează obiectul Smart" + ], + "Schimbă nume", + "Schimbă culoare", + "Editează stratul de ajustare", + "Schimbă în Forma...", + "Activează Masca de filtre", + "Dezactivează masca de filtre", + "Activează filtrele Smart", + "Dezactivează filtrele Smart", + "Adaugă mască de filtre", + "Șterge masca de filtre", + "Curăță filtrele Smart", + [ + [ + "Umplere cu o culoare solidă", + "Umplere cu gradient", + "Umplere cu model" + ], + "Strat nou de umplere", + "Modifică stratul de umplere" + ], + "Strat via Copiere", + "Mască de filtre", + "Ştergere Stil Layer", + "Mutare Filtru Smart", + "Ştergere Filtru Smart", + [ + null, + null + ], + "Aranjează", + [ + "Mută în fața", + "Mută înainte", + "Trimite în spate", + "Trimite în spate" + ], + [ + null, + "Blochează schimbarea" + ] + ], + [ + "Tot", + "Deselectează", + "Invers", + "Modifică", + "Extinde", + "Strânge", + "Pană", + "Mută selecția", + "Rază de culori", + "Margine", + "Transformă selecția", + "Redefinire Margine", + null + ], + [ + "Focalizează mai mult", + "Focalizează mai puțin", + "Ghiduri", + "Rulete", + "Grilă", + "Prinde", + "Prinde la", + "Limite Document", + "Grilă Pixel", + "Cale" + ], + [ + "Istoric", + "Straturi", + "Proprietăți", + "Pensulă", + "Caracter", + "Paragraf", + null, + null, + null + ], + [ + "Unealtă Pensulă", + "Clonare", + "Decupare", + "Gumă de șters", + "Selectează cu Oval", + "Pipetă", + "Unealtă de gradient", + "Unealta Mână", + "Unealtă de Scris", + "Selectează cu Lasou", + "Selectează cu Lasou Magnetic", + "Mutare", + "Bagheta magică", + "Găleată de vopsea", + "Selectează ca Lasou Poligonal", + "Selectează cu Dreptunghi", + "Transformă în mod liber", + "Focalizare", + "Încețoșare", + "Evidențiere", + "Pătare", + "Evitare", + "Ardere", + "Burete", + "Pensulă de îndepărtare a petelor", + "Pensulă de îndepărtare", + "Unealtă de Petice", + "Selectează cale", + "Selectează direct", + "Stilou", + "Stilou liber", + "Formă originală", + "Dreptunghi", + "Oval", + "Formă parametrică", + "Linie", + "Riglă", + "Selecție rapidă", + "Creion" + ], + [ + "Fă o poză", + "Selector de culoare", + "Editor de contur", + "Dimensiune pânză", + "Multiplică în ...", + "Editor de gradiente", + "Stil strat", + "Proiect nou", + "Salvează pentru Internet", + "Teleportează", + "Dimensiuni imagine", + "Vectorizare Bitmap", + "Tăiere", + null + ], + [ + "Opacitate", + "Efecte", + "Strălucire", + "Contrast", + "Canal", + "Expunere", + "Axă", + "Corecție gamma", + "Nuanță", + "Saturație", + "Luminozitate", + "Vopsire", + "Rază", + "Vibranță", + "Mărime", + "Unghi", + "Rotunjire", + "Tărie", + "Spațiere", + "Mod amestecare", + "Mărime probă", + "Contur", + "Stil", + "Schimbă înapoi", + "Toleranță", + "Continuu", + "Umplere", + "Folosește unghi global", + "Distanță", + "Împrăștiere", + "Zgomot", + "Umbră pe dinafară", + "Tehnică", + "Direcție", + "Adâncime", + "Inmoaie", + "Mod", + "Gradient", + "Scala", + "Aliniază cu stratul", + "Poziție", + "Lățime", + "Înălțime", + "Destinație", + "Tip", + "Prim plan", + "Fundal", + "Personalizat", + "Nume", + "Creați", + "Format", + "Mențineți raportul de aspect", + "Calitate", + "Duplicat", + "Mișcă", + "Filtre inteligente", + "Rază", + "Cantitate", + "Distribuție", + [ + "Uniformă", + "Gaussian" + ], + "Monocromatic", + "Dimensiunea celulei", + "Model", + "Curgere", + "Putere", + "Protecție detalii", + "Tip de umplere", + "Textură", + "Vibrație", + "Margine", + "Sursă", + "Țintă", + "Canale", + "Mască", + "Densitate", + "Aliniat", + [ + "Cale", + "Formă", + "Pixeli" + ], + "Forme", + "Fețe", + "Preferințe", + [ + "Lungime", + null, + null + ], + "Reducere zgomot", + "Culori", + "Distanţe", + null, + null, + null, + null, + [ + null, + null, + null, + null + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Culoare", + [ + "Nimic", + "Roșu", + "Portocaliu", + "Galben", + "Verde", + "Albastru", + "Purpuriu", + "Gri", + "Alb", + "Transparent", + null + ] + ], + [ + "Umbră", + "Umbră interioară", + "Strălucire exterioară", + "Strălucire interioară", + "Echer si Grava", + "Suprapunere de culoare", + "Suprapunere de gradient", + "Suprapunere de model", + "Satin", + "Lovire", + "Opțiuni de amestecare" + ], + [ + "Formă vârf", + "Tip dinamică", + "Împrăștiere", + "Dinamica culorilor", + [ + "Marimea bruiajului", + "Diametru minim", + "Unghi de bruiaj", + "Bruiere rotunjită", + "Rotunjire minimă" + ], + [ + "Poziția bruiajului", + "Numărare", + "Numără bruiajele" + ], + [ + "Bruiere in Prim Plan/Fundal", + "Nuanță de bruiaj", + "Saturatie de bruiaj", + "Luminozitatea bruiajului" + ], + [ + "Selectați sursa de clonare prin mentinerea tastelor ALT (sau K) și apăsând pe imagine.", + null, + null, + null, + null, + null + ] + ], + [ + "Conducere", + "Urmărire", + null + ], + [ + "Conţinut total", + "Strat Curent", + "Selecție", + null + ], + [ + "Inlocuiește", + "Unifică", + "Extrage", + "Intersectează", + "Exclude" + ], + [ + [ + "Liniar", + "Radial", + "Unghi", + "Reflectat", + "Diamant", + null + ], + [ + null, + "Precis" + ], + [ + null, + null, + null, + null, + null + ], + [ + null, + null, + null + ], + [ + "Sus", + null + ], + [ + "Exterior", + "Centru", + "Interior" + ], + [ + "Umbre", + "Tonuri mijlocii", + null + ], + [ + null, + null + ], + [ + null, + null, + null + ] + ], + [ + "Selecteaza obiectul de sub cursor", + null, + "Pixel la Pixel", + null, + [ + "Aliniaza dupa muchiile din stinga", + "Centreaza orizontal", + "Aliniaza dupa muchiile din dreapta", + "Aliniaza dupa muchiile de sus", + "Centreaza vertical", + "Aliniaza dupa muchiile de jos", + null + ] + ], + [ + null, + "Proiect curent", + "Proiect nou", + "Rezolutie", + "Adaugat la proiectul curent.", + "Un proiect nou a fost creat.", + "Accesul la camera a fost negat." + ], + [ + "Orientare", + null, + null, + null, + [ + null, + "Vertical" + ], + [ + null, + null, + null, + null, + "Arc", + null, + null, + null, + null, + null, + "Peşte", + null, + null, + null, + null, + null, + null + ], + [ + "Font", + null, + null + ], + [ + null, + "Implicit: Alb și negru" + ] + ], + [ + null, + null, + null, + null, + "Adăugare Ghid", + null + ], + [ + null, + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + null, + [ + null, + "Neclaritate", + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + "Adăugare Zgomot", + null, + null, + "Median" + ], + null, + [ + null, + "Cristalizare", + null, + null, + null, + null, + null + ], + "Randare", + [ + null, + null + ], + null, + [ + null, + null, + null, + null, + null + ], + null, + [ + "Difuz", + null, + "Extrudare", + null + ], + "Altul", + [ + null, + null, + "Maxim", + null, + null, + null + ], + [ + null, + null, + "malaysia", + "Înfășoară în jurul" + ] + ] + ], + [ + [ + "Bestand", + "Bewerk", + "Afbeelding", + "Laag", + "Map", + "Selecteer", + "Filter", + "Beeld", + "Venster", + "Taal", + "Log in", + "Log uit", + "Vertaal", + [ + "Account", + "Algemene voorwaarden", + "Terug" + ], + "Meer", + "Thema", + "WebGL gebruiken" + ], + [ + "Open", + "Publiceer online", + "Opslaan", + "Sla op als PSD", + "Printen", + "Open via URL", + "Open vanaf PC", + "Verbind met Google Drive", + "Exporteren als", + "Export Tools", + "Script", + "Open en plaats" + ], + [ + "Opnieuw", + "Ongedaan maken", + "Leegmaken", + "Vul", + "Transformeer", + "Draaien", + "Horizontaal spiegelen", + "Verticaal spiegelen", + "Ongedaan maken / Opnieuw uitvoeren", + "Perspectief" + ], + "Toevoegingen", + [ + "Helderheid / Contrast", + "Lagen", + "Curves", + "Belichting", + "Levendigheid", + "Tint / Verzadiging", + "Kleurbalans", + "Zwart & wit", + "Fotofilter", + "Kanaalmixer", + "Kleur opzoeken", + "Omkeren", + "Posteriseren", + "Drempel", + "Verloop toewijzen", + "Kies kleur", + [ + "Automatische toon", + "Automatisch contrast", + "Automatische kleur" + ] + ], + [ + "Knippen", + "Kopiëren", + "Plakken", + "Nieuw", + "Verwijderen", + "Aan", + "Uit", + "Kopieer samengevoegd", + "Toepassen" + ], + [ + "Verdubbel laag", + "Nieuwe aanpassingslaag", + "Rastermasker", + "Vectormasker", + "Voeg toe (laat alles zien)", + "Voeg toe (verberg alles)", + "Knipmasker", + "Converteren naar Slim Object", + "Omzetten in pixels", + "Groepeer lagen", + "Omlaag samenvoegen", + "Omhoog samenvoegen", + "Lagen samenvoegen", + "Nieuwe laag", + "Rasterafbeelding AAN", + "Rasterafbeelding UIT", + "Vectormasker AAN", + "Vectormasker UIT", + "Knipmasker AAN", + "Knipmasker UIT", + "Nieuwe map", + "Rastermasker toevoegen", + "Rastermasker verwijderen", + "Vectormasker toevoegen", + "Vectormasker verwijderen", + "Rastermasker linken AAN", + "Rastermasker linken UIT", + "Vectormasker linken AAN", + "Vectormasker linken UIT", + "Activeer laageffecten", + "Deactiveer laageffecten", + "Laag verwijderen", + "Laag ondoorzichtigheid wijzigen", + "Vermenging wijzigen", + "Zet laagstijl om in pixels", + "Laagvolgorde", + [ + "Slim Object creëren", + "Slim Object updaten", + "Slim Object plaatsen" + ], + "Naam wijzigen", + "Kleur wijzigen", + "Wijzig aanpassingslaag", + "Converteer naar vorm", + "Gebruik filtermasker", + "Schakel filtermasker uit", + "Gebruik slimme filters", + "Schakel slimme filters uit", + "Voeg filter masker toe", + "Verwijder filter masker", + "Verwijder slimme filters", + [ + [ + "Effen kleurvulling", + "Gradiëntvulling", + "Patroonvulling" + ], + "Nieuwe vullinglaag", + "Wijzig vullinglaag" + ], + "Laag via kopiëren", + "Filtermasker", + "Verwijder laag stijl", + "Verplaats slim filter", + "Verwijder slim filter", + [ + "Verbind lagen", + "Ontkoppel lagen" + ], + "Arrangeer", + [ + "Haal naar voorkant", + "Haal naar voren", + "Verplaats naar achteren", + "Verplaats naar achterkant" + ], + [ + "De laag is geblokkeerd.", + "Slot wijziging" + ] + ], + [ + "Alles", + "Deselecteren", + "Selectie omkeren", + "Bewerken", + "Uitbreiden", + "Inkrimpen", + "Veertje", + "Verplaats selectie", + "Kleurbereik", + "Rand", + "Transformeer selectie", + "Verfijn rand", + "Herstel selectie" + ], + [ + "Zoom in", + "Zoom uit", + "Hulplijnen", + "Linialen", + "Raster", + "Vastklikken", + "Vastklikken aan", + "Documentsgrenzen", + "Pixelraster", + "Paden" + ], + [ + "Geschiedenis", + "Lagen", + "Eigenschappen", + "Borstel", + "Karakter", + "Paragraaf", + "Informatie", + "Laagsamenstellingen", + "Kleurkiezers" + ], + [ + "Penceel", + "Kloonstempel", + "Uitsnijden", + "Gummetje", + "Ovaal selectiekader", + "Pipet", + "Verloop", + "Handje", + "Tekst", + "Lasso", + "Magnetische lasso", + "Verplaatsen", + "Toverstaf", + "Emmertje", + "Veelhoeklasso", + "Rechthoekig selectiekader", + "Vrije transformatie", + "Zoomen", + "Vervagen", + "Verscherpen", + "Natte vinger", + "Tegenhouden", + "Doordrukken", + "Spons", + "Snel retoucheerpenseel", + "Retoucheerpenseel", + "Reparatie", + "Padselectie", + "Directe selectie", + "Pen", + "Vrije hand", + "Aangepaste vorm", + "Rechthoek", + "Ellips", + "Parametrische vorm", + "Lijn", + "Liniaal", + "Snelle selectie", + "Pentools" + ], + [ + "Neem een foto", + "Kleurkiezer", + "Randen wijzigen", + "Canvasgrootte", + "Dupliceren naar...", + "Verloop wijzigen", + "Laagstijl", + "Nieuw project", + "Opslaan voor web", + "Verdraaien", + "Afbeeldingsgrootte", + "Bitmap vectoriseren", + "Bijknippen", + "Toetsenbord sneltoetsen" + ], + [ + "Doorzichtig.", + "Effecten", + "Helderheid", + "Contrast", + "Kanaal", + "Belichting", + "Verschuiven", + "Gammacorrectie", + "Kleur", + "Verzadiging", + "Lichtheid", + "Inkleuren", + "Bereik", + "Trilling", + "Grootte", + "Hoek", + "Rondheid", + "Hardheid", + "Interlinie", + "Overvloeingsmode", + "Grootte van de staal", + "Randen", + "Stijl", + "Omkeren", + "Tolerantie", + "Aangrenzend", + "Vullen", + "Gebruik globale hoek", + "Afstand", + "Verspreiding", + "Ruis", + "Gebruik slagschaduw", + "Techniek", + "Richting", + "Diepte", + "Verzachten", + "Modus", + "Verloop", + "Schaal", + "Uitlijnen met laag", + "Positie", + "Breedte", + "Hoogte", + "Bestemming", + "Type", + "Voorgrond", + "Achtergrond", + "Aangepast", + "Naam", + "Maak", + "Indeling", + "Behoudt beeldverhouding", + "Kwaliteit", + "Kopieer", + "Verplaats", + "Slimme filters", + "Straal", + "Hoeveelheid", + "Verspreiding", + [ + "Onveranderlijk", + "Gaussiaans" + ], + "Monochroom", + "Grootte van de cel", + "Patroon", + "Stroming", + "Sterkte", + "Details beschermen", + "Vultype", + "Textuur", + "Wiebelen", + "Rand", + "Bron", + "Doel", + "Kanalen", + "Masker", + "Dichtheid", + "Uitgelijnd", + [ + "Pad", + "Vorm", + "Pixels" + ], + "Vormen", + "Zijden", + "Voorkeuren", + [ + "Lengte", + "Verhouding", + "Elk" + ], + "Verminder ruis", + "Kleuren", + "Afstanden", + "Percentage", + "Automatisch selecteren", + "Vind", + "Definieer nieuw", + [ + "Foto", + "Scherm", + "Mobiel", + "Advertenties" + ], + [ + null, + "Vaste verhouding", + "Vaste grootte" + ], + "Hulp", + [ + "Actieve Vormen", + "Bewerk Actieve Vormen", + "Zelfde Straal" + ] + ], + [ + "Kleur", + [ + "Geen", + "Rood", + "Oranje", + "Geel", + "Groen", + "Blauw", + "Paars", + "Grijs", + "Wit", + "Transparant", + "Zwart" + ] + ], + [ + "Slagschaduw", + "Schaduw binnen", + "Gloed buiten", + "Gloed binnen", + "Schuine kant en reliëf", + "Kleurbedekking", + "Verloopbedekking", + "Patroonbedekking", + "Satijn", + "Lijn", + "Opties voor overvloeien" + ], + [ + "Puntvorm", + "Puntdynamiek", + "Verstrooien", + "Kleurdynamiek", + [ + "Streeksporen", + "Minimale diameter", + "Hoekvariatie van de streeksporen", + "Rondingsvariatie van de streeksporen", + "Minimale rondingen" + ], + [ + "Positie Penseelstreek", + "Tellen", + "Teller Penseelstreek" + ], + [ + "Voorgrond/Achtergrond Penseelstreek", + "Schakering Penseelstreek", + "Verzadiging Penseelstreek", + "Helderheid Penseelstreek" + ], + [ + "Selecteer de kloonbron door Alt (of K) ingedrukt te houden en op de afbeelding te klikken.", + "Markeer voorgrond met Wit, achtergrond met Zwart en onbekend met Grijs.", + "Laag is niet bewerkbaar.", + "Tekstlaag moet worden gerasterd alvorens verder te gaan.", + "Slim Object moet worden gerasterd alvorens verder te gaan.", + "Selecteer meerdere lagen" + ] + ], + [ + "Interlinie", + "Letterspatiëring", + "Basislijnverschuiving" + ], + [ + "Alle lagen", + "Huidige laag", + "Selectie", + "Huidig & beneden" + ], + [ + "Vervangen", + "Samenvoegen", + "Verschil", + "Doorsnede", + "Uitsluiting" + ], + [ + [ + "Rechtlijnig", + "Radiaal", + "Hoek", + "Weerspiegeld", + "Diamand", + "Vorm Straal" + ], + [ + "Zachter", + "Precies" + ], + [ + "Buitenste afschuining", + "Binnenste afschuining", + "Reliëf", + "Kussenreliëf", + "Reliëf Veeg" + ], + [ + "Zacht", + "Harde beitel", + "Zachte beitel" + ], + [ + "Omhoog", + "Omlaag" + ], + [ + "Buiten", + "Midden", + "Binnen" + ], + [ + "Schaduwen", + "Middentonen", + "Accenten" + ], + [ + "Desatureren", + "Satureren" + ], + [ + "Klein", + "Middelgroot", + "Groot" + ] + ], + [ + "Kies het object onder de muis", + "Aanpassingsknoppen", + "Pixel voor pixel", + "Vul de ruimte", + [ + "Linkse randen uitlijnen", + "Horizontaal centreren", + "Rechtse randen uitlijnen", + "Bovenste randen uitlijnen", + "Verticaal centreren", + "Onderste randen uitlijnen", + "Gelijke ruimtes" + ] + ], + [ + "Invoegen in", + "Huidig project", + "Nieuw project", + "Resolutie", + "Toegevoegd aan het huidige project.", + "Er is een nieuw project aangemaakt.", + "Toegang tot de camera werd afgewezen." + ], + [ + "Oriëntatie", + "Kromming", + "Horizontale vervorming", + "Verticale vervorming", + [ + "Horizontaal", + "Verticaal" + ], + [ + "Geen", + "Buigen", + "Onder buigen", + "Boven buigen", + "Buig rechtop", + "Ronding", + "Schaal onder", + "Schaal boven", + "Vlag", + "Golf", + "Vis", + "Omhoog", + "Vissenoog", + "Blaas op", + "Druk samen", + "Draai", + "Aangepast" + ], + [ + "Lettertype", + "is niet beschikbaar", + "Zal worden gemaakt met behulp van" + ], + [ + "Wissel kleuren", + "Standaard: Wit en Zwart" + ] + ], + [ + "geladen", + "toegevoegd", + "Verplaats hulplijn", + "Verwijder hulplijn", + "Voeg hulplijn toe", + "Aan het laden" + ], + [ + "Filtergallerij", + [ + [ + "Vloeibaar", + [ + "Nat", + "Herstel", + "Verzacht", + "Draai", + "Verklein", + "Blaas", + "Naar links", + "Bevriezen", + "Ontdooien" + ] + ], + [ + null + ] + ], + "Vervagen", + [ + "Gemiddelde", + "Vaag", + "Vager", + "Omgevingsvervagen", + "Gaussiaans vervagen", + "Lens vervagen", + "Beweging vervagen", + "Radiaal vervagen", + "Vorm vervagen", + "Slim vervagen", + "Oppervlak vervagen" + ], + "Vervorm", + [ + "Verplaatsen", + "Knijp", + "Poolcoördinaten", + "Rimpel", + "Knip", + "Bolvormig", + "Golf" + ], + "Ruis", + [ + "Ruis toevoegen", + "Uitstippen", + "Stof & Krassen", + "Mediaan" + ], + "Pixel", + [ + "Kleur Halftoon", + "Kristal", + "Facet", + "Fragmentatie", + "Mezzotint", + "Mozaïek", + "Pointilleren" + ], + "Rendering", + [ + "Wolken", + "Andere Wolken" + ], + "Verscherpen", + [ + "Scherper", + "Scherpe randen", + "Verscherpen", + "Slim Verscherpen", + "Onscherp Masker" + ], + "Stileer", + [ + "Diffuus", + "Reliëf", + "Geef diepte", + "Omtreklijn" + ], + "Andere", + [ + "Aangepast", + "Hooglichten", + "Maximum", + "Minimum", + "Verschuiven", + "Herhaal" + ], + [ + "Ongedefiniëerd gebied", + "Maak transparant", + "Herhaal de pixels aan de randen", + "Omwikkelen", + "Laatste Filter" + ] + ] + ], + [ + [ + "Fil", + "Redigera", + "Bild", + "Lager", + "Mapp", + "Välja", + "Filter", + "Vy", + "Fönster", + "Språk", + "Logga in", + "Logga ut", + "Skapa översättning", + [ + "Konto", + "Användarvillkor", + "Bakåt" + ], + "Mer", + "Tema", + "Använd WebGL" + ], + [ + "Öppna", + "Publicera online (Imgur)", + "Spara", + "Spara som PSD", + "Skriv ut", + "Öppna från URL", + "Öppna från dator", + "Connecta med Google Drive", + "Exportera som", + "Exportera Assets", + "Script", + "Öppen & Placera" + ], + [ + "Stega framåt", + "Stega bakåt", + "Rensa", + "Fyll", + "Omforma", + "Rotera", + "Vänd horisontellt", + "Vänd vertikalt", + "Ångra", + "Perspektiv" + ], + "Justeringar", + [ + "Ljusstyrka / Kontrast", + "Nivåer", + "Kurvor", + "Exponering", + "Lyster", + "Nyans / Mättnad", + "Färgbalans", + "Svart & Vit", + "Fotofilter", + "Kanalmixer", + "Färgsökning", + "Invertera", + "Färgreduktion", + "Tröskel", + "Övertoningskarta", + "Selektiv färg", + [ + null, + null, + null + ] + ], + [ + "Klipp ut", + "Kopiera", + "Klistra in", + "Ny", + "Ta bort", + "Aktivera", + "Deaktivera", + "Kopiera sammanslagning", + null + ], + [ + "Duplicera lager", + "Nytt justeringslager", + "Rastermask", + "Vektormask", + "Lägg till (Visa alla)", + "Lägg till (Dölj alla)", + "Urklippsmask", + "Konvertera till Smart objekt", + "Rasterisera", + "Gruppera lager", + "Slå samman nedåt", + "Slå samman uppåt", + "Slå samman lager", + "Nytt lager", + "Aktivera Rastermask", + "Inaktivera Rastermask", + "Aktivera Vektormask", + "Inaktivera Vektormask", + "Aktivera Urklippsmask", + "Inaktivera Urklippsmask", + "Ny mapp", + "Lägg till Rastermask", + "Radera Rastermask", + "Lägg till Vektormask", + "Radera Vektormask", + "Länka Rastermask", + "Avlänka Rastermask", + "Länka Vektormask", + "Avlänka Vektormask", + "Aktivera Lagereffekter", + "Inaktivera Lagereffekter", + "Radera lager", + "Ändra lagergenomskinlighet", + "Ändra Blandningsläge", + "Rasterisera lagerstil", + "Lagerordning", + [ + "Skapar Smart objekt", + "Uppdaterar Smart objekt", + "Placerar Smart objekt" + ], + "Byt namn", + "Byt färg", + "Ändra Justeringslager", + "Konvertera till Form", + "Aktivera Filtermask", + "Inaktivera Filtermask", + "Aktivera Smarta filter", + "Inaktivera Smarta filter", + "Lägg till Filtermask", + "Radera Filtermask", + "Rensa Smarta filter", + [ + [ + "Enfärgad fyllning", + "Övertoningsfyllning", + "Mönsterfyllning" + ], + "Nytt lager", + "Ändra lager" + ], + "Lager via kopia", + "Filtermask", + "Ta bort lagerstil", + "Flytta smart filter", + "Ta bort smart filter", + [ + null, + null + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Alla", + "Avmarkera", + "Invertera", + "Modifiera", + "Expandera", + "Dra samman", + "Ludd", + "Flytta markering", + "Färgintervall", + "Ram", + "Omforma markering", + null, + null + ], + [ + "Zooma in", + "Panorera ut", + "Guider", + "Linjaler", + "Rutnät", + "Fäst", + "Fäst mot", + null, + null, + null + ], + [ + "Historik", + "Lager", + "Egenskaper", + "Pensel", + "Tecken", + "Stycke", + null, + null, + null + ], + [ + "Penselverktyget", + "Klonverktyget", + "Beskärningsverktyget", + "Suddverktyget", + "Ellipsmarkering", + "Pipetten", + "Övertoningsverktyget", + "Handverktyget", + "Textverktyget", + "Lassomarkering", + "Magnetisk lassomarkering", + "Flyttaverktyget", + "Trollspöet", + "Färgburksverktyget", + "Polygonal lassomarkering", + "Rektangelmarkering", + "Omforma fritt", + "Zoomverktyget", + "Blurra", + "Skärpa", + "Smeta ut", + "Skugga", + "Efterbelys", + "Svamp", + "punkt läkande borst verktyget", + "Lagningspensel", + "lapp verktyg", + "spår val", + "direkt val", + "Penna", + "fri penna", + "egen form", + "Rektangel", + "Ellips", + "parametrisk form", + "Linje", + "linjal", + "snabb val", + null + ], + [ + "Ta en bild", + "Färgväljaren", + "Konturredigeraren", + "Kanvasstorlek", + "Duplicera in i...", + "Övertoningsredigeraren", + "Lagerstil", + "Nytt projekt", + "Spara för webb", + "Skeva", + "Bildstorlek", + "vektorisera bitkarta", + null, + null + ], + [ + "Genomskinlighet", + "Effekter", + "Ljushet", + "Kontrast", + "Kanal", + "Exponering", + "Kompensation", + "Gammakorrigering", + "Nyans", + "Mättnad", + "Ljushet", + "Färga", + "Omfång", + "Lyster", + "Storlek", + "Vinkel", + "Rundhet", + "Hårdhet", + "Mellanrum", + "Blandningsläge", + "Provstorlek", + "Kontur", + "Stil", + "Omvänd", + "Tolerans", + "Angränsande", + "Fyll", + "Använd Global vinkel", + "Avstånd", + "Spridning", + "Brus", + "Slå ut skugga", + "Teknik", + "Riktning", + "Djup", + "Mjuka upp", + "Läge", + "Övertoning", + "Skala", + "Anpassa till lager", + "Position", + "Bredd", + "Höjd", + "Destination", + "Typ", + "Förgrund", + "Bakgrund", + "Egen", + "Namn", + "Skapa", + "Format", + "Behåll bildförhållande", + "Kvalitet", + "Duplicera", + "Flytta", + "Smarta filter", + "Radie", + "Mängd", + "Fördelning", + [ + "Enhetlig", + "Gaussisk" + ], + "Monokromatisk", + "Cellstorlek", + "Mönster", + "flöde", + "styrka", + "skyddad detalj", + "fyll typ", + "Textur", + "darr", + "Gräns", + "källa", + "Mål", + "Kanaler", + "mask", + "densitet", + "liera", + [ + "Sökväg", + "form", + "pixelar" + ], + "former", + "Sidor", + "preferenser", + [ + "längd", + null, + null + ], + "reducera oljud", + "färger", + "distanser", + null, + null, + null, + null, + [ + null, + null, + null, + null + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Färg", + [ + "Ingen", + "Röd", + "Orange", + "Gul", + "Grön", + "Blå", + "Violett", + "Grå", + "Vit", + "Transparent", + null + ] + ], + [ + "Skugga", + "Innerskugga", + "Yttre glöd", + "Inre glöd", + "Avfasning och relief", + "Färgöverlägg", + "Övertoningsöverlägg", + "Mönsteröverlägg", + "Satäng", + "Kantstreck", + "Blandningsval" + ], + [ + "Spetsform", + "Spetsdynamik", + "Utspridning", + "Färgdynamik", + [ + "Storleksvariation", + "Minimal diameter", + "Vinkelvariation", + "Rundhetsvariation", + "Minimal rundhet" + ], + [ + "Lägesvariation", + "Antal", + "Antalsvariation" + ], + [ + "Förgrunds- /Bakgrundsvariation", + "Nyansvariation", + "Mättnadsvariation", + "Ljushetsvariation" + ], + [ + "Välj kloningskälla genom att hålla nere Alt och klicka på bilden", + null, + null, + null, + null, + null + ] + ], + [ + "Radavstånd", + "Knipning", + "Baslinjeförskjutning" + ], + [ + "Hela innehållet", + "Aktuellt lager", + "Markering", + null + ], + [ + "Byt ut", + "Koppling", + "Skillnad", + "Korsning", + "???" + ], + [ + [ + "Linjär", + "Radiell", + "Vinkel", + "Reflekterad", + "Diamant", + "form ström" + ], + [ + "Mjukare", + "Exakt" + ], + [ + "Yttre avfasing", + "Inre avfasning", + "Relief", + "Kuddrelief", + "drag ciselera" + ], + [ + "mjukt", + null, + null + ], + [ + "Upp", + "Ned" + ], + [ + "Utanför", + "Centrera", + "Inne" + ], + [ + "Skuggor", + null, + null + ], + [ + null, + null + ], + [ + null, + null, + null + ] + ], + [ + null, + null, + null, + null, + [ + null, + "Centrera horisontellt", + null, + null, + "Centrera vertikalt", + null, + null + ] + ], + [ + null, + "Nuvarande projekt", + "Nytt projekt", + "Upplösning", + null, + "Ett nytt projekt skapades.", + null + ], + [ + null, + null, + null, + null, + [ + "Horisontell", + "Vertikal" + ], + [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "Fisköga", + null, + null, + null, + null + ], + [ + "Typsnitt", + "är inte tillgänglig", + null + ], + [ + null, + null + ] + ], + [ + "laddad", + "tillagd", + null, + null, + null, + null + ], + [ + null, + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + "Brus", + [ + "Lägg till brus", + null, + "Damm & Repor", + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + "Rendera", + [ + null, + null + ], + null, + [ + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + "Hitta Kanter" + ], + "Övrigt", + [ + null, + null, + null, + null, + null, + null + ], + [ + "Odefinierad yta" + ] + ] + ], + [ + [ + "Tiedosto", + "Muokkaa", + "Kuva", + "Taso", + "Kansio", + "Valinta", + "Suodatin", + "Näkymä", + "Ikkuna", + "Kieli", + "Kirjaudu sisään", + "Kirjaudu ulos", + "Luo käännös", + [ + "farsi", + "persian", + "Takaisin" + ], + "Enemmän", + "Teema", + "Käytä WebGL" + ], + [ + "Avaa", + "Julkaise verkossa (Imgur)", + "Tallenna", + "Tallenna PSD:nä", + "Tulosta", + "Avaa osoitteesta", + "Avaa tietokoneelta", + "Yhdistä Google Drive:en", + "Tuo...", + "Tuo objektit", + "Skriptit", + "Avaa ja sijoita" + ], + [ + "Askel eteenpäin", + "Askel taaksepäin", + "Pyyhi", + "Täytä", + "Muunna", + "Pyöritä", + "Vaakapeilikuva", + "Pystypeilikuva", + "Kumoa / Tee uudelleen", + "Perspektiivi" + ], + "Säädöt", + [ + "Kirkkaus / kontrasti", + "Tasojen säätö", + "Käyrien säätö", + "Valotus", + "Sävyeloisuus", + "Sävy / kylläisyys", + "Väritasapaino", + "Mustavalko", + "Valokuvasuodatin", + "Kanavamikseri", + "Värihaku", + "Negatiivi", + "Porrasta", + "Kynnys", + "Liukuvärikartta", + "Valikoiva väri", + [ + null, + null, + null + ] + ], + [ + "Leikkaa", + "Kopioi", + "Liitä", + "Uusi", + "Poista", + "Laita päälle", + "Poista käytöstä", + "Kopioi yhdistetty", + null + ], + [ + "Monista taso", + "Uusi säätötaso", + "Rasterimaski", + "Vektorimaski", + "Lisää (näytä kaikki)", + "Lisää (kätke kaikki)", + "Leikkuumaski", + "Muunna älyobjektiksi", + "Rasteroi", + "Ryhmitä tasot", + "Yhdistä alas", + "Yhdistä ylös", + "Yhdistä tasot", + "Uusi taso", + "Ota rasterimaski käyttöön", + "Ota rasterimaski pois käytöstä", + "Ota vektorimaski käyttöön", + "Ota vektorimaski pois käytöstä", + "Ota leikkuumaski käyttöön", + "Ota leikkuumaski pois käytöstä", + "Uusi kansio", + "Uusi rasterimaski", + "Poista rasterimaski", + "Uusi vektorimaski", + "Poista vektorimaski", + "Linkkaa rasterimaski", + "Poista rasterimaskin linkitys", + "Linkkaa vektorimaski", + "Poista vektorimaskin linkitys", + "Ota tason tehosteet käyttöön", + "Ota tason tehosteet pois käytöstä", + "Poista taso", + "Tason läpinäkyvyyden muutos", + "Sekoituksen muutos", + "Rasteroi tason tyyli", + "Tasojen järjestys", + [ + "Uuden älyobjektin luominen", + "Älyobjektin päivitys", + "Älyobjektin sijoitus" + ], + "Nimen muutos", + "Värin muutos", + "Muokkaa säätötasoa", + "Muunna muodoksi", + "Ota suodatinmaski käyttöön", + "Ota suodatinmaski pois käytöstä", + "Ota älysuodattimet käyttöön", + "Ota älysuodattimet pois käytöstä", + "Lisää suodatinmaski", + "Poista suodatinmaski", + "Pyyhi älysuodattimet", + [ + [ + "Täyttö värillä", + "Täyttö liukuvärillä", + "Täyttö kuviolla" + ], + "Uusi täyttökerros", + "Muokkaa täyttökerrosta" + ], + "Kopioi tasoksi", + null, + "Poista tasotyyli", + null, + null, + [ + "Linkitä tasot", + "Poista tasojen linkitys" + ], + "Järjestä", + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Kaikki", + "Kumoa valinta", + "Muu", + "Muokkaa", + "Laajenna", + "Supista", + "Häivytä", + "Siirrä valintaa", + null, + "Reunus", + null, + null, + null + ], + [ + "Zoomaa sisään", + "Zoomaa ulos", + "Apuviivat", + "Viivaimet", + null, + "Napsahtaa", + null, + null, + null, + null + ], + [ + "Historia", + "Tasot", + "Ominaisuudet", + "Sivellin", + "Kirjain", + "Kappale", + null, + null, + null + ], + [ + "Sivellintyökalu", + "Kloonisivellin", + "Rajaustyökalu", + "Kumi", + "Ellipsivalinta", + "Pipetti", + "Liukuvärityökalu", + "Käsi", + "Tekstityökalu", + "Lassovalinta", + "Magneettinen lassovalinta", + "Siirtotyökalu", + "Taikasauva", + "Maalipurkki", + "Monikulmiolassovalinta", + "Suorakulmiovalinta", + "Vapaa muunto", + "Zoomaus", + "Sumennus Työkalu", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "Suorakulmio", + null, + null, + "Viiva", + null, + null, + null + ], + [ + "Ota kuva", + "Värivalitsin", + "Korkeusrajan editori", + "Piirtoalue", + "Monista kohteeseen ...", + "Liukuvärieditori", + "Tason tyyli", + "Uusi projekti", + "Tallenna verkkoon", + "Vääristä", + "Kuvan koko", + null, + null, + null + ], + [ + "Läpinäkyvyys", + "Tehosteet", + "Kirkkaus", + "Kontrasti", + "Kanava", + "Valotus", + "Siirtymä", + "Gamman korjaus", + "Sävy", + "Kylläisyys", + "Valoisuus", + "Väritä", + "Aluerajaus", + "Eloisuus", + "Koko", + "Kulma", + "Pyöreys", + "Kovuus", + "Välistys", + "Sekoitustapa", + "Näytteen koko", + "Korkeusraja", + "Tyyli", + "Käänteinen", + "Toleranssi", + "Vierekkäiset", + "Täyttö", + "Käytä globaalia kulmaa", + "Etäisyys", + "Levitys", + "Kohina", + "Heittovarjon sisäpuolen aukko", + "Tekniikka", + "Suunta", + "Syvyys", + "Pehmennä", + "Moodi", + "Liukuväri", + "Skaalaus", + "Kohdista tason kanssa", + "Sijainti", + "Leveys", + "Korkeus", + "Määränpää", + "Tyyppi", + "Piirtoväri", + "Taustaväri", + "Muu", + "Nimi", + "Luo", + "Rakenne", + "Pidä kuvasuhde", + "Laatu", + "Monista", + "Siirrä", + "Älysuodattimet", + "Säde", + "Määrä", + "Jakauma", + [ + "Tasainen", + "Gauss" + ], + "Mustavalkoinen", + "Solun koko", + null, + null, + "Voimakkuus", + null, + null, + "Tekstuuri", + null, + "Reuna", + null, + null, + "Kanavat", + null, + null, + null, + [ + null, + "Muoto", + "Pikselit" + ], + null, + null, + null, + [ + null, + null, + null + ], + null, + null, + null, + null, + null, + null, + "Määritä uusi", + [ + null, + null, + "Mobiili", + "Mainokset" + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Väri", + [ + "Tyhjä", + "Punainen", + "Oranssi", + "Keltainen", + "Vihreä", + "Sininen", + "Purppura", + "Harmaa", + "Valkoinen", + "Läpinäkyvä", + null + ] + ], + [ + "Heittovarjo", + "Sisävarjo", + "Ulkoinen hohto", + "Sisäinen hohto", + "Viiste ja korkokuva", + "Väripäällyste", + "Liukuväripäällyste", + "Kuviopäällyste", + "Satiini", + "Viiva", + "Sekoitusvaihtoehdot" + ], + [ + "Päädyn muoto", + "Päädyn dynamiikka", + "Hajonta", + "Värien dynamiikka", + [ + "Koon tärinä", + "Minimihalkaisija", + "Kulman tärinä", + "Pyöreyden tärinä", + "Minimipyöreys" + ], + [ + "Sijainnin tärinä", + "Lukumäärä", + "Lukumäärän tärinä" + ], + [ + "Piirtovärin/taustavärin tärinä", + "Sävyn tärinä", + "Kylläisyyden tärinä", + "Kirkkauden tärinä" + ], + [ + "Valitse kloonauksen lähde pitämällä Alt-näppäintä pohjassa ja klikkaamalla kuvaa.", + null, + null, + null, + null, + null + ] + ], + [ + "Rivivälistys", + "Merkkitiheys", + "Peruslinjan nosto" + ], + [ + "Kaikki sisältö", + "Tämänhetkinen taso", + "Valinta", + null + ], + [ + "Korvaa", + "Liitto", + "Eroavaisuus", + "Leikkaus", + "XOR" + ], + [ + [ + "Lineaarinen", + "Radiaalinen", + "Kulma", + "Peilattu", + "Timantti", + null + ], + [ + "Pehmeämpi", + "Tarkempi" + ], + [ + "Ulompi viiste", + "Sisäinen viiste", + "Korkokuva", + "Tyynykorkokuva", + "Reunakorkokuva" + ], + [ + "Sileä", + "Kova taltta", + "Pehmeä taltta" + ], + [ + "Ylös", + "Alas" + ], + [ + "Ulkopuolelle", + "Keskelle", + "Sisäpuolelle" + ], + [ + null, + null, + null + ], + [ + null, + null + ], + [ + null, + null, + null + ] + ], + [ + "Valitse objekti osoittimen alla", + "Muuntovalinnat", + "Pikseli pikseliin", + "Sovita alueelle", + [ + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + "Laittaa sisään", + "Tämänhetkinen projekti", + "Uusi projekti", + "Resoluutio", + "Lisätty tämänhetkiseen projektiin.", + "Uusi projekti luotiin.", + "Käyttöoikeus kameraan estettiin." + ], + [ + "Suuntaus", + "Väännä", + "Vaakavääristys", + "Pystyvääristys", + [ + "Vaaka", + "Pysty" + ], + [ + "Ei", + "Kaari", + "Alempi kaari", + "Ylempi kaari", + "Holvikaari", + "Pullistus", + "Alempi kuori", + "Ylempi kuori", + "Lippu", + "Aalto", + "Kala", + "Nosto", + "Kalansilmä", + "Paisutus", + "Puristus", + "Kierre", + null + ], + [ + "Kirjasin", + "ei ole saatavilla", + "Piirretään käyttäen" + ], + [ + null, + null + ] + ], + [ + "ladattu", + "lisätty", + "Siirrä apuviivaa", + "Poista apuviiva", + "Lisää apuviiva", + null + ], + [ + "Suodatingalleria", + [ + [ + null, + [ + null, + null, + null, + null, + "Kutista", + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "Sumenna", + [ + "Keskiarvo", + "Sumenna", + "Sumenna lisää", + "Laatikkosumennus", + "Gauss-sumennus", + "Samea linssi", + "Samea liike", + null, + null, + null, + null + ], + "Vääristä", + [ + null, + "Nipistä", + null, + null, + null, + null, + null + ], + "Kohina", + [ + "Lisää kohinaa", + null, + null, + "Mediaani" + ], + "Pikselöi", + [ + null, + "Kristallisoi", + null, + null, + null, + null, + null + ], + "Piirrä", + [ + "Pilvet", + null + ], + "Terävöitä", + [ + "Terävöitä", + "Terävöitä reunat", + "Terävöitä lisää", + null, + null + ], + "Tyylittele", + [ + "Hajota", + "Korkokuva", + "Työnnä ulos", + "Etsi reunat" + ], + null, + [ + null, + null, + "Maksimi", + "Minimi", + null, + null + ], + [ + "Määrittämätön alue" + ] + ] + ], + [ + [ + "Dosya", + "Düzenle", + "Resim", + "Katman", + "Klasör", + "Seç", + "Filtre", + "Görünüm", + "Pencere", + "Dil", + "Giriş Yap", + "Çıkış", + "Tercüme Oluştur", + [ + "Hesap", + "Servis Özellikleri", + "Geri" + ], + "Daha Fazla", + "Tema", + "WebGL Versiyon" + ], + [ + "Aç", + "Online Yayınla", + "Kaydet", + "PSD olarak Kaydet", + "Yazdır", + "URL Bağlantısını Aç", + "Bilgisayardan aç", + "Google Drive bağlan", + "Farklı Kaydet", + "Dışarı Aktar", + "Kod", + "Aç ve Yerleştir" + ], + [ + "İleri", + "Geri", + "Temizle", + "Doldur", + "Dönüştür", + "Döndür", + "Yatay Çevir", + "Dikey Çevir", + "Geri / İleri", + "Perspektif" + ], + "Ayarlama", + [ + "Parlaklık / Kontrast", + "Seviye", + "Eğriler", + "Poz", + "Titreşim", + "Ton / Doygunluk", + "Renk Dengesi", + "Siyah & Beyaz", + "Fotoğraf Filtresi", + "Kanal Değiştirici", + "Renk Arama", + "Ters Çevir", + "Poster", + "Eşik", + "Gradyan Haritası", + "Renk Seçici", + [ + "Otomatik Tonlama", + "Otomatik Kontrast", + "Otomatik Renklendir" + ] + ], + [ + "Kes", + "Kopyala", + "Yapıştır", + "Yeni", + "Sil", + "Etkinleştirme", + "Devre Dışı Bırak", + "Birleştirerek Kopyala", + "Uygula" + ], + [ + "Katman Kopyala", + "Yeni Ayar Katmanı", + "Raster Maskesi", + "Vektör Maskesi", + "Ekle (Tümünü)", + "Ekle (Tümünü Gizle)", + "Kırpma Maskesi", + "Küçük Nesneye Çevir", + "Rasterleştir", + "Katmanları Grupla", + "Birleştir", + "Yukarıdakiyle Birleştir", + "Katmanları Birleştir", + "Yeni Katman", + "Raster Maskesini Etkinleştir", + "Raster Maskesini Kaldır", + "Vektör Maskesini Etkinleştir", + "Vektör Maskesini Kaldır", + "Kırpma Maskesini Etkinleştir", + "Kırpma Maskesini Kaldır", + "Yeni Dosya", + "Raster Maskesi Ekle", + "Raster Maskesini Sil", + "Vektör Maskesi Ekle", + "Vektör Maskesini Sil", + "turkce", + "Rasterize Maskesini Ayır", + "osar", + "Vektör Maskesinin Bağlantısını Kaldır", + "Katman Efektlerini Etkinleştir", + "Katman Efektlerini Kaldır", + "Katmanı Sil", + "Katman Opaklığını Değiştir", + "Katman görünümü değiştir", + "Katman Stilini Sıfırla", + "Katman sıralaması", + [ + "Akıllı Obje Oluşturuluyor", + "Akıllı Obje Güncelleniyor", + "Akıllı Nesneyi Yerleştirme" + ], + "İsim Değiştir", + "Renk Değiştir", + "Ayarlama Katmanını Düzenle", + "Şekile Dönüştür", + "Filtre maskesini etkinlestir", + "Filtre maskesini etkinsizleştir", + "Akıllı Filtreleri Etkinleştir", + "Akıllı Filtreleri Devre Dışı Bırak", + "Filtre Maskesi Ekle", + "Filtre Maskesini Sil", + "Akıllı Filtreleri Temizle", + [ + [ + "Katı Renk Dolgusu", + "Degrade Dolgusu", + "Desen Dolgusu" + ], + "Yeni Dolgu Katmanı", + "Dolgu Katmanını Değiştir" + ], + "Önceki Katmanı Kopyala", + "A", + "Katman Stilini Sil", + "Akıllı Filtreyi Hareket Ettir", + "Akıllı Filtreyi Sil", + [ + "Katmanları Bağla", + "Katmanları Ayır" + ], + "Düzenle", + [ + "Öne Getir", + null, + null, + "Geriye Götür" + ], + [ + null, + null + ] + ], + [ + "Tümü", + "Seçimi Kaldır", + "Çevir", + "Düzenle", + "Genişlet", + "Kontrast", + "A", + "Seçimi Taşı", + "Renk Aralığı", + "Çerçeve", + "A", + "Kenarları yumuşat", + "Seçimi İyileştir" + ], + [ + "Büyült", + "Kücült", + "Kılavuzlar", + "Kurallar", + "Kafes", + "Yakala", + "Şuraya Yakala", + null, + null, + null + ], + [ + "Geçmiş", + "Katmanlar", + "Özellikleri", + "Fırça", + "Karakter", + "Paragraf", + null, + null, + null + ], + [ + "Fırça Aracı", + "Klonlama Aracı", + "Kesme Aracı", + "Silgi Aracı", + "Elips Seçici", + "Damlalık", + "Degrade Aracı", + "El Aracı", + "Yazı Aracı", + "Kement", + "Manyetik Kement Seçici", + "Taşıma Aracı", + "Sihirli Değnek", + "Boya Kovası", + "Çokgen Kement", + "Dikdörtgen İşaretleme", + "Serbest Dönüştürme", + "Yakınlaştırma", + "Bulanıklaştırma", + "Keskinleştirme", + "Leke", + "Soldurma", + "Yakma", + "Sünger", + "Nokta Düzeltme Fırçası", + "Düzeltme Fırçası", + "Yama", + "Yol Seçimi", + "Doğrudan Seçim", + "Kalem", + "Serbest Biçim Kalemi", + "Özel Şekil", + "Dikdörtgen", + "Elips", + "Çokgen Şekil", + "Çizgi", + "Cetvel", + "Hızlı Seçim", + "Kalem Aracı" + ], + [ + "Fotoğraf Çek", + "Damlalık", + "Kontur Editörü", + "Tuval Alanı", + "Kopya Ekle", + "Eğik İçerik", + "Katman Sitili", + "Yeni Proje", + "Web için Kaydet", + "Eğrilik", + "İmaj Boyutu", + null, + null, + "Klavye Kısayolları" + ], + [ + "Opaklık", + "Efekt", + "Parlaklık", + "Kontrast", + "Kanal", + "Poz", + "Ofset", + "Gama Düzeltmesi", + "Ton", + "Doygunluk", + "Aydınlık", + "Renklendirme", + "Aralık", + "Titreşimlilik", + "Boyut", + "Açı", + "Yuvarlaklık", + "Sertlik", + "Aralık", + "Harmanlama Modu", + "Örnek Boyutu", + "Kontur", + "Stil", + "Ters Çevir", + "Tolerans", + "Bitişik", + "Doldur", + "Genel Açıyı Kullan", + "Mesafe", + "Yayılmış", + "Gürültü", + "Gölge Düşür", + "Teknik", + "Yön", + "Derinlik", + "yumuşatmak", + "Mod", + "Gradyan", + "Ölçek", + "Katmanla hizala", + "Pozisyon", + "Genişlik", + "Yükseklik", + "Destinasyon", + "Tip", + "Ön plan", + "Arkaplan", + "Özel", + "İsim", + "Oluştur", + "Format", + "En-boy oranını koru", + "Kalite", + "Çokla/Tekrarla", + "Taşı", + "Akıllı Filtreler", + "Yarıçap", + "Tutar", + "Dağılım", + [ + "Genel", + "Gauss" + ], + "Tek renkli", + "Hücre Boyutu", + "Şablon", + "Akış", + "Sertlik", + "Ayrıntıyı Koru", + "Dolgu Türü", + "Doku", + "Seğirme", + "Kenar", + "Kaynak", + "Hedef", + "Kanallar", + "Maske", + "Yoğunluk", + "Hizalı", + [ + "Yol", + "Şekil", + "Piksel" + ], + "Şekiller", + "Kenarlar", + "Özellikler", + [ + "Uzunluk", + null, + null + ], + null, + "Renkler", + "Mesafeler", + null, + null, + null, + null, + [ + "Fotoğraf", + null, + null, + null + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Renk", + [ + "Yok", + "Kırmızı", + "Turuncu", + "Sarı", + "Yeşil", + "Mavi", + "Mor", + "Gri", + "Beyaz", + "Şeffaf", + null + ] + ], + [ + "Gölge Düşür", + "İç Gölge", + "Dış Işıma", + "İç Işıma", + "Konik ve kabartma", + "Renk Yerleşimi", + "Gradyan Yerleşimi", + "Desen Yerleşimi", + "Pürüzsüzleştir", + "Kalınlık", + "Karıştırma seçenekleri" + ], + [ + "Uç Biçimi", + "İpucu Dinamikleri", + "Saç", + "Renk Dinamikleri", + [ + "Titreştirme Boyutu", + "Minimum Çap", + "Jitter Açısı", + null, + "Minimum Yuvarlaklık" + ], + [ + null, + "Adet", + null + ], + [ + null, + null, + null, + null + ], + [ + "Alt (veya K) tuşunu basılı tutun ve görüntüyü tıklatarak kopyalama kaynağını seçin.", + null, + null, + null, + null, + null + ] + ], + [ + "Başlangıç", + "Takip", + null + ], + [ + "Tüm İçerik", + "Geçerli Katman", + "Seçim", + null + ], + [ + "Değiştir", + "Birim", + null, + "Kesiştir", + null + ], + [ + [ + "Doğrusal", + null, + "Açı", + null, + "Elmas", + null + ], + [ + null, + "Kesin" + ], + [ + null, + null, + "Kabartma", + null, + null + ], + [ + "Yumuşatıcı", + null, + "Yumuşak Oygu" + ], + [ + "Yukarı", + "Aşağı" + ], + [ + null, + "Merkez", + null + ], + [ + null, + null, + "Önemli" + ], + [ + "Songun", + "Doyur" + ], + [ + null, + null, + null + ] + ], + [ + "İmlecin altındaki nesneyi seç", + "Dönüşüm kontrolleri", + "Piksel Piksele", + null, + [ + "Sol Kenarları Hizala", + "Yatay Merkez", + null, + "Üst Kenarları Hizala", + "Dikey Merkez", + "Alt Kenarları Hizala", + null + ] + ], + [ + null, + "Geçerli Proje", + "Yeni Proje", + null, + "Mevcut projeye eklendi.", + "Yeni proje oluşturuldu.", + "Kamera erişimi reddedildi." + ], + [ + null, + "Bük", + null, + null, + [ + "Yatay", + "Dikey" + ], + [ + null, + "Yay", + null, + "Üst Yay", + "Kavis", + "Çıkıntı", + null, + null, + "Bayrak", + "Dalga", + "Balık", + null, + "Balık gözü", + "Şişirmek", + "Sıkmak", + null, + "Özel" + ], + [ + "Yazı tipi", + null, + "Kullanılarak oluşturulacak" + ], + [ + "Renkleri Değiştir", + "Varsayılan: Beyaz ve Siyah" + ] + ], + [ + "yüklendi", + "eklendi", + null, + "Kılavuzu Sil", + "Guid Ekle", + "Yükleniyor" + ], + [ + "Filtre Galerisi", + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "Bulanıklık", + [ + "Ortalama", + "Bulanıklık", + "Daha Fazla Bulanık", + "Kutu Bulanıklığı", + "Gauss Bulanıklığı", + "Lens Bulanıklığı", + "Hareket Bulanıklığı", + "Radyal Bulanıklık", + "Şekil Bulanıklığı", + "Akıllı Bulanıklık", + "Yüzey Bulandırma" + ], + "Çarpıtmak", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Gürültü", + [ + "Gürültü Ekle", + "Benek", + null, + "Medyan" + ], + "Pikselleştir", + [ + "Renkli Yarım Tonlu", + null, + "Yön", + "Parça", + null, + "Mozaik", + null + ], + "İşle", + [ + null, + null + ], + "Keskinlik", + [ + "Keskinleştirmek", + null, + "Daha Fazla Keskinleştir", + null, + "Keskin Maske" + ], + "Stilize", + [ + "Yaygın", + "Kabartma", + "Derinlik", + "Sınırları Bul" + ], + "Diğer", + [ + "Özel", + "Yüksek Geçiş", + "Maksimum", + "Minimum", + "Denge", + null + ], + [ + "Tanımsız Alan", + "Şeffaf Olarak Ayarla", + "Kenar Piksellerini Tekrarla", + "Etrafına Sar", + "Dosya" + ] + ] + ], + [ + [ + "Plik", + "Edycja", + "Obraz", + "Warstwa", + "Katalog", + "Wybierz", + "Filtr", + "Widok", + "Okno", + "Język", + "Zaloguj się", + "Wyloguj się", + "Stwórz tłumaczenie", + [ + "Konto", + "Warunki korzystania", + "Powrót" + ], + "Więcej", + "Skin", + "Użyj WebGL" + ], + [ + "Otwórz", + "Publikuj online (Imgur)", + "Zapisz", + "Zapisz jako PSD", + "Drukuj", + "Otwórz z adresu URL", + "Otwórz z komputera", + "Połącz z Google Drive", + "Eksportuj jako", + "Eksportuj zasoby", + "Skrypt", + "Otwórz i umieść" + ], + [ + "Następny krok", + "Poprzedni krok", + "Wyczyść", + "Wypełnij", + "Przekształć", + "Obróć", + "Przerzuć w poziomie", + "Przerzuć w pionie", + "Cofnij / Ponów", + "Perspektywa" + ], + "Dostosowanie", + [ + "Jasność / Kontrast", + "Poziomy", + "Krzywe", + "Ekspozycja", + "Jaskrawość", + "Barwa / Nasycenie", + "Balans kolorów", + "Czarny i Biały", + "Filtr fotograficzny", + "Mikser kanałów", + "Wyszukiwanie kolorem", + "Odwróć", + "Posteryzacja", + "Próg", + "Mapa gradientu", + "Kolor selektywny", + [ + "Odcień automatyczny", + "Kontrast automatyczny", + "Kolor automatyczny" + ] + ], + [ + "Wytnij", + "Kopiuj", + "Wklej", + "Nowy", + "Usuń", + "Włącz", + "Wyłącz", + "Kopiuj scalone", + "1" + ], + [ + "Duplikuj warstwę", + "Nowa warstwa dopasowania", + "Maska rastrowa", + "Maska wektorowa", + "Dodaj (pokaż wszystko)", + "Dodaj (ukryj wszystko)", + "Maska przycinająca", + "Konwertuj na obiekt inteligentny", + "Rasteryzuj", + "Grupowanie warstw", + "Scal w dół", + "Scal w górę", + "Scal warstwy", + "Nowa warstwa", + "Włącz maskę rastrową", + "Wyłącz maskę rastrową", + "Włącz maskę wektorową", + "Wyłącz maskę wektorową", + "Włącz maskę przycinającą", + "Wyłącz maskę przycinającą", + "Nowy folder", + "Dodaj maskę rastrową", + "Usuń maskę rastrową", + "Dodaj maskę wektorową", + "Usuń maskę wektorową", + "Połącz rastrową maskę", + "Rozłącz rastrową maskę", + "Połącz wektorową maskę", + "Rozłącz wektorową maskę", + "Włącz efekty warstwy", + "Wyłącz efekty warstwy", + "Usuń warstwę", + "Zmiana krycia warstwy", + "Zmiana mieszania", + "Rasteryzuj styl warstwy", + "Kolejność warstwy", + [ + "Tworzenie inteligentnego obiektu", + "Aktualizacja inteligentnego obiektu", + "Umieszczenie inteligentnego obiektu" + ], + "Zmiana nazwy", + "Zmiana koloru", + "Edycja warstwy dopasowania", + "Konwertuj na kształt", + "Włącz maskę filtru", + "Wyłącz maskę filtru", + "Włącz inteligentne filtry", + "Wyłącz inteligentne filtry", + "Dodaj maskę filtra", + "Usuń maskę filtru", + "Wyczyść filtry inteligentne", + [ + [ + "Wypełnienie kolorem", + "Wypełnienie gradientem", + "Wypełnienie wzorem" + ], + "Nowa warstwa wypełnienia", + "Modyfikuj warstwę wypełnienia" + ], + "Kopiuj poprzez warstwę", + "Maska filtru", + "Usuń Styl Warstwy", + "Przesuń Filtr Inteligentny", + "Usuń Filtr Inteligentny", + [ + "Połącz warstwy", + "Odłącz warstwy" + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Wszystko", + "Odznacz", + "Odwróć", + "Zmień", + "Rozszerz", + "Zawęź", + "Wtapianie", + "Przesuń Zaznaczenie", + "Zakres kolorów", + "Granica", + "Przekształć zaznaczenie", + "Zdefiniuj brzeg", + "Poprawa zaznaczenia" + ], + [ + "Przybliż", + "Oddal", + "Poradniki", + "Linijki", + "Siatka", + "Przyciągnij", + "Przyciągnij do", + "Obszar dokumentu", + "Siatka pikseli", + "Ścieżki" + ], + [ + "Historia", + "Warstwy", + "Właściwości", + "Pędzel", + "Znak", + "Akapit", + "Informacje", + "Kompozycje warstw", + "Próbki" + ], + [ + "Narzędzia pędzla", + "Narzędzia klonowania", + "Narzędzie kadrowania", + "Narzędzia usuwania", + "Zaznaczenie elipsy", + "Pipeta", + "Gradient", + "Rączka", + "Tekst", + "Zaznaczenie lassem", + "Zaznaczenie magnetycznym lassem", + "Przesunięcie", + "Różdżka", + "Wiadro z farbą", + "Lasso wielokątne", + "Prostokąt", + "Przekształć Swobodnie", + "przybliżanie i oddalanie obrazu", + "Rozmycie", + "Wyostrzenie", + "Smużenie", + "Rozjaśnianie", + "Ściemnianie", + "Gąbka", + "Ujędrniający pędzel", + "Retusz", + "Łatanie", + "Wybierz ścieżkę", + "Zaznaczenie bezpośrednie", + "Pióro", + "Pióro dowolne", + "Niestandardowy Kształt", + "Prostokąt", + "Elipsa", + "Kształt Parametryczny", + "Linia", + "Linijka", + "Szybki wybór", + "Ołówek" + ], + [ + "Zrób zdjęcie", + "Wybieranie koloru", + "Edytor konturów", + "Wielkość obszaru roboczego", + "Powiel do ...", + "Edytor Griadientu", + "Styl warstwy", + "Nowy projekt", + "Zapisz do sieci", + "Wypaczanie", + "Rozmiar obrazu", + "Wektoryzuj Bitmapę", + "Przytnij", + "Skróty klawiszowe" + ], + [ + "Przezroczystość", + "Efekty", + "Jasność", + "Kontrast", + "Kanał", + "Ekspozycja", + "Kompensacja", + "Korekcja gammy", + "Barwa", + "Nasycenie", + "Jasność", + "Koloryzuj", + "Zasięg", + "Jaskrawość", + "Rozmiar", + "Kąt", + "Zaokrąglenie", + "Twardość", + "Odstęp", + "Opcja mieszania", + "Wielkość próbki", + "Kontura", + "Styl", + "Cofnij", + "Tolerancja", + "Ciągłe", + "Wypełnij", + "Użyj globalnego kąta", + "Odległość", + "Rozpiętość", + "Szum", + "Warstwa odcina cień", + "Technika", + "Kierunek", + "Głębia", + "Zmiękczyć", + "Tryb", + "Gradient", + "Skala", + "Dopasuj do warstwy", + "Pozycja", + "Szerokość", + "Wysokość", + "Cel", + "Typ", + "Pierwszy plan", + "Tło", + "Dostosuj", + "Nazwa", + "Utwórz", + "Format", + "Zachowaj proporcje", + "Jakość", + "Duplikuj", + "Przesuń", + "Sprytne filtry", + "Promień", + "Miara", + "Dystrybucja", + [ + "Jednolity", + "Gaussa" + ], + "Monochromatyczne", + "Rozmiar komórki", + "Wzór", + "Przepływ", + "Siła", + "Chroń Szczegóły", + "Typ Wypełnienia", + "Tekstura", + "Drganie", + "Krawędź", + "Źródło", + "Cel", + "Kanały", + "Maska", + "Gęstość", + "Wyrównane", + [ + "Ścieżka", + "Kształt", + "Piksele" + ], + "Kształty", + "Strony", + "Preferencje", + [ + "Długość", + "Proporcje", + "Dowolny" + ], + "Zmniejsz szum", + "Kolory", + "Odległości", + "RRRR", + "Auto zaznaczenie", + "Znajdź", + "Zdefiniuj nowe", + [ + "Zdjęcie", + "Ekran", + "Mobilne", + "Reklamy" + ], + [ + "Dowolny", + "Stały współczynnik", + "Stały rozmiar" + ], + "Pomoc", + [ + null, + null, + null + ] + ], + [ + "Kolor", + [ + "Brak", + "Czerwony", + "Pomarańczowy", + "Żołty", + "Zielony", + "Niebieski", + "Fioletowy", + "Szary", + "Biały", + "Przezroczysty", + "Czarny" + ] + ], + [ + "Cień zewnętrzny", + "Cień wewnętrzny", + "Zewnętrzna poświata", + "Wewnętrzna poświata", + "Faza i płaskorzeźba", + "Nakładka koloru", + "Nakładka gradientu", + "Nakładka wzorem", + "Satyna", + "Obrys", + "Opcje mieszania" + ], + [ + "Kształt końcówki", + "samochud", + "Rozproszenie", + "Dynamika koloru", + [ + "Rozmiar Drgań", + "Minimalna Średnica", + "Kąt Drgań", + "Okrągłość Drgań", + "Minimalna okrągłość" + ], + [ + "Pozycja Drgań", + "Ilość", + "Ilość Drgań" + ], + [ + "Pierwszy Plan/Tło Drgań", + "Barwa Drgań", + "Nasycenie drgań", + "Jasność drgań" + ], + [ + "Wybierz źródło powielenia przytrzymując Alt (lub K) i klikając na obraz.", + "Zaznacz pierwszy plan na biały, tło czarnym i inny obszar za pomocą szarego.", + "Warstwa nie jest edytowalna.", + "Warstwa tekstowa musi najpierw zostać zrasteryzowana", + "Obiekt inteligentny musi najpierw zostać zrasteryzowany", + "Wybierz wiele warstw" + ] + ], + [ + "Interlinia", + "Spacjowanie", + "Przesunięcie linii bazowej" + ], + [ + "Wszystkie warstwy", + "Bieżąca warstwa", + "Wybór", + "Bieżąca i niższa" + ], + [ + "Zamień", + "Połączenie", + "Różnica", + "Przecięcie", + "XOR" + ], + [ + [ + "Liniowe", + "Promieniowe", + "Kąt", + "Odbicie", + "Diament", + "Rozerwij Kształt" + ], + [ + "Miększy", + "Dokładny" + ], + [ + "Faza zewnętrzna", + "Faza wewnętrzna", + "Płaskorzeźba", + "Żłobienie", + "Płaskorzeźba obrysu" + ], + [ + "Gładki", + "Dłuto twarde", + "Dłuto miękkie" + ], + [ + "W górę", + "W dół" + ], + [ + "Na zewnątrz", + "W środku", + "Wewnątrz" + ], + [ + "Cienie", + "Półcienie", + "Podświetlenia" + ], + [ + "Zmniejsz nasycenie", + "Zwiększ nasycenie" + ], + [ + null, + null, + null + ] + ], + [ + "Wybierz obiekt pod kursorem", + "Kontroluj transformacje", + "Pixel do Pixela", + "Dopasuj do powierzchni", + [ + "Wyrównaj Lewe Krawędzie", + "Wyrównaj w poziomie", + "Wyrównaj Prawe Krawędzie", + "Wyrównaj Górne Krawędzie", + "Wyrównaj w pionie", + "Wyrównaj Dolne Krawędzie", + "Równe przerwy" + ] + ], + [ + "Umieść w", + "Bieżący projekt", + "Nowy projekt", + "Rozdzielczość", + "Dodano do bieżącego projektu.", + "Utworzono nowy projekt.", + "Odmówiono dostępu do aparatu." + ], + [ + "Orientacja", + "Pochylenie", + "Zniekształcenie poziome.", + "Odkształcenie pionowe", + [ + "Poziomy", + "Pionowy" + ], + [ + "Brak", + "Łuk", + "Łuk Dolny", + "Łuk Górny", + "Łuk", + "Wybrzuszenie", + "Muszla w dół", + "Muszla w górę", + "Flaga", + "Fala", + "Ryba", + "Wzrost", + "Rybie oko", + "Nadmuchać", + "Wyciskać", + "Wykręcać", + "Niestandardowy" + ], + [ + "Czcionka", + "nie jest dostępny", + "Zostanie wyrenderowane za pomocą" + ], + [ + "Zamień Kolory", + "Domyślnie: Biały i Czarny" + ] + ], + [ + "załadowane", + "dodane", + "Przesuń linię pomocniczą", + "Usuń linię pomocniczą", + "Dodaj linię pomocniczą", + "Ładowanie" + ], + [ + "Galeria filtrów", + [ + [ + "Skraplanie", + [ + "Smużyć", + "Zrekonstruować", + "Wygładzać", + "Wir", + "Kurczyć", + "Wiać", + "Naciśnij w lewo", + "Zamroź", + "Odmroź" + ] + ], + [ + null + ] + ], + "Rozmycie", + [ + "Uśredniony", + "Rozmycie", + "Rozmyj bardziej", + "Rozmycie Pudełkowe", + "Rozmycie Gaussowskie", + "Rozmycie Optyczne", + "Rozmycie Ruchu", + "Rozmycie Radialne", + "Rozmycie Kształtem", + "Inteligentne Rozmycie", + "Rozmycie Powierzchni" + ], + "Przekształć", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Szum", + [ + "Dodaj Szum", + "Odplamkuj", + "Kurz i zarysowania", + "Mediana" + ], + "Pikselizuj", + [ + "Półton", + "Krystalizacja", + "Aspekt", + "Fragmentuj", + "Mezzotinta", + "Mozaika", + "Pointylizacja" + ], + "Renderuj", + [ + "Chmury", + null + ], + "Wyostrz", + [ + "Wyostrz", + "Wyostrz Krawędzie", + "Wyostrz Bardziej", + "Inteligentne Wyostrzenie", + "Wyostrz Krawędzie" + ], + "Stylizacja", + [ + "Rozpraszanie", + "Płaskorzeźba", + "Wytłaczanie", + "Znajdź krawędzie" + ], + "Inne", + [ + "Dostosuj", + "Filtr Górnoprzepustowy", + "Maksimum", + "Minimum", + "Przesunięcie", + "Powtarzać" + ], + [ + "Niezdefiniowany obszar", + "Ustaw jako przezroczyste", + "Powtórz Piksele Brzegowe", + "Owiń w okół", + "Ostatni filtr" + ] + ] + ], + [ + [ + "Berkas", + "Ubah", + "Gambar", + "Lapisan", + "Folder", + "Pilih", + "Penyaring", + "Lihat", + "Jendela", + "Bahasa", + "Masuk", + "Keluar", + "Buat terjemahan", + [ + "Akun", + "Syarat Pelayanan", + "Kembali" + ], + "Lainnya", + "Tema", + "Gunakan WebGL" + ], + [ + "Buka", + "Terbitkan online (Imgur)", + "Simpan", + "Simpan sebagai PSD", + "Cetak", + "Buka melalui URL", + "Buka Melalui Komputer", + "Sambung Dengan Google Drive", + "Ekspor Sebagai", + "Ekspor Aset", + "Skrip", + "Buka & Tempat" + ], + [ + "BAHASA INDONESIA", + "langkah mundur", + "bersih", + "isi", + "rubah", + "Rotasi", + "putar horizontal", + "putar vertikal", + "kembali", + "Perspektif" + ], + "pencocokan", + [ + "pencahayaan", + "level", + "Kurva", + "Kecerahan", + "Vibrance", + "Hue / Saturasi", + "Penyesuaian Warna", + "Hitam & Putih", + "Filter Foto", + "Channel Mixer", + "pencarian warna", + "Inversi", + "Posterize", + "Ambang", + "peta gradasi", + "pemilihan warna", + [ + "Nada Otomatis", + "Kontras Otomatis", + "Warna Otomatis" + ] + ], + [ + "Potong", + "Salin", + "Tempel", + "Baru", + "Hapus", + "ada", + "Nonaktifkan", + "Salin Digabung", + "Terapkan" + ], + [ + "Duplicate Layer", + "Lapisan Penyesuaian Baru", + "Mask Raster", + "Masker Vektor", + "Tambah (Lihat Semua)", + "Tambah (Sembunyikan Semua)", + "Clipping Mask", + "Konversikan ke Smart Object", + "Rasterize", + "Lapisan Kelompok", + "Gabungkan Down", + "Gabung", + "Gabung Lapisan", + "Layer baru", + "Aktifkan Masker Raster", + "Nonaktifkan Mask Raster", + "Aktifkan Vector Mask", + "Nonaktifkan Vector Mask", + "Aktifkan Clipping Mask", + "Nonaktifkan Clipping Mask", + "Folder Baru", + "Tambahkan Mask Raster", + "Hapus Mask Raster", + "Tambahkan Vector Mask", + "Hapus Vector Mask", + "Link Raster Mask", + "Batalkan tautan Masker Raster", + "Link Vector Mask", + "Hapus Mask Vector", + "Aktifkan Efek Lapisan", + "Nonaktifkan Efek Lapisan", + "Hapus Lapisan", + "Perubahan Kegelapan Lapisan", + "Perubahan Campuran", + "Rasterisasi Lapisan", + "Urutan Lapisan", + [ + "Membuat Obyek Pintar", + "Memperbaharui Obyek Pintar", + "Menempatkan Obyek Pintar" + ], + "Ubah Nama", + "Ubah Warna", + "Ubah Penyesuaian Lapisan", + "Konversi ke bentuk", + "Hidupkan Filter Mask", + "Matikan Filter Mask", + "Nyalakan Filter Pintar", + "Matikan Filter Pintar", + "Tambah Filter Mask", + "Hapus Filter Mask", + "Bersihkan Filter Pintar", + [ + [ + "Isi Warna Dasar", + "Isi Gradasi", + "Isi Motif" + ], + "Lapisan Isi Baru", + "Atur Lapisan Isi" + ], + "Lapisan Baru Dengan Disalin", + "Filter Mask", + "Hapus Lapisan Gaya", + "Pindahkan Filter Pintar", + "Hapus Filter Pintar", + [ + "Hubungkan Layer", + "Putushubungkan Antar Lapisan" + ], + "Atur", + [ + "Taruh di Depan", + "Taruh di atasnya", + "Taruh di belakang", + "Taruh di belakangnya" + ], + [ + "Layer Terkunci", + "Kunci perubahan" + ] + ], + [ + "Semua", + "Lepaskan pemilihan", + "Balikan", + "Ubah", + "Tambahkan", + "Kontrak", + "Kehalusan pinggiran", + "Pindahkan pemilih", + "Rentang Warna", + "Garis tepi", + "Pilih untuk perpindahan", + "Haluskan Tepi", + "Pemilih perbaikan gambar" + ], + [ + "Memperbesar", + "Memperkecil", + "Garis bantu", + "Penggaris", + "Garis Bantu Persegi", + "Lekatkan", + "Lekatkan ke", + "Batas dokumen", + null, + "Garis pemotong" + ], + [ + "Riwayat", + "Lapisan", + "Properti", + "Kuas", + "Karakter", + "Paragraf", + "Info", + "Komposisikan Lapisan", + null + ], + [ + "Alat kuas", + "Alat peniru", + "Pemotong", + "Penghapus", + "Pemilih Bundar", + "Ambil sample warna", + "Gradasikan", + "Geserkan Layar", + "Isi kata-kata", + "Garis Pemilih Bebas", + null, + "Pindahkan", + "Pemilih otomatis", + "Isi seluruh area", + "Garis pemilih bersiku", + "Kotak pemilih", + null, + "Besarkan layar", + "Buramkan", + "Pertajamkan", + null, + null, + null, + null, + "Perbaiki titik hitam", + "Kuas Perbaikan", + null, + null, + "Pilih langsung", + "Pulpen", + "Pulpen bebas", + "Bentuk Kustom", + "Persegi", + "Lingkaran/Bundar", + "Bentuk Parametrik", + "Garis", + "Penggaris", + "Pemilihan Cepat", + "Pensil" + ], + [ + "Ambil gambar", + "Ambil contoh warna", + "Pengedit Kontur", + "Ukuran kanvas", + "Duplikatkan ke...", + "Pengedit Gradasi", + "Gaya Lapisan", + "Proyek Baru", + "Simpan untuk web", + "Lengkungkan", + "Ukuran Gambar", + "Vektorkan Bitmap", + "Pangkas", + "Pintasan Keyboard" + ], + [ + "Tingkat transparansi", + "Efek", + "Kecerahan", + "Kontras", + null, + "Tingkat Terang", + null, + "Perbaiki Gamma", + "Hue", + "Tingkat Warna", + "Tingkat pencahayaan", + "Warnai", + "Rentang", + "Tingkat Semarak Warna", + "Ukuran", + "Sudut", + "Tingkat kebulatan", + "Tingkat kekerasan", + "Jarak", + "Modus Penyatuan", + "Ukuran Sampel", + "Kontur", + "Gaya", + "Balikan", + "Tingkat toleransi", + "Dekatkan", + "Isi", + "Gunakan Angle Global", + "Jarak", + "Penyebaran", + "Pecahkan", + null, + "Teknik", + "Arah", + "Kedalaman", + "Kehalusan", + "Modus", + "Gradasi", + "Ukuran", + "Sejajar dengan lapisan", + "Posisi", + "Panjang", + "Lebar", + "Destinasi", + "Tipe", + "Latar depan", + "Latar belakang", + "Kustom", + "Nama", + "Buat", + "Format", + "Jaga Aspek Rasio", + "Kualitas", + "Duplikat", + "Pindahkan", + "Filter Pintar", + "Radius", + "Jumlah", + "Distribusi", + [ + "Seragam", + "Gaussian" + ], + "Monokromatik", + "Ukuran Sel", + "Corak", + "Alur", + "Kuatkan", + "Jaga Detail", + "Tipe isi", + "Tekstur", + "Jitter", + "Sudut", + "Sumber", + "Target", + null, + null, + null, + null, + [ + "Alur", + "Bentuk", + "Piksel" + ], + null, + "Sisi", + "Preferensi", + [ + "Panjang", + "Rasio", + "Semua" + ], + "Kurangi pecah gambar", + "Warna", + "Jarak", + "Tingkat", + "Pilih otomatis", + "Cari", + null, + [ + "Foto", + "Tampilan", + "Telepon", + "Iklan" + ], + [ + null, + "Rasio tetap", + "Ukuran tetap" + ], + "Bantuan", + [ + "Bentuk Langsung", + "Ubah Bentuk Langsung", + null + ] + ], + [ + "Warna", + [ + "Kosong", + "Merah", + "Jingga", + "Kuning", + "Hijau", + "Biru", + "Ungu", + "Abu-Abu", + "Putih", + "Transparansi", + "Hitam" + ] + ], + [ + "Taruh Bayangan", + "Bayangan di dalam", + "Bersinar di luar", + "Bersinar di dalam", + "Sudut dan Timbul", + "Lapisi Warna", + "Lapisi Gradasi", + "Lapisi Corak", + "Satin", + "Garis tepi", + "Pilihan Campuran" + ], + [ + "Titik berbentuk", + "Titik dinamis", + "Hamburkan", + "Warna Dinamis", + [ + "Ukuran Jitter", + "Diameter Minimal", + "Sudut Jitter", + "Tingkat kebulatan Jitter", + "Tingkat minimal kebulatan" + ], + [ + "Posisi Jitter", + "Jumlah", + "Jumlah Jitter" + ], + [ + "Latar Depan/Belakang Jitter", + "Warna Jitter", + "Tingkat warna jitter", + "Tingkat kecerahan jitter" + ], + [ + "Pilih sampel contoh dengan tekan Alt (atau K) terus klik di gambar", + "Tandai Latar Depan pake Putih, Latar Depan pake Item terus Area lainnya pake abu-abu", + "Lapisannya gak bisa diedit", + "Lapisan teks harus di-raterize dulu", + "Smart Object-nya harus di-rasterize dulu", + "Pilih beberapa lapisan" + ] + ], + [ + "Arahkan", + "Lacak", + "Tukar garis dasar" + ], + [ + "Semua Lapisan", + "Lapisan saat ini", + "Pilihan", + "Ini dan bawahnya" + ], + [ + "Ganti", + "Satukan", + "Kurangi", + "Potong", + "Kecualikan" + ], + [ + [ + "Garis lurus", + "Bundar", + "Sudut", + "Cerminkan", + "Berlian", + "Bentuk Semburan" + ], + [ + "Lebih halus", + "Presisi" + ], + [ + "Sudut luar", + "Sudut dalam", + "Timbul", + "Timbulan halus", + "Timbulan keras" + ], + [ + "Halus", + "Pahatan Keras", + "Pahatan Halus" + ], + [ + "Atas", + "Bawah" + ], + [ + "Luar", + "Tengah", + "Dalam" + ], + [ + "Bayangan", + "Cahaya Umumnya", + "Sorotan Cahaya" + ], + [ + "Pudarkan warna", + "Warnai" + ], + [ + "Kecil", + "Sedang", + "Besar" + ] + ], + [ + "Pilih objek di bawah kursor", + "Kontrol transformasi", + "Piksel ke Piksel", + "Sesuaikan dengan Area", + [ + "Sejajarkan dengan Sudut Kiri", + "Tengah secara Horizontal", + "Sejajarkan dengan Sudut Kanan", + "Sejajarkan dengan Sudut Atas", + "Tengah secara Vertikal", + "Sejajarkan dengan Sudut Bawah", + "Samakan jarak" + ] + ], + [ + "Taruh ke dalam...", + "Proyek Sekarang", + "Proyek Baru", + "Resolusi", + "Udah ditambahin ke proyek sekarang", + "Proyek baru udah dibuat", + "Akses ke kamera ditolak" + ], + [ + "Orientasi", + "Bengkokan", + "Distorsi Horizontal", + "Distorsi Vertikal", + [ + "Horizontal", + "Vertikal" + ], + [ + "Gak ada", + "Bentuk Kurva", + "Bentuk kurva bawah", + "Bentuk kurva atas", + "Melengkung", + "Menonjol", + "Bentuk Kerang Bawah", + "Bentuk Kerang Atas", + "Bentuk Bendera", + "Bergelombang", + "Bentuk Ikan", + "Timbul", + "Bentuk Mata Ikan", + "Tonjolkan", + "Remaskan", + "Pelintirkan", + "Bebas" + ], + [ + "Huruf", + "Gak tersedia", + "Bakal dirender pake" + ], + [ + "Tukar warna", + "Default: Putih dan Hitam" + ] + ], + [ + "udah dimuat", + "udah ditambahin", + "Geser Patokan", + "Buang Patokan", + "Tambah Patokan", + "Lagi dimuat... tungguin aja" + ], + [ + "Galeri Filter", + [ + [ + "Cairkan", + [ + "Nodai", + "Buat Ulang", + "Haluskan", + "Putarkan", + "Ciutkan", + "Gembungkan", + "Tekan ke kiri", + "Bekukan", + "Batalkan beku" + ] + ], + [ + null + ] + ], + "Buram", + [ + "Rata-rata", + "Buram", + "Buram Banget", + "Buram bentuk Kotak", + "Buram Gaussian", + "Buram Lensa", + "Buram Gerakan", + "Buram bentuk bundar", + "Buram berbentuk sesuatu", + "Buram Pintar", + "Buram permukaan" + ], + "Distorsi", + [ + "Perpindahan", + "Cubit", + "Koordinat Polar", + "Beriak", + "Pangkas", + "Bentuk menjadi Bundar/Bola", + "Gelombang" + ], + "Pecah Gambar", + [ + "Pecahkan Gambar", + "Hapus debu dan goresan", + "Tambahkan debu dan goresan", + "Median" + ], + "Ubah jadi Pecahan Piksel", + [ + "Ubah jadi Halftone", + "Ubah jadi kristal", + "Segi", + "Potongan", + "Mezzotint", + "Mosaik", + "Titik-Titik" + ], + "Render", + [ + "Berawan", + "Awan-awan aneh" + ], + "Pertajam", + [ + "Pertajam", + "Pertajam tepi", + "Tajam Banget", + "Pertajaman Pintar", + "Batalin Mask Pertajaman" + ], + "Ubah-ubah", + [ + "Baurkan", + "Timbulkan", + "Tarik-Keluarkan", + "Cari Sudut" + ], + "Lainnya", + [ + "Terserah", + null, + "Maksimum", + null, + null, + "Ulang" + ], + [ + null, + "Atur jadi Transparan", + null, + null, + "Filter sebelumnya" + ] + ] + ], + [ + [ + "文件", + "编辑", + "图像", + "图层", + "文件夹", + "选择", + "滤镜", + "视图", + "窗口", + "语言", + "登录", + "注销", + "创建翻译", + [ + "账户", + "服务条款", + "返回" + ], + "更多", + "主题", + "使用WebGL" + ], + [ + "打开", + "在线发布(Imgur)", + "保存", + "另存为 PSD", + "打印", + "从URL打开", + "从电脑打开", + "连接Google Drive", + "导出为", + "导出资源", + "脚本", + "打开并放置" + ], + [ + "前进", + "后退", + "清除", + "填充", + "变形", + "旋转", + "水平翻转", + "垂直翻转", + "撤销/重做", + "透视" + ], + "调整", + [ + "亮度/对比度", + "色阶", + "曲线", + "曝光度", + "抖动", + "色调/饱和度", + "色彩平衡", + "黑白", + "图片滤镜", + "通道混合器", + "颜色查找", + "反向", + "色调分离", + "阈值", + "渐变映射", + "可选颜色", + [ + "自动色调", + "自动对比度", + "自动颜色" + ] + ], + [ + "剪切", + "复制", + "粘贴", + "新建", + "删除", + "启用", + "禁用", + "复制合并", + "应用" + ], + [ + "复制图层", + "新调整图层", + "光栅遮罩", + "矢量蒙版", + "添加(显示全部)", + "添加(隐藏全部)", + "剪切蒙版", + "转化为智能对象", + "栅格化", + "图层组", + "向下合并", + "向上合并", + "合并图层", + "新建图层", + "开启光栅遮罩", + "禁用光栅遮罩", + "开启矢量蒙版", + "禁用矢量蒙版", + "开启剪切蒙版", + "禁用剪切蒙版", + "新建文件夹", + "添加光栅蒙版", + "删除光栅蒙版", + "添加矢量蒙版", + "删除矢量蒙版", + "链接光栅蒙版", + "取消光栅遮罩链接", + "连接矢量蒙版", + "取消矢量蒙版链接", + "启用图层效果", + "禁用图层效果", + "删除图层", + "图层透明度更改", + "混合更改", + "栅格化图层样式", + "图层排序", + [ + "创建只能对象", + "更新智能对象", + "放置智能对象" + ], + "重命名", + "更改颜色", + "编辑调整图层", + "转换为形状", + "开启滤镜遮罩", + "禁用滤镜遮罩", + "开启智能滤镜", + "禁用智能滤镜", + "添加滤镜遮罩", + "删除滤镜遮罩", + "清除智能滤镜", + [ + [ + "填充", + "渐变填充", + "图案填充" + ], + "新建图层", + "修改填充层" + ], + "图层(通过复制)", + "滤镜蒙版", + "删除图层样式", + "移动智能滤镜", + "删除智能滤镜", + [ + "连接图层", + "取消图层连接" + ], + "排列", + [ + "置于顶层", + "前移一层", + "后移一层", + "置于底层" + ], + [ + "图层已锁定", + "锁定修改" + ] + ], + [ + "全部", + "取消选择", + "反选", + "修改", + "扩展", + "收缩", + "羽化", + "移动选区", + "色域", + "边框", + "转换所选项", + "查找边缘", + "恢复选区" + ], + [ + "放大", + "缩小", + "参考线", + "标尺", + "网格", + "快照", + "对齐到", + "页面边界", + "像素网格", + "路径" + ], + [ + "历史记录", + "图层", + "属性", + "笔刷", + "字符", + "段落", + "信息", + "图层组合", + "取样" + ], + [ + "笔刷工具", + "克隆工具", + "剪切工具", + "橡皮工具", + "椭圆选区", + "吸管", + "渐变工具", + "手型工具", + "文字工具", + "套索", + "磁性套索", + "移动", + "魔棒", + "填充", + "多边形套索", + "矩形", + "自由变换", + "放大镜工具", + "模糊", + "锐化工具", + "涂抹工具", + "减淡工具", + "加深工具", + "海绵工具", + "污点修复笔刷工具", + "修复画笔工具", + "修补工具", + "路径选择", + "直接选择", + "钢笔", + "自由钢笔", + "自定形状工具", + "矩形", + "椭圆形", + "形状图形", + "线", + "尺", + "快速选中", + "铅笔工具" + ], + [ + "拍照", + "拾色器", + "等高线编辑器", + "画布大小", + "复制到...", + "渐变编辑器", + "图层样式", + "新建项目", + "另存为网页", + "弯曲", + "图像大小", + "向量位图", + "裁剪", + "键盘快捷键" + ], + [ + "透明度", + "效果", + "亮度", + "对比度", + "通道", + "曝光度", + "补偿", + "伽玛校正", + "色调", + "饱和度", + "明度", + "着色", + "范围", + "抖动", + "大小", + "角度", + "圆度", + "硬度", + "间距", + "混合模式", + "样本大小", + "轮廓", + "样式", + "反向", + "容差", + "连续", + "填充", + "全局视图", + "距离", + "扩展", + "杂色", + "移除阴影", + "技巧", + "方向", + "深度", + "软化", + "样式", + "渐变", + "缩放", + "图层对齐", + "位置", + "宽", + "高度", + "目标", + "文本", + "前景色", + "背景色", + "自定义", + "名字", + "创建", + "格式", + "保持长宽比", + "质量", + "复制", + "更多", + "智能滤镜", + "圆角", + "数量", + "分布", + [ + "统一", + "高斯" + ], + "单色", + "栅格大小", + "样式", + "流", + "强度", + "保护细节", + "填色类型", + "贴图", + "抖动", + "边缘", + "源", + "目标", + "通道", + "蒙版", + "密度", + "对齐", + [ + "路径", + "形状", + "像素" + ], + "图形", + "边", + "首选项", + [ + "长度", + "比例", + "任何" + ], + "降低噪点", + "色彩", + "距离", + "比例", + "自动选择", + "查找", + "定义新的", + [ + "照片", + "屏幕", + "移动", + "广告" + ], + [ + null, + "固定比例", + "固定大小" + ], + "帮助", + [ + "实时形状", + "编辑实时形状", + "相同半径" + ] + ], + [ + "颜色", + [ + "无", + "红", + "橙色", + "黄色", + "绿色", + "蓝色", + "紫色", + "灰色", + "白色", + "透明", + "黑" + ] + ], + [ + "阴影", + "内阴影", + "外发光", + "内发光", + "斜面和浮雕", + "颜色叠加", + "渐变叠加", + "图案叠加", + "光泽", + "描边", + "混合模式" + ], + [ + "笔尖形状", + "提示动态", + "散射", + "动态颜色", + [ + "大小调整", + "最小直径", + "角度调整", + "圆形调整", + "最小圆度" + ], + [ + "位置调整", + "数量", + "分布调整" + ], + [ + "前景/背景调整", + "色调调整", + "饱和度", + "亮度调整" + ], + [ + "通过按住Alt(或K)选择克隆源,并单击图像。", + "用白色标记前景,用黑色标记背景,用灰色标记未知区域。", + "无法编辑图层。", + "必须对文本图层进行栅格化", + "必须对智能对象进行栅格化", + "选择多个图层" + ] + ], + [ + "行距", + "字距", + "基线偏移" + ], + [ + "总量", + "当前图层", + "选择", + "当前&下面" + ], + [ + "替换", + "合并", + "分离", + "交叉", + "排除" + ], + [ + [ + "线性", + "径向", + "角", + "倒影", + "菱形", + "形状脱离" + ], + [ + "柔和", + "精确" + ], + [ + "外斜角", + "内斜角", + "浮雕", + "枕状浮雕", + "边缘浮雕" + ], + [ + "平滑", + "雕刻清晰", + "雕刻柔和" + ], + [ + "上", + "下" + ], + [ + "外部", + "中心", + "内部" + ], + [ + "阴影", + "中间调", + "高亮" + ], + [ + "去色", + "饱和" + ], + [ + "小", + "中", + "大" + ] + ], + [ + "自动选择", + "变换工具", + "像素到像素", + "按屏幕大小缩放", + [ + "左对齐", + "水平居中", + "右对齐", + "顶部对齐", + "垂直居中", + "底部对齐", + "等间距" + ] + ], + [ + "应用图像", + "当前项目", + "新建项目", + "分辨率", + "添加到当前项目中。", + "新项目已创建", + "摄像机的访问被拒绝。" + ], + [ + "定位", + "弯曲变形", + "水平变形", + "垂直变形", + [ + "水平", + "垂直" + ], + [ + "无", + "弧", + "下弧形", + "向上弧度", + "弓形", + "凸起", + "下张", + "上张", + "标记", + "波形", + "搜寻", + "上升", + "鱼眼", + "膨胀", + "挤压", + "扭曲", + "自定义" + ], + [ + "字体", + "不可用", + "将被渲染使用" + ], + [ + "替换颜色", + "默认值:白色和黑色" + ] + ], + [ + "加载", + "添加", + "更多说明", + "删除参考线", + "添加指南", + "加载" + ], + [ + "滤镜组", + [ + [ + "液化", + [ + "涂抹", + "重建", + "平滑", + "旋转", + "压缩", + "放大", + "向左推", + "锁定", + "解锁" + ] + ], + [ + null + ] + ], + "模糊", + [ + "平均", + "模糊", + "高斯模糊", + "方形模糊", + "高斯模糊", + "镜头模糊", + "动态模糊", + "圆形模糊", + "形状模糊", + "智能模糊", + "表面模糊" + ], + "变形", + [ + "替换", + "挤压", + "极坐标", + "波纹", + "斜变", + "球面化", + "波浪" + ], + "噪点", + [ + "添加杂色", + "祛斑", + "蒙尘与刮痕", + "中值" + ], + "像素化", + [ + "彩色半调", + "晶格化", + "彩块化", + "碎片", + "铜板雕刻", + "马赛克", + "点状化" + ], + "渲染", + [ + "云彩", + "差值分层云彩" + ], + "锐化", + [ + "锐化", + "锐化边缘", + "进一步锐化", + "智能锐化", + "USM 锐化" + ], + "风格化", + [ + "扩散", + "浮雕", + "挤压", + "查找边缘" + ], + "其它", + [ + "自定义", + "高反差保留", + "最大值", + "最大值", + "抵消", + "重复" + ], + [ + "未定义区域", + "设为透明", + "重复像素边缘", + "环绕", + "上一次滤镜" + ] + ] + ], + [ + [ + "檔案", + "編輯", + "影像", + "圖層", + "資料夾", + "選擇", + "濾鏡", + "檢視", + "視窗", + "語言", + "登入", + "登出", + "建立翻譯", + [ + "帳戶", + "服務條款", + "返回" + ], + "更多", + "主題", + "使用 WebGL" + ], + [ + "開啟", + "線上發佈(Imgur)", + "存檔", + "存檔成 PSD", + "列印", + "從網址打開", + "從電腦開啟", + "連接Google Drive", + "輸出成", + "導出為...", + "腳本", + "置入" + ], + [ + "下一步", + "上一步", + "清除", + "填滿", + "變形", + "旋轉", + "水平翻轉", + "垂直翻轉", + "返回 / 向前", + "透視" + ], + "調整", + [ + "亮度 / 對比", + "色階", + "曲線", + "曝光", + "鮮艷", + "色相 / 飽和度", + "色彩平衡", + "黑與白", + "圖片濾鏡", + "通道混合器", + "色彩查詢", + "倒置", + "色調分離", + "閾值", + "漸層地圖", + "色彩選擇", + [ + "自動色調", + "自動對比度", + "自動上色" + ] + ], + [ + "剪下", + "複製", + "貼上", + "新增", + "刪除", + "開啟", + "關閉", + "複製合併", + "應用" + ], + [ + "複製圖層", + "新調整圖層", + "光柵遮罩", + "向量遮罩", + "新增(顯示全部)", + "新增(隱藏全部)", + "剪裁遮罩", + "轉換成智慧物件", + "柵格化", + "圖層群組", + "向下合併", + "向上合併", + "合併圖層", + "新圖層", + "開啟光柵遮罩", + "關閉光柵遮罩", + "開啟向量遮罩", + "關閉光柵遮罩", + "開啟剪裁遮罩", + "關閉剪裁遮罩", + "新資料夾", + "新增光柵遮罩", + "移除光柵遮罩", + "新增向量遮罩", + "移除向量遮罩", + "連結光柵遮罩", + "移除光柵遮罩連結", + "聯結向量圖遮色片", + "取消鏈接向量圖遮色片", + "啟用圖層效果", + "關閉圖層效果", + "刪除圖層", + "更改圖層不透明度", + "混合變更", + "點陣化圖層樣式", + "圖層順序", + [ + "建立智慧型物件", + "更新智慧型物件", + "建立智慧型物件" + ], + "更改命名", + "更改顏色", + "編輯調整圖層", + "轉換成圖形", + "啟用過濾遮罩", + "關閉過濾遮罩", + "啟用智慧過濾", + "關閉智慧過濾", + "新增過濾遮罩", + "刪除過濾遮罩", + "清除智慧過濾", + [ + [ + "實色填滿", + "漸層填滿", + "網格填滿" + ], + "新建填充圖層", + "變更填充圖層" + ], + "圖層(通過複製)", + "濾鏡遮罩", + "刪除圖層樣式", + "移動智慧遮罩", + "刪除智慧遮罩", + [ + "超鏈接圖層", + "取消超鏈接圖層" + ], + "排列", + [ + "移上一層", + "移下一層", + "下移一層", + "移到下層" + ], + [ + "圖層已被鎖定", + "鎖定變更" + ] + ], + [ + "全部", + "取消選擇", + "反選", + "修改", + "擴展", + "對比", + "羽化", + "移動選擇項目", + "顏色範圍", + "邊框", + "變形選區", + "邊緣最佳化", + "恢復選擇" + ], + [ + "放大", + "縮小", + "導引", + "尺規", + "格線", + "對齊", + "對齊到", + "頁面邊界", + "像素格點", + "路徑" + ], + [ + "歷史紀錄", + "圖層", + "屬性", + "刷子", + "符號", + "段落", + "資訊", + "圖層構圖", + "顏色板" + ], + [ + "筆刷工具", + "複製工具", + "裁剪工具", + "橡皮擦工具", + "橢圓選取", + "滴管", + "漸變工具", + "手繪工具", + "型態工具", + "套索選取", + "磁性套索選取", + "移動工具", + "魔術棒", + "油漆桶工具", + "多邊形套索選取", + "矩形選取", + "自由變換", + "縮放工具", + "模糊工具", + "銳利化工具", + "指尖工具", + "加亮工具", + "加深工具", + "海綿工具", + "污點修復筆刷工具", + "修復筆刷工具", + "修補工具", + "路徑選擇", + "直接選擇", + "鋼筆", + "自由鋼筆", + "自訂形狀工具", + "矩形", + "橢圓形", + "形狀圖形", + "線", + "尺標", + "快速選擇", + "鉛筆工具" + ], + [ + "快照", + "色彩選擇", + "輪廓編輯器", + "畫布尺寸", + "複製到...", + "漸變編輯器", + "圖層樣式", + "新增專案", + "另存網頁", + "曲線", + "圖片大小", + "向量像素化", + "裁切", + "熱鍵" + ], + [ + "透明度", + "效果", + "亮度", + "對比", + "色版", + "曝光度", + "偏移", + "伽馬校正", + "色調", + "飽和度", + "亮度", + "著色", + "範圍", + "抖動", + "大小", + "角度", + "圓度", + "硬度", + "間距", + "混合模式", + "樣本大小", + "輪廓", + "風格", + "顛倒", + "容差", + "連續", + "填滿", + "使用全局視角", + "距離", + "擴散", + "雜訊", + "移除陰影", + "技巧", + "方向", + "深度", + "柔化", + "模式", + "斜度", + "比例尺", + "圖層對齊", + "位置", + "寬", + "高", + "目的地", + "字體", + "前景色", + "背景", + "自定義", + "名稱", + "建立", + "格式", + "保持長寬比例", + "質量", + "複製", + "移動", + "智能濾鏡", + "半徑", + "數量", + "分佈", + [ + "統一", + "高斯" + ], + "單色", + "格大小", + "圖樣", + "流", + "強度", + "保護細節", + "填色類型", + "紋理", + "抖動", + "邊緣", + "來源", + "目標", + "通道", + "遮罩", + "密度", + "對齊", + [ + "路徑", + "形狀", + "像素" + ], + "圖形", + "邊", + "選項", + [ + "長", + "比例", + "任意" + ], + "移除雜訊", + "色彩", + "距離", + "比例", + "自動選擇", + "搜尋", + "定義新的", + [ + "照片", + "螢幕", + "移動", + "廣告" + ], + [ + "自由", + "鎖定比例", + "鎖定大小" + ], + "幫助", + [ + "即時形狀", + "編輯即時形狀", + "相同半徑" + ] + ], + [ + "顏色", + [ + "無", + "紅", + "橘", + "黃", + "綠", + "藍", + "紫", + "灰", + "白", + "透明", + "黑" + ] + ], + [ + "陰影", + "內陰影", + "外發光", + "內發光", + "斜面與浮雕", + "顏色疊加", + "漸變疊加", + "紋理疊加", + "光澤", + "描邊", + "混合模式" + ], + [ + "筆尖形狀", + "提示動態", + "散射", + "動態顏色", + [ + "大小調整", + "最小直徑", + "角度調整", + "圓度調整", + "最小圓度" + ], + [ + "位置調整", + "數量", + "數量調整" + ], + [ + "前景/後景調整", + "色調調整", + "飽和度調整", + "亮度調整" + ], + [ + "按住Alt鍵(或K鍵)並點擊在影像上以選取複製來源", + "使用白色標註前景,黑色為背景,灰色為未知區域", + "圖層無法編輯。", + "必須先對文字圖層進行光柵化", + "必須先對智能對象進行光柵化", + "選中多個圖層" + ] + ], + [ + "行距", + "字距", + "基線偏移" + ], + [ + "總量", + "目前圖層", + "選擇", + "當前和下方圖層" + ], + [ + "取代", + "合併", + "分離", + "相交", + "排除" + ], + [ + [ + "線性", + "徑向", + "角度", + "反映", + "鑽石", + "形狀爆裂" + ], + [ + "柔和", + "精確" + ], + [ + "外斜角", + "內斜角", + "浮雕", + "枕狀浮雕", + "邊緣浮雕" + ], + [ + "平滑", + "雕刻清晰", + "雕刻柔和" + ], + [ + "上", + "下" + ], + [ + "外部", + "中央", + "內部" + ], + [ + "陰影", + "中間調", + "高光" + ], + [ + "去飽和度", + "飽和度" + ], + [ + "小", + "中", + "大" + ] + ], + [ + "選擇游標下的物件", + "變形調控", + "像素到像素", + "按屏幕大小縮放", + [ + "左邊緣對齊", + "水平置中", + "右邊緣對齊", + "頂端對齊", + "垂直置中", + "底端對齊", + "間隔相等" + ] + ], + [ + "應用圖像", + "目前專案", + "新方案", + "分辨度", + "加入本方案", + "已經建立一個新的專案", + "對攝像頭的操作被拒絕" + ], + [ + "定位", + "彎曲變形", + "水平變形", + "垂直變形", + [ + "水平", + "垂直" + ], + [ + "無", + "弧", + "下弧形", + "上弧形", + "弓形", + "凸起", + "下張", + "上張", + "旗標", + "波浪", + "魚", + "上升", + "魚眼", + "膨脹", + "擠壓", + "扭曲", + "自定義" + ], + [ + "字體", + "不可用", + "渲染(將使用)" + ], + [ + "交換顏色", + "預設: 白與黑" + ] + ], + [ + "加載", + "加入", + "移動參考線", + "刪除參考線", + "加入參考線", + "載入中" + ], + [ + "濾鏡庫", + [ + [ + "液化", + [ + "塗抹", + "重建工具", + "平滑", + "旋轉扭曲", + "縮攏工具", + "膨脹工具", + "向左移動", + "凍結", + "取消凍結" + ] + ], + [ + null + ] + ], + "模糊", + [ + "平均", + "模糊", + "更多模糊", + "方形模糊", + "高斯模糊", + "鏡頭模糊", + "行動模糊", + "圓形模糊", + "形狀模糊", + "智能模糊", + "表面模糊" + ], + "變形", + [ + "更換", + "掐", + "極座標", + "漣漪效果", + "修剪", + "球體化", + "波狀" + ], + "雜訊", + [ + "加入雜訊", + "斑點", + "蒙塵與刮痕", + "中值" + ], + "像素化", + [ + "彩色半調", + "水晶化", + "彩塊化", + "碎片", + "銅板雕刻", + "馬賽克", + "點狀化" + ], + "渲染", + [ + "雲彩", + "差值分層雲彩" + ], + "銳利化", + [ + "銳利化", + "邊緣銳化", + "更多銳化", + "智慧銳利化", + "USM 蒙板" + ], + "風格化", + [ + "擴散", + "浮雕", + "擠壓", + "查找邊緣" + ], + "其他", + [ + "自定義", + "高反差保留", + "最大值", + "最小值", + "偏移", + "重覆" + ], + [ + "未定義區域", + "設為透明", + "重複像素邊緣", + "環繞", + "最後一個濾鏡" + ] + ] + ], + [ + [ + "ファイル", + "編集", + "イメージ", + "レイヤー", + "フォルダー", + "選択", + "フィルター", + "表示", + "ウインドウ", + "言語", + "ログイン", + "ログアウト", + "翻訳する", + [ + "アカウント", + "利用規約", + "戻る" + ], + "その他", + "テーマ", + "WebGLを使う" + ], + [ + "開く", + "公開する", + "保存", + "PSDとして保存", + "印刷", + "URLから開く", + "コンピュータから開く", + "Google Driveに接続", + "指定形式で保存", + "Assetsに出力", + "スクリプト", + "オープン&プレース" + ], + [ + "やり直す", + "元に戻す", + "消去", + "塗りつぶし", + "変形", + "回転", + "水平反転", + "垂直反転", + "元に戻す / やり直し", + "展望" + ], + "調整", + [ + "明るさ/コントラスト", + "レベル", + "曲線", + "露出", + "自然な彩度", + "色相/彩度", + "カラーバランス", + "黒と白", + "フォトフィルター", + "チャンネルミキサー", + "色検索", + "反転", + "ポスタライズ", + "しきい値", + "グラデーションマップ", + "選択色", + [ + "オートトーン", + "オートコントラスト", + "オートカラー" + ] + ], + [ + "切り取り", + "コピー", + "ペースト", + "新規", + "削除", + "有効化", + "無効化", + "コピー結合", + "適用" + ], + [ + "レイヤーを複製", + "新しい調整レイヤー", + "ラスター マスク", + "ベクターマスク", + "追加(全てを表示)", + "追加(全てを隠す)", + "クリッピングマスク", + "スマートオブジェクトへの変換", + "ラスタライズ", + "レイヤーのグループ化", + "下のレイヤーと統合", + "上のレイヤーと統合", + "レイヤーを結合", + "新規レイヤー", + "ラスターマスクを有効化する", + "ラスターマスクを無効化", + "ベクターマスクを有効化", + "ベクターマスクを無効化", + "クリッピングマスクを有効化", + "クリッピングマスクを無効化", + "新規フォルダ", + "ラスターマスクを追加", + "ラスターマスクを削除", + "ベクターマスクを追加", + "ベクターマスクを削除", + "ラスターマスクをリンク", + "ラスターマスクのリンクを解除", + "ベクターマスクをリンク", + "ベクターマスクのリンクを解除", + "レイヤー効果を有効にする", + "レイヤー効果を無効にする", + "レイヤーを削除", + "レイヤー透明度の変更", + "ブレンドの変更", + "レイヤースタイルのラスタライズ", + "レイヤーの順序", + [ + "スマートオブジェクトの作成", + "スマートオブジェクトを更新", + "スマートオブジェクトを配置" + ], + "名前の変更", + "カラーの変更", + "調整レイヤーの編集", + "シェープに変換", + "フィルターマスクの有効化", + "フィルターマスクの無効化", + "スマートフィルターを有効化", + "スマートフィルターを無効化", + "フィルターマスクを追加", + "フィルターマスクを削除", + "フィルターマスクをクリア", + [ + [ + "単色塗りつぶし", + "グラデーション塗りつぶし", + "パターン塗りつぶし" + ], + "新規塗りつぶしレイヤー", + "塗りつぶしレイヤーの編集" + ], + "コピーからレイヤーを作成", + "フィルターマスク", + "レイヤースタイルを削除", + "スマートフィルターを動かす", + "スマートフィルターを削除", + [ + "リンクレイヤーズ", + "アンリンクレイヤーズ" + ], + "重ね順", + [ + "最前面へ", + "前面へ", + "最背面へ", + "背面へ" + ], + [ + "レイヤーはロックされています", + "ロックの変更" + ] + ], + [ + "全て", + "選択解除", + "選択範囲を反転", + "編集", + "拡げる", + "コントラクト", + "フェザー", + "セレクション移動", + "カラーレンジ", + "ボーダー", + "セレクション変形", + "エッジを絞り込む", + "ヒールセレクション" + ], + [ + "拡大", + "縮小", + "ガイド", + "定規", + "グリッド", + "スナップ", + "...へスナップ", + "ドキュメントの境界", + "ピクセルグリッド", + "パス" + ], + [ + "履歴", + "レイヤー", + "プロパティ", + "ブラシ", + "文字", + "パラグラフ", + "情報", + "レイヤーコンプ", + "見本" + ], + [ + "ブラシツール", + "コピーツール", + "切り抜きツール", + "消しゴム", + "楕円形 選択", + "スポイト", + "グラデーションツール", + "手のひらツール", + "テキストツール", + "投げ縄 選択", + "マグネット 投げ縄 選択", + "移動ツール", + "自動選択", + "バケツ", + "多角形選択", + "矩形選択", + "自由変形", + "ズームツール", + "ぼかしツール", + "シャープツール", + "指先ツール", + "覆い焼きツール", + "焼きこみツール", + "スポンジツール", + "スポット修復ブラシツール", + "修復ブラシツール", + "パッチツール", + "パスコンポーネント選択", + "パス選択", + "ペン", + "フリーフォームペン", + "カスタムシェイプ", + "矩形", + "楕円", + "パラメトリック図形", + "ライン", + "ルーラ", + "クイック選択", + "ペンシルツール" + ], + [ + "写真撮影", + "カラーピッカー", + "輪郭エディタ", + "キャンバスサイズ", + "複製する…", + "グラデーションエディタ", + "レイヤースタイル", + "新規プロジェクト", + "Web用に保存", + "ワープ", + "画像サイズ", + "ビットマップをベクトル化", + "トリム", + "キーボードショートカット" + ], + [ + "不透明度", + "効果", + "明るさ", + "コントラスト", + "チャンネル", + "露光", + "オフセット", + "ガンマ値", + "色相", + "彩度", + "明るさ", + "着色", + "距離", + "自然な彩度", + "サイズ", + "角度", + "丸み", + "硬度", + "間隔", + "ブレンドモード", + "サンプルサイズ", + "輪郭検出", + "スタイル", + "選択範囲を反転", + "許容値", + "隣接", + "フィル", + "包括角度の使用", + "距離", + "拡散", + "ノイズ", + "ドロップシャドウをノックアウト", + "技術", + "方向", + "深度", + "美肌", + "モード", + "グラデーション", + "スケール", + "レイヤーの整列", + "位置", + "幅", + "高さ", + "距離", + "タイプ", + "最前面", + "最背面", + "カスタム", + "名前", + "作成", + "フォーマット", + "縦横比を保持", + "品質", + "複製", + "移動", + "スマートフィルター", + "半径", + "断片数", + "分布", + [ + "均一", + "ガウス" + ], + "モノクロ", + "セルサイズ", + "パターン", + "フロー", + "力", + "詳細の保護", + "塗りつぶしタイプ", + "テクスチャ", + "ジッター", + "エッジ", + "ソース", + "ターゲット", + "チャンネル", + "マスク", + "濃度", + "整列", + [ + "パス(経路)", + "形状", + "ピクセル" + ], + "形", + "サイド", + "設定", + [ + "長さ", + "比率", + "どれか" + ], + "ノイズを減らす", + "カラー", + "距離", + "レート", + "オートセレクト", + "探す", + "新しい定義", + [ + "フォト", + "スクリーン", + "モバイル", + "広告" + ], + [ + "無料", + "固定比率", + "固定サイズ" + ], + "ヘルプ", + [ + "ライブシェイプ", + "ライブシェイプの編集", + "同じ半径" + ] + ], + [ + "カラー(色)", + [ + "なし", + "赤", + "オレンジ", + "黄色", + "みどり", + "青", + "紫", + "グレイ(灰色)", + "白", + "透明", + "黒" + ] + ], + [ + "ドロップシャドウ", + "インナーシャドウ", + "アウターグロウ", + "インナーグロウ", + "斜角と浮き彫り", + "カラーオーバーレイ", + "グラデーションオーバーレイ", + "パターンオーバーレイ", + "サテン", + "ストローク", + "ブレンドオプション" + ], + [ + "チップ形状", + "先端ダイナミクス", + "散布", + "カラーダイナミクス", + [ + "サイズジッター", + "最小直径", + "アングルジッター", + "丸みジッター", + "最小限の真円度" + ], + [ + "ポジションジッター", + "カウント", + "カウントジッター" + ], + [ + "前景/背景 ジッター", + "色相ジッター", + "緩和ジッター", + "輝度ジッター" + ], + [ + "Alt(またはK)を押しながらイメージをクリックして、クローンソースを選択", + "前景に白、背景に黒、未知の領域にグレーをマークします。", + "レイヤーは編集できません", + "テキストレイヤを最初にラスタライズする必要があります", + "スマートオブジェクトを最初にラスタライズする必要があります", + "マルチプルレイヤーを選択" + ] + ], + [ + "先導", + "追跡", + "ベースラインシフト" + ], + [ + "合計コンテンツ", + "現在のレイヤー", + "選択", + "現在および以下" + ], + [ + "置き換え", + "合体", + "減数", + "交差", + "除外" + ], + [ + [ + "直線", + "放射状", + "アングル", + "反射", + "ダイヤモンド", + "シェープバースト" + ], + [ + "柔らかい", + "正確" + ], + [ + "アウター斜角", + "インナー斜角", + "エンボス", + "枕の浮き彫り", + "ストロークエンボス" + ], + [ + "スムース", + "チゼルハード", + "チゼルソフト" + ], + [ + "アップ", + "ダウン" + ], + [ + "外側", + "中央", + "内側" + ], + [ + "影", + "ミドルトーン", + "ハイライト" + ], + [ + "不飽和化", + "飽和" + ], + [ + "スモール", + "ミディアム", + "ラージ" + ] + ], + [ + "カーソルの下のオブジェクトを選択する", + "変換コントロール", + "ピクセルからピクセル", + "エリアに合わせる", + [ + "左端を揃える", + "水平にセンター", + "右端を揃える", + "上端を揃える", + "垂直に中央", + "ボトムエッジの整列", + "等間隔" + ] + ], + [ + "写真を撮る", + "現在のプロジェクト", + "新しいプロジェクト", + "解像度", + "現在のプロジェクトに追加されました", + "新しいプロジェクトが作成されました", + "カメラへのアクセスが拒否されました" + ], + [ + "オリエンテーション", + "ベンド", + "水平方向の歪み", + "垂直方向の歪み", + [ + "水平", + "垂直" + ], + [ + "なし", + "弧", + "アークローワー", + "アークアッパー", + "アーチ", + "膨らみ", + "シェルローワー", + "シェルアッパー", + "旗", + "波", + "魚", + "上昇", + "魚眼", + "膨らませる", + "圧搾", + "ねじれ", + "カスタム" + ], + [ + "フォント", + "利用できません", + "使用してレンダリングされます" + ], + [ + "スワップカラー", + "デフォルト:黒と白" + ] + ], + [ + "ロードされた", + "追加された", + "移動ガイド", + "ガイドの削除", + "ガイドの追加", + "読み込み中" + ], + [ + "フィルタギャラリー", + [ + [ + "液化液", + [ + "汚れ", + "再構築", + "スムーズ", + "トール", + "シュリンク", + "ブロー", + "左を押す", + "フリーズ", + "アンフリーズ" + ] + ], + [ + null + ] + ], + "ぼかし", + [ + "平均", + "ぼかし", + "ぼかしを多く", + "ボックスのぼかし", + "ガウスぼかし", + "レンズぼかし", + "モーションぼかし", + "放射状のぼかし", + "形状ブラー", + "スマートなぼかし", + "表面のぼかし" + ], + "歪み", + [ + "置き場所", + "ピンチ", + "極座標", + "リップル", + "剪断", + "Spherize", + "波" + ], + "ノイズ", + [ + "ノイズを追加", + "間引き", + "ホコリと傷", + "中央値" + ], + "ピクセル化", + [ + "カラーハーフトーン", + "結晶化", + "ファセット", + "断片", + "メゾチント", + "モザイク", + "点字化" + ], + "レンダリング", + [ + "雲", + "雲の違い" + ], + "シャープ", + [ + "シャープ", + "エッジをシャープにする", + "もっと磨く", + "スマートシャープ", + "アンシャープマスク" + ], + "書式設定", + [ + "拡散", + "エンボス", + "押出", + "エッジを見つける" + ], + "その他", + [ + "カスタム", + "ハイパス", + "最大", + "最小", + "オフセット", + "リピート" + ], + [ + "未定義領域", + "透明に設定", + "リピートエッジピクセル", + "包み込む", + "最後のフィルタ" + ] + ] + ], + [ + [ + "파일", + "편집", + "이미지", + "레이어", + "폴더", + "선택", + "필터", + "보기", + "창", + "언어", + "로그인", + "로그아웃", + "번역하기", + [ + "계정", + "서비스 약관", + "뒤로가기" + ], + "더 보기", + "테마", + "WebGL 사용" + ], + [ + "열기", + "온라인 게시 (Imgur)", + "저장", + "PSD 파일로 저장", + "인쇄", + "URL에서 열기", + "컴퓨터에서 파일 열기", + "구글 드라이브와 연결", + "다른 이름으로 내보내기", + "저작물 내보내기", + "스크립트", + "열기 및 장소" + ], + [ + "앞으로 가기", + "뒤로 가기", + "없애기", + "채우기", + "변형", + "회전", + "가로로 뒤집기", + "세로로 뒤집기", + "실행취소 / 다시실행", + "원근법" + ], + "조정", + [ + "밝기 / 대비", + "레벨", + "곡선", + "노출", + "채도", + "색조 / 채도", + "색깔 조정", + "흑백", + "사진 필터", + "채널 믹서", + "색깔 찾아보기", + "뒤집기", + "포스터화", + "한계점", + "그라디언트 맵", + "선택적 색상", + [ + "자동 톤", + "자동 명암비", + "자동 색상" + ] + ], + [ + "잘라내기", + "복사", + "붙여넣기", + "새로 만들기", + "제거", + "활성화", + "비활성화", + "병합 복사", + "적용" + ], + [ + "레이어 복제", + "새 조정 레이어", + "래스터 마스크", + "벡터 마스크", + "추가 (모두 표시)", + "추가 (모두 숨기기)", + "클리핑 마스크", + "스마트 오브젝트로 변환", + "래스터화", + "그룹 레이어", + "아래로 병합", + "위로 병합", + "레이어 병합", + "새 레이어", + "래스터 마스크 활성화", + "래스터 마스크 비활성화", + "벡터 마스크 활성화", + "벡터 마스크 비활성화", + "클리핑 마스크 활성화", + "클리핑 마스크 비활성화", + "새 폴더", + "래스터 마스크 추가", + "래스터 마스크 제거", + "벡터 마스크 추가", + "벡터 마스크 제거", + "래스터 마스크 연결", + "래스터 마스크 연결 해제", + "벡터 마스크 연결", + "벡터 마스크 연결 해제", + "레이어 효과 활성화", + "레이어 효과 비활성화", + "레이어 제거", + "레이어 불투명도 변경", + "혼합 변경", + "래스터화 레이어 스타일", + "레이어 순서", + [ + "스마트 오브젝트 생성", + "스마트 오브젝트 업데이트", + "스마트 오브젝트 배치" + ], + "이름 변경", + "색 변경", + "조정 레이어 편집", + "모양으로 변환", + "필터 마스크 활성화", + "필터 마스크 비활성화", + "스마트 필터 활성화", + "스마트 필터 비활성화", + "필터 마스크 추가", + "필터 마스크 제거", + "스마트 필터 없애기", + [ + [ + "단색 채우기", + "그라디언트 채우기", + "패턴 채우기" + ], + "새 칠 레이어", + "채우기 레이어 수정" + ], + "복사를 통한 레이어", + "필터 마스크", + "레이어 스타일 삭제", + "스마트 필터 이동", + "스마트 필터 삭제", + [ + "레이어 연결", + "레이어 연결 해제" + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "모든", + "선택 취소", + "반전", + "수정", + "확장", + "축소", + "페더", + "선택 이동", + "색상 범위", + "경계", + "변형 선택", + "가장자리 미세 조정", + null + ], + [ + "확대", + "축소", + "기준선", + "자", + "그리드", + "스냅", + "스냅", + "문서 경계", + "픽셀 격자", + "경로" + ], + [ + "히스토리", + "레이어", + "속성", + "붓", + "글자", + "절", + "정보", + "레이어 컴프레서", + null + ], + [ + "붓 도구", + "복제 도구", + "자르기 도구", + "지우개 도구", + "타원형 선택", + "스포이드", + "그라디언트 도구", + "손 도구", + "유형 도구", + "올가미 선택", + "자석 올가미 선택", + "이동 도구", + "마법 지팡이", + "페인트 통 도구", + "다각형 올가미 선택", + "직사각형 선택", + "자유 변형", + "확대 / 축소 도구", + "흐림 도구", + "선명 도구", + "얼룩 도구", + "닷지 도구", + "번 도구", + "스폰지 도구", + "얼룩 치유 브러시 도구", + "치유 브러쉬 도구", + "패치 도구", + "경로 선택", + "직접 선택", + "펜", + "자유형 펜", + "사용자 정의 모양", + "사각형", + "타원", + "파라메트릭 모양", + "선", + "자", + "빠른 선택", + "필기 도구" + ], + [ + "사진 찍기", + "색상 선택기", + "윤곽 편집기", + "캔버스 크기", + "복제", + "그라디언트 편집기", + "레이어 스타일", + "새 프로젝트", + "웹용으로 저장", + "뒤틀기", + "이미지 크기", + "비트맵 벡터화", + "트림", + "키보드 단축키" + ], + [ + "불투명도", + "효과", + "명도", + "대비", + "채널", + "노출", + "오프셋", + "감마 교정", + "색조", + "포화도", + "밝기", + "색상화", + "범위", + "활기", + "크기", + "각도", + "진원도", + "경도", + "간격", + "혼합 모드", + "표본 크기", + "윤곽", + "스타일", + "반전", + "여유도", + "인접", + "채우기", + "종합 각도 사용", + "거리", + "확산", + "노이즈", + "녹아웃 그림자", + "기법", + "방향", + "깊이", + "부드럽게", + "모드", + "그라디언트", + "범위", + "레이어에 정렬", + "위치", + "너비", + "높이", + "목적", + "유형", + "전경", + "배경", + "사용자 설정", + "이름", + "생성", + "형식", + "종횡비 유지", + "품질", + "복제", + "이동", + "스마트 필터", + "반지름", + "양", + "분포", + [ + "유니폼", + "가우스" + ], + "단색", + "셀 크기", + "패턴", + "흐름", + "강도", + "세부 보호", + "채우기 유형", + "텍스처", + "흐트러짐", + "가장자리", + "대상", + "목표", + "채널", + "마스크", + "밀도", + "정렬됨", + [ + "패스", + "모양", + "픽셀" + ], + "모양들", + "사이드", + "설정", + [ + "길이", + null, + null + ], + "노이즈 줄이기", + "색", + "차이", + "율", + "자동 선택", + "발견", + "새로운 정의", + [ + "사진", + "화면", + "변하기 쉬운", + "광고" + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "색깔", + [ + "없슴", + "빨간색", + "주황색", + "노란색", + "초록색", + "파란색", + "보라색", + "회색", + "흰색", + "투명한", + null + ] + ], + [ + "그림자", + "내부 그림자", + "외부 광선", + "내부 광선", + "경사와 엠보스", + "색 오버레이", + "그라디언트 오버레이", + "패턴 오버레이", + "새틴", + "외곽선", + "혼합 옵션" + ], + [ + "끝 부분 모양", + "끝 부분 강약 조절", + "산포화", + "색 강약 조절", + [ + "크기 흐트러짐", + "최소 직경", + "각도 흐트러짐", + "형태 흐트러짐", + "최소 형태" + ], + [ + "위치 흐트러짐", + "순서", + "순서 흐트러짐" + ], + [ + "전경/배경 흐트러짐", + "색 흐트러짐", + "포화 흐트러짐", + "밝기 흐트러짐" + ], + [ + "Alt (또는 K) 키를 누른 상태에서 이미지를 클릭해 대상 복제를 선택합니다.", + null, + null, + null, + null, + null + ] + ], + [ + "행간", + "트래킹", + "기준선 이동" + ], + [ + "총 내용", + "현재 레이어", + "선택", + null + ], + [ + "바꾸기", + "통합", + "빼기", + "교차", + "제외" + ], + [ + [ + "선형", + "방사", + "각도", + "반사됨", + "다이아몬드", + "모양 파열" + ], + [ + "부드럽게", + "명확함" + ], + [ + "외부 경도", + "내부 경도", + "엠보스", + "베개 엠보스", + "외곽선 엠보스" + ], + [ + "매끄럽게", + "강한 끌", + "부드러운 끌" + ], + [ + "위", + "밑" + ], + [ + "밖", + "가운데", + "내부" + ], + [ + "그림자", + "중간톤", + "강조" + ], + [ + "포화도", + "포화" + ], + [ + null, + null, + null + ] + ], + [ + "커서 아래에서 개체를 선택해 주십시오", + "변형 제어", + "픽셀에서 픽셀로", + "영역에 맞추기", + [ + "왼쪽 모서리 정렬", + "수평 중심", + "오른쪽 모서리 정렬", + "윗쪽 모서리 정렬", + "수직 중심", + "아랫쪽 모서리 정렬", + null + ] + ], + [ + "사진 찍기", + "현재 프로젝트", + "새 프로젝트", + "해상도", + "현재 프로젝트에 추가되었습니다.", + "새 프로젝트가 생성되었습니다.", + "카메라에 대한 접근이 거부되었습니다." + ], + [ + "성향", + "굽히기", + "수평 왜곡", + "수직 왜곡", + [ + "가로", + "세로" + ], + [ + "없음", + "포물선", + "포물선 낮게", + "포물선 높게", + "아치형", + "꽉차게", + "셸 낮게", + "셸 높게", + "깃발", + "파도", + "물고기", + "증가", + "물고기 눈", + "부풀리기", + "짜내기", + "휘틀리기", + "사용자 설정" + ], + [ + "글꼴", + "을(를) 사용할 수 없습니다", + "을(를) 사용하여 렌더링됩니다." + ], + [ + "색상 바꾸기", + "기본값: 흰색과 검은색" + ] + ], + [ + "불러옴", + "추가됨", + "기준선 이동", + "기준선 제거", + "기준선 추가", + "불러오는 중" + ], + [ + "필터 갤러리", + [ + [ + "액체화하다", + [ + "더러움", + "재건축", + "부드럽게", + "회전", + "수축", + "타격", + null, + null, + null + ] + ], + [ + null + ] + ], + "흐리게", + [ + "평균", + "흐리게", + "더 흐리게", + "사각형으로 흐리게", + "가우스 흐림 효과", + "렌즈 흐림 효과", + "모션 흐림 효과", + "방사형 흐림 효과", + "모양 흐림 효과", + "스마트 흐림 효과", + "표면 흐림 효과" + ], + "왜곡", + [ + null, + null, + null, + null, + null, + null, + null + ], + "노이즈", + [ + "노이즈 추가", + "얼룩 제거", + "먼지 및 스크래치", + "중앙값" + ], + "픽셀화", + [ + "색 망판", + "구체화", + "측면", + "조각", + "메조틴트", + "모자이크", + "점묘화" + ], + "렌더", + [ + "구름", + null + ], + "날카롭게", + [ + "날카롭게", + "가장자리 날카롭게", + "더 날카롭게", + "스마트 날카로움 효과", + "언샵 마스크" + ], + "양식화", + [ + "확산", + "엠보스", + "밀어내기", + "가장자리 찾기" + ], + "그 외", + [ + "사용자 설정", + "고역 통과", + "최대화", + "최소화", + "오프셋", + null + ], + [ + "알 수 없는 구역", + "투명 설정", + "가장자리 픽셀 반복", + "줄 바꿈" + ] + ] + ], + [ + [ + "Arquivo", + "Editar", + "Imagem", + "Camada", + "Pasta", + "Selecionar", + "Filtro", + "Visualizar", + "Janela", + "Idioma", + "Entrar", + "Sair", + "Criar Tradução", + [ + "Conta", + "Termos de Uso", + "Voltar" + ], + "Mais", + "Tema", + "Usar WebGL" + ], + [ + "Abrir", + "Publicar Online (Imgur)", + "Salvar", + "Salvar como PSD", + "Imprimir", + "Abrir de URL", + "Abrir Do Computador", + "Conectar Com o Google Drive", + "Exportar como", + "Ativos de Exportação", + "Script", + "Abra e Coloque" + ], + [ + "Passo a Frente", + "Passo atrás", + "Limpar", + "Preencher", + "Transformar", + "Rotacionar", + "Espelhar Horizontalmente", + "Espelhar Verticalmente", + "Desfazer / Refazer", + "Perspectiva" + ], + "Ajustes", + [ + "Brilho / Contraste", + "Níveis", + "Curvas", + "Exposição", + "Vibração", + "Matriz / Saturação", + "Equilíbrio de Cores", + "Preto e Branco", + "Filtro de Fotos", + "Misturador de Canais", + "Pesquisa de cores", + "Inverter", + "Posterizar", + "Limite", + "Mapa de Gradiente", + "Cor Seletiva", + [ + "Tom Automático", + "Auto Contraste", + "Cor Automática" + ] + ], + [ + "Cortar", + "Copiar", + "Colar", + "Novo", + "Deletar", + "Habilitar", + "Desativar", + "Cópia Mesclada", + "Aplicar" + ], + [ + "Duplicar Camada", + "Nova Camada de Ajuste", + "Rastrear Máscara", + "Máscara de Vetores", + "Adicionar (Mostrar tudo)", + "Adicionar (Ocultar Tudo)", + "Máscara de Corte", + "Converter em Objeto Inteligente", + "Rasterizar", + "Agrupar Camadas", + "Mesclar Abaixo", + "Mesclar Acima", + "Mesclar Camadas", + "Nova Camada", + "Ativar Camada de Rasterização", + "Desativar Camada de Rasterização", + "Habilitar Máscara de Vetor", + "Desabilitar Máscara de Vetor", + "Habilitar Máscara de Recorte", + "Desabilitar Máscara de Recorte", + "Nova Pasta", + "Adicionar Máscara de Rasterização", + "Remover Máscara de Rasterização", + "Adicionar Máscara de Vetor", + "Remover Máscara de Vetor", + "Associar Máscara de Rasterização", + "Desassociar Máscara de Rasterização", + "Associar Máscara de Vetor", + "Desassociar Máscara de Vetor", + "Habilitar Efeitos de Camada", + "Desabilitar Efeitos de Camada", + "Apagar Camada", + "Alterar Opacidade da Camada", + "Alterar Mistura", + "Rasterizar Estilo da Camada", + "Ordem de Camada", + [ + "Criando Objeto Inteligente", + "Atualizando Objeto Inteligente", + "Colocando Objeto Inteligente" + ], + "Alterar Nome", + "Alterar Cor", + "Editar Camada de Ajuste", + "Converter para Forma", + "Habilitar Máscara de Filtro", + "Desabilitar Máscara de Filtro", + "Habilitar Filtros Inteligentes", + "Desabilitar Filtros Inteligentes", + "Adicionar Máscara de Filtro", + "Apagar Máscara de Filtro", + "Limpar Filtros Inteligentes", + [ + [ + "Preencher com Cor Sólida", + "Preencher com Gradiente", + "Preencher com Padrão" + ], + "Nova Camada de Preenchimento", + "Modificar Camada de Preenchimento" + ], + "Transformar Cópia em Camada", + "Filtrar Máscara", + "Excluir Estilo de Camada", + "Mover Filtro Inteligente", + "Excluir Filtro Inteligente", + [ + "Vincular Camadas", + "Desvincular Camadas" + ], + "Organizar", + [ + "Traga Para Frente", + "Apresentar", + "Enviar Para Trás", + "Enviar Para Trás" + ], + [ + "Camer", + null + ] + ], + [ + "Tudo", + "Desselecionar", + "Inverso", + "Modificar", + "Expandir", + "Contrair", + "Pena", + "Mover Seleção", + "Alcance de Cores", + "Borda", + "Transformar Seleção", + "Refinar Arestas", + "Curar Seleção" + ], + [ + "Zoom +", + "Zoom -", + "Guias", + "Réguas", + "Grade", + "Encaixar", + "Encaixar Em", + "Documento Limite", + "Grade de pixels", + "Caminhos" + ], + [ + "História", + "Camadas", + "Propriedades", + "Pincel", + "Caractere", + "Parágrafo", + "Informações", + "Camada Comps", + "Amostras" + ], + [ + "Ferramenta Pincel", + "Ferramenta de Clone", + "Ferramenta de Corte", + "Borracha", + "Selecionar em Elipse", + "Conta-Gotas", + "Gradiente", + "Mão", + "Ferramenta de Texto", + "Seleção em Laço", + "Ferramenta Laço Magnético", + "Mover", + "Varinha Mágica", + "Lata de Tinta", + "Laço Poligonal", + "Seleção Retangular", + "Transformação Livre", + "Lupa", + "Desfoque", + "Nitidez", + "Borrar", + "Ferramenta de Exposição", + "Ferramenta de Queimar", + "Esponja", + "Pincel de Cicatrização Localizada", + "Pincel de Cicatrização", + "Ferramenta de Correção", + "Selecionar Caminho", + "Seleção Direta", + "Caneta", + "Caneta Livre", + "Forma Personalizada", + "Retângulo", + "Elipse", + "Forma Paramétrica", + "Linha", + "Régua", + "Seleção Rápida", + "Ferramenta Lápis" + ], + [ + "Tire uma Foto", + "Colhedor de Cores", + "Editor de Contorno", + "Tamanho da Tela de Pintura", + "Duplicar em...", + "Editor de Gradientes", + "Estilo de Camada", + "Novo Projeto", + "Salvar para Web", + "Distorção", + "Tamanho da Imagem", + "Vetorizar Bitmap", + "Aparar", + "Atalhos de Teclado" + ], + [ + "Opacidade", + "Efeitos", + "Brilho", + "Contraste", + "Canal", + "Exposição", + "Equilibrar", + "Correção de Gama", + "Matriz", + "Saturação", + "Luminosidade", + "Colorir", + "Alcance", + "Vibração", + "Tamanho", + "Ângulo", + "Redondeza", + "Dureza", + "Espaçamento", + "Modo de Mistura", + "Tamanho da Amostra", + "Contorno", + "Estilo", + "Oposto", + "Tolerância", + "Contíguo", + "Preenchimento", + "Use o Ângulo Global", + "Distância", + "Espalhar", + "Ruído", + "Derrubar a Sombra", + "Técnica", + "Direção", + "Profundidade", + "Suavizar", + "Modo", + "Gradiente", + "Escala", + "Alinhar Com a Camada", + "Posição", + "Largura", + "Altura", + "Destino", + "Tipo", + "Primeiro Plano", + "Segundo Plano", + "Personalizado", + "Nome", + "Criar", + "Formato", + "Manter a Proporção", + "Qualidade", + "Duplicar", + "Mover", + "Filtros Inteligentes", + "Raio", + "Quantia", + "Distribuição", + [ + "Uniforme", + "Gaussiano" + ], + "Monocromático", + "Tamanho da Célula", + "Padrão", + "Fluxo", + "Força", + "Detalhe do Projeto", + "Tipo de Preenchimento", + "Textura", + "Tensão", + "Canto", + "Fonte", + "Alvo", + "Canais", + "Máscara", + "Densidade", + "Alinhado", + [ + "Caminho", + "Forma", + "Píxeis" + ], + "Formas", + "Lados", + "Preferências", + [ + "Comprimento", + "Ratio", + "Qualquer" + ], + "Reduzir Ruído", + "Cores", + "Distâncias", + "Taxa", + "Seleção Automática", + "Procurar", + "Definir novo", + [ + "Foto", + "Tela", + "Móvel", + "Anúncios" + ], + [ + "Livre", + "Taxa Fixa", + "Tamanho Fixo" + ], + "Ajuda", + [ + "Formas Vivas", + "Editar Forma Viva", + "O Mesmo Raio" + ] + ], + [ + "Cor", + [ + "Nenhum", + "Vermelho", + "Laranja", + "Amarelo", + "Verde", + "Azul", + "Roxo", + "Cinza", + "Branco", + "Transparente", + "Preto" + ] + ], + [ + "Sombra Externa", + "Sombra Interna", + "Brilho Externo", + "Brilho Interno", + "Bisel e Relevo", + "Sobreposição de Cor", + "Sobreposição em Gradiente", + "Sobreposição em Padrão", + "Cetim", + "Linha de Contorno", + "Opções de Mistura" + ], + [ + "Forma de Ponta", + "Dinâmica de Ponta", + "Dispersão", + "Dinâmica de Cores", + [ + "Variação da Tensão", + "Diâmetro Mínimo", + "Tensão Angular", + "Tensão Arredondada", + "Redondeza Mínima" + ], + [ + "Posicionamento Tensional", + "Contagem", + "Quantidade de Tensão" + ], + [ + "Tensão em Primeiro/Segundo Plano", + "Matriz Tensional", + "Saturação Tensional", + "Brilho Tensional" + ], + [ + "Selecione a fonte de clonagem segurando Alt (ou K) e clicando na imagem.", + "Marque Primeiro Plano com Branco, Fundo com Preto e a área desconhecida com Cinza.", + "Camada Não Editável.", + "Camada de Texto Deve Ser Rasterizada Primeiro", + "Objeto Inteligente Deve Ser Rasterizado Primeiro", + "Selecione Várias Camadas" + ] + ], + [ + "Conduzindo", + "Rastreamento", + "Mudança da Linha de Base" + ], + [ + "Conteúdo Total", + "Camada Atual", + "Seleção", + "Atual e Abaixo" + ], + [ + "Substituir", + "Unir", + "Subtrair", + "Cruzar", + "Excluir" + ], + [ + [ + "Linear", + "Radial", + "Ângulo", + "Refletido", + "Diamante", + "Estouro de Forma" + ], + [ + "Mais Macio", + "Preciso" + ], + [ + "Bisel Externo", + "Bisel Interno", + "Relevo", + "Relevo Travesseiro", + "Relevo do Contorno" + ], + [ + "Suave", + "Cinzel Duro", + "Cinzel Macio" + ], + [ + "Cima", + "Baixo" + ], + [ + "Fora", + "Centro", + "Dentro" + ], + [ + "Sombra", + "Tons Médios", + "Luzes Destacadas" + ], + [ + "Dessaturar", + "Saturar" + ], + [ + "Pequeno", + "Médio", + "Ampla" + ] + ], + [ + "Escolha o objeto abaixo do cursor", + "Controles de Transformação", + "Pixel a Pixel", + "Encaixe a Área", + [ + "Alinhar os Cantos Esquerdos", + "Centralizar Horizontalmente", + "Alinhar Cantos Direitos", + "Alinhar Cantos de Cima", + "Centralizar Verticalmente", + "Alinhar Cantos de Baixo", + "Lacunas Iguais" + ] + ], + [ + "Colocar em", + "Projeto Atual", + "Novo Projeto", + "Resolução", + "Adicionado ao projeto atual.", + "Um novo projeto foi criado.", + "O acesso à câmera foi recusado." + ], + [ + "Orientação", + "Curvar", + "Distorção Horizontal", + "Distorção Vertical", + [ + "Horizontal", + "Vertical" + ], + [ + "Nenhum", + "Arco", + "Arco Inferior", + "Arco Superior", + "Arquear", + "Protuberância", + "Concha Inferior", + "Concha Superior", + "Bandeira", + "Onda", + "Peixe", + "Elevar", + "Olho de Peixe", + "Inflar", + "Espremer", + "Torcer", + "Personalizado" + ], + [ + "Fonte", + "não está disponível", + "Será renderizado usando" + ], + [ + "Trocar Cores", + "Padrão: Branco e Preto" + ] + ], + [ + "carregado", + "adicionado", + "Mover Guia", + "Excluir Guia", + "Adicionar Guia", + "Carregando" + ], + [ + "Galeria de Filtros", + [ + [ + "Dissolver", + [ + "Mancha", + "Reconstruir", + "Suavizar", + "Girar", + "Escolher", + "Golpe", + "Empurre à Esquerda", + "Congelar", + "Descongelar" + ] + ], + [ + null + ] + ], + "Borrão", + [ + "Médio", + "Desfocar", + "Desfocar Mais", + "Desfoque em Caixa", + "Desfoque Gaussiano", + "Desfoque de Lente", + "Desfoque de Movimento", + "Desfoque Radial", + "Desfoque de Forma", + "Desfoque Inteligente", + "Desfoque Superficial" + ], + "Distorcer", + [ + "Deslocar", + "Pitada", + "Coordenadas Polares", + "Ondulação", + "Tesoura", + "Spherize", + "Onda" + ], + "Ruído", + [ + "Adicionar Ruído", + "Remover Manchas", + "Poeira e Arranhões", + "Mediano" + ], + "Pixelizar", + [ + "Meio-Tom de Cor", + "Cristalizar", + "Faceta", + "Fragmento", + "Mezzo-tinto", + "Mosaico", + "Pontilhar" + ], + "Renderizar", + [ + "Nuvens", + "Nuvens Diferenciais" + ], + "Aguçar", + [ + "Aguçar", + "Afiar Cantos", + "Aguçar Mais", + "Aguçar de Forma Inteligente", + "Desfazer Nitidez de Máscara" + ], + "Estilizar", + [ + "Difundir", + "Realçar", + "Expulsar", + "Encontrar Cantos" + ], + "Outro", + [ + "Personalizado", + "Filtro de Alta Passagem", + "Máximo", + "Mínimo", + "Equilibrar", + "Repetir" + ], + [ + "Área Indefinida", + "Definir Como Transparente", + "Repetir Pixeis da Borda", + "Envolver em Torno", + "Último Filtro" + ] + ] + ], + [ + [ + "Fájl", + "Szerkesztés", + "Kép", + "Réteg", + "Mappa", + "Kijelölés", + "Szűrő", + "Nézet", + "Ablak", + "Nyelv", + "Bejelentkezés", + "Kijelentkezés", + "Fordítás készítése", + [ + "Fiók", + "Jogi nyilatkozat", + "Vissza" + ], + "Több", + "Téma", + "WebGL használata" + ], + [ + "Megnyitás", + "Közzététel online (Imgur)", + "Mentés", + "Mentés mint PSD", + "Nyomtatás", + "URL hely megnyitása", + "Megnyitás saját gépről", + "Kapcsolódás Google Drive-hoz", + null, + null, + null, + null + ], + [ + "Tovább", + "Vissza", + "Törlés", + "Kitöltés", + "Alakítás", + "Forgatás", + "Vízszintes Tükrözés", + "Függőleges Tükrözés", + "e", + null + ], + "Színkorrekciók", + [ + "Fényerő / Kontraszt", + "Szintbeállítás", + "Görbék", + "Exponálás", + "Vibrálás", + "Árnyalat / Telítettség", + "Színegyensúly", + "Fekete Fehér", + "Fotószűrő", + "Csatornakeverő", + "Színkeresés", + "Invertálás", + "Keményítés", + "Határérték", + "Színátmenettérkép", + "Szín Kiválasztás", + [ + null, + null, + null + ] + ], + [ + "Vágás", + "Másolás", + "Beillesztés", + "Új", + "Törlés", + "Engedélyezés", + "Letiltás", + "Minden réteg másolása", + null + ], + [ + "Réteg Kétszerezése", + "Új Szabályozható Réteg", + "Rasztermaszk", + "Vektormaszk", + "Hozzáadás (összes megjelenítése)", + "Hozzáadás (Összes elrejtése)", + "Vágómaszk", + "Okos objektummá alakítás", + "Raszterizálás", + "Rétegcsoportok", + "Összevonás", + "Összevonás", + "Rétegek összeolvasztása", + "Új réteg", + "Rasztermaszk engedélyezése", + "Rasztermaszk törlése", + "Vektormaszk engedélyezése", + "Vektormaszk letiltása", + "Vágómaszk engedélyezése", + "Vágómaszk letiltása", + "Új mappa", + "Rasztermaszk hozzáadása", + "Rasztermaszk törlése", + "Vektormaszk hozzáadása", + "Vektormaszk törlése", + "Rasztermaszk összekötése", + "Rasztermaszk szétkapcsolása", + "Vektormaszkok összekapcsolása", + "Vektormaszkok szétkapcsolása", + "Rétegeffektek engedélyezése", + "Rétegeffektek letiltása", + "Réteg törlése", + "Réteg átlátszóságának változtatása", + "Keverési beállítások", + "Rétegstílus raszterizálása", + "Rétegrend", + [ + "Okos objektum hozzáadása", + "Okos objektum frissítése", + "Okos objektum elhelyezése" + ], + "Névváltoztatás", + "Színváltoztatás", + "Állítható réteg szerkesztése", + "Alakzattá alakítás", + "Filtermaszk engedélyezése", + "Filtermaszk törlése", + "Okos szűrők engedélyezése", + "Okos szűrők kikapcsolása", + "Szűrőmaszk hozzáadása", + "Szűrőmaszk törlése", + "Okos szűrők tisztítása", + [ + [ + "Egyszínű kitöltés", + "Színátmenetes Kitöltés", + "Minta Kitöltés" + ], + "Új kitöltő réteg", + "Kitöltési réteg módosítás" + ], + "Jelenlegi réteg másolása", + "Szűrő maszk", + "Réteg stílus törlése", + "Okos szűrő mozgatása", + "Okos szűrő törlése", + [ + null, + null + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Összes", + "Kiválasztás törlése", + "Inverzálás", + "Módosítás", + "Kiterjesztés", + "Összehúzás", + "Madártoll", + "Kiválasztott mozgatása", + "Szín tartomány", + "Szegély", + "Kiválasztott elemek transzformálása", + null, + null + ], + [ + "Nagyítás", + "Kicsinyítés", + "Útmutatók", + "Szabályzók", + "Rács", + "Illeszkedés", + "Illeszkedés", + null, + null, + null + ], + [ + "Előzmények", + "Rétegek", + "Beállítások", + "Ecset", + "Karakter", + "Paragrafus", + null, + null, + null + ], + [ + "Festő eszköz", + "Másoló eszköz", + "Vágó eszköz", + "Törlő eszköz", + "Ellipszis kijelölés", + "Pipetta", + "Gradiens eszköz", + "Mozgató eszköz", + "Szövegbevitel", + "Lasszós kiválasztás", + "Mágneses lasszó kijelölő", + "Mozgató eszköz", + "Varázspálca", + "Festékesvödör", + "Ákos okos!!!!", + "Téglalap kijelölés", + "Szabad átalakítás", + "Közelítő eszköz", + "Életlenítési eszköz", + "Élességi eszköz", + "Maszatoló eszköz", + "Világosító eszköz", + "Sötétítő eszköz", + "Szivacs eszköz", + "Folt korrekciós ecset", + "Korrekciós ecset", + null, + null, + null, + "Toll", + null, + "Egyéni alakzat", + "Téglalap", + "Ellipszis", + null, + "Vonal", + "Vonalzó", + null, + null + ], + [ + "Készíts egy képet!", + "Színválasztó", + "Kontúr szerkesztő", + "Vászon méret", + "Duplázás ide...", + "Színátmenet szerkesztő", + "Rétegstílus", + "Új projekt", + "Mentés webre", + "Csavarás", + "Képméret", + null, + null, + null + ], + [ + "Telítettség", + "Effektek", + "Fényerő", + "Kontraszt", + "Csatorna", + "Exponálás", + "Eltolás", + "Gamma korrekció", + "Színezet", + "Szaturáció", + "Könnyűség", + "Színezése", + "Hatótávolság", + "Élénkség", + "Méret", + "Szög", + "Kerekség", + "Keménység", + "Térköz", + "Kevert mód", + "Minta méret", + "Kontúr", + "Stílus", + "Fordított", + "Tűréshatár", + "Határos", + "Kitöltés", + "Globális szög használat", + "Távolság", + "Kiterjedés", + "Zaj", + "Árnyék kihagyás", + "Technika", + "Irány", + "Mélység", + "Lágy", + "Mód", + "Színátmenet", + "Méretezés", + "Retteggel összerendezés", + "Pozíció", + "Szélesség", + "Magasság", + "Rendeltetési hely", + "Típus", + "Előtér", + "Háttér", + "Egyedi", + "Név", + "Létrehoz", + "Formázás", + "Képarány megtartása", + "Minőség", + "Másolat", + "Mozgató", + "Szelektív szűrők", + "Sugár", + "Összeg", + "Terjesztés", + [ + "Egyen", + "Gauss" + ], + "Egyszínű", + "Cella méret", + "Minta", + "Folyam", + "Erő", + "Védett részlet", + "Kitöltés típusa", + "Textúra", + null, + "Él", + "Forrás", + "Cél", + "Csatorna", + "Maszk", + null, + null, + [ + "Út", + null, + null + ], + null, + "Oldalak", + null, + [ + null, + null, + null + ], + null, + null, + null, + null, + null, + null, + null, + [ + null, + null, + null, + null + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Szín", + [ + "Egyik sem", + "Piros", + "Narancs", + "Sárga", + "Zöld", + "Kék", + "Lila", + "Szürke", + "Fehér", + "Átláltszó", + null + ] + ], + [ + "Árnyék", + "Belső árnyék", + "Külső ragyogás", + "Belső ragyogás", + "Bevésés és Domborítás", + "Színátfedés", + "Színátmenet", + "Minta átfedés", + "Szatén", + "Körvonal", + "Összhatás beállítások" + ], + [ + "Csúcs Alak", + "Csúcs Dinamika", + "Szórás", + "Szín dinamika", + [ + "Bemozdulás méret", + "Minimális átmérő", + "Bemozdulás szög", + "Bemozdulás kerekség", + "Minimális Kerekség" + ], + [ + "Bemozdulási pozíció", + "Számol", + "Bemozdulási szám" + ], + [ + "Bemozdulás Előtér / Háttér", + "Bemozdulás Színárnyalat", + "Remegés Telítettség", + "Remegés Fényereje" + ], + [ + "Válassza ki a klón forrását a nyomva tartott Alt billenytűvel (vagy K), és kattintson a képre.", + null, + null, + null, + null, + null + ] + ], + [ + "Vezető", + "Követés", + "Kiindulási műszak" + ], + [ + "Teljes tartalom", + "Aktuális réteg", + "Kiválasztás", + null + ], + [ + "Csere", + "Egyesítés", + "Különbség", + "Metszőpont", + "XOR" + ], + [ + [ + "Egyenes irányú", + "Sugárirányú", + "Szög", + "Tükröződés", + "Gyémánt", + null + ], + [ + "Lágyabb", + "Pontos" + ], + [ + "Külső Tompaszög", + "Belső Tompaszög", + "Dombor", + "Párna Dombor", + "Ecsetvonás Dombor" + ], + [ + "Sima", + "Véső Kemény", + "Véső Lágy" + ], + [ + "Fel", + "Le" + ], + [ + "Kívül", + "Közép", + "Belül" + ], + [ + "Árnyék", + "Középtónusok", + "Kiemelés" + ], + [ + "Telítettlenség", + "Telítettség" + ], + [ + null, + null, + null + ] + ], + [ + "Válassza ki a tárgyat a kurzor alatt", + "Átalakítási vezérlők", + "Pixeltől Pixelig", + "Területhez Illesztés", + [ + null, + "Vízszintes középre igazítás", + null, + null, + "Függőleges középre igazítás", + null, + null + ] + ], + [ + "Helyezzen be", + "Jelenlegi projekt", + "Új Projekt", + "Felbontás", + "Hozzáadni az aktuális projekthez.", + "Egy új projekt jött létre.", + "Kamera hozzáférés megtagadva." + ], + [ + "Helyzet", + "Hajlás", + "Vízszintes csavarás", + "Függőleges csavarás", + [ + "Vízszintes", + "Függőleges" + ], + [ + "Semmi", + null, + null, + null, + null, + null, + null, + null, + null, + "Hullám", + "Hal", + null, + null, + null, + null, + null, + "Egyedi" + ], + [ + null, + null, + null + ], + [ + null, + null + ] + ], + [ + null, + null, + null, + null, + null, + "Töltés" + ], + [ + null, + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + null, + [ + "Átlag", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null + ], + null, + [ + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + "Legkevesebb", + null, + null + ], + [ + null, + "Beállítás áttetszőként" + ] + ] + ], + [ + [ + "Súbor", + "Upraviť", + "Obraz", + "Vrstva", + "Priečinok", + "Vybrať", + "Filter", + "Zobrazenie", + "Okno", + "Jazyk", + "Prihlásiť sa", + "Odhlásiť sa", + "Vytvoriť preklad", + [ + "Účet", + "Podmienky služby", + "Späť" + ], + "Viac", + "Téma", + "Použiť WebGL" + ], + [ + "Otvoriť", + "Zverejniť online (Imgur)", + "Uložiť", + "Uložiť ako PSD", + "Tlačiť", + "Otvoriť z URL", + "Otvoriť z počítača", + "Spojiť s Google Drive", + "Exportovať ako", + "Exportuj zdroje (assets)", + "Skript", + "Otvoriť a Umiestniť" + ], + [ + "Krok dopredu", + "Krok dozadu", + "Vyčistiť", + "Vyplniť", + "Transformácia", + "Otočiť", + "Prevrátiť vodorovne", + "Prevrátiť zvislo", + "Dopredu / Dozadu", + "Perspektíva" + ], + "Úpravy", + [ + "Jas / Kontrast", + "Úrovne", + "Krivky", + "Expozícia", + "Živosť", + "Odtieň / Sýtosť", + "Vyváženie farieb", + "Čierna & Biela", + "Fotografický filter", + "Miešanie kanálov", + "Vyhľadávanie farieb", + "Invertovať", + "Posterizovať", + "Prah", + "Gradientový prechod", + "Selektívna farba", + [ + "Auto Tón", + "Auto Kontrast", + "Auto Farby" + ] + ], + [ + "Vystrihnúť", + "Kopírovať", + "Vložiť", + "Nový", + "Vymazať", + "Povoliť", + "Zakázať", + "Kopírovať z celku", + null + ], + [ + "Duplikovať vrstvu", + "Nová vrstva úprav", + "Rastrová maska", + "Vektorová maska", + "Pridať (zobraziť všetko)", + "Pridať (skryť všetko)", + "Orezová maska", + "Previesť na Smart Object", + "Rastrovať", + "Pridať do zložky", + "Zlúčiť nadol", + "Zlúčiť nahor", + "Spojiť vrstvy", + "Nová vrstva", + "Zapnúť rastrovú masku", + "Vypnúť rastrovú masku", + "Zapnúť vektorovú masku", + "Vypnúť vektorovú masku", + "Zapnúť orezovú masku", + "Vypnúť orezovú masku", + "Nový priečinok", + "Pridať rastrovú masku", + "Zmazať rastrovú masku", + "Pridať vektorovú masku", + "Zmazať vektorovú masku", + "Spojiť rastrovú masku", + "Rozdeliť rastrovú masku", + "Spojiť vektorovú masku", + "Rozdeliť vektorovú masku", + "Zapnúť štýly vrstvy", + "Vypnúť štýly vrstvy", + "Zmazať vrstvu", + "Zmena priehľadnosti vrstvy", + "Zmena režimu prelínania", + "Rastrovať štýl vrstvy", + "Poradie vrstiev", + [ + "Vytvoriť Smart Object", + "Aktualizovať Smart Object", + "Umiestniť Smart Object" + ], + "Zmena názvu", + "Zmena farby", + "Zmena vrstvy úprav", + "Previesť na tvar", + "Zapnúť masku filtrov", + "Vypnúť masku filtrov", + "Zapnúť chytré filtre", + "Vypnúť chytré filtre", + "Pridať masku filtrov", + "Zmazať masku filtrov", + "Zmazať chytré filtre", + [ + [ + "Prekrytie farbou", + "Prekrytie prechodom", + "Prekrytie vzorkom" + ], + "Nová vrstva krytia", + "Úprava vrstvy krytia" + ], + "Vrstva kopírovaním", + "Maska filtra", + "Zmazať štýl vrstvy", + "Presunúť smart filter", + "Zmazať smart filter", + [ + "Prepojiť vrstvy", + "Zrušiť prepojenie vrstiev" + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Všetko", + "Odznačiť", + "Invertovať", + "Upraviť", + "Rozšíriť", + "Zúžiť", + "Zmäkčiť okraj", + "Posun výberu", + "Rozsah farieb", + "Okraj", + "Transformovať výber", + "Vylepšiť Hrany", + "Opraviť výber" + ], + [ + "Priblížiť", + "Oddialiť", + "Vodítka", + "Pravítka", + "Mriežka", + "Prichytávanie", + "Prichytiť k", + "Okraj dokumentu", + "Pixelová mriežka", + "Cesty" + ], + [ + "História", + "Vrstvy", + "Vlastnosti", + "Štetec", + "Znak", + "Odstavec", + "Info", + "Kompozícia", + "Vzorkovník" + ], + [ + "Štetec", + "Klonovacie razítko", + "Orez", + "Guma", + "Eliptický výber", + "Kvapkadlo", + "Prechod", + "Ruka", + "Vodorovný text", + "Laso", + "Magnetické laso", + "Presun", + "Kúzelná palička", + "Kýblik farby", + "Mnohouholníkové laso", + "Obdĺžnikový výber", + "Voľná transformácia", + "Lupa", + "Rozostrenie", + "Zostrenie", + "Rozmazanie", + "Zosvetlenie", + "Stmavenie", + "Hubka", + "Bodový retušovací štetec", + "Retušovací štetec", + "Záplata", + "Výber cesty", + "Priamy výber", + "Pero", + "Pero od ruky", + "Iný tvar", + "Obdĺžnik", + "Elipsa", + "Tvar s parametrami", + "Čiara", + "Pravítko", + "Rýchly Výber", + "Ceruzka" + ], + [ + "Vyfotiť", + "Výber farby", + "Editor kontúr", + "Veľkosť plátna", + "Duplikovať do ...", + "Editor prechodu", + "Štýl vrstvy", + "Nový projekt", + "Uložiť pre web", + "Pokrivenie", + "Veľkosť obrazu", + "Vektorizovať bitmapu", + "Zastrihnúť", + "Klávesové skratky" + ], + [ + "Krytie", + "Efekty", + "Jas", + "Kontrast", + "Kanál", + "Expozícia", + "Posun", + "Gamma korekcia", + "Odtieň", + "Sýtosť", + "Svetlosť", + "Kolorizovať", + "Rozsah", + "Živosť", + "Veľkosť", + "Uhol", + "Zaoblenie", + "Tvrdosť", + "Medzery", + "Režim prelínania", + "Veľkosť vzorku", + "Kontúra", + "Štýl", + "Otočiť", + "Tolerancia", + "Súvislé", + "Výplň", + "Použiť globálny uhol", + "Vzdialenosť", + "Rozšírenie", + "Šum", + "Vyseknúť vrhnutý tieň", + "Metóda", + "Smer", + "Hĺbka", + "Zmäkčiť", + "Režim", + "Prechod", + "Veľkosť", + "Zarovnať s vrstvou", + "Poloha", + "Šírka", + "Výška", + "Cieľ", + "Typ", + "Popredie", + "Pozadie", + "Vlastné", + "Názov", + "Vytvoriť", + "Formát", + "Zachovať pomer strán", + "Kvalita", + "Duplikovať", + "Presun", + "Chytré filtre", + "Polomer", + "Miera", + "Distribúcia", + [ + "Rovnomerná", + "Gaussovská" + ], + "Monochromatický", + "Veľkosť bunky", + "Vzorka", + "Hustota", + "Sila", + "Zachovať detaily", + "Typ výplne", + "Textúra", + "Chvenie", + "Hrana", + "Zdroj", + "Cieľ", + "Kanály", + "Maska", + "Hustota", + "Zarovnaný", + [ + "Cesta", + "Tvar", + "Pixely" + ], + "Tvary", + "Strany", + "Predvoľby", + [ + "Dĺžka", + "Pomer", + "Ľubovoľný" + ], + "Redukovať šum", + "Farby", + "Vzdialenosti", + "Miera", + "Automatický výber", + "Nájsť", + "Definovať nový", + [ + "Foto", + "Obrazovka", + "Mobil", + "Reklama" + ], + [ + "Voľný", + "Pevný pomer", + "Pevná veľkosť" + ], + "Pomoc", + [ + null, + null, + null + ] + ], + [ + "Farba", + [ + "Žiadna", + "Červená", + "Oranžová", + "Žltá", + "Zelená", + "Modrá", + "Fialová", + "Šedá", + "Biela", + "Priesvitná", + "Čierna" + ] + ], + [ + "Vrhnutý tieň", + "Vnútorný tieň", + "Vonkajšia žiara", + "Vnútorná žiara", + "Úkos a reliéf", + "Prekrytie farbou", + "Prekrytie prechodom", + "Prekrytie vzorkom", + "Satén", + "Vytiahnutie", + "Možnosti prelínania" + ], + [ + "Tvar špičky", + "Dynamika špičky", + "Rozptyl", + "Dynamika farby", + [ + "Kolísanie veľkosti", + "Minimálny priemer", + "Kolísanie uhla", + "Kolísanie zaoblenia", + "Minimálne zaoblenie" + ], + [ + "Rozptyl polohy", + "Počet", + "Kolísanie počtu" + ], + [ + "Kolísanie popredia/pozadia", + "Kolísanie odtieňa", + "Kolísanie sýtosti", + "Kolísanie jasu" + ], + [ + "Zvoľte zdroj klonovania pridržaním Alt a kliknutím do obrazu.", + "Označte popredie Bielou, pozadie Čiernou a neznámu oblasť Šedou.", + "Vrstvu nemožno upravovať.", + "Textová vrstva sa musí najsôr rastrovať", + "Smart Objekt sa musí najsôr rastrovať", + "Vyberte niekoľko vrstiev" + ] + ], + [ + "Preklad", + "Prestrkanie", + "Posun účiaria" + ], + [ + "Všetok obsah", + "Aktuálna vrstva", + "Výber", + "Vrstva a vrstvy pod ňou" + ], + [ + "Nahradiť", + "Spojiť", + "Odobrať", + "Prienik", + "Vylúčiť" + ], + [ + [ + "Lineárny", + "Kruhový", + "Uhlový", + "Zrkadlený", + "Diamant", + "Podľa tvaru" + ], + [ + "Mäkší", + "Presná" + ], + [ + "Vonkajší úkos", + "Vnútorný úkos", + "Reliéf", + "Poduškový reliéf", + "Reliéfny ťah" + ], + [ + "Vyhladiť", + "Tvrdá", + "Mäkká" + ], + [ + "Hore", + "Dole" + ], + [ + "Vonku", + "Na stred", + "Vnútri" + ], + [ + "Tiene", + "Stredné tóny", + "Odlesky" + ], + [ + "Znížiť sýtosť", + "Zvýšiť sýtosť" + ], + [ + null, + null, + null + ] + ], + [ + "Vybrať objekt pod kurzorom", + "Ovládacie prvky transformácie", + "Skutočné pixely", + "Prispôsobiť obrazovke", + [ + "Zarovnať ľavé hrany", + "Vodorovne na stred", + "Zarovnať pravé hrany", + "Zarovnať horné hrany", + "Zvisle na stred", + "Zarovnať spodné hrany", + "Rovnaké medzery" + ] + ], + [ + "Vložiť do", + "Súčasný projekt", + "Nový projekt", + "Rozlíšenie", + "Pridané do súčasného projektu.", + "Nový projekt vytvorený.", + "Nebol povolený prístup ku kamere." + ], + [ + "Orientácia", + "Ohyb", + "Vodorovná deformácia", + "Zvislá deformácia", + [ + "Vodorovne", + "Zvisle" + ], + [ + "Žiadne", + "Oblúk", + "Spodný oblúk", + "Vrchný oblúk", + "Klenba", + "Vydutie", + "Mušľa dole", + "Mušľa hore", + "Vlajka", + "Vlna", + "Ryba", + "Vyvýšenie", + "Rybie oko", + "Nafúknutie", + "Stlačenie", + "Skrútenie", + "Vlastné" + ], + [ + "Font", + "nie je dostupný", + "Pre vykreslenie sa použije" + ], + [ + "Prehodiť farby", + "Základné: čierna a biela" + ] + ], + [ + "Načítaný", + "pridané", + "Posun vodítka", + "Zmazanie vodítka", + "Pridanie vodítka", + "Načítanie" + ], + [ + "Galéria filtrov", + [ + [ + "Skvapalniť", + [ + "Rozmazať", + "Obnoviť", + "Vyhladiť", + "Zatočiť", + "Zmrštiť", + "Nafúknuť", + null, + null, + null + ] + ], + [ + null + ] + ], + "Rozostrenie", + [ + "Priemer", + "Rozostriť", + "Rozostriť viac", + "Pravouhlé rozostrenie", + "Gaussovské rozostrenie", + "Rozostrenie šošovkou", + "Rozostrenie pohybom", + "Kruhové rozostrenie", + "Rozostrenie tvarom", + "Chytré rozostrenie", + "Rozostrenie povrchu" + ], + "Skresliť", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Šum", + [ + "Pridať šum", + "Vyhladiť", + "Prach a škrabance", + "Medián" + ], + "Pixelizácia", + [ + "Farebné poltónovanie", + "Kryštalizácia", + "Fazeta", + "Fragment", + "Mezzotinta", + "Mozaika", + "Vybodkovať" + ], + "Vykresliť", + [ + "Mraky", + null + ], + "Zaostriť", + [ + "Zaostriť", + "Zaostriť hrany", + "Zaostriť viac", + "Chytré zaostrenie", + "Maska zaostrenia" + ], + "Štylizácia", + [ + "Difúzia", + "Reliéf", + "Extrudácia", + "Nájsť hrany" + ], + "Ostatné", + [ + "Vlastné", + "Výšky", + "Maximum", + "Minimum", + "Posun", + null + ], + [ + "Oblasť okolo", + "Nastaviť priehľadnú", + "Zopakovať pixely na hrane", + "Zopakovať obrázok", + "Posledný Filter" + ] + ] + ], + [ + [ + "Файл", + "Редакция", + "Изображение", + "Слой", + "Папка", + "Избери", + "Филтър", + "Изглед", + "Прозорец", + "Език", + "Вход", + "Изход", + "Създай превод", + [ + "Профил", + "Условия за ползване", + "Назад" + ], + "Повече", + "Тема", + "Използвайте WebGL" + ], + [ + "Отвори", + "Публикувай online (Imgur)", + "Запис", + "Запис като PSD", + "Печат", + "Отвори от URL", + "Отвори от компютъра", + "Връзка с Google Drive", + "Запази Като", + "Запази Активи", + "Скрипт", + "Отваряне и поставяне" + ], + [ + "Стъпка напред", + "Стъпка назад", + "Изчисти", + "Запълни", + "Трансформация", + "Завъртане", + "Обърни хоризонтално", + "Обърни вертикално", + "Отмяна / Повторение", + "Перспективно" + ], + "Корекции", + [ + "Яркост / Контраст", + "Нива", + "Криви", + "Експонация", + "Вибрантност на цвета", + "Нюанс / Наситеност", + "Цветови баланс", + "Черно и Бяло", + "Фото Филтър", + "Смесител на канали", + "Търсене на цвят", + "Инвертиране", + "Плакат", + "Праг", + "Карта на градиента", + "Селективен Цвят", + [ + "Автоматичен Тон", + "Автоматичен Контраст", + "Автоматичен Цвят" + ] + ], + [ + "Изрязване", + "Копиране", + "Поставяне", + "Нов", + "Изтрий", + "Активиране", + "Деактивиране", + "Копиране на сливането", + "Приложи" + ], + [ + "Дублиране на слоя", + "Нов слой за настройка", + "Растерна маска", + "Векторна маска", + "Добави (покажи всички)", + "Добави (скрий всички)", + "Маска за изрязване", + "Превърни в интелигентен обект", + "Рестиризилане", + "Групирай слоеве", + "Сливане надолу", + "Сливане нагоре", + "Сливане на слоеве", + "Нов слой", + "Активиране на растерна маска", + "Деактивиране на растерна маска", + "Активиране на векторна маска", + "Деактивиране на векторна маска", + "Активиране на маска за изрязване", + "Деактивиране на маска за изрязване", + "Нова папка", + "Добави растерна маска", + "Изтрий растерна маска", + "Добави векторна маска", + "Изтрий векторна маска", + "Свързване на растерна маска", + "Изключване на растерна маска", + "Свързване на векторна маска", + "Изключване на векторна маска", + "Пусни ефекти на слоя", + "Изключи ефекти на слоя", + "Изтриване на слой", + "Промяна прозрачност на слоя", + "Промяна на смесването", + "Растеризиране стилове на слоя", + "Ред на слоевете", + [ + "Създай Смарт обект", + "Актуализиране на Смарт обект", + "Поставяне на Смарт обект" + ], + "Смяна на име", + "Смяна на цвят", + "Промяна на Регулиращ Слой", + "Конвертирай във Форма", + "Включи Филтърна Маска", + "Изключи Филтърна Маска", + "Включи Смарт Филтри", + "Изключи Смарт Филтри", + "Добави Филтър Маска", + "Изтрий Филтър Маска", + "Изчисти Смарт Филтри", + [ + [ + "Попълване с плътен цвят", + "Попълване с градиент", + "Попълване с текстура" + ], + "Нов слой за попълване", + "Промени слой за попълване" + ], + "Слой от копие", + "Филтър Маска", + "Изтрий стил на слой", + "Премести Смарт филтър", + "Изтрий Смарт филтър", + [ + "Свързване на слоеве", + "Откачане на слоеве" + ], + "Подреди", + [ + "Доведи отпред", + "Доведи напред", + "Заведи назад", + "Заведи отзад" + ], + [ + null, + null + ] + ], + [ + "Всичко", + "Отмяна на избора", + "Обръщане", + "Промени", + "Разшири", + "Свий", + "Изтъняване", + "Премести селекцията", + "Цветови диапазон", + "Бордер", + "Трансформирай селекцията", + "Преработка на краищата", + "Heal селекция" + ], + [ + "Увеличи", + "Отдалечи", + "Водачи", + "Линия", + "Мрежа", + "Свържи", + "Свържи със", + "Граници на документа", + "Пикселова мрежа", + "Пътища" + ], + [ + "История", + "Слоеве", + "Свойства", + "Четки", + "Символ", + "Параграф", + "Информация", + "Състав на слоевете", + "Мостри" + ], + [ + "Четка", + "Инструмент за клониране", + "Инструмент за изрязване", + "Инструмент за изтриване", + "Избор с елипса", + "Пипета", + "Инструмент за градиент", + "Инструмент ръка", + "Инструмент за писане", + "Избор с ласо", + "Избор с магнетично ласо", + "Инструмент за местене", + "Магическа пръчица", + "Кофа", + "Полигонично Ласо Селектиране", + "Квадратна селекция", + "Свободна Трансформация", + "Приближаване и отдалечаване", + "Замъгляване", + "Острота", + "Замазване", + "Изсветляване", + "Потъмняване", + "Гъба", + "Премахване на петна", + "Излекуване", + "Закърпване", + "Избиране на Пътека", + "Директно Избиране", + "Химикалка", + "Свободна Химикалка", + "Специални Форми", + "Правоъгълник", + "Елипса", + "Параметрични Форми", + "Линия", + "Линия", + "Бърза селекция", + "Молив" + ], + [ + "Снимай", + "Цветоизбирач", + "Контурен Едитор", + "Големина на Платното", + "Дупликирай в", + "Градиент редактор", + "Стил на Слоя", + "Нов проект", + "Запази за Уеб-а", + "Деформиране", + "Големина на Изображението", + "Векторизиране на Растерното Изображение", + "Подрязване", + "Клавишни Преки Пътища" + ], + [ + "Прозрачност", + "Ефекти", + "Светлост", + "Контраст", + "Канал", + "Експозиция", + "Изместване", + "Корекция на Гамата", + "Оттенък", + "Цветово Насищане", + "Светлинност", + "Оцветяване", + "Диапазон", + "Цветова Живост", + "Размер", + "Ъгъл", + "Закръгленост", + "Твърдост", + "Интервал между", + "Начин на Смесване", + "Размер на Извадката", + "Контур", + "Стил", + "Наобратно", + "Толерантност", + "Съседен", + "Запълване", + "Използвай глобалния ъгъл", + "Дистанция", + "Разпространи", + "Шум", + "Нокайтурай Падащата Сянка", + "Техника", + "Посока", + "Дълбочина", + "Омекоти", + "Метод", + "Градиент", + "Мащаб", + "Подравняване със слой", + "Позиция", + "Широчина", + "Височина", + "Дестинация", + "Тип", + "Преден План", + "Заден План", + "Персонализиран", + "Име", + "Създай", + "Формат", + "Запази Съотношението", + "Качество", + "Дублирай", + "Премести", + "Интелигенти Филтъри", + "Радиус", + "Количество", + "Разпределение", + [ + "Еднороден", + "Гауски" + ], + "Едноцветен", + "Размер на Клетката", + "Шарка", + "Менструация", + "Сила", + "Запази Детайлите", + "Тип Запълване", + "Текстура", + "Треперене", + "Ръб", + "Източник", + "Мишена", + "Канали", + "Маска", + "Плътност", + "Подравнен", + [ + "Пътека", + "Форма", + "Пиксели" + ], + "Форми", + "Страни", + "Преференции", + [ + "Дължина", + "Съотношение", + "Всеки" + ], + "Намали Шума", + "Цветове", + "Разстояния", + "Рейтинг", + "Авто-Избиране", + "Намери", + "Дефинирай Нов", + [ + "Снимка", + "Прожектирам", + "Мобилно", + "Реклами" + ], + [ + null, + "Фиксирано Съотношение", + "Фиксирана Големина" + ], + "Помощ", + [ + "Живи Форми", + "Промени Живата Форма", + "Същите Радиуси" + ] + ], + [ + "Цвят", + [ + "Нищо", + "Червено", + "Оранжево", + "Жълто", + "Зелено", + "Синьо", + "Лилаво", + "Сиво", + "Бяло", + "Прозрачно", + "Черно" + ] + ], + [ + "Падаща Сянка", + "Вътрешна Сянка", + "Външна Светлина", + "Вътрешна Светлина", + "Наклон И Релеф", + "Цветова Настилка", + "Градиентова Настилка", + "Шаркова Настилка", + "Сатина", + "Щрих", + "Опции за Смесване" + ], + [ + "Форма на Върха", + "Връхови Динамики", + "Разпилей", + "Цветовни Динамики", + [ + "Големина на Трептенето", + "Минимален Диаметър", + "Ъгъл на Треперенето", + "Кръглост на Трептенето", + "Минимална Кръглост" + ], + [ + "Позиционно Трептене", + "Брой", + "Брой на Трептенията" + ], + [ + "Трептене на Предния/Задния-план", + "Оттенък на Трептенето", + "Насищане на Трептенето", + "Сетлинност на Трептенето" + ], + [ + "Задръжте АЛТ (или К) бутона и цъкнете върху изображението за да изберете източника на клониране", + "Отбележи Предния план с Бяло, Задния фон с Черно и незнайната територия със Сиво", + "Слоят неможе да бъде променян.", + "Текстовият Слой трябва да бъде растеризиран преди това", + "Интелигентият Обект трябва да бъде растеризиран преди това", + "Избери множество слоеве" + ] + ], + [ + "Водещ", + "Проследяване", + "Изместване на Базовата линия" + ], + [ + "Всички Слоеве", + "Текущ Слой", + "Избор", + "Текущ и Надоло" + ], + [ + "Замени", + "Обедини", + "Изваждане", + "Пресичане", + "Изключване" + ], + [ + [ + "Линеен", + "Радиален", + "Ъгъл", + "Отразено", + "Диамант", + "Изблик на Формата" + ], + [ + "По-меко", + "Прецизно" + ], + [ + "Външен Наклон", + "Вътрешен Наклон", + null, + "Възглавнично Релефиране", + null + ], + [ + "Гладко", + null, + null + ], + [ + null, + null + ], + [ + null, + null, + null + ], + [ + null, + null, + null + ], + [ + null, + null + ], + [ + null, + null, + null + ] + ], + [ + null, + null, + null, + null, + [ + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null, + null, + null, + null, + null, + null, + null + ], + [ + null, + null, + null, + null, + [ + null, + null + ], + [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + [ + null, + null, + null + ], + [ + null, + null + ] + ], + [ + null, + null, + null, + null, + null, + null + ], + [ + null, + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null, + null, + null, + null + ], + null, + [ + null, + null + ], + null, + [ + null, + null, + null, + null, + null + ], + null, + [ + null, + null, + null, + null + ], + "Друго" + ] + ], + [ + [ + "Skedar", + "Redakto", + "Foto", + "Shtresa", + "Dosja", + "Përzgjidh", + "Filtrues", + "Pamja", + "Dritarja", + "Gjuha", + "Kyçu", + "Dil", + "Krijo përkthim", + [ + "Llogaria", + "Kushtet e Shërbimit", + "Prapa" + ], + "Më shumë", + "Motivi", + null + ], + [ + "Hape", + "Boto në internet (Imgur)", + "Ruaje", + "Ruaje si PSD", + "Shtype", + "Hape nga URL", + "Hape nga kompjuteri", + "Lidhu me Google Drive", + null, + null, + null, + null + ], + [ + "Ec para", + "Ec Prapa", + "Pastro", + "Mbush", + "Transformo", + "Rrotullo", + "Rrokullise Horizontalisht", + "Rrokullise Vertikalisht", + "Ç'bëje /Ribëje", + null + ], + "Përshtatjet", + [ + "Shkëlqimi / Kontrasti", + "Nivelet", + "Lakoret", + "Ekspozimi", + "Dinamika", + "Toni / Përzierja", + "Ekuilibri i Ngjyrave", + "Bardh & Zi", + "Foto Filtruesi", + "Përzierës Ngjyrash", + "Kërkues Ngjyrash", + "Anasjelltas", + "Posterizo", + "Pragu", + "Harta Gradient", + "Ngjyrë e Përzgjedhur", + [ + null, + null, + null + ] + ], + [ + "Preje", + "Kopjo", + "Hidhe", + "E Re", + "Grise", + "Mundëso", + "Pamundëso", + "Kopjo së bashku", + null + ], + [ + "Dyfisho shtresën", + "Shtresë e Re e Përshtatjes", + "Maskë Raster", + "Maska e Vektorit", + "Shto (Shfaq të Gjitha)", + "Shto (Fshih të gjitha)", + "Maska Prerëse", + "E konverto në Objekt të Mençur", + "Rasterizo", + "Grupo Shtresat", + "Bashko Poshtë", + "Bashko Sipër", + "Bashko Shtresat", + "Shtresë e Re", + "Mundëso Maskën Raster", + "Pamundëso Maskën Raster", + "Mundëso Maskën Vektoriale", + "Pamundëso Maskën Vektoriale", + "Mundëso Maskën e Prerjes", + "Pamundëso Maskën e Prerjes", + "Dosje e Re", + "Shto Maskë Raster", + "Grise Maskën Raster", + "Shto Maskë Vektoriale", + "Grise Maskën Vektoriale", + "Lidhe Maskën Raster", + "Ç'lidhe Maskën Raster", + "Lidhe Maskën Vektoriale", + "Ç'lidhe Maskën Vektoriale", + "Mundëso Efektet e Shtresës", + "Pamundëso Efektet e Shtresës", + "Grise Shtresën", + "Ndrysho Tejdukshmërinë e Shtresës", + "Ndryshimi i Përzierjes", + "Stili i Shtresës së Rasterizimit", + "Radhitja e Shtresave", + [ + "Krijimi i Objektit të Mençur", + "Përditësimi i Objektit të Mençur", + "Vendosja e Objektit të Mençur" + ], + "Ndryshimi i Emrit", + "Ndryshimi i Ngjyrës", + "Redakto Shtresën e Përshtatjes", + "E konverto në Formë", + "Mundëso Maskë Filtrimi", + "Pamundëso Maskë Filtrimi", + "Mundëso Filtruesit e Mençur", + "Pamundëso Filtruesit e Mençur", + "Shto Maskë Filtruese", + "Grise Maskën Filtruese", + "Pastro Filtruesit e Mençur", + [ + [ + "Mbushje me Ngjyrë të Pastër", + "Mbushje Gradient", + "Mbushje me Model" + ], + "Shtresë e Re Mbushjeje", + "Ndrysho Shtresën Mbushëse" + ], + "Shtresë përmes Kopjimit", + "Maska Filtruese", + "Grise Stilin e Shtresës", + "Zhvendose Filtruesin e Mençur", + "Grise Filtruesin e Mençur", + [ + null, + null + ], + null, + [ + null, + null, + null, + null + ], + [ + null, + null + ] + ], + [ + "Të Gjitha", + "Ç'selekto", + "Anasjelltas", + "Ndrysho", + "Zgjero", + "Zvogëlim", + "Pendë", + "Zhvendos Përzgjedhjen", + "Gama e Ngjyrave", + "Kufiri", + "Transformo Selektimin", + "Rafino Qoshet", + null + ], + [ + "Zmadho", + "Zvoglo", + "Udhëzuesi", + "Rregullat", + "Rrjeta", + "Kapje", + "Kapja Tek", + "Kufizimet e dokumenteve", + "Rrjeti i Pikselëve", + "Rrugët" + ], + [ + "Historia", + "Shtresat", + "Vetitë", + "Brusha", + "Shkronja", + "Paragrafi", + null, + null, + null + ], + [ + "Brusha", + "Klonuesi", + "Prerësi", + "Grisësi", + "Përzgjidh Elipsin", + "Përzgjedhje ngjyrash", + "Mjeti Kursimit", + "Dora", + "Mjeti Shkrimit", + "Përzgjidh Litarin", + "Përzgjedhje me Laso Magnetike", + "Lëvizësi", + "Muri Magjik", + "Kova e Ngjyrave", + "Përzgjedhësi Poligonal", + "Përzgjedhësi Katrorë", + "Transformimi Lirë", + "Zmadhuesi", + "Paqartësuesi", + "Theksuesi", + "Ndotësi", + "Terruesi", + "Djegësi", + "Sfungjeri", + "Furçe riparuese në formë pike", + "Furçe Riparuese", + "Bandazhuesi", + "Përzgjidh Rrugën", + "Përzgjidhja e Drejtpërdrejtë", + "Lapsi", + "Laps i Lirë", + "Formë Personale", + "Drejtkëndësh", + "Elipsë", + "Formë Parametrale", + "Vijë", + "Vizorja", + "Përzgjedhje e Shpejtë", + "Stilolapsi" + ], + [ + "Bëj Foto", + "Përzgjedhës Ngjyrash", + "Redaktuesi Konturit", + "Madhësia Fotos", + "Dyfishoje në ...", + "Redaktori Rrjedhës Ngjyrës", + "Stili i Shtresës", + "Projekti Ri", + "Ruaje për ueb", + "Deformo", + "Madhësia Fotos", + "Bitmap vektorizimi", + "Zvogëlim", + null + ], + [ + "Mbushja", + "Efektet", + "Ndriçimi", + "Kontrast", + "Kanali", + "Zbulimi", + "Menjanimi", + "Gama Korrigjim", + "Nuanca", + "Ngopja", + "Ndriçimi", + "Ngjyrimi", + "Domeni", + "Gjallëria", + "Madhësia", + "Këndi", + "Rrumbullak", + "Fortësia", + "Hapësira", + "Mënyra Përzierjes", + "Madhësia Mostrës", + "Numëruesi", + "Stili", + "E Kundërta", + "Toleranca", + "Vazhdues", + "Mbush", + "Shfrytëzo kënd të përgjithshëm", + "Largësia", + "Përhap", + "Zhurmimi", + "Maskimi i hijes", + "Teknika", + "Drejtimi", + "Thellësia", + "Zbute", + "Mënyra", + "Rrjedha Ngjyrës", + "Shkalla", + "E nivelo me fletën", + "Pozita", + "Gjerësia", + "Lartësia", + "Destinacioni", + "Lloji", + "Paravija", + "Prapavija", + "Përzgjedhur", + "Emri", + "Krijo", + "Formati", + "Ruaje raportin e anëve", + "Kualiteti", + "Dyfisho", + "Lëvize", + "Filtruesit e Mençur", + "Radius", + "Sasia", + "Shpërndarja", + [ + "Njësimi", + "Gausian" + ], + "Monokromatik", + "Madhësia Qelisë", + "Mostra", + "Rrjedha", + "Forca", + "Mbrojtje e Detajuar", + "Lloji Mbushjes", + "Teksturë", + "Luhatje", + "Qoshja", + "Burimi", + "Objektivi", + "Kanalet", + "Maska", + "Dendësia", + "Rradhitur", + [ + "Rruga", + "Forma", + "Piksel" + ], + "Format", + "Anët", + "Parapëlqimet", + [ + "Gjatësia", + null, + null + ], + "Zvogëlo Zhurmën", + "Ngjyrat", + "Largësitë", + null, + null, + null, + null, + [ + null, + null, + null, + null + ], + [ + null, + null, + null + ], + null, + [ + null, + null, + null + ] + ], + [ + "Ngjyra", + [ + "Asnjë", + "E Kuqe", + "Portokalli", + "E Verdhë", + "E Gjelbër", + "E Kaltër", + "Vjollcë", + "Gri", + "E Bardhë", + "E Tejdukshme", + null + ] + ], + [ + "Shto Hije", + "Hije e Brendshme", + "Shkëlqimi Jashtëm", + "Shkëlqimi Brendshëm", + "Hapësirë dhe qoshe të rrafshëta", + "Mbulimi Ngjyrës", + "Mbulesa", + "Mbulesa Mostrës", + "Saten", + "Ramja", + "Mundësitë e Përzierjes" + ], + [ + "Forma Këndit", + "Dinamika Qosheve", + "Copëzimi", + "Dinamika Ngjyrës", + [ + "Luhatja Rastit", + "Diametri Minimal", + "Luhatja Këndit", + "Luhatja Rrethit", + "Rrumbullakësia Minimale" + ], + [ + "Luhatja Pozitës", + "Numrimi", + "Numri Luhatjeve" + ], + [ + "Luhatja në Paravijë/Prapavijë", + "Luhatja Tonit të Ngjyrës", + "Luhatja Ngopjes", + "Luhatja e ndriçimit" + ], + [ + "Përzgjidh burimin e klonimit duke shtypur Alt (ose K) dhe duke klikuar nbi foto.", + null, + null, + null, + null, + null + ] + ], + [ + "Udhëheqja", + "Ndjekja", + "Ndryshimi Bazës" + ], + [ + "Përmbajtja Gjithësej", + "Fleta Momentale", + "Përzgjedhja", + null + ], + [ + "Zëvendëso", + "Bashko", + "Dallimi", + "Prerja", + "Përjashto" + ], + [ + [ + "Linear", + "Rrezor", + "Qoshe", + "Reflektuar", + "Diamant", + "Shpërthimi Formës" + ], + [ + "Më e butë", + "Preciz" + ], + [ + "Koni Jashtëm", + "Koni Brendshëm", + "Reliefi", + "Jastëk Stampim", + "Stampim Goditje" + ], + [ + "Zbut", + "Gdhendje e Fortë", + "Gdhendje e Butë" + ], + [ + "Sipër", + "Poshtë" + ], + [ + "Jashtë", + "Në Mes", + "Brenda" + ], + [ + "Hijet", + "Mesi", + "Pikat kryesore" + ], + [ + "Zbrazje", + "Mbushje" + ], + [ + null, + null, + null + ] + ], + [ + "Përzgjidh objektin nën kursorin", + "Ngjyrat e transformimit", + "Piksel për Piksel", + "Mbush Hapësirën", + [ + "Ofro Këndet Majtas", + "Centro Horizontalisht", + "Ofro Këndet Djathtas", + "Ofro Këndet Sipër", + "Centro Vertikalisht", + "Ofro Këndet Poshtë", + null + ] + ], + [ + "E vendos në", + "Projekti Momental", + "Projekti Ri", + "Zgjidhja", + "E shto në projektin momental.", + "U krijua projekt i ri.", + "Qasja tek kamera u refuzua." + ], + [ + "Orientimi", + "Lako", + "Shfytyrim Horizontal", + "Shfytyrim Vertikal", + [ + "Horizontal", + "Vertikal" + ], + [ + "Asnjë", + "Hark", + "Hark Tatëpjetë", + "Hark Përpjetë", + "Hark", + "Ç'gungim", + "Guaca Poshtë", + "Guaca Sipër", + "Flamur", + "Valë", + "Peshk", + "Rrit", + "Sy Peshku", + "Fryj", + "Shtrydh", + "Përdridh", + "Përzgjedhur" + ], + [ + "Shkronjat", + "nuk është në dispozicion", + "Do të kryhet përmes" + ], + [ + "Ndërro Ngjyrat", + "Përzgjedhur: Bardh e Zi" + ] + ], + [ + "hapur", + "shtuar", + "Lëviz Ndihmuesin", + "Grise Ndihmuesin", + "Shto Ndihmues", + "Duke u hapur" + ], + [ + "Galeria Filtruese", + [ + [ + null, + [ + null, + null, + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null + ] + ], + "Turbull", + [ + "Mesatare", + "Turbullo", + "Turbullo më shumë", + "Turbullo kuti", + "Mjegullim Gausian", + "Mjegullim Objektivi", + "Mjegullim Lëvizës", + "Mjegullim Rrezor", + "Turbullo në formë", + "Mjegullim i Mençur", + "Mjegullimi Sipërfaqes" + ], + "Shtrembërim", + [ + null, + null, + null, + null, + null, + null, + null + ], + "Zhurmimi", + [ + "Shto Zhurmë", + "Largimi Pengimit", + "Pluhur & Gërvishtje", + "Mesatarja" + ], + "Pikselim", + [ + "Ngjyra Gjysmëton", + "Kristalizim", + "Aspekt", + "Fragmento", + "Mezotint", + "Mozaik", + "Pikëzim" + ], + "Suvatim", + [ + "Retë", + null + ], + "Theksimi", + [ + "Thekso", + "Thekso Qoshet", + "Thekso më shumë", + "Theksimi i Mençur", + "Maska e patheksuar" + ], + "Stilizo", + [ + "Shpërndaj", + "Stampim", + "Shtrydh", + "Gjej Qoshet" + ], + "Tjera", + [ + "Përshtatur", + "Lartësia", + "Maksimumi", + "Minimumi", + "Efekti Zhvendosjes", + null + ], + [ + "Hapësira e padefinuar", + "Bëje të Tejdukshme", + "Përsërit Pikselët e Këndit", + "Pështjell" + ] + ] + ], + [ + [ + "ཡིག་ཆ།", + "བཟོ་སྒྲིག", + "དཔར།", + "ངོས།", + "ཡིག་ཁུག", + "འདེམས།", + "ཚགས།", + "ལྟ་སྣང་།", + "སྒེའུ་ཁུང་།", + "སྐད་ཡིག", + "ནང་དུ་འཛུལ།", + "སྒོ་གཏན།", + "ཡིག་སྒྱུར་བྱེད།", + [ + "དེབ་སྐྱེལ།", + "ཞབས་ཞུའི་འགན་རྒྱ།", + "ཕྱིར་ལོག" + ], + "དེ་ལས་མང་བ།", + "དཔེ་དཔང་།", + "WebGLསྤྱད།" + ], + [ + "ཁ་འབྱེད།", + "དྲ་གནས་སུ་སྤེལ། (Imgur)", + "ཉར་ཚགས།", + "PSD རྣམ་པར་ཉར།", + "དཔར་སློག", + "དྲ་ཐག་ནས་ཁ་འབྱེད།", + "གློག་ཀླད་ནས་ཁ་འབྱེད།", + "Google Drive དང་མཐུད།", + "ཕབས་སྟངས་གཞན།", + "རྒྱུ་ཆ་ཕབས།", + "བརྡ་ཡིག", + "འདིར་ཁ་ཕྱེ།" + ], + [ + "མདུན་གཤིག", + "རྒྱབ་གཤིག", + "སུབ།", + "འགེང།", + "གཟུགས་འགྱུར།", + "བསྐོར།", + "ཕྲད་བསློག", + "ཁ་བསློག", + "ཕྱོར་ལོག / སྔོན་ལོག", + "སྣང་ཚོད།" + ], + "སྙོམ་སྒྲིག", + [ + "བཀྲག་མདངས། / ལྡོག་ཆོས།", + "ཆ་སྙོམ།", + "གུག་ཐིག", + "འཚེར་ཤུགས།", + "ཚོན་ཤུགས།", + "ཚོན། / ཧར་ལོད།", + "ཚོན་དོ་སྙོམ།", + "དཀར་པོ་དང་ནག་པོ།", + "དཔར་ཚགས།", + "ཁ་དོག་སྲེ་སྦྱོར།", + "ཁ་དོག་དཔྱད་བསྡུར།", + "ཕྱི་ནང་སློག་པ།", + "པར་གཞི་བཟོ་བ།", + "ཡས་ཆོད།", + "སྟེགས་རིས་ས་ཁྲ།", + "གདམ་ག་ཅན་གྱི་ཁ་དོག", + [ + "ཚོན་མདངས་རང་སྒྲིག", + "ལྡོག་ཆོས་རང་སྒྲིག", + "ཁ་དོག་རང་སྒྲིག" + ] + ], + [ + "གཏུབ།", + "བཤུ།", + "སྦྱར།", + "གསར་པ།", + "དོར།", + "ནུས་ཡོད་བཟོ།", + "ནུས་མེད་བཟོ།", + "ཟླ་སྒྲིལ་བྱས་པ་དེ་བཤུས།", + null + ], + [ + "ངོས་འདྲ་བཤུས།", + "སྒྲིག་ངོས་གསར་པ།", + "ལྷུ་འབག", + "སྲ་འབག", + "གནོན། (ཆ་ཚང་)", + "སྣོན། (ཆ་ཚང་བསྐུང་)", + "འབག་བཅད་ཤོག", + "བསྡུ་རིས་ལ་བཟོ།", + "ལྷུ་བཤིག", + "ངོས་སྡེ་ཚན་དུ་བཟོ།", + "འོག་ཏུ་ཟླ་སྒྲིལ།", + "ཡར་ཟླ་སྒྲིལ།", + "ངོས་རྣམས་ཟླ་སྒྲིལ་གཏོང་།", + "ངོས་གསར་པ།", + "ལྷུ་འབག་ནུས་ཡོད་བཟོ།", + "ལྷུ་འབག་ནུས་མེད་བཟོ།", + "སྲ་འབག་ནུས་ཡོད་བཟོ།", + "སྲ་འབག་ནུས་མེད་བཟོ།", + "འབག་བཅད་ཤོག་ནུས་ཡོད་བཟོ།", + "འབག་བཅད་ཤོག་ནུས་མེད་བཟོ།", + "ཡིག་ཁུག་གསར་པ།", + "ལྷུ་འབག་སྣོན།", + "ལྷུ་འབག་དོར།", + "སྲ་འབག་སྣོན།", + "སྲ་འབག་དོར།", + "ལྷུ་འབག་མཐུད།", + "ལྷུ་འབག་བཅད།", + "སྲ་འབག་མཐུད།", + "སྲ་འབག་བཅད།", + "ངོས་ཀྱི་ཁྱད་ཆོས་ནུས་ཡོད་བཟོ།", + "ངོས་ཀྱི་ཁྱད་ཆོས་ནུས་མེད་བཟོ།", + "ངོས་དོར།", + "ངོས་གསལ་ཆ་སྒྲིག", + "སྡེབ་སྦྱོར་སྒྲིག", + "ངོས་ཀྱི་བཀོད་སྒྲིག་ལྷུ་བཤིག", + "ངོས་ཀྱི་གོ་རིམ།", + [ + "བསྡུ་རིས་བཟོ།", + "བསྡུ་རིས་ཁ་གསབ།", + "བསྡུ་རིས་འཇོག" + ], + "མིང་བརྗེ།", + "ཚོན་མདོག་བརྗེ།", + "སྒྲིག་ངོས་སྒྲིག་སྦྱོར།", + "དབྱིབས་ལ་འགྱུར།", + "འབག་ཚགས་ནུས་ལྡན་བཟོ།", + "འབག་ཚགས་ནུས་མེད་བཟོ།", + "བསྡུ་ཚགས་ནུས་ཡོད་བཟོ།", + "བསྡུ་ཚགས་ནུས་མེད་བཟོ།", + "འབག་ཚགས་སྣོན།", + "འབག་ཚགས་དོར།", + "བསྡུ་ཚགས་སུབ།", + [ + [ + "ཚོན་རྡོག་གཏོང་།", + "ཚོན་སྟེགས་གཏོང་།", + "བཀོད་དཔེ་གཏོང་།" + ], + "འགེང་ངོས་གསར་པ།", + "འགེང་ངོས་འགྱུར་བཅོས།" + ], + "ཤུལ་ནས་ངོས་སུ།", + "འབག་ཚགས།", + "ངོས་ཀྱི་བཀོད་སྒྲིག་དོར།", + "བསྡུ་ཚགས་སྤོ།", + "བསྡུ་ཚགས་དོར།", + [ + "ངོས་དང་མཐུད།", + "ངོས་དང་མཐུད་བཅད།" + ], + "གོ་རིམ་སྒྲིག", + [ + "མདུན་དུ་འཇོག", + "མདུན་ལ་གཏོང་།", + "རྒྱབ་ལ་གཏོང་།", + "རྒྱབ་་ལ་འཇོག" + ], + [ + null, + null + ] + ], + [ + "ཆ་ཚང་།", + "སློད།", + "ཕྱི་ནང་སློག་པ།", + "བཟོ་བཅོས་གཏོང་།", + "རྒྱ་སྐྱེད།", + "འདུས་པ།", + "བྱ་སྒྲོ།", + "འདེམས་འགུལ།", + "ཚོན་མདོག་རིགས།", + "མཚམས་ཐིག", + "འདེམ་བྱ་གཟུགས་འགྱུར།", + "མཐའ་སྣེ་སྤུས་དག་ཏུ་གཏོང་།", + "འདེམ་བྱ་གསོ་ཐབས།" + ], + [ + "ཆེ་རུ་མངོན།", + "ཆུང་དུ་མངོན།", + "སྣོན་ཐིག", + "ཐིག་ཤིང་།", + "སྒྲོམ་ཐིག", + "གནན་པ།", + "དེར་གནན་པ།", + "ཤོག་མཚམས།", + "པིག་ཟེལ་སྒྲོམ་ཐིག", + "རྒྱུ་ལམ།" + ], + [ + "བྱུང་རིམ།", + "ངོས།", + "ཁྱད་ཆོས།", + "པིར།", + "ཡིག་འབྲུ།", + "དུམ་མཚམས།", + "གནས་ཚུལ།", + "ངོས་ཀྱི་གྲུབ་ཆ།", + "ཚོན་སྟར།" + ], + [ + "པིར།", + "འདྲ་བཟོའི་ལག་ཆ།", + "གཏུབ་ཆས།", + "སུབ་ཆས།", + "སྒོར་སྒོར་འདེམས།", + "ཚོན་བཤེར།", + "སྟེགས་ཚོན་ལག་ཆ།", + "ལག་པ།", + "ཡིག་བཏགས།", + "ཐག་པ།", + "ངར་ལྕགས།", + "འདེམས་བྱེད།", + "དབྱུག་པ།", + "ལྕགས་ཀྲིན།", + "ཐག་པ་ཟུར་ཅན།", + "གྲུ་བཞི་ཅན།", + "རང་མོས་གཟུགས་འགྱུར།", + "མཐོང་ཆ།", + "རབ་རིབ་བཟོ་ཆས།", + "དྭངས་གསལ་གཏོང་ཆས།", + "ནག་ནོག་བཟོ་ཆས།", + "སླ་ཆས།", + "སྲེག་ཆས།", + "འགྱིག་སོབ།", + "ནག་ཐིག་གསོ་བའི་པིར།", + "གསོ་བྱེད་པིར།", + "ལྷན་པ་བརྒྱབ་ཆས།", + "ཐིག་འདེམས།", + "ཐད་ཀར་འདེམས།", + "སྨྱུ་གུ།", + "རང་མོས་སྨྱུ་གུ།", + "རང་མོས་དབྱིབས།", + "གྲུ་བཞི་ནར་མོ།", + "སྒོར་དབྱིབས།", + "དབྱིབས་རྒྱས་པ།", + "ཐིག", + "ཐིག་ཤིང་།", + "མྱུར་འདེམས།", + "མྱུ་གུའི་ལག་ཆ།" + ], + [ + "པར་ལེན་པ།", + "ཚོན་འདེམ་བྱེད།", + "འབུར་ཀོང་སྒྲིག་ཆས།", + "རས་གཞི།", + "འདྲ་བཤུས་སུ་་་", + "སྟེབས་རིས་སྒྲིག", + "ངོས་ཀྱི་བཀོད་སྒྲིག", + "ཡིག་ཆ་གསར་པ།", + "དྲ་རྒྱའི་ཆེད་དུ་ཉར་ཚགས།", + "གཅུ་སྒྲིམ།", + "དཔར་ཆེ་ཆུང་།", + "ཝེག་ཊར་ལ་འགྱུར།", + "གཏུབས།", + "མྱུར་མཐེབ།" + ], + [ + "སྒྲིབ་ཚད།", + "ཤུགས་རྐྱེན།", + "བཀྲག་མདངས།", + "ལྡོག་ཆོས།", + "ཁ་དོག", + "འཚེར་ཤུགས།", + "ཟུར་འཇོག", + "ག་མ་བཅོས་སྒྲིག", + "ཚོན།", + "ཧར་ལོད།", + "མདངས།", + "ཚོན་བརྒྱབ།", + "ཁྱབ་ཚད།", + "ཚོན་མདངས།", + "ཆེ་ཆུང།", + "གྲུ་ཟུར།", + "ཟླུམ་ལོད།", + "མཁྲེགས་ལོད།", + "སྟོང་ཆ།", + "བསྲེ་སྦྱོར་རྣམ་པ།", + "ཆེ་ཆུང་ཚད་གཞི་འགའ།", + "འབུར་ཀོང་།", + "བཀོད་སྒྲིག", + "ཕྱིན་ཅི་ལོག", + "བཟོད་སྲན།", + "ཉེ་འདབས།", + "འགེང་།", + "ཟུར་ཁུག་གཅིག་འགྱུར་སྤྱོད།", + "རྒྱང་ཚད།", + "བརྐྱངས།", + "ལྷད།", + "ལྷད་འཇོམས་པ།", + "ཐབས་ཇུས།", + "ཁ་ཕྱོགས།", + "གཏིང་།", + "སོབ་སོབ།", + "རྣམ་པ།", + "སྟེགས་ཚོན།", + "ཆེ་རུ་གཏོང་།", + "ངོས་དང་འཁོད་སྙོམ།", + "གནས།", + "ཞེང་ཁ།", + "མཐོ་ཚད།", + "ཕྱོགས་ཡུལ།", + "བཏགས།", + "ཁ་ངོས།", + "རྒྱབ་ངོས།", + "རང་མོས་ལྟར་སྒྲིག", + "མིང་།", + "བཟོ།", + "རྣམ་གཞག", + "བསྡུར་ཚད་བརྟན་སྡོད་ཐོག", + "སྤུད་ཚད།", + "འདྲ་བཤུས།", + "འགུལ།", + "བསྡུ་ཚགས།", + "ཚངས་ཐིག", + "གྲངས་འབོར།", + "འགྲེམས་སྤེལ།", + [ + "གཅིག་གྱུར།", + "ག་ཤན།" + ], + "ཚོས་གཅིག་མ།", + "སེལ་ཆེ་ཆུང་།", + "བཀོད་རིས།", + "འགྲོས།", + "ནུས་ཤུགས།", + "ཞིབ་ཕྲ་སྲུང་སྐྱོབ།", + "ཡིག་ཆའི་རྣམ་པ།", + "ཐགས་རན།", + "སག་སག", + "མཐའ།", + "ཁུངས།", + "ཁ་གཏད།", + "རྒྱུ་ལམ།", + "འབག", + "གར་ལོད།", + "རུ་སྒྲིག", + [ + "ཐིག", + "དབྱིབས།", + "པིག་ཟེལ།" + ], + "དབྱིབས།", + "ཟུར།", + "འདམ་ང་།", + [ + "རིང་ཚད།", + "བསྡུར་ཚད།", + "གང་རུང་།" + ], + "ལྷད་སེལ།", + "ཚོན་མདོག", + "བར་ཐག", + "ཚད།", + "རང་འགུལ་ངང་འདེམ།", + "འཚོལ།", + "ཚད་གཞི་གསར་བཀོད།", + [ + "འདྲ་པར།", + "འཆར་ངོས།", + "ཁ་པར།", + "ཁྱབ་བསྒྲགས།" + ], + [ + "རིན་མེད།", + "བསྡུར་ཚད་གཅིག", + "བསྡུར་ཚད་གཅིག་འཇོག" + ], + "རོགས་རམ།", + [ + null, + null, + null + ] + ], + [ + "ཚོན་མདོག", + [ + "གང་ཡང་མེད།", + "དམར་པོ།", + "ལི་ཝང་།", + "སེར་པོ།", + "ལྗང་ཁུ།", + "སྔོན་པོ།", + "མུ་མེན།", + "ཐལ་དོག", + "དཀར་པོ།", + "ཕྱི་གསལ་ནང་གསལ།", + "ནག་པོ།" + ] + ], + [ + "གྲིབ་གཟུགས།", + "གྲིབ་གཟུགས་ནང་མ།", + "འོད་གཟུགས་ཕྱི་མ།", + "འོད་གཟུགས་ནང་མ།", + "འཕྲེད་གསེག་དང་འབུར་རྐོས།", + "སྒང་ལ་ཚོན་འདེབས།", + "སྒང་ལ་སྟེགས་ཚོན་འདེབས།", + "སྒང་ལ་བཀོད་རིས་འདེབས།", + "འཇམ་འོད།", + "ཐིག་རིས།", + "སྡེབ་སྦྱོར་བཀོད་སྒྲིག" + ], + [ + "དབྱིབས་རྩེ།", + "ཤུགས་ལྡན་སྣེ།", + "ཁ་འཐོར།", + "ཚོན་ཤུགས་ཅན།", + [ + "ཆེ་ཆུང་ཚད་སག་སག", + "དཀྱིལ་ཐིགཉུང་ཤོས།", + "གྲུ་ཟུར་སག་སག", + "ཟླུམ་ཟུར་སག་སག", + "ཟླུམ་ཟུར་ཉུང་ཤོས།" + ], + [ + "གནས་སག་སག", + "གྲངས་བརྩིས།", + "གྲངས་སག་སག" + ], + [ + "ཁ་ངོས་དང་རྒྱབ་ངོས་སག་སག", + "ཚོན་སག་སག", + "ཧར་ལོད་སག་སག", + "བཀྲག་མདངས་སག་སག" + ], + [ + "Alt གནོན་ཞོར་འདྲ་ཤུལ་གྱི་ཁུངས་འདེམས།", + "ཁ་ངོས་དཀར་པོ་དང་། རྒྱབ་ངོས་ནག་པོ། དེ་ནས་ཧ་མ་གོ་རྣམས་ཐལ་མདོག་གྱིས་རྟགས་བརྒྱབ།", + "ངོས་འདི་བཟོ་བཅོས་མི་ཐུབ།", + "ཡིག་ངོས་འདི་སྔོན་ལ་ཁ་གཏོར་དགོས།", + "སྔོན་ལ་བསྡུ་རིས་ལྷུ་བཤིག", + "ངོས་མང་པོ་འདེམས།" + ] + ], + [ + "ཕྱོགས་སྟོན།", + "རྗེས་འདེད།", + "མ་ཐིག་སྤར།" + ], + [ + "ངོས་ཆ་ཚང་།", + "ད་ལྟའི་ངོས།", + "འདེམས་བྱ།", + "ད་ལྟ་དང་འདིའི་འོག་མ།" + ], + [ + "བརྗེ་ལེན།", + "ཟླ་སྒྲིལ།", + "འཐེན་པ།", + "འབྲེལ་ཐུག", + "ཟུར་འདོན།" + ], + [ + [ + "ནར་མོ།", + "འཁོར་མོ།", + "གྲུ་ཟུར།", + "ལྡོག་འཕྲོས།", + "ས་ཕག", + "གཟུགས་འཐོར།" + ], + [ + "སོབ་སོབ།", + "ཏག་ཏག" + ], + [ + "ཕྱི་གསེག", + "ནང་གསེག", + "འབུར་བཟོ།", + "འབོལ་འབུར།", + "ཞུ་འབུར།" + ], + [ + "འཇམ་ཤ", + "གཟོང་རྩུབ་པ།", + "གཟོང་འཇམ་པ།" + ], + [ + "ཡར།", + "མར།" + ], + [ + "ཕྱི་ལ།", + "དཀྱིལ་ལ།", + "ནང་ལ།" + ], + [ + "གྲིབ་གཟུགས།", + "གྲིབ་མདངས་དབུས།", + "དཀར་ཆ།" + ], + [ + "ཚོན་སླ་པོ།", + "ཧར་པོ།" + ], + [ + "ཆུང་།", + "འབྲིང་།", + "ཆེ།" + ] + ], + [ + "བརྡ་མོའི་འོག་དེ་འདེམས།", + "གཟུགས་འགྱུར་སྟངས་འཛིན།", + "པིག་ཟེལ་ནས་པིག་ཟེལ།", + "ངོས་འདིར་བཀངས།", + [ + "གཡོན་ཟུར་སྟར་སྒྲིག", + "འཕྲེད་ཀྱི་དཀྱིལ།", + "གཡས་ཟུར་སྟར་སྒྲིག", + "སྟེང་ཟུར་སྟར་སྒྲིག", + "གྱེན་གྱི་དཀྱིལ།", + "འོག་ཟུར་སྟར་སྒྲིག", + "བར་སྟོང་གཅིག་པ།" + ] + ], + [ + "སྟེང་དུ་འཇོག", + "ད་ལྟའི་ལས་འཆར།", + "ལས་འཆར་གསར་པ།", + "སྤུས་ཚད།", + "ད་ལྟའི་ལས་འཆར་ཐོག་སྣོན།", + "ལས་འཆར་གསར་པ་ཕྱེ་ཟིན།", + "པར་ཆས་སྤྱོད་རྒྱུར་བཀག་འགོག་བྱུང་སོང་།" + ], + [ + "ཁ་ཕྱོགས།", + "གུག་གུག", + "འཕྲེད་ལ་སྣར།", + "གྱེན་ལ་སྣར།", + [ + "འཕྲེད་ལ།", + "གྱེན་ལ།" + ], + [ + "གང་ཡང་མིན།", + "གཞུ་དབྱིབས།", + "གཞུ་དབྱིབས་འོག་མ།", + "གཞུ་དབྱིབས་སྒང་མ།", + "གུག་ཆ།", + "འབུར་འབུར།", + "ཉ་སྐོགས་འོག་མ།", + "ཉ་སྐོགས་སྒང་མ།", + "དར་ཆ།", + "རླབས།", + "ཉ།", + "ཐོན་པ།", + "ཉ་མིག", + "རྒྱངས་པ།", + "བཙིར་བ།", + "གཅུ་སྒྲིམ།", + "རང་མོས་ལྟར།" + ], + [ + "ཡིག་གཟུགས།", + "དེ་ད་ལྟ་མིན་འདུག", + "སྤྱད་དེ་སྒྲིག་ངེས།" + ], + [ + "ཚོན་བརྗེ་རེས།", + "དང་ཐོག དཀར་ནག" + ] + ], + [ + "འདྲེན་ཟིན།", + "སྣོན་ཟིན།", + "སྣོན་ཐིག་འགུལ།", + "སྣོན་ཐིག་སུབ།", + "སྣོན་ཐིག་གསར་པ།", + "འདྲེན་བཞིན་པ།" + ], + [ + "ཚགས་སྡེ།", + [ + [ + "གཤེར་ཁུ།", + [ + "ནག་ནོག", + "བསྐྱར་གསོ།", + "འཇམ་ཤ", + "སྦྲུལ་འཁྱིལ།", + "འཁུམ་པ།", + "རྒྱང་པ།", + "གཡོན་ལ་སྐུལ།", + "ཧྲེང་།", + "མ་ཧྲེང་།" + ] + ], + [ + null + ] + ], + "རབ་རིབ།", + [ + "ཆ་སྙོམ།", + "རབ་རིབ།", + "རབ་རིབ་མང་ཙམ།", + "ས་ཕག་རབ་རིབ།", + "ག་ཤན་རབ་རིབ།", + "དྭངས་ཤེལ་རབ་རིབ།", + "གཡོ་འགུལ་རབ་རིབ།", + "འཁོར་མོ་རབ་རིབ།", + "གཟུགས་རབ་རིབ།", + "བསྡུ་རབ་རིབ།", + "ཕྱི་ངོས་རབ་རིག" + ], + "སྣར།", + [ + "གནས་སྤོ།", + "ཕྲན་ཙམ།", + "གཞུང་ཐིག་འབྲེལ་གནས།", + "རླབས་ཕྲན།", + "གཏུབ་པ།", + "ཟླུམ་གཟུགས།", + "རླབས།" + ], + "ལྷད།", + [ + "ལྷད་སྣོན།", + "ཟེགས་རྡུལ་འཇོམས།", + "ཐལ་བ་དང་བྲད་ཤུལ།", + "གུང་ཐིག" + ], + "པིག་ཟེལ་བཟོ་བ།", + [ + "ཚོན་མདངས་ཕྱེད།", + "དྭངས་ཤེལ་ཅན།", + "ཟུར་ངོས།", + "དུམ་བུ།", + "མེ་ཛོ་ཊིན།", + "རྡོ་ཧྲུག", + "ཚོན་འབྲུ།" + ], + "སྒྲིག་སྦྱང་།", + [ + "སྤྲིན།", + null + ], + "གསལ་ཆ།", + [ + "དྭངས་གསལ།", + "མཐའ་ཟུར་དྭངས་གསལ།", + "དྭང་གསལ་མང་ཙམ།", + "བསྡུ་དྭང་གསལ།", + "འབག་དྭངས་གསལ་མེད་པ།" + ], + "བཀོད་སྒྲིག་བྱས།", + [ + "གྲམ་པ།", + "འབུར་འབུར།", + "བཙིར་འདོན།", + "མཐའ་ཟུར་བཙལ།" + ], + "གཞན།", + [ + "རང་མོས་ལྟར།", + "ལ་མཐོ་བ།", + "མཐོ་ཤོས།", + "ཉུང་ཤོས།", + "ཟུར་འཇོག", + "བསྐྱར་ལྡབ།" + ], + [ + "ཚད་ཐིག་མེད་པའི་ས་ཆ།", + "ཕྱི་གསལ་ནང་གསལ་འདེམས།", + "མཐའ་ཟུར་པིག་ཟེར་བསྐྱར་ལྡབ།", + "ཕྱོགས་མཚམས་ནས་བསྐོར།", + "ཚགས་མཐའ་མ།" + ] + ] + ], + [ + [ + "Fitxer", + "Edició", + "Imatge", + "Capa", + "Carpeta", + "Selecciona", + "Filtre", + "Visualització", + "Finestra", + "Idioma", + "Inici de sessió", + "Surt", + "Nova traducció", + [ + "Compte", + "Condicions d'ús", + "Endarrere" + ], + "Més", + "Tema", + "Utilitza WebGL" + ], + [ + "Obre", + "Publica a la xarxa (Imgur)", + "Desa", + "Desa com a PSD", + "Imprimeix", + "Obre des d'enllaç", + "Obre des de l'ordinador", + "Connecta amb Google Drive", + "Exporta com a", + "Exporta els recursos", + "Script", + "Obre i afegeix" + ], + [ + "Pas endavant", + "Pas enrere", + "Neteja", + "Omple", + "Transforma", + "Gira", + "Gira horitzontalment", + "Gira Verticalment", + "Desfés", + "Perspectiva" + ], + "Ajustaments", + [ + "Brillantor / Contrast", + "Nivells", + "Corbes", + "Exposició", + "Vivor", + "To / Saturació", + "Balanç de color", + "Blanc i negre", + "Filtre fotogràfic", + "Mesclador de canals", + "Cerca de colors", + "Inverteix", + "Redueix el nombre de colors", + "Llindar", + "Mapa de gradient", + "Color Selectiu", + [ + "To automàtic", + "Contrast automàtic", + "Color automàtic" + ] + ], + [ + "Retalla", + "Copia", + "Enganxa", + "Nou", + "Esborra", + "Activa", + "Deshabilita", + "Còpia fusionada", + "Aplica" + ], + [ + "Duplica la capa", + "Nova Capa d'Ajustament", + "Aplana la màscara", + "Màscara vectorial", + "Afegeix (mostra-ho tot)", + "Afegeix (amaga-ho tot)", + "Màscara de retall", + "Converteix a objecte intel·ligent", + "Aplana", + "Agrupa les capes", + "Fusiona cap avall", + "Fusiona cap amunt", + "Fusiona les capes", + "Nova capa", + "Habilita la màscara de fusió", + "Deshabilita la màscara de fusió", + "Habilita la màscara vectorial", + "Inhabilita la màscara vectorial", + "Habilita la màscara de retall", + "Deshabilita la máscara de retall", + "Nova Carpeta", + "Afegeix màscara de fusió", + "Suprimeix màscara de fusió", + "Afegeix màscara vectorial", + "Suprimeix la màscara vectorial", + "Enllaça la màscara rasteritzada", + "Desenllaça la màscara rasteritzada", + "Enllaça la màscara vectorial", + "Desenllaça màscara vectorial", + "Habilita els efectes de capa", + "Deshabilita els efectes de capa", + "Suprimeix capa", + "Canvia l'opacitat de la capa", + "Canvia la mescla", + "Aplana l'estil de la capa", + "Ordre de les capes", + [ + "Creant objecte intel·ligent", + "Actualitzant objecte intel·ligent", + "Situant objecte intel·ligent" + ], + "Canvia el nom", + "Canvia color", + "Edita ajust de la capa", + "Converteix a Forma", + "Habilita el filtre de máscara", + "Deshabilita el filtre de màscara", + "Habilita els filtres intel·ligents", + "Deshabilita filtres intel·ligents", + "Afegeix màscara de filtre", + "Elimina màscara de filtre", + "Neteja filtres intel·ligents", + [ + [ + "Emplena amb color sòlid", + "Omple amb gradient", + "Emplena amb un patró" + ], + "Nova capa d'emplenament", + "Modifica la capa d'emplenament" + ], + "Capa a través d'una còpia", + "Emmascara", + "Esborra l'estil de la capa", + "Mou filtre intel·ligent", + "Suprimeix filtre intel·ligent", + [ + "Enllaça les capes", + "Desenllaça les capes" + ], + "Organitza", + [ + "Porta al davant", + "Porta endavant", + "Mou cap al fons", + "Envia cap endarrere" + ], + [ + "La capa està blocada", + "Bloqueja canvis" + ] + ], + [ + "Tot", + "Cancel·la la selecció", + "Inverteix", + "Modifica", + "Expandeix", + "Redueix", + "Pluma", + "Mou la selecció", + "Rang de color", + "Vora", + "Transforma la selecció", + "Refina la vora", + "Selecció correctora" + ], + [ + "Amplia", + "Redueix", + "Guies", + "Regles", + "Graella", + "Ajusta", + "Ajusta a", + "Límits del document", + "Graella de píxels", + "Camí" + ], + [ + "Historial", + "Capes", + "Propietats", + "Pinzell", + "Caràcters", + "Paràgraf", + "Informació", + "Composició de capa", + "Mostres" + ], + [ + "Eina pinzell", + "Eina de clonació", + "Tisores", + "Eina borrador", + "Selecció el·líptica", + "Comptagotes", + "Degradat", + "Eina mà", + "Eina de text", + "Selecció lliure", + "Selecció llaç magnètic", + "Eina mou", + "Vareta màgica", + "Eina cubell de pintura", + "Selecció amb llaç poligonal", + "Selecció rectangular", + "Transforma", + "Lupa", + "Eina desenfoca", + "Perfila", + "Eina difumina", + "Eina esvaeix", + "Eina crema", + "Esponja", + "Eina pinzell corrector puntual", + "Eina pinzell corrector", + "Eina pedaç", + "Selecció de camí", + "Selecció directa", + "Llapis", + "Llapis lliure", + "Forma personalitzada", + "Rectangle", + "El·lipse", + "Forma paramètrica", + "Línia", + "Regle", + "Selecció ràpida", + "Eina pinzell" + ], + [ + "Fes una foto", + "Tria un color", + "Editor de contorn", + "Mida del llenç", + "Duplica a ...", + "Editor de gradient", + "Estil de la capa", + "Projecte nou", + "Desa per web", + "Deforma", + "Mida de la imatge", + "Vectoritza el mapa de bits", + "Retalla", + "Dreceres del teclat" + ], + [ + "Opacitat", + "Efectes", + "Brillantor", + "Contrast", + "Canal", + "Exposició", + "Desplaçament", + "Correcció gamma", + "To", + "Saturació", + "Brillantor", + "Acoloreix", + "Interval", + "Vivesa", + "Mida", + "Angle", + "Arrodoniment", + "Duresa", + "Espaiat", + "Tipus de mescla", + "Mida de la mostra", + "Contorn", + "Estil", + "Inverteix", + "Tolerància", + "Contigu", + "Emplena", + "Utilitza angle global", + "Distància", + "Escampa", + "Soroll", + "Amaga l'ombra paral·lela", + "Tècnica", + "Direcció", + "Profunditat", + "Suavitza", + "Mode", + "Degradat", + "Escala", + "Alinea amb la capa", + "Posició", + "Amplada", + "Alçada", + "Destinació", + "Tipus", + "Primer pla", + "Fons", + "Personalitzat", + "Nom", + "Crea", + "Format", + "Mantén la relació d'aspecte", + "Qualitat", + "Duplica", + "Mou", + "Filtres intel·ligents", + "Radi", + "Quantitat", + "Distribució", + [ + "Uniforme", + "Gausià" + ], + "Monocromàtic", + "Mida de la cel·la", + "Patró", + "Flux", + "Intensitat", + "Protegir detall", + "Tipus d'emplenament", + "Textura", + "Fluctuació", + "Vora", + "Font", + "Objectiu", + "Canals", + "Màscara", + "Densitat", + "Alineat", + [ + "Camí", + "Forma", + "Píxels" + ], + "Formes", + "Costats", + "Preferències", + [ + "Longitud", + "Ràtio", + "Qualsevol" + ], + "Reducció del soroll", + "Colors", + "Distàncies", + "Taxa", + "Autoselecciona", + "Cerca", + "Defineix nou", + [ + "Foto", + "Pantalla", + "Mòbil", + "Anuncis" + ], + [ + null, + "Fixa relació", + "Mida fixa" + ], + "Ajuda", + [ + "Formes en directe", + "Edita formes en directe", + "Igualar radis" + ] + ], + [ + "Color", + [ + "Cap", + "Vermell", + "Taronja", + "Groc", + "Verd", + "Blau", + "Lila", + "Gris", + "Blanc", + "Transparent", + "Negre" + ] + ], + [ + "Ombra paral·lela", + "Ombra interior", + "Resplendor exterior", + "Resplendor intern", + "Bissell i relleu", + "Superposició de color", + "Superposició de degradat", + "Superposició de patró", + "Setinat", + "Traç", + "Opcions de mescla" + ], + [ + "Forma suggerida", + "Dinàmica de punta", + "Dispersió", + "Dinàmica de color", + [ + "Mida difuminat", + "Diàmetre mínim", + "Angle difuminat", + "Arrodoniment de la dispersió", + "Arrodoniment mínim" + ], + [ + "Posició del difuminat", + "Conta", + "Recompte del difuminat" + ], + [ + "Primer pla/Fons del difuminat", + "To del difuminat", + "Dispersió de la saturació", + "Dispersió de la brillantor" + ], + [ + "Selecciona la font de clonat mantenint Alt (o K) i fes clic sobre la imatge", + "Marca el primer pla amb blanc, el fons amb negre, i l'àrea desconeguda amb gris.", + "La capa no es pot editar.", + "La capa de text s'ha d'aplanar primer", + "L'objecte intel·ligent s'ha d'aplanar primer (rasterize)", + "Selecciona diverses capes" + ] + ], + [ + "Iniciar", + "Seguiment", + "Canvi de la línea base" + ], + [ + "Totes les capes", + "Capa actual", + "Selecció", + "Actual i de sota" + ], + [ + "Reemplaça", + "Uneix", + "Resta", + "Intersecciona", + "Exclou" + ], + [ + [ + "Lineal", + "Radial", + "Angle", + "Reflexa", + "Diamant", + "Explosió de forma" + ], + [ + "Suavitzar", + "Precisió" + ], + [ + "Bisell extern", + "Bisell intern", + "Relleu", + "Relleu tipus coixí", + "Traç de relleu" + ], + [ + "Suau", + "Tall fort", + "Tall suau" + ], + [ + "Amunt", + "Avall" + ], + [ + "Fora", + "Centre", + "Dins" + ], + [ + "Ombres", + "Tons mitjans", + "Ressaltats" + ], + [ + "Dessatura", + "Satura" + ], + [ + "Petit", + "Mitjà", + "Gran" + ] + ], + [ + "Tria l'objecte a sota del cursor", + "Controls de transformació", + "Píxel a píxel", + "Adapta a l'àrea", + [ + "Alinea les vores a l'esquerra", + "Centra horitzontalment", + "Alinea les vores a la dreta", + "Alinea les vores a dalt", + "Centra verticalment", + "Alinea les vores a sota", + "Iguala els buits" + ] + ], + [ + "Situa a", + "Projecte actual", + "Projecte nou", + "Resolució", + "Afegit a l'actual projecte.", + "S'ha creat un nou projecte.", + "S'ha denegat l'accés a la càmara." + ], + [ + "Orientació", + "Torça", + "Distorció horitzontal", + "Distorció vertical", + [ + "Horitzontal", + "Vertical" + ], + [ + "Cap", + "Arc", + "Arc inferior", + "Arc superior", + "Arc", + "Infla", + "Closca Inferior", + "Capa Superior", + "Senyal", + "Ona", + "Peix", + "Augmentar", + "Ull de peix", + "Infla", + "Comprimeix", + "Gira", + "Personalitzat" + ], + [ + "Font", + "no està disponible", + "Es renderitzarà utilitzant" + ], + [ + "Intercanvia colors", + "Per defecte: Blanc i negre" + ] + ], + [ + "carregat", + "afegit", + "Mou guia", + "Esborra guia", + "Afegeix guia", + "Carregant" + ], + [ + "Galeria de filtres", + [ + [ + "Liqua", + [ + "Escampa", + "Reconstrueix", + "Suavitza", + "Regira", + "Encongeix", + "Bufa", + "Empeny a l'esquerra", + "Congela", + "Descongela" + ] + ], + [ + null + ] + ], + "Desenfoca", + [ + "Promig", + "Difumina", + "Difumina més", + "Control de difuminat", + "Difuminat gaussià", + "Difuminat de lent", + "Difumina mode moviment", + "Difuminat radial", + "Difuminat de forma", + "Difuminat intel·ligent", + "Difuminat de superfície" + ], + "Distorciona", + [ + "Desplaça", + "Pessiga", + "Coordenades polars", + "Onades del mar", + "Inclina", + "Esfèric", + "Onada" + ], + "Soroll", + [ + "Afegeix soroll", + "Elimina els pics", + "Pols i ratllades", + "Mitjana" + ], + "Pixela", + [ + "Mig to de color", + "Cristal·litza", + "Faceta", + "Fragment", + "Manera negra", + "Mosaic", + "Puntillisme" + ], + "Renderitza", + [ + "Núvols", + "Diferencia de núvols" + ], + "Realça la vora", + [ + "Realça la vora", + "Ressalta les vores", + "Ressalta més", + "Realçat intel·ligent", + "Emmascara les parts borroses" + ], + "Estilitza", + [ + "Difusió", + "Esculpeix", + "Extrusió", + "Detecta els contorns" + ], + "Altres", + [ + "Personalitza", + "Pas alt", + "Màxim", + "Mínim", + "Desplaçament", + "Repetir" + ], + [ + "Àrea indefinida", + "Fes transparent", + "Repeteix els píxels de la vora", + "Ajusta al voltant", + "Últim filtre" + ] + ] + ], + [ + [ + "Fil", + "Rediger", + "Bilde", + "Lag", + "Mappe", + "Velg", + "Filter", + "Visning", + "Vindu", + "Språk", + "Logg inn", + "Logg ut", + "Oversett", + [ + "Konto", + "Brukervilkår", + "Tilbake" + ], + "Mer", + "Tema", + "Bruk WebGL" + ], + [ + "Åpne", + "Publiser online (Imgur)", + "Lagre", + "Lagre som PSD", + "Skriv ut", + "Åpne fra URL", + "Åpne fra datamaskin", + "Koble til Google Drive", + "Eksporter som", + "Eksportér assets", + "Skript", + "Åpne & plasser" + ], + [ + "Gå frem", + "Gå tilbake", + "Tøm", + "Fyll", + "Transformer", + "Rotér", + "Vend horisontalt", + "Vend vertikalt", + "Angre / gjør om", + "Perspektiv" + ], + "Justeringer", + [ + "Lysstyrke / kontrast", + "Nivåer", + "Kurver", + "Eksponering", + "Dynamikk", + "Farge / Metning", + "Fargebalanse", + "Svart/hvitt", + "Fotofilter", + "Kanaler", + "Fargeoppslag", + "Invertér", + "Fargereduksjon", + "Terskel", + "Overtoningskart", + "Selektiv farge", + [ + "Autotone", + "Autokontrast", + "Autofarge" + ] + ], + [ + "Klipp ut", + "Kopier", + "Lim inn", + "Ny", + "Slett", + "Aktivér", + "Deaktivér", + "Kopier sammenflettet", + "Bruk" + ], + [ + "Duplisér lag", + "Nytt justeringslag", + "Rastermaskering", + "Vektormaskering", + "Legg til (vis alle)", + "Legg til (skjul alle)", + "Utklippsmaske", + "Konverter til Smart objekt", + "Rastrer", + "Gruppér lag", + "Slå sammen nedover", + "Slå sammen oppover", + "Slå sammen lag", + "Nytt lag", + "Aktiver rastermaskering", + "Deaktiver rastermaskering", + "Aktiver vektormaskering", + "Deaktiver vektormaskering", + "Aktiver utklippsmaskering", + "Deaktiver utklippsmaskering", + "Ny mappe", + "Legg til rastermaskering", + "Slett rastermaskering", + "Legg til vektormaskering", + "Slett vektormaskering", + "Tilknytt rastermaskering", + "Adskill rastermaskering", + "Tilknytt vektormaskering", + "Adskill vektormaskering", + "Aktiver lageffekter", + "Deaktiver lageffekter", + "Slett lag", + "Endre laggjennomsiktighet", + "Endre blandingsmodus", + "Rastrer lagstil", + "Lagrekkefølge", + [ + "Oppretter Smart objekt", + "Oppdaterer Smart objekt", + "Plasserer Smart objekt" + ], + "Endre navn", + "Endre farge", + "Rediger justeringslag", + "Konverter til form", + "Aktiver filtermaskering", + "Deaktiver filtermaskering", + "Aktiver Smarte filter", + "Deaktiver Smarte filter", + "Legg til filtermaskering", + "Slett filtermaskering", + "Slett alle Smarte filter", + [ + [ + "Ensfarget fyll", + "Overtoningsfyll", + "Mønsterfyll" + ], + "Nytt fyllag", + "Modifiser fyllag" + ], + "Lag via kopier", + "Filtermaskering", + "Slett lagstil", + "Flytt Smart filter", + "Slett Smart filter", + [ + "Knytt sammen lag", + "Løsne lag" + ], + "Ordne", + [ + "Plasser lengst frem", + "Flytt fremover", + "Flytt bakover", + "Plasser lengst bak" + ], + [ + "Laget er låst.", + "Endre lås" + ] + ], + [ + "Alle", + "Fravelg", + "Inverter", + "Modifiser", + "Utvid", + "Trekk sammen", + "Uttoning", + "Flytt markering", + "Fargespekter", + "Ramme", + "Transformer markering", + "Finjuster kant", + "Reparasjonsmarkering" + ], + [ + "Zoom inn", + "Zoom ut", + "Retningslinjer", + "Linjaler", + "Rutenett", + "Fest", + "Fest til", + "Dokumentgrenser", + null, + "Baner" + ], + [ + "Historie", + "Lag", + "Egenskaper", + "Pensel", + "Tegn", + "Avsnitt", + "Info", + "Lagkomposisjon", + "Fargekart" + ], + [ + "Penselverktøy", + "Kloneverktøy", + "Beskjæringsverktøy", + "Viskelær", + "Ellipsemarkering", + "Pipette", + "Overtoningsverktøy", + "Håndverktøy", + "Tekstverktøy", + "Lassomarkering", + "Magnetisk lassomarkering", + "Flytteverktøy", + "Tryllestav", + "Malingsspannverktøy", + "Polygonal lassomarkering", + "Rektangelmarkering", + "Fri omforming", + "Zoomverktøy", + "Uskarphetsverktøy", + "Skarphetsverktøy", + "Fingerverktøy", + "Lysneverktøy", + "Mørkneverktøy", + "Svampverktøy", + "Flekkrepareringsverktøy", + "Repareringspensel", + null, + null, + null, + "Penn", + "Fri penn", + null, + "Rektangel", + "Ellipse", + null, + "Linje", + "Linjal", + "Hurtigmarkering", + "Blyantverktøy" + ], + [ + "Ta et bilde", + "Fargevelger", + "Konturredigering", + "Lerretstørrelse", + null, + "Overtoningsredigering", + "Lagstil", + "Nytt prosjekt", + "Lagre for web", + null, + "Bildestørrelse", + "Vektoriser punktgrafikk", + null, + "Tastatursnarveier" + ], + [ + "Gjennomsiktighet", + "Effekter", + "Lysstyrke", + "Kontrast", + "Kanal", + "Eksponering", + null, + "Gammakorreksjon", + "Fargetone", + "Metning", + "Lyshet", + "Fargelegg", + null, + null, + "Størrelse", + "Vinkel", + "Rundhet", + "Hardhet", + "Mellomrom", + null, + null, + "Kontur", + "Stil", + "Reverser", + "Toleranse", + "Sammenhengende", + "Fyll", + null, + "Distanse", + null, + "Støy", + null, + "Teknikk", + "Retning", + "Dybde", + null, + null, + "Overtoning", + "Skaler", + null, + "Posisjon", + "Bredde", + "Høyde", + "Destinasjon", + "Type", + "Forgrunn", + "Bakgrunn", + "Tilpasset", + "Navn", + "Opprett", + "Format", + null, + "Kvalitet", + "Dupliser", + "Flytt", + "Smarte filter", + "Radius", + "Mengde", + "Distribusjon", + [ + "Uniform", + "Gaussisk" + ], + "Monokrom", + "Cellestørrelse", + "Mønster", + "Flyt", + "Styrke", + "Beskytt detaljer", + "Fylltype", + "Tekstur", + null, + "Kant", + "Kilde", + "Mål", + "Kanaler", + "Maskering", + "Tetthet", + "Justert", + [ + "Sti", + "Form", + "Piksler" + ], + "Former", + "Sider", + "Innstillinger", + [ + "Lengde", + "Forhold", + "Vilkårlig" + ], + "Reduser støy", + "Farger", + "Distanser", + "Rate", + "Automarker", + "Finn", + "Definer ny", + [ + "Foto", + "Skjerm", + "Mobil", + "Annonser" + ], + [ + null, + "Fast forhold", + "Fast størrelse" + ], + "Hjelp", + [ + null, + null, + "Samme radius" + ] + ], + [ + "Farge", + [ + "Ingen", + "Rød", + "Oransje", + "Gul", + "Grønn", + "Blå", + "Lilla", + "Grå", + "Hvit", + "Transparent", + "Svart" + ] + ], + [ + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null + ], + [ + null, + null, + null, + null, + [ + null, + null, + null, + null, + null + ], + [ + null, + null, + null + ], + [ + null, + null, + null, + null + ], + [ + null, + null, + null, + null, + null, + "Velg flere lag" + ] + ], + [ + null, + null, + null + ], + [ + "Alle lag", + "Gjeldende lag", + "Markering", + "Gjeldende & underliggende" + ], + [ + null, + null, + null, + null, + null + ], + [ + [ + null, + null, + null, + null, + null, + null + ], + [ + null, + null + ], + [ + null, + null, + null, + null, + null + ], + [ + null, + null, + null + ], + [ + "Opp", + "Ned" + ], + [ + "Utenfor", + "Sentrert", + "Innenfor" + ], + [ + "Skygger", + null, + null + ], + [ + null, + null + ], + [ + "Liten", + "Medium", + "Stor" + ] + ], + [ + null, + null, + null, + null, + [ + null, + null, + null, + null, + null, + null, + null + ] + ], + [ + null, + "Gjeldende prosjekt", + "Nytt prosjekt", + "Oppløsning", + "Lagt til i gjeldende prosjekt.", + "Et nytt prosjekt ble opprettet.", + null + ], + [ + "Retning", + null, + null, + null, + [ + "Horisontal", + "Vertikal" + ], + [ + "Ingen", + "Bue", + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "Egendefinert" + ], + [ + "Font", + "er ikke tilgjengelig", + null + ], + [ + "Bytt farger", + null + ] + ], + [ + "lastet", + "lagt til", + null, + null, + null, + "Laster" + ], + [ + "Filtergalleri", + [ + [ + null, + [ + null, + "Rekonstruer", + null, + null, + "Krymp", + null, + null, + "Frys", + "Løs opp" + ] + ], + [ + null + ] + ], + null, + [ + "Gjennomsnittlig", + "Uskarphet", + "Mer uskarphet", + "Boksuskarphet", + "Gaussisk uskarphet", + "Linseuskarphet", + "Bevegelsesuskarphet", + "Radial uskarphet", + null, + "Smart uskarphet", + "Overflateuskarphet" + ], + "Forvreng", + [ + null, + null, + "Polare koordinater", + "Krusninger", + null, + null, + "Bølger" + ], + "Støy", + [ + "Legg til støy", + "Flekkfjerning", + "Støv & skrammer", + "Median" + ], + "Pikseler", + [ + null, + "Krystalliser", + "Fasetter", + "Fragmenter", + null, + "Mosaikk", + null + ], + null, + [ + "Skyer", + "Differanseskyer" + ], + "Gjør skarpere", + [ + "Gjør skarpere", + "Gjør kanter skarpere", + "Gjør enda skarpere", + null, + null + ], + null, + [ + null, + null, + null, + "Finn kanter" + ], + "Andre", + [ + "Egendefinert", + null, + "Maksimum", + "Minimum", + "Forskyvning", + "Gjenta" + ], + [ + "Udefinert område", + "Sett til transparent", + null, + null, + "Forrige filter" + ] + ] + ] + ] +} \ No newline at end of file diff --git a/tools/Open-Photopea/code/PIMG.js b/tools/Open-Photopea/code/PIMG.js new file mode 100644 index 00000000..63ecfd35 --- /dev/null +++ b/tools/Open-Photopea/code/PIMG.js @@ -0,0 +1,103 @@ +var PIMG = { + "tools/blur": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/n5CCLf0HtTjyoUNqAAAA+pJREFUeJzNmrtvE0EQxi3biUO5hoRLd+cQQcmmQKIzFCjuOKCgjUBCdKSgoEsE9Jjnv4sv5/X51jvPHSG+7qTTTzu738w+BwOeJh+YP3I1LK2Bz42B+3eNgX5qDKyO56a8yYUrTYFD565MgQvnbpsCK+cKU+C1c6aduOpC534aAhcN0NKJVQM8sqsPKxc2skvnvRueoXF8CzTLvvGyBZrFPFzzzGL2AXhsM87j6wA0inkTsZW3fQc08fZk2QFNYt7b4pnEXG0D3cNs3uiiB8yvYec9njvMBtZ9YHbdHkY89yYT+CgGZqbfptBYWXFvh5dpxWoXmGXFUYLn/mQAP6WAOVaMTdiqVPN2TNhKPxP4NFBdFScXaaD7ogSeAzy1FdNDoh8WYEgavVMBd+pCp2Ku4PUmp1iaCpGoC3nDkqoLGx3JK0SyLnSST1bJutBJXiFqHCi2ImLCVlIregootCJqQk3MqAlbyaoiasJWoqo4girhtiTpB1bCbUnSjxGxKGYi7eQxL3hAfsysiAUxMyPmx8yMmB8zM2J2zF3EL04JYskCHoTf7w8GH3EgL59DxJ8HvZ1oSqzDobCiOZw3Xz4/5lC5XvW+AL1lANdtWp9YEFMBxzjrXltvcAiTM4wTmlSygIxkWfQiJoG0cap+51BAcsIfr03zLeoBUNQiJ+pCGkh1Yqg0YfQOUNpK1IF5FXXNJQWknLiMfiNLGeHEMKgbIF4cGpUoMKRusBc5Jp0f0vIRkBwTytqhy6bRNyLU2sHWoXJy1jjoqHSJVt58P6Z5+Kh05XTKbSCeK8+6316ueDWHh+aK3/rv1+mSxUNzhdekSNgws/os1hHMY6+S+oJLIiPRUipBIGMzkRLsm1s6IFwenuiAsBG9DgjXG/ZKsy/Y2ebAWgeEU8UcSM9IScHr2KUOeAwCVbUBqw46nnP/DmgesjlQaRt4lGsdEPahEghnyv9fbbw18FIHhCv2vg54BwQqp9ErEGg+0SuXIjBwrAMia+Jaw8NOMlTOxhaclxogtlFh7HN2hW2lVL4pESB4rYUJ3Y7Wch5+6uDlQHzzqMjmKxSoSL4SBconPupVj5cCqUMMcSfiXbhyohRIXp8J6wN92cU+xG5FX9gLjcO4MBTFzDkyZV3OBHHuwiUVh3d27/lA3km7oMqWLCB/WLjXH+wmsi+lmE1sbwsMm1hyecwmSi4KWU0UNBB94xAke141IaeCQvik5SkFvCfjkYebP6S8wRgd6elcDETPNw9VT7VG4MAUyqdfQ4BYlDoeFLUu3laTB7u873nP+86isIuTLFzTyNkWsphZPIQdn81e/3bu/dfZyZz++y9FVrh4nhxGvQAAAABJRU5ErkJggg==", + "tools/brush": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/hKxffA311BeudL+agAAA9hJREFUeJytm81v00AQxa00pOlxCSZwM6KoVxYC5ZiAEOVGQAKOLjduuBVwDRJwJv8xiZ00/thZv3m7c0sl/zS78/btetZNkoAYnU9fhjzfiYUx6Soi78hsYpLFAy62QPM5Gm+wLIHmSSzgUcUz0zwS8HIHNHciAe0eGGnQ4xteJO0cH4BxBr2oAc1VOG8vmmiDHppGTIKBD5rA8EHbFjB00CPTjsBKH3eAgfJed4FpHgIsusCgQQ8dvKBBP3ICA4ysLZpd0O7dFc0u5iTwSAKydbmUgGbFAQsR+I3inYg8c5cCukUTMIkLGUj5YtOsIwBF0bBAWTTkHFoPkKny2MMzjwmgw6wPkRNAj2jMfYLnEw3lNm6zroKqsWfdcXZoIycomjWboGfdMSVOkl8y8B8FLCIn6BENl6AsmnsUT1535PlwICb4kUtQFA17lhPNmkxQFE2acTxxh2ffAc4E3pRMUBQNm6Bk1nTfQRINfbYWRMM3RqwbyOzFZQjrjn8RFYB0gkniLHLI+5NzDucBQFeVg95qXcckzvi/vvq+fdCxJ1PGf/rM7AyvM4mM8Q/elI+WhtJxG8JXT/ZZbeXWHjNh/KfLRjnXoQkeeNV7YXOf1/tqnVelE9bxGhedfIbtP2hiYE0jrlopqn31daumpZGOl42fmnho2lEa1VnjlyJGyw6wymk3aLWvurbMctZG1dTOlTznDlfVdbRd21rbald4F1WnZ/D7/FqboHToYLfgQSEAU85QxQTZhpmY4CYmDLGr6UCi9QEJou+VuJxHbWXWPUCT6i7LHKu4Q3yuAcqaqUWmANrIQG+j5yZyHOjrUlBAaMSKZquvS1ELXIq+7iAF9HUHKaCNDASnEC8KOIU4EFOhQoe+diMFLEBgBvLQmhg0wT6z3keKAr0t4FpMUSC4TvCzF1pk+KxURAbKzbJWoD1/z+VQM26DQHQlm3cg8BYKRE/s7YtyMeYgEFUN7A0WBWYgsAB56EKBZYjqGpYhqmvUvOA7VdS8YNXAMsxBIOqGsL1Gd0MLAlGvgXWNWgOs6xwEYqdrxQ6F6hru8aF+DfdDUF3nKBDUNd5gAXX9HgZaDDiHgUuIBy9k9GyIfygAyhAfMSZDRRMNOzYo+qSeq+NDaDrNkAw1vfolApzjPEg1mrYhVGRFgtBbnqqvCdREd9tR9AN/aHjAQUnXyO0/1yibm71TqGy/er/LKXnK7+H7VKj+vr5ng5qslLyeEc8yJc8/4gnx7wRWxqUv1On5tpPpLNfjZBFeXxDZJdIMfph9oWjOy5NPswuWtok/ddLPp7O3fzOa9R+zT4BdqVJm+AAAAABJRU5ErkJggg==", + "tools/burn": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP+AJpXFc0u+e3hoayrHQAABy1JREFUeJytms9300YQx7dSZMu3Chv3cZMU0pZbZbu0vaEkpHCrTUIft5ikAW5QfpwNfU3KjVDaR//bypJ2d3ZnZ7Wy8r1EcqSPZmd2RtofLGrUXnr0+eL9P4t0mjdfHLGmC0Y7TKi/uN0d+A1T9Hq7wcwm4DWma2BHNgG/Q8A1sgPwFwOQsZubAz8YgWG2MTA2Apm3MdDkw7UONwXiKNeBWW4I1Puh0HkUTXbSzBU4mk7SQtun0WjyqxHYz4br6KB4m4Cjya3n/L7X27Po5JaJ+HINZGHSDJxoXaVI4L2d5wjYPy2vC7IG4PhbbMy7WYHEXqx6gJdbgePY6LFFFp3oSTPYrf4+tAJ/MPIKX20rhazUYfXwfmYBUt1u3e4smqi/ePXVngVIJUbZxK+jx+ovSVybSgPNtYDrQfSbcu7frf4GOQUcWnlr4o+KzfsfkIntgOzvUQxPkyfIRBVoiUmth8ozfX52SAAbLSxKK2z0IK8NDqigxBihyR/DwCX3+AEBHBoST1PyDJy84W3yCWDxnTBN052j//6ymLiSJx5vU5hTQKH9s+k0fYSrDMuewhO9zVSBPTg7uX22XxQLXF/PYejmvGP4JPBgkh5d1FeFi6K+TlYqMMhj4ACeXAEB3ENR+ZgNtcKVgO4aiPTPjMDHBp+FN4dqivsjcJ7d4I03AbX6VGuQ7apPyI+BudyjPQNQq05CnlZ356DNvdGKX4SAqh1Qh8MVPPXBN5ToiSzXgdcM/qsVZjA9WB+0OYz4caIBx+Yvt9qOkfJfGGcRlbcaMGY2JXfhmc8dB+G+ClSLO1KwD00Mc/nyeTXmlyjAIe3ASoeKicl1aW3ErV1CYNzAY4NTaOIbmc8yzAkAKo836xxeE0gLQpF8lxI4skWY33gKEzA7xoe+BDoYWJgI6+Cl7DjJnfrAE0AXAwsvnoHAeWNxOOcBCgWw+e1Z6hP4UOnnMT98IW7PODBmTgr2wElyzI96ApjUwHFTH+Sagye/ERjxti+Tj7m3uHDcdXAsnOgJoF8Df3YFshmI3pKbG0h0DcQfhf33F+i30gTQc+b8tjDiPw3MwCC9na9ffisMDE8AXLQ/F1cuK+CxghPja/1lV5oVywuF65biwgwFJYTDdQPRg5WVp2ImnpJUQJkoC3VIaKhpM5nQwomJAL6tO/ZudePHWaQJV93zJ+LQF581Igg+Lw67ty7+TBGusD3WeCy4hg8l0CuB0ykmceE+L9vHZrVH5scKsGjWO5qITOzdF4c85PMv+S/9Alh+PpIDfmzi4EBEyq9T7O0N8d9lxMo7yAG/YZ5Ftpn3oS2Z4lnEqvb/SwLvMU0yQ3gS90D1jlj1vICcfkIjjfBAHO7Xj5DAOQcyfaRvCUsivDCrmy4fuhWx+r8+CbzONPXEIx7UNsv3ix+xVXXUJ8MyZpoGKE4zCJStd24z0u/iyJNAus3uBX39RcGbXIwDKaDzK4etU4WJckTGGXwLNitnwsOvOjhRKuP90DYl2MaJAMjIjtPGiQmTrzzSiagnOgJ7ZJudPs4qzdkdcUw70TY9pOkFk8WRduId8n6kLQY8TjoR1QdaPQbqHenEFmH2GQgh6cQWYfaZGLYwixPtc2waMJZnpBNj6n4kj8E+QZYw935TAEGmhlQJO24DhH2CavNXbYDwPUm12b0jBiwagVPqVeXeEQugEsJPXYEDpoYwMAPdS+waqHy9mMMSE7djhUxrjzH9mmdSFaCaqZkB+JS4mwCqBfkl5o3cU7lQpCWWulRQymm8D4Fqt0Umuo33IVD1OTLxGXEnDdTeapqJ6sRck/olUKtOqoktXnmsjrKeWUpfpCcVLUB90gEs1o1bdZkq9SKUWoEsOrHpLouCCnhf+/kPzvu+JY8DUbLe3MiBEohaNigjves6oSPl1UA0AFuvJ5pmyV2BuEC9mxiXWF2BraPZCERt3lC+mNS9auBVtbkngFfU5i0BvKI2f+E6de+qSwls8SFt0RysVmyQF1gJWE9pV5odgG2GdKQyAGz5ujRrCdekWnxxkMoh8Aq6Yqguw8WdgZ4K7B4WDdg9LL62lNk5LD190b9rtrxos7XDRXO06N8RmKAF67gbMEPAjj1nidfoO5kYGhb9O3nRM+0ioDYZucg3Adt+YkL1jBsn2g1LFF2ad2LEGwMTM3DzBMyIvSINq+Gk+jkBxOsybuLreoZGrzYC+iRww0Z/ooHkxkibwqUFaN1GQahclCG3GFk2ehCq1mToPUut3VgNliy7TFu60bA9RlO73liNvez7YIdt6g4fEls31rYY64nxq32nLrXnCEluNW3Y+usYajBib9pL7DQCh5trGzcn/9TM4wF2AzYT1c2/zcCmVnsKzwVI7Fer9VGbtnUBRo/JHo539DsBoyGR1ws8q+wGjEamfRkLwzYBV2BRcVMV+dq066ANsLDyJE0ffV6x8P1Rum2mFfofAMK8VTbYFwAAAAAASUVORK5CYII=", + "tools/clone": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP/APIQQs55q5BeYkoWJgAAAiNJREFUeJzt2r1OwzAQB3AraqAdoQXEZgQd2CgC5lSInQIPAOIF6AZbmVgpC68LUqWkau7j7/gkGO7Wyj858df50rDDxsXHXSBj/HrNtwrsL9+0toq3dPBL8kI4TQVvZC+EhzTwMGpgsUwCHzUvhK0UcF/3QnhKACsE7OHgMCJgMYFB6IlDeIfBcww8hsFPDBzA4AsGbsPgLQaWMBgxsIBBzAt0WwcddNBBBx100EEHHXTQQQcd7ATGPwLx+7L5jX6BgWSxigQrDCRLSyR4hoFHMHiAgXhlaQR5CbUvbJj7ZNOMch9Z+mJA6CVOE0CkgEg/MVeDBZ55lgTqJUl6jPk6tlrxoyuwPLingctEcKhMRaaKLXwLuJRBctmJoNxFsloqg3IX5x1AqYvlpAModfGebyWAfBe5Sa2AfMH9RGgkgewWsewIclsEs88AILNFzDqD9BYhDYkGkjOH22cQkDz+5hkglZTIT6yBxFRkNy4IJMaZPj1RkJjb9Oc8FGxPHOUVqmC1CYrLBAB302ahDraSEjIpTABbwzzPBFtrRRnkdJDOuXBwuAlOMsHWNQ0Er5i/NOAxfl4HRzHX+11C0zUQ/P4rx6ABsWuEGtMaVJNBLGY1WNmAvRpc2ID9GgTvx1qUNRhtwKIGbbxVDcJBBx100EEH/zcYbbzmGDU/6Bc2YJOKVDZgkyyZp3PmCad5SmyftJtfKwzDQQdzwNyJ7aCDGeAPZXGkFFYM0ZEAAAAASUVORK5CYII=", + "tools/crop": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA5SURBVHic7dQhDgAgDEPR3v/SZY7A1DLBSP6XT1ZUimzlQHAA+grs4TkyCIIgWMNxt/417hKA4EtcbF58rs1ylXkAAAAASUVORK5CYII=", + "tools/cshape": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/gzwl2pFvdUpEhUKmwAABA5JREFUeJytmj1y2zAQhTk0qZ8SkR0rnTIq3EaZcWowJwhvQE0uEHnSuKOazKgLOx83phASPwtyd4V9pUl9FPDeLgHIWUbT+i/xRqoKLQxctcLA40dhYHUvy8sPm50ocKFUIwoslNKiwL1SX0WBtVIPosCTUo+SvLV6l2TxlT3whyBw1QNbQWDXAz8JAqseKFl85x64leMt1FWNGLAwQC0G3BugXPEdDVCux1YGKGZzfjBAsR5bqv+SKr7lAPwlBOwGoFTx1QNQqseeB6BQ8a3VKJkeW1igFgGuLLAVAR4tUKb4KgsUKb6h8MSKb6EcNQLAwgVqAeDeBUr02NoFShTfyQUKLHDWylN68ZU+ML3HrnxgmwzsfGB6j618YHrxnX1gco9dqEBNIrAIgToRuA+BqcV3DIGpPbYKgYk2u93VKLHHliEvtfiWEJi2wOkgMK34aghM67FnCMSKL/IdUvSQLQ6SvE2TZW+SwMv7mPOTHO9x188iaCi3Swv7MiRKypfeESMhXy5jFmV8MY4YifiihevFr/F0X6wjQr5cfF6yL64jIr7okJfoS6zrpvgSOpLsS+hIqi/QkURfIo4k+TL9HrzNl7gjCb7EHbndlylHbvZl0hGjmsvDViZcX+YcMWL6MueIEc+XeUeMWL5onMfyhbZWpPuCO2JE9gV3xIjqC8URI6Ivmsoj+sJZvVN8oTpiRPCF6ogR7gvdESPUF83jhec/UNwTocg21Bd3Uyo+5DsM2DKB4KwhFHeXW2NA7i73hAGZhxnw8CLUhgcEJ1RQvCASGhgviCscqFnADgd+YQFrHMgLIjjyguIF8YADWUFEm5diBhFtXr04QYycoUFxgggOSmPiHNOhzasXJ4iE1PBOYyOHclCMIOYUHue3FULzUqwgRprXcw3/1pCBsHltm8j6iR7EDnz2NbZ+ogcRDK9vBDnIEv1ngfCjm+vgQIHTgxhO1x/z55+R701SmJphKbgO8k4OYpgaPVx4CmZiRwQGzevZXgkmtyECP3uf2jqNtPRnV08ifPnN68W95IeRGkRvYL6V/mKeGkTXzE1QX55hxCB6rzywG6knv/2k3IqAuxG3SRCD6I5Kw8uuL+BxUTnr9W+Ry26TaEjAbrx/G32XO1MSGUBEdtpf4jfYJtGSgCfMRNskPlB443p9ekM8NglSEMfmNbMhrpAxeBpSc7+bvmdoEqTfw4dX3uw7bQjjzENHddMRtBqaREMA1jMRtGL8B6GZ8O+057YE4DVk+MrKNAlCENfzEbR6IwaxRCI46tokCEFcIhH0H00I4h0WQau+SeB7iyMWQau+SeDPrtAIWj1RgnjCI+g+vcVuyVm7zPKAbnIXzGNB9PHFK4eX5b+xO8odC5iVvNtv0D+B3XgP7e3oqQAAAABJRU5ErkJggg==", + "tools/dodge": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/oBLBu6xINzJK6ihggAAAoRJREFUeJztmjtvE1EQhVdgsCgnyMHuNiE/gEUgoLOIkKBjRRRRJgVCdERICEoEiNoCwd8lttk8jPfOOXcOIcU9fT59u+O9j5lUFZt322++tqOXP7cf0H+6Lndf2Un2b4dxu2dwC+S9oF5rKxmFJB+t4ub5Ps3FDR6u45l9ziX28I6Jebz3fTyzXzm8x/08sx2eN5ylgJO3NPB+imf2guUlHzjjoQeHHnBzSgE/ejyzbwxv+MkHjpm6fPB5lCIiSCk+Q3hmP1CeX+Jl4EJfwXhmNQhsUOBNjDdsUeAIKwtYknmwsmzhwA3oiXEe9szXCaAdAMCGAQJ1HkCfXZfx1AVeZXhmd1zgUw74RfsKkZc444AT8Sv0XyK80nSpHeATFrjnABsW6FUFXKxPs+kAWxY4SvPoIntlpovslZlau5Y5SAKv8cDnSeARD7yVBDY8MP1DJDaoLumNSg6kPxTvU5nxwPSKSO1Qy4yTwJYHpj9mOZDnmV0ssOV5F/wO5T+bGQ9M/7Dln97lX20aHpheYI94YHoLkG9S8m1UvtHLjyLyw5L+ONewQO/AKT8Syw/t8muF/OKjv5rJL4/y6638Ai5vEeibGPI2i7wRpG9VyZtp8nZfdQMF1iAQrQraMoWXRLSpiwqibWdYEG2M/zdBdIz0r0o88YDogKYTrEUjpE5wQzXkOhEUjeFOBavkoPA1yDsrWClGmecEFcPW84JVeBy8IjhPbGD9l2AVG6mvEVxIZg/91wkukvlvCT2C+ekVzEwRjKYIRlMEoymC0RTBaIpgNEUwmiIYTRGMpghGUwSjufSCHVAm2D1yLQMuFXWCfxRrIXCuqBRcKNZSYLWlFTxWrIWw31NIeFzzqM8+AAAAAElFTkSuQmCC", + "tools/dselect": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/q1r3CQQPATtA2+vGAAABkBJREFUeJztms9zGzUUx3d27bW5IXtD8M3r8uto1RSmtxpoCbeESWF6cwIceouBmU5uaSkHbngGEv5cpLeSVtK+p/WudYCZ6NAmXu1nn/S+7z3tc5LkftyP/8hYxgZOYgPZJ7GBk01kIPsoNrA4jQxkT2MDZ1eRgewuNpDFVDcAp7GBMU1ksU2sgGweGzi5iQyMF4AaGC1HaGC0ADTAWDlCsjgQv44HzAAYKUdIVMIjqhuAWcQABGCyjWdiBRztoplYAZPrSt3xgMM1ECMUaQVMzmMFoAYqEw/PERqoTDw8AA0wL+PkCANMLuOYWAOViYEirRPTnsDkTVsAdgWOy5YA7ApM0hYTOwPb0lh3oEpj82hAZSJVpHsAlYlEAPYAahM33YD5AxKoTMQDkAT+Ots4k+xr14EApICZ7Ud/gioGqIkEUMTsbOlMci5XJqJFmgCKxPehO8m5rDItliNwYLZj05sAUGVaLABxIGfFlTfJnaBMRAIQBV46C8aAKtPiOSLz41I83g0s3Gugbgw4Yn+6H1z7T8Z0pUzEivSQHXkW+8dADKgyLRqAO3dveWMWGkpv6BxROsCsuQ48e1QmFoiJ5cSd1xADDkzJHMELd1pDCzhQpTEkR3B2EzSQAqo01gzAM1Y/JMVCngAqE5s3vLYWWWJ7QgGViY0lDWpgiqZNCqhMbGx6WsceR7MmCVSZ1jcxY0/MT2heJ4Eq0/rJIGPvGQP/xm6jgcpEr0gP2bH6YYe/etFAnWnd2BrrTfiROPgFgCrTetG/VrFXEoeqAFCb+Mz5UAVzSp2pQsB8jQQgn1X/UUeqEFBnWkdunG0S6ZLQiYoEqmLguHPL5G8prpk2oM60tj8vwBmcPOeGgaoY2HcP5OblO/I9MwzUmXZqfzKX/zyj7mgBJg0TU/auzIpkg6INqNLYxPrgyK8s+wHz739ZPVx8UEnRCsCRWP/Iq85B4PinV6vVYvENc4eRXS6AKaVqDJgyfJgiLRxsF5ZWYEYATY4oi4QHmhMe8JGQGEHUAViymzW9hR4wnRqhNIbOEZw9N2WgFSiWo5pCyLjT8xvbRAKFQ65EbBEDckQnoIzcOeqV2VeLxWrVGShzy7EQmjX+kqBX39048/cFQvabVF4pvlg8WH3+fIPO3xdY5ecr8Er/t/r6okrPc/DKbQSgqnHH4JX+bQJzUVVhsYnSK0Vo/n7Acz31FLwSKhl7AbWBchO37IBGhr54baR3BF45PhCojlp3pdzEjNHd032B+rWby03Mq608BGgaAwPYvoBX9gRymCQyXgabKL3yzyHAuv8j8/UE7KSbdOIk19LCs9s/crWnWUja4vHTMlzolYFQes/kJoJXyFsE8EX4KKIMVOuRm1gGpC3K/CSjO95Gz8qtlQa3AWmLWC/EE6mmvOHpbZYhuBkEpC2nbC5be4JGd3L9yywgbem4KxH6hImaZw6pL8Uvt0P7EQhwmbxo6QnWx+gUll/S0q7eAIa7cE+wviiNm214SNpbqYBzt0PlAe1XEQjktyFpn8mjiNhF9Ikm6KwFiU3MQtJ+B95IL/E+TB10ekAgg1fmBDAFjYpzBrboOuj0yGATS4gYCgiLzXaYp+ug0wMOiEsekHamrpxj338igpPG3UqvsObzHeCYI9uIyEMmnGkWkPaQVW+kyWhtt3MNsNn4EJL5XQJPcGBiwlJ42ncM0j2qjCsD0l4bRX0rdtqNeazbJBPOScgrVnvgsU9EO3DSuD8C0rZe53PuEbFmzoXcxN8C0ubWa8CwdIlY9MDL1CNGS/uMvV//AsR6KRtkPsTdSUlv4mvnSSOXiA3wMIcQRK8PXP9LG4vPQkDJKl7S0vabNrnw9ezjABDi7iEt7czfi/zT0MlASfupXQv96427fw5+ww8nhyntlRGSN34Ifu8L7z6clHYeOKjgQyYc9piW9rrrHxyAtBe0tMuuf0IEXplSXtGHgw7AsUw4k5KQdg9gdQQtCWn3AcqEw6B38yQOELxSEJvYBwgJZ9assb2BVrMF/0KiM5Ab4DwO8K0BNqXdC1g3W/AvdToD62ZLU9q9gJZX0O+xugO3+rZm/ekH1I3JLzeNS/2AyitY6ekHhISDF8d+QCntlvLdcVxg23fISEOV+378X8a/568kDpX/rPgAAAAASUVORK5CYII=", + "tools/ellipse": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP/ABCG7DvXsvtfwyisvAAAAntJREFUeJzt2k1L3EAYwPEHXLN7TSSFHoO26k2FuvUWinp2WwW9xRfwKi6Ix0UopcdWCv24TjZmN2Yn2Z2Zv+Jhng/wY16TmecZCeEQD3rQgx70oAc9+GpgdPLYv7vaH/X2D6+HeyeJGxg93qXyIjrXe+1mG/ipX9OezeF3K3Bzd6Tj8uhd/jUG434jNyaHAzPwR9bG5RF8MQCj3XlcHpfa2dGB8f0insgvXbc14Obc7k66rZmbWXA1XdRTK2hnPmji6cQ6aOap9VMXa+BHQ0+18U8bGGemnpqZQTMYfTX31OpJGsFjG0/koAlct/NEbvWgzQAWUR3GCvjf1hP5rQNX7D2R7VkwunEBu8kM+NnFE7mog3HqBnYGNdByCU7j4CXo2sBpEwVq4KSJBRg5N1A1MamAH9w9kfMK6LQGy+hOQadNMo3tCXjKgD9LMMoYMEieQajHRZ+F63HR5xzMKDAoQKzH4z4rcI0Dv43BLQ5cykFiH5eh9rOQQ5gPojAfhjLOFXhEgssKRL40ZXQVmJJgJ5SY9EQGgk6ymmZBJ1lNs2yw4IOgq0atGwF3ch5LPIiua7WyJWPBQFIW7PDgiAV7PJiy4CuMYcaCAb+w3/9exj9f+AcW/wXgPyn8N4r/6PmjCH5Ywo9z+IETPxLjh3b+WoFffPCrGX95xK+3+AUcTxHwSQw8zcIngvBUFZ5M49N9eEKST5niSV0+7YwnxvnUPV9cwMsffIGGLyHhRS6+DBeGqyMzb16hkC9l8sVWJWaLesGs9yYFa76kHuJF/5B/lhC2PpwQi4cTY7LpaUcz98aPTwrzrPo85p/j8xiL8KAHPehBD3rQg9bxBIq0xPhW7TbnAAAAAElFTkSuQmCC", + "tools/eraser": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/wt4ib1D890lKFtKwwAABAFJREFUeJytm01vEzEQhlcpjdTjQEtyXAkKPVIJkLgl3LgRQMAxRUXhSITKx7EgIXHjAKI/l268m+zaY8879szRzT59dtee2GOnqtQxevj2y9dXT/QXRuLOgjZx8c6G935NbUxem/CoFz9qWx7RL2MeTZZlvD3y43MZ8DQAlimGgkS3bAWvY2YrSHRoLEj0wlaQ6Ki2FcxWjAkSTX/bChL9tBXM7N0JwawBmBK8jge2ghkDUBDUD0BBUN27RUFt7xYFlYqAoO7rBRBUDUBIUPMUIUFFpgUFaYLeMyhI9NxWkOi2sSAdGQsSQQ8RF8QyhEaQPhoLIm/FCR6CQCDNOsEZCJRfcytYgcApKogCJ6ggCiRU0Aq4FbQCbgWNgDtBI+BOEAbWoKANsCdoAuwLmgD7ghbAgaAFcCBoABwKGgCHguVAT7Ac6AkWDz1fsBjoC5YCA8FSYCBYCAwFC4GhYBmQESwDMoJFQE6wCMgJlgBZwRIgK1gA5AULgLxg/nQuIogCwwlnRBAFBlPimCAKvIkKokB/sRcVRIFL77KzmCAI9FVGlzFBEPjNu+pGVBAE+vWqf1FBDDitvasWTStfiYCA/kpv3DRG6gZZd7zfNEaWfwgvuHTTab7nA4MS4qJpXWYDw7Vy0xpbn8o8pgzL/xsUyFRhm+ZYKSdHcHMR04wBuTJx0x7hiaUMttSXAkrFFrYYmQIKinwtMglMK/LDIQlsky8fkXpuGjhex4GRWmkaWK20ghIwrhgr5grAqGK0Ii4BY4qz2AUSMKIYLzaLwINLlaAMrK4YXqJkKAM5xcTekQysTjSCCHC08IHLMmB17PGS228I0FNMbxAiQE8xvT8IAQeKwg4mBBwo+vPBLGBPUdqEwoDttLQJaZsMBFbzTrA2AnaK4iYZCmwV5Z1GJVDexdPdMrAVqnspwDajqtsgu4wg0AnOzID7sKAqOUCHBhTpCzszgAA1goqvAHBTFQA6QfRkCAA8BhL/LtYiUCdYNdOCOvkJneBm8ThLfcDVJPCzNXPpa+cESvy7OBPSupsqKY5H3BeykpvMRVboXOyn86YT1BwxGacf0RWaV3cxT71EN2XXHdPZPET6xP9xpRds75nvizmCXXZns/EKTvz9aGdWzH05QfVJwzZ9MjeWJ7idtgSKTjDntOYpr7hSJH5Oxe/dY8U3kx8fiMkAznuZBTxYhEl0T5dXvXBdZzAAT3V51YvR3PcpE+yu7wmVCVZdH9m+07+Fgtuu0/a6P9xrV4ZLpUcbxjnbMZXRDenH9b1HbiyKSxIh/FVx/vHjLuZDXvbp4214xb2npTyv5mPxc4Jxr6CSdfI4iLtrS78m2l9kTJ8Z8a574/kbuniZMUL+A7jEhWh03/9rAAAAAElFTkSuQmCC", + "tools/eselect": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/kF9DPTHpB/iOd/r1wAAA41JREFUeJztWktz0zAQ9tgm8VWEuPiWJiSFG0kJoTcTktLeGjKFKylQyK2hcOAmHsOZwAy/F+thu46lWLaWGYbqOyQea/15tdqV5F1ZloGBgYGBGo46o/PlKUKnv88vB3d02cajJcrg+WVLi3AX5XChRVjLE2ItQjvHt6PFZ1mLTcLbmoQ5I1YyoTdILnNGxEnTPs4/KYa9Sg1lo+bb/fbdbxN38qXdGb1JW9z1TkuRL7JbKjoIM42T5MpByFditFdqljomQ67A6K0Ux7JPnQgXiblDRW9z11RwHhbI9VTjweGCZ9vFnnKxZquIkJqa4MNWKdYPFDwo4ouMPeSyW97t9pmMmjtwc6NGKBX5XoYvZXwnE7BnzH731fhiF5MbnHdYwX6JCmwyaohb60p+kIUzk4+0y942L8MXm90PBU2HrAmXI+R2ei1VUHlAYjDXFajIFHxWli8OrpyKTMHSHSboC1U8LI5LGWyhrfpqk5YQ3ci3B5s37YMqI8KfnfmiPc+ezOGL0cHC208qKmhgYPDfoU1/MRSd+9Anf7ZfYmXfBvsj20o7qPkehHDBp+gb0f9PCEKyipxY7NPmJgThZ05EdlA/IAhrfJlbV1+dsiC77iZfVTEEoUeYWpTXh+CLh7km3zCWBRnml9RrQAaZ+csJHexbMISPEfmm26V6gqBGO0s6rpfoSFCnw9GHckPmiA0aKC0YQpuGygKW0KeRh2EISagEFvlyCWEIXRrM4IQkomH4LMYFTvjv2xDcbcAdGzz0wCcH8OkLfIIFXwLAF6k67DJ6Ab/Qw21FXLYVIbE3ByEk+b/AItu5sxCCL1KxR7dz9x7B0BF8LZU4MzAwuJ4Y6zwsyHDuzTSWezuXFPAOtJaqLkK/cObOqlKWPQatm2RTzLQEWlnFLsot7k61QsAVBTcfXmmo2BUl1bVT95vVBfDiAlexQkZIUv6oXqBZiBWsXEIaShT8C0WuuAwnrSOKsK0MB18ojEuZAVgpE7zYCl8OTgrWKkGtUrBOSuoqB0KmTLQo/nvK8cKr/kV7VmYYrEDoUp8oPJZAXUFtXiQjWHxwgp43UDtTM1U72kHcPzXh8at2mGkcpzVLR9lhbZxcRt0KyPGYSWSzo3ZntERB8gLvhSLfFTDDZ5GqH8oflMHJ8+kl0acCQq1v4b6AMNDgE5lQKynjfRIRauVQBIfxtA/4wR4XNDAwMLg2+AMJLakTmOR7tQAAAABJRU5ErkJggg==", + "tools/eyedropper": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/38IU5XA5Shzorl5IAAAA41JREFUeJzt2jmP00AUB/CRnUTZjgkkgS4uEG1A4uqCENASsUKiS8R+ALIsR+kVl+hIxdclYzuJj/fidxWRyCvXyn9/nrE9nvE4d4z1/e2Xz+dTu7yXPtQwtcr76fMaGSV2VkWgv7IJXPtdvbHIi/Z5fmjRMUkp0L/W53XLef6WPnBeCfSpLdD7hTFQfc51oB8ZA7WN2AB6PzMG6q5EAKjrZgDoPxgD/Q1joEYIAjWBIJDXKWEsevftIND/YeTlY8e4GN5gIOdOOdv+5nKKAzn38p4UBswEDmQ8bcqkwTSC8zh9UmmzKwTIaEKkzeRnPG8NC0W/aGjAAR2ItVm1JuS8jjXwsTHQPTMGuqUx0K2MgaRADpByyiwg5T5hAd21MdD1jIHtdwoT2N6ITGDrvccGur4xsOVu5gNbukUA3I/KRsCDj2wJEBuHjwo4wEJnQuAEO+2PQiB63oI2TPKWQohj9rQ72jIQInuyk2y7EiFyG3EHxIh3pECMyJzTloAYMZUCMeIE/3ULECEuxECEeFMOhIm35UCYyHhXbwBBIiOwAQSJ9EAACBHpgQAQIpI7BQQCRPJlAwIB4kIHbBKpMzIE2CSmSmCdONQC60TiE/sAsBaYqoHVUyZe1nTg7DiBg7UxcNIxBjr3yha4mRhkM8qvZsDNe/yS/n2CANxU/y71QxQJyCkakF4nIPUYVicg9RhWJyD1GFYnIPUYVv8fcG0M7FgDw4IethwhAfZXm7k+Mm6LgL0DL8sSYHbGKXxIBIxX+HKJCBhWMN/Dh0TAbF05hQ+JgKEJkfUcGTB84EBmvTJgWPhegEeEwAh9/ZYBs8savE2EwPAFBu4TITA8usAZjBSIdrIUGHt4h4IY2EGehVJg1smz5p/FQHcfvmrEwNDJwFUjB4Zvn8BVIweGPmmuXymAPbCT5UB4PFEA4yXUJ3M5MIwnjRuvKwe6X0ATBrUUGJ4M4xT4J1LgGbD68tArgNfN8eTpSgEMb0m1z0o/Qh5rP1O5HtX7+Mm9bMlIuqs1nlcfXfGLjCffydutdsnvYkvDaIb+oqXm5daK833GmrzKIyD+W+RdpuK88jMgLlbw/Lk8rkIs9kGPnqvy9sQHed6nVJdXW2D0F/ody5Ul0At1nKss0prklZaRjTaR7xa6TXZ8hyqW4sczo7wt0WSPe14Z0WD/+L4SYFhRVYROzKSVmPVwUZHBlv6s/gFi4v6ERJh64QAAAABJRU5ErkJggg==", + "tools/fpen": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/nQ+msYI5fUa2U6/fQAABStJREFUeJytmktz3EQQgF3WZqk9KuyWdPR6SQi3yDYmudlmDeaGnI1NbluYFOYWOaZSHEOSSrgluAD/XPQcaWa6e3oefdrSSp8+dY96Zsfe2HCMr+M43nK9GIjN1yXwbjje+DCOgyo+r3nhFMd5AwymeKflBVM87ICBFDcFL5Diox4YRFGUJJTi4InDKN5KwACKh3FYxUjm+SveUYDeipkK9FXMVaCnoppCb0Uthb6KcwDoozguAKCP4ibE81H8FQR6KEIp9FGEU+ihOEJ4zoq3GNBV8RAFuilOXqNAN0U0ha6KGQF0UsRT6KYItC4/Rah1eSmSKXRRzA1AW0VDCu0VDSm0VzSl0FrRlEJbRbj7K2EDRLq/OxDp/s5AtPu7AlkptAGyUphaADMOcBoaeBYYmHwMDHxjwdu4NPPShzZAasZzEWR0w8RKkNFsntnxjFWZri2BhncPf2AwWVsbpnbzHWoClvOuSfEJ/mjwgDMoviRyBV9GK/65JoA5fA2lOKXeYWwAE4ozckSjrxiqaHhD0M6MKab3SR5RSkTxB5pHvLKwIjEA66CaCqRIDcA6TAt9RZEcgHWQs6WmSA7AJjIKqCrSA7CJnAIqismWmTchebJiinesPkxTUeX0oP1sGoB1mFYwleLkpP5oGoBNZAZgrTi5V364YvHMU1uzir7ZXqxZPENNOkV+MJYHdr9FPjMD7RQzBtBKMWcAbdbRjJrYAYOv9Dk1sQJmoYHkrocDkFcTCyCvJhZArSZv9y9OfICZcmU1BU30vPKB6rUH1UG9X7B56mbeFL4NH6jW5K/msLaryQaq+zIHzWHtmdnATLmwncW11Q4bqCZr3RweuwK1DVZfoPae+D6ytld20Bx3LkqGAJ2HjVqTKXKcCxyrNcGemAtUa9IKujcHtSbV4m+5f/G9xuMCM/mq2RpdmDCByqOd6YfsgEpNKsFfYB4TqNTkTPx3hCtQrgklyARmmmDuB5SerxJ8jvF4QLkmpCAPKNWEFuQBpZrQgjxgxhfkAYc1eUYLsoDDXe/ZR1qQBRzWxCTIAg5qUgn+Q/FYwEwSnJCCLGBfk8QkmH7L4A1q8odBcGbYR2qin8tNgm95O8F9TQyCp2sYcLO9XC4X/Z7LJ55gAqdvvHfefN//rBQ1qQQLNH37IG9PPFEqFDtGtRP4H8a7BtMnzbMH7UFRk5eE4BMwfXtSH32h1IQQTMBNmsmX8lk/KjUpBSNYEN7kik6Qs+a94Dcg7wrchIvy/ox3q6PFrkhKQQsiL9vPgpeuHst3ag8jgslXME/c+1TNR7smegMLIi+b4L3T7/eJEjyF9zDFraHv57gg1qu6esDfF6jgDE6f4CVgL4uEoLrKxnpVx0N646gTfKTwsF4Vtb0E29K9hQXRVt/x0C3dOSiItno6f1UUkCDa6v8u2gdAt4gjSBBLX9+u8L8KjnRBpNWXJ4luSmwRVzWRBdH07eTdKdQWcVmTzyVBuNWXp9wTp1ytCWBe76r2gnCrL6e2wpzh+r717CcE4VZfPu1PfUrotcioFsy69IEz5XiIw97vLi4rwW55eA31qosvBjg0wyLmleAcfZbJzvFwwKMDqo9cCOqt/mLnuIiHoTV7PSIhKL9s492d5Xksx/VjBDKMUSfYzpS/3ezubi+Pz/X/ulsZitHGZSv44VUVhYbpcncEL5T02GbsvKarBTxTQfHQ9Kf3xIZWByGYrI765QU7HgAbKXH8/uly4QArI7o/+JmXvvr96WpZLnv+dUFV8T+SbuMvj3r57gAAAABJRU5ErkJggg==", + "tools/gradient": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAMAAAC8EZcfAAAAkFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDIYgjAAAAMHRSTlMA+25aOHYrI/Pj08iwlWFKB+3p3tnOv7q2q5+bj4uGgXxoVFBBMR4WEg3DpqNGPRsUDc03AAAA7klEQVR42u3Q11HDUAAAQTDBZHCOytmx/+54ogBm/K29Cm72TpIkSZKkIXf/10toMplMp9PX0Gw2m8/nb6HFYvEeOhyWy+VqtVqv1x+hzWZzPJ5O2+12t9t9hvb7fRRFcRwnSZKm6VPfqC/Lsq/QQ1+e50VRfIfO57IsL5fHvqqqnvvGobqur9emadq27bruJzTkwdFtg2OCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkSJEiQIEGCBAkS/E9QkiRJkqRB9wta1piumzN/FwAAAABJRU5ErkJggg==", + "tools/hand": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/w/xgcApBeBI4LcAVQAAAyNJREFUeJzt2s+P0kAUB/CGIITjpMMGb03cgx5rUK8lstG9UQN6hQhmj3tw945u1CN78cd/K+30xwyF+fW+MRo7p5ahn7z2zaNlOkFg0/oX8d3O6puWbcMYG0Y4r7Pdg+wNDuxmHhviwEc5yBIYOBHgU7F3+4EMpgLk+c55zMZLIrgV4Cjb7mc6vyZ5feGxMNsRCXpLAjsyuBLBLmFgkaB3MFBJEAIsEsQ8nN7FfNcEmT84KX8QZLDjD3arHwQQeF9dewzYF1d/BwNFRbAZDHwgjjuDgat6AGPAosSGMDBtIjQwBoPHkH8TvP0VQcFNzIZLIJiX0xgIisFq9RhlBRb1/hUGSuWJAVOxafUUZQWqGW/BFmzBFmzBFmzBFmzBFvzLwOxxf0AFM6Rbbs+q/+UE8HkQvC+3eTG1QQJHu145mcTCZBCTQTaqPGXbHzzR/kPwGg3u6rlZDDiTBjwE5NVcEQgMX22qbQgoNxuwb2bcwMDM/FlwvZhGSDAbUc+WQDAfUXwJA3tx/vkYBpY3igQFFjNEyhQRCayKMgGBadnDQWB960kwYFx1cQwo9SUQULrzcgiYHgmRBE6kTo4AV3JvAgC7ci8HgMpFLEKkgTfNEGlgbyv3J3SwfkitQiSCSlryEImgMhTzEKlgI0QqmL96l0OkgsHVQYhksLjzVSGSwfovjQiRDqpp4XRQHTlO7QR4Yz7SDexszYc6gWpBI8CB+VA30DstJ8Gu+Vg3UC1oABg8RoNqQQPAg4IGgH5p0YB+I0cH+hT0SAf6FLT+7a1HQevfL3sU9EMt6JGWF3rQfeTM9KB7QSd60Lmgw8gAuha0eRHBvRt4ZgQd02LISdbcRo7Fyg6nEK2WTbiEaL6EjiEmNmDw0tobRVZgPb1saoZfhqpdmSmXM96XS2rnDa1XxH60Az/ZepZ5cVkPa3XSX+w9q5N2XLD70wg6LinumCrQeZn7QH+TDhNHb38ZY+AJ522t8cZeq7w3Jz0e+XinRf917euj1/HOM76snacNLrz054JsYfaBN/9B8vbtyWspuvl3KpeT08VnFn5bTC8j/Rd/A77Qy3Uri4NyAAAAAElFTkSuQmCC", + "tools/hbrush": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/t4MIMN9ckyTq1CfjwAABCdJREFUeJyt2s1OFEEQAODRHXQ5zsYFPW7ARG9IsgZvyyYeuLkuxHjD+AIYfIBFw8Gb+HPwbWWmf3emqqu6q/pCBpqab6arm+5aqgpqJ7+apnl+Df6spJ01pv1WivfGxmsmG5V445kL2OyrBLxrQrtUiDeP4jV78nijVRxQgbgFVCD2gHJiDygmeuBEiWiB069VfatBtMDpor04UyBa4JW5+iYmWuDh9qWAaICThbveFRKt6CB855OMaIFH4TuPRMQhUEgcAmVECCgiQkAJEQYKiDCwnIgBi4kYsJSIAwuJOLCMmAIWEVPAEmIaWEBMA/OJFDCbSAFziTQwk7hDAjOJdzQwizg2wEW61ymfeNz1fJLuVLttMoNonniT7rS08RjEuus3ZQIZxF3OE3sgg/iq6/aTC6SJN12vBRdIE+/oV2iB0xsWsev8jANcj1lEuo8DHlUsYtcleaZzQDepCGJDPbIb4jYROEQyr90QtzflEE0XfO0KOcgkmh5XJJBNNAB0NYwnCY+4So+KBc74RHvLTRI4PeETzfrqDzswcG3isIj2cAP/CQiTZMwmjmYJogUeuDgs4g1OdEO87+NwiI8blOhz8CqL+AUjhhxUIkYLtQoxniQqRAs8XykRfQ7OlYh+kox0iGGSVDrEZbiHCtEPcXsPDaLPQSVilIM6xGiSqBDdEM+0iC4HlzjR1bFYRJ+DNU70lUsOMexmUGIorTKIboi9FSD+DaNGE90QH1Y4MWo00eVgeJ0AsW0zJtE3gjh9zST6RhDX5AkwJvo4KPF+ZSMPqYFodjMI8dgC6UNqINrdDEg0X9ull090uxmQOPdAPtHvZgDidQDyiW0HjDiJgHziZYIYAXWIMVCL6IFaxHX0CzJi3QdKifMBUEaMJokOEQKKiBBQRASBEiIIlBKHQBkRAMqIENAT0YM8RARzsEfEa2gAEc7BbSJeDRkSk0B/TN7wiW+TQFdreMcn4kNs2inxEgdEAmgFiaIXREwAGXU+gJgA2v6poteQmASal5gsbUbEYxpYPeiSIdUjEIkcNO0hKQzE9CThB3TEzxygKWCnq7l+180BmoF7mu4Tb2kpoClgEyX7eNdNAc0WAJ/LfSIJNMsNXirtEymgzX3qtp5IAmtGyT4mUh8x2blEfLIVE5ESqGt247ihAzKJ5rM8xhNziSvuEzOJO7wXzSeuOO85g5gF5BDzgDQxE0gTc4EUMRtIEfOBaWIBME0sAaaIRcAUsQyIEwuBOLEUiBGLgRixHAgTBUCYKAFCRBEQII5kwEDc2Ov+P0AWE+3ZwZ4my4Fhp3MeXQmA0Wbsz/0LvMUXoHxi8/Lfe3T9KSL6JgPChWRVohTYJ4qBfaIcuE1UAG4TyZ08q4WCwQuVeFW9svH2yDMEs41NxA9a8e6NPy4uPn6Hf/Yf33WZEV8wffAAAAAASUVORK5CYII=", + "tools/htype": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/wxi9s87IauL8Nu1UwAAAXpJREFUeJzt2j1LxEAQBuAh4XKmjOZAu3gc1p4IahltLP0AP7rgB1raaH0H/gBB/L+Ch0pmdrNjZsEr3red2SfJ7qbaJUKQJUkRKQABxgPLq/eHsfdhP4Xk5eBVBV7fdG76VvH2NAge7wT+onZ1+BEAzyvmBUCi/U7wgreHQXrsAI+kFwbp3guOml4g7frAS0ezBsxqNziqeoL07AbPXL0qcFi7wPKpN0h3LnDN2aoDUxc4M4A0l6Dni5XgRILr7k4lmEvQM4VKMKkFeGgCF5PYGnRiA6cCnNnAiQC3beAgNpgLsLGBqQA9+1oLZgKsbGDSUesF6gMQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIMDYYMLBatnAIQd9Z6jaZLHBlINNbNB3sK1NHhsccPDNCG5y0Hd9QZspB1eN4JyDvisgynzf9fmN+yKSOivcs66KmMKi2LB4YlsbX3FLLMnXLO6Nw0PbWQwsxYLw/BEMByBABPm/fAJPo/BYXTJS5AAAAABJRU5ErkJggg==", + "tools/lasso": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/jjHnApZ5HcZTulYkQAABJJJREFUeJztms9T00AUxzOlCeQYixZvBZHizQqi3KyMUG84wKi3FhHHm9FK4Uaxo+PN0ZGB/1b27WazSTbJJvkePPR76o/k0919L2/fvlfLmmqqqaaaykhvVyZba6OR541Ga+u9w7/VaL8nT7yYvvQelKXZqwmaYF7slsC5Rx09jqmx/asobzUDR8iLQrjaTjaOadgy5y37+TzPaz43xLnfTHBMT41WstaNjmO9d7x0fWBZB9dLx5Ot6NjnDabtdJQbGr3DmIfYK5PIBf0ivKHe3+zVHXOiwht+TL/scseQWJO8PD8L/bTRSr/KlfbYyLWf+05aJv3aH8GP/szDMV0FgzxNu+JeAWdgkg72SP/9XGAN4wffDWxzrv1WzOC0QGyyxSI1dGNoF+eFxM/Jr8SE5wvGTrubMmnxRYYLpEi4WmIge/Rxs1WUd2Nrn259HPsdbpEXxXmWta+zy5+0pTURN+dmcoBa4xtIc/deunuaaC6ximSpO2V5ljUgQ4fv62UtHIhb+ln0B0pahKsdmWKt6gCDIQYIMsmtKjzLWlTNMmZv+tWADmMs8Nc15XV5jcM5z0QtVFLkKQ/pJbNxs0zGF5HtSzv71U3CxMzSZC8cyIzFnPsWX8JmybCgyvXFIi4ibMw0FkvHAsNXBPA1DxB2pcClioLYLrcJYAlvFpFbhRmngeBZVofcZbZaaFXFnpBPZOTbGOArMvNAPoKVNUOT7WKeE6Y6+U23eiwM5BCwo4TuiqqRw/goN+SO2CRg5WDIZROQuTeGZ3EWHAifMtwocLeBOzb80YMHB3j4ggdY+BYA36Tg2yh8o09NRS4n31uFgEEqok+WbFavyip4JCSTJW06Jw7WRZIomc5pE84PHte5OVAmnLqUeF/wCmS2SkqcTNrFmbqQyytJe/JY0fak+qZA5VjBz6LKnU7IMw5EdE9wHo0fzQYK8K4hMHI0ix0e1QGaBqLo4TF2vF3kqO0jdRY5ih5vowdwl5v4JV9bMzPHD+CREgF5kXcSDNUIGC8RRIoYYzlcQpuEymQRQymUkIW8M/ZpPbLQ6dIVacJCEA2LRx/HEKgpBCmlqnFo8ZoZUFuqksU0buN+AaC+mCbLfVeKvVwTYFq5T1ZgmcQWYxsAUwuSuhBjAMwomcqirvJ05AIzi7rhpGXgYW+ystvssjO+MI4v3eObC/D2h4hjXJAGjdXxFCFaSBEgosnle3FVbMOx6xeQjUIGnEe2Mtn6NJDNVnIbdiWqHUwbAOUzoIY1bcVig4a01GdpteXPV2/6J7fsin9LoMTWNEMyElkFdYBm4qlS2d6PRiKZO4EBg910A1R6CY8Uw/soYrDhN7dBg1Q2/PcYojyXeZ7pfy1yNEATw820ZLc0IceXwGrNNKk3IbFoBzufuJl/dTEiaNLKv0YA/SpS+L+bFohoBxs+qBp4o2XsnCUR0gITaqO3GArgSCDlJv81ENN7VtQGuw3fsSD1Ty50HlHnT0ofBuSbS/V2u1QH/OTZfMamBbp88ZoQ0Cai7odL7Rx08OJAoFs7YC/kQFCvhURWPgMC7TIz/gfD6CSfzrCh/gAAAABJRU5ErkJggg==", + "tools/line": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/pliM8n45wcWM3PWJAAAAXNJREFUeJztmTFPg1AYRUlpExlflbrWzVEXXdvBzjZxcCVx6djo4taYuBsH/bvSFh7EkXuatOGeH3DCB9+BAEmikV6Lgv8s8hnqO1uGV1Q4CCFMSeG8FOZfnC9bl8LwxglHW1+Y3GDC250wjKmhh8VeGJ4g4W/lw4a+qoXQ6qTRd7lBhIsofEF8ZXY1zCkcRF+O+OolLHlHfPvswIlH0TdGfK2JnxFfzC5MZogwZhfOEd8hs2PuXc5OpYfZRZ+z64izUzn+7JoldHbdcHYyzk7F2ck4O5WsgCf+dHYqJ5TdBeJrZTdFhEef3dDZqeDZ0Uvo7GScnUqzhM6uI3R2rTedKSJ0djLOTsXZyTg7lf5l1ywhlN3c2Yk4Oxlnp3LI7DaIsMluhficnYyzUzml7JhfJs5O5gfOrvVd7xER9i+75uexs+sInV1yD2eXZPUhQk+78qosyey2fBRgdjseuOwq7rDsKsrTCGVXk66Z7Bq+1ez+ALuCq2njZxanAAAAAElFTkSuQmCC", + "tools/mlasso": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/nK3Ogn5Gt7s0hqYUAAABupJREFUeJztWkt320QU1rGk47J0HIy9k5TQhl0VF1p2ilNC2YXk9JAuXaDdUqfQZlcnzelhhxsg9N+iedyZOy+9PEvfRetImk8zd765TwXBRjaykY1spJH8NMumj/78NBh8+m86zXZ/Xw/tdfZooMlV9n1XtHhmoHHM3eMOcP1saYcjMs5+a4s3y91wRIa7reCib6vhiNwULaa3qscbDCZNJ9nfawJH5LKRJqNvlEHjaZY9fvM0CJ6+eZxlU3Wnfm6w7CjHA/Z1hsSzHfzCYS1iD03BwTeFn+OkBk/O7+qe+7GFVPOwElGut45nkqdVq+6Lp/Zr96+/IxDdz34Fj1SsVsoCXv/R9cRhCzIQEQR7YL/fm/MXNj74fb6kUWK9y1dw2cI2xXsVavyBz6+VrYv5HP82b/XYnectbWd8l41LjBt5HQUcwjU11Cdyyg5S0Rav3Gt2WL+2vufL9nhBcGJb2zm9+L4LXhA8oYMfmhNsr0Dn6FP7TjWVnqFF+ornXfGCgHJnqL1hUnQHjFbqClMH2ZsLPWZbAn++5gT5FEcAQbfkl3XwguAIbwtdcVH1eL1EaM10xVvVz9dLKtccEvD76wIiFII97hLxKRIvxTrJr+118YLggMyL/Oh5WTFfc8J/TDqaBSz9FZ/YgY89JpJy1RHD8I8PwGfMQMTzdQwXFrIZo2P2nwcVlkpkUwtVS7aO5HRXPvO1J2xX/qKb/LkfwB/pNqd+aE0kpItNfW0y2+YtqkmPgEMKWPgBjCggsTVeaFgSkdobcqTXNoZMYmJmAkJvP3hBQAyYf0DvS/a+Kd5p453Y3o+ed+Pg3Xx5N7DeXYB3J+XdjXZw9PFs+u/gZv877TJ39M5QZJFlhRUPSgMjLZGHUOSONViKSY3CWvCAQsJAy9VpsPQucIRzPA22zHxngASXL0Q4Zw04oT6SVMyPCFq1CDhtIfEpDNBfdK7iofIFConNoD0SBbCxiidvgIhMHqGYacWRHKCuOdXxZJqM0goj8YECjjHzUxNvMGYEwYmPkZrheXyB8GRpDMsHuShIzbTkMcKPY1XoO4K0qCaPWnrLNDjap4xDhii2TpBpRU1v1QS8z3byITvlCDC04xEcPQFXSgRsHDkDr8hE7apVpDBKBEoRg46jFSEKLU55f+4CvDWLGKhQQneIbV2Pvb5mxeU4OVrIW3rnPYxj5FIBD5yATD5gPFSqQjseKYB5NZ5eRYJiGrVqXJsKYB+PHl0Zh1orpoly34L+izAAsIcGfyyMhoFR7oMBL8g/1/wlGPCOHEyLlrHKokTHEyVTdFcBfCXu8hMQYRrZqkjy6AuGkj9A13JCt/wKMnJjq2MXVkuYafIH6EYC2rRa6GBUwF9YnZ05f0wkR/wGrmlsKd0LnggLuUDUcYRbVc2FFdx6x59V/Kmr7lPR/hB7ylant+kSOyA2UVqDRhm6MHqSt1Y47cAqLSQJaG1xukJMbSGoySV0OFW7agxu7kpNzH4otOEqOqUlz1IXcWg80bxRyI7rJCljQwdxWIDSuJXJDss9cmocxMkHVL9Nm600QnrABibuTSH6bdgOLv3CJf/x0gpIeUj126xhHYJlDR3EoZ6I6zeeORZ+I/nZn4N1dxCH2mUZcVua/uVtrP4UcBzEMV02+SxhSj5LkJKg22dgLM7sxIlXVOO2W3KXsPp7gOMiDrMOttlLu6G8LwcFOYjDAg5b7+eZXHOBLh8BjoM4zNHb+qfIhdxXLm/DVOzE4d5031BILHmJ1R+vgDgrO3FY7FjOUc8NkRI14iTww25xwOFP9EmieC5RLvNAw0EcCInJ1qh9QxTMv1QuQxvFZXFkNqIlsJKJKnF4QaBUYhJY5a6cioL4h504F0x3JIF1mG2U4IzwqgVxXtiIs+dsrStfT+B+LhCnDCIV9edEA4cVzf8gOFlJziFFM+IMi3ipEOeg1N2ipteNEFFXlhKndEmSe/zydW9V16o9WVoWHYFWQ4U4pZXN63vd8qsRlKfmXPGRSpxSFZP6Xrf4LEImmSVxLgEZT+hMa1c7JIaATXKkB78vwFCzd7sJowoPaWUlI15uA7JCnKwZHqTcaGzKj6tGnObyRDu5obRVSSdAasARYASRZdi1f5xqtiXnf0RzV4hZI7mqw5I4Bbyp6IJnFIkQca67AL5VaUO2Vzj2LqVg5rF+xZeAOMGyS4fWEkeE0rEnrfG4n1MGRmBouhCHTVA7E5w4pZ9oT5xcP3lELihfSpc0av11TszyOy0GYsTZa2axVIksKuTEOaxwcW5hbtOo66eT4/NKF1cDaPA3HGSr1p9zIUDjhNHWU9EBjwMmxvUGLs4ukWZdQS4auDg3oCVV77UnDJPYvuJq+R90141HZBLIbwAAAABJRU5ErkJggg==", + "tools/move": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/u4sDXdPocXZFvB9nQAABIlJREFUeJztmrtP3EAQh60cGCj3IsJdxyMioYM7FInOIgXQ5aSAUpogoZSgJKI9pDw7LiQS/Lc5v3Z27Zl9TpEiU529u5/HuzO/WfucJP/tv/0j9oYbuMYNFFfcwEHGDBRfuIHDXWaguOcG9lldnAPFNjewnzMDxTNuoGBMwAq4yg1kTMAayKcRNZAvARsgm0Y0QLYElEAujRDcLgKQSSMAyKQRClDk3ECWBFSBLBqhATkSUANyaIQOZEhAHcigES3gIDq6W8D4BGwDozWiDRRb3MDYIt0BxhbpLjAyARFgnEYgwLgExIBRGoEBoxIQBcZoBAqMcREHRiQgDozQCAIYXqQJYHiRpoDBRZoEhiYgCQzVCBoYmIA0MFAjDMC1jBkYloAmYJBGmIBBCWgEhmiEERhSpM3AgCJtBgYUaQvQPwFtQG+NsAG9E9AK9NUIK9DXRTvQMwHtQE+NcAD6JaAD0E8jXIBeRdoF6FWknYA+RdoN6JGAbkAPjXAEurvoCHRPQFegs0a4Ap0T0BnoqhHOwHYCHhPp4w7UNWLhliix7kC9SJ9QGe4BVIt0b0ZluCPr4fvN6aXi0oGgdgEW0s6Pm9Ozi/32qMJBYhdAgR5uPp9djjP0rioHBS5CBNAsBpWDuIsE8LkROGq6IS4SQKO69DYM3Qjg0MlBbGoIoEn0wUHMRQo4pYHv1X4dFyngU9rBn4+/NqtOmzuP38zA7dvml01Qiz5kg7T+7rn8nXEA75MVenICgHPFW5QH6wzAedlYMMWsL7CsGtfS3XhgWXr35GEeC6wCZVkeT2OB1bKm8pgObTdgswgz3WPNegRQOQ/AvD4xkWeyDvADAVy80hsKkyXssDUHqoMvKeCq3iDUbfSSBK63gaOhPg6AysXrwbDP6HVmVbZsUMAlpbpUY9VthhScdmiPBA2EqK3Gqns1EJw8UW0u1H0auKU26Fs1EJypBpzXYgq4rCxCOVLb74LgaKFd1GIKuKKsQjeEQXC08wcaogts7hIJuOsG2M90B0ngE2UdkPDYw0L7RNhsTQLzFhAE5w7mYWYF1iuB7BtBcCBcj+28+k6xna30ZiBP3RpA+j1jT9cT2UfOxojmSJuWPbHnfxAcGaDqfoawYVb2xB6QQHAgtO0u1smXIUAQHAjt1OpijpAak0ughHapGdBFOyoC21jHQXAgtFMDsEg94/MvCA6EdnEVgzgMEpOB4Cj7/NQoX7+NQBAc9cLnBsW2vdq5li4qHVMD0PZqdU8C1bmeuFQ93EBwVNVeJIHWNxIgOFp4vaOAUxsQBEdV7SQlgD21E24TJLQ108PcbiA4d3gHXyAIDhEQvkAQHCKnfIGK5tMvP7yAIDi4jHgDQXDwvbY3EAQHV05vIAiOFtrhQEVwWqHduxyP97OiYeH1+NWFM1AKzov2MkMWCZ/3+o3g/MnaLanC8/h3shrW/4g0KTXa57+R2bz/8C3W0pNR7/UH0wSZvtqOiPUy26H4mhku5u1gsoRNX231BOdeQKOV6xL7NZJqxbrwfnd9xP3ZdTLh/nY9/dQ59RekakVzGMynzAAAAABJRU5ErkJggg==", + "tools/mwand": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/n9ZMaTjzAgYI+JRygAABBZJREFUeJztmr9v00AUxy3bIfHGS9OEMZmgG0aqBJvN0BkLhOjWFP6ABljYIqG2KwHx/2Lf2b53zp3j9+42/J18qf3R137f+2U3CCzK9GZsO2+w1nozdAbe6c1XzsCF1kq+OAPnWit85gxcaa38znLacEGGW8XaHYgRMbx0B+KbnMIvdyAuc7p05gWAyjzbnnsAojKHcOYBiMp8gIX9xOHAdXtcwFMfwLbMMYB7rktge5tT0ELJBrZlTsFDrktgk73ZFjzkugQ2ZQ4BVr2nDgau5dEBwEOuK+CNPCrAR64roCxzDOAj1xVQlnmqvLoCZZnL0MA72rXxGzNQlLkKDTnXVx/MwIoTAoA+HQxQvPt6lFyoH92hOtgTgcFfOO92LqiLW4aGk+sNLC+OgXMZGk6uo/Kyb/sucClDw8r1VXndbdYBlsVIm1unKtlVz+p1B7gWoenmOrnMgtO6FwSVH9G8EaHRc51cbn8M8rgR17b5Ea3FAZo8KhzMTZcfKxLXtvkRjXkBWq4rHCwzM+BIV5JY50cey5/2CAdwPZAn61LpfQuUWmEcJUP3DeE204BzhINVNhxY10XmBwHPFA7gBYHX1EXkBwEXCgefKby2LnadE+fTti42kSf8+37edyoP1cV4w3s6MOrhLVkrnJ66DBsTurLXZeCYcCRbXUhdRJOlLp+4PEtdiF1Ek6kuK4clZ/TRAFyzcTM0Eijx998/TfZYXaS2Z67weca0V5h59GFLKLHYE5rTiX+s9oRu9x7tCdGS/Wd3ileuzgj2np/GAV74nNDvAfaEhq0Z4mH2hC5O44K3Q+1VWpKmeSTrzMKbVoIgt3pcsYiznsfA6taTvufI6dZpb2Xo3Tru5dG7dfB4AkiesIpTQEq3DkwhLH8M10RXSE0I5ykCbrgLERXCZfZEAUOHibQJ4bW6d7E8YVusb/Ssft0ggGLLx7RYh1CstZplkzxgWqxDKNZahxoo96RMiwWKbvM4a6csi7IQ9Vor1oEsi7l2ZaHdMseiDGG71spxUVgWxVNTI94Ux4ZlUYRQjfIRCjbLoqgC2n/V0Q7YFqsQaovLTQ3kWiy6E+WhAfIsVo9M339NGiDPYn7kIGmBHItlCI/eyRQNkGNxYth/5S2QYTE1vJOZtkC6xdi04YwUkGzx0fhOZtsCyRYL4/ydKiDRYmReBT0oINFibj4tRECSxZlljZ8gIMlivLf8oUBAh6FbKUdAh6FbaYKBPixGGOjF4g4DfVhMMdCHxQcN6MFiqAE9WEx0oAeLhd50t5jrTXeLk07b2WL3X2O89GhNPrqLptGiD40WfWi06EOjRR8aLfrQaNGHRos+NFr0odGiD/3PFv0BnV7vG+XyAcIol08kZrl8xDHK5TOTWQ4fwswSn+r+AbQr7J/LQA/cAAAAAElFTkSuQmCC", + "tools/patch": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA//ILL4farWNRum9GRwAAAcpJREFUeJzt2s1OAjEQB/AmQMDjkIh4JBqjN0I08bjRF2DjwbM+gRxMPK568Ko+sbRd1na7X3TGBMx/bjPb/lJo4bBTpRCIHQ1aR1Oe18YAAQIE+C/B/v0jRcbZcxJ6Bw+xnI7JZ7A+lrcWy2t843lE57434HpESw9M+eChtyN8jyhzwBsJ8NQBV7Y0frndHNouB9vWLj9mdvaRc2ZsZfJeAzSCSl3nRy4pHg5t4a4OaAHVlZ3/VDxcmPyiFmgD1bcBTor8y3yBSfXgLmDffI3TIk91elwPtIJ2Sb8n0Wzysm5wF3Dgb7PepcmcA/YMUaQz8n8524Pqldw/XH+LosCFl/uHKAocBmDGA0cBmPDAfgDO6wd3AXt/DzYBHUDVCMYEQIAckEoRA3nzAQKMADfFbaEquDoBCBAgQIAAAQIEuE8glSIG8uYDBBgBborbQlVwdQIQYBzYlreO0cnuv4NNeGD42jnjgeGLcfFX96LNBYH2R0pu+0O8QbPSTyVbSHq9ok0uk0q24cQbheKtTPFmq3g7WL5hPZIAM/cDpHzPa/rLX0swvU1WTH1P/moH9/JJVvbkr8e4oQc15Xlt768YAQQIECACsWPxA9KK6SODcCK5AAAAAElFTkSuQmCC", + "tools/pbucket": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/rpXGges1xAeAAAFOElEQVR4nO2azWKjOgyFNYHsC2n3gXT2cTLd05l795227/8sF4ItS7IMtsPdRZv8wUGfdSI7JgCPeMQj/pf4tbHert1Wr+6a86aCl6Y5bKlXNWMM2+mNwGMctxO8THobMt+Ax9iqLDPwGM8bCV6sXrORFR3wVsz7zgtuUpbfXq9ph/x8/lwv/RjXq20GBDjfivW1p+n0bxw4l7m6NCLOHDivLHUg17xK4Pm9tPjqAr32AwDfbY19TNSTZAHwOe/rF+IK4BMmm1QWTW8CNvhiAHj3T0t4BTD4dI+TH/rTNS6s6o2MVUdeAOZ7sPRtbBqswvrOYAx4jB2my64jY6/phcBj1PblK15KVVwHxrpanRY+xaUYsKanAZNjzzV+9hEImkaJ8cKYBG0waEWjfDjHp9SywHUIDMSKlfZptCIRYKBWxK/CwAXVBBnwT3Y8MiOBKIuWYBQYqBWdCY7q52nAQK3o+iefqk2otwQMxIoOjyFoHlwCZsw2W3aIUpJFYPC2OLh0mKBCfKZ5B8BAu+J7MIZ1qHdYBgZqxc4+huPBgS/0hRKOuWoCwfdA8LgGDH7gDY5RfAjXgYOBou1mvwwcnS5ZHvSygQt/JgCDGPrn2AfzxfarwCA6FOX4S97vu1RgYMVkHRvHoj2NWt9vFHhxSUTGioG4zDGbJGB6pmheQYvE+W8RmFqLEe9lNhJ4XBz/Cic1gD8+QdYMyVJFBb69bvsrX3B8sUXzWRMcIsDY29ppBT9HT9WkoLVhK/SxwqZZj4Mi6N4z8iB1ySOCNaQf7Pywwgl6avOaC+VXRmjpJEHKbOa3XnTgNGRWFqvxxIDJAUYVkPGqCirAkVUKxsme3qqCmAz9VVMvMI/LazJBB4IaMNyW+rH0BjZB80F/0oFtltdQtD2dqUu8FVHQA2utAL6n38/24L4/Yb+QvcALYoJLTWv/zxj8LcmMgq6cufsJnyIPFHQTbe4eClkrckEcxNw9FMMT8YJueHOZhRW9oHuqVzkeworGCzpnHzNT5FYkgqXM3IpW8IU8z97CZMxW5NZg3fDGV0h6MCtSQTe8pVa8JcKmgHd6qYwwhPkHFXTDm7uF6cZq8M+f2aVyreiYj4HgjnySE8QrXLCWzSgx/vrTKj5qhVYkCxoh6MqSaUV32geuD7GuhVYkfuu4oGzAidFFBZ0DMq1IdgqMOL/MisYLyt+7ZVYkgjtJWGRFK/ikCbrGPRQKVlKwyIoEeR8U1ZWlUHAeM+33aY4V6QaTkYKucedYkQrugpPdvJhuRbZdXgWCwRItWXCYXtwIXzSAdCt+sjoaayAfdI5ICm6MXSDoGneqFUUZq3C4Mq0oB90E+1GZ9xiNOLzqg4V/lhXrhDb/O8eKKctzOnWnJrh8sEm3ots3WsZJtyLuKiwP+D7Vin4bZcUSrixrgvibc210Eq2IwCv7UMDXttHwwOv3It0CaLF2ycDg7XVcOMbvG6V8SROs6L7EaTdf5bZYGH7fKG22WLNilWpBF7yxh5EHDL5DRK6fCwwrVswGBiyLnkE28BQLViwA9mcpViwBhiUrIrB+MzgaJmJFv9eb+bNQ7Pm6qMuAwbcncV4pMODSjpfFAw/ZgtqKuxx4ChPmcgcw+Pn0gIprd+hWAvnc6f7/GiXAwG4J/QvfV7/JWwQMkT8YFANPEdl4LgSG2N74HX/VUm7v3gMM+v2A3A03FkpZ7vxvWpDiXcBaincBKyne/2c8fhPkXuApvqheuaVJ+Lst7dsWeqNit62e/dff7Sb0ZrGX91Ie8YhN4j9O2k4kglwzIwAAAABJRU5ErkJggg==", + "tools/pen": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/oA48NEJpmIZ13nuwgAABEpJREFUeJytmk1v00AQhqMG8nE0TRSOqVSQuNVS4U56oBxNpaq9WaIV1xqkCm5pQUjcWgkkfm6z68Qfs7OzM7P7niJXfngysx7bGwYDZd5mWbbUnoxksuFlL9LxRpUBJlS8trx0iqOiBiZTHG95yRSrHTCR4qThJVI8boFJFJuWpFLcy7K0inkPmECxytIqDvu8eMUxAEYr5hAYq1hAYKTixOFFKj53gXGKdwgwRrF33aVQREoYp3iFAiMUsRLGKI7e40C14p6Hp1b86wNqFSsvUKc49fKUis7oilXMCaBK0V9CnSKc/tGKVAlVimQJNYpFAChVDJRQrohN/yhFz+jSK4ZKKFXEpz+IBHidGsgooQjonf5aoHf6a4GeG6gemHN4kmXD6sl5YuDsKPFX3hfwWE2RCIbGtcmJhMeYhqIKDhjD5lLGC3ZlUQqBgfE1935htFjLzR8OSOCt1wRtp7mmyPFw5v9q+IILKF4QtcKvMVrxtCSABX4Opbh4IHi+BUwo+hts4r3EvIrzNcXzDwGf4uw1ySPmnkfxB80jLllckViANtRQwRSpBWgTetAHiqsyBCQHs6NILsA65L0IKtILsE5FAYHibB3mBQZ9TzG0AG1CTzBG8df2c2gB2oRulkZxWtmPoQVYJ/h8YBSnrzYfTlm8QE+y3ePQ//ufJYtHvRB3FPlhPFXK3kWehYEyxZwBFClWDKDksZfRExkw+ZN++H1TCMxTA6vEQF5PBEBeTwRApyerd58PY4A5ONPcgrbDTweE596Yg+59lc2DPVng/wwfCJ/KP9aHnV1NNhD2ZFkfdnrPBubgxO1d3LmzsoGwWGV9eKQFTuEuRSzQeVOK/crOdbKsj6ubksMTb+rj6mVTgfMWnuNcoLNztBVUX3qwJ1tB/XCAPTGvq19jxlcOBEvvAzwTCL7arXtIBgQ9MYJfcB4TCHpy2/zvCC2w3xNKkAnMe+ecE4JMYO/0OSXIA/Z7QgrygL2e0II8YK8n574fVQXAHAhSu+AsYLdil7QgC9jtyfwhsE3PAXZ7EhJkATs9MYL/KB4LmPcEp6QgC9i+pQcFZ98YvE5PQoLz3xzBtichwQ+8neB21gcEL0oWb/DIE2SVz6bpyRklyCufza4nZq/cK7jib6Q3PTkhBL+XbF7TE0Jw9oaPa3uyERzigou1hLfriRE8RnmfwptwvRStIPrjHXu1bDOkBeei8pmMScGF8GeXwa4nHsELYflMDghBaflsCq/g/I+GN/QKMmcVzNgnyJ1VMLYn+44gf1bB2E1NR1Awq2AKTFBZPhPbkzUQ1JbPxPTkZV9QXz6Tx1owT1I+k7tasOUJRj2awgq2+9eSUY9laAWbu4ps1GMZ9wQXceUzueoKrhSzCuauIxi1WnYpGkH5qMcybAQVox7LeCeoGfVYrta1YJLymdxbQd2oR3NkBCNmFZJJ1KxCcpisfHWG8RdbN0/hzp+bdxqC2QAAAABJRU5ErkJggg==", + "tools/pencil": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAKlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKE86IAAAADnRSTlMA/3/eIF+gtwhJ9ZJtJCsX53kAAAK7SURBVHic7do/cuIwFAbwNwQy26QwVAwNOoKb9HsEZvYCuQHVFnuDnCFVOvq9AN22HCCHSZCC/SQwen++7eQKe6RvfjbfMCNkItsx2xonTh1hic2bdd0WGhi6Dkr8AmKJ4RwIJEYgkhhSIIz4DcQRwyUQRByAKGIYAyFEBsQQAw8EEDMgghjyQDfxAlwGEHHImWGILAZDZCkQYhaCIGYZAGIR4ScWCW5iGeD+XSxv0fu7OAm0EieBRuIdoI14B2gi3gVaiHeBBmIFqCdWgGpiFaglVoFKogCoIwqAKqIIqCGKgAqiECgnCoFiohgoJYqBQqICKCMqgCKiCighqoACohJYD1QCq7fcgA3YgA3YgA3YgA3YgA3YgA3YgA34H4HzYqAbuChGeoH0mA91A+khH+sG0s9ssB9Iu2y0H0gvfDgASD0fDwDGGq5qQQpgrOGmdqtyYKrhuvpliIGphodqXcTAVMN9vS9SYKrhsd5oKTDV8EQCovCP2/5r6Or8oUqUAWMNN/Gj9w/HdMQarklAlAFTDQ9UJ0r/nY813FOdKASmGh6pShRvH+zOo09UJUqBsYar4cy7eUCphpvhzL29kWq4Hs+9GzCphofx3L1FFGu4Zxe8m1ixhkd2wbvNFmt44lecG4G7jrdmgqgAxhpu8ku+zdS+y1pzk6gBxhoeioueDelF2ZobRA0w1fBYXnVs6j9cteaKqAKmGl5Psb8Ysbs9x/7qxsvEJPPLJf3ELOvrL/OJaa9/jcDFzXlP/96NwHGJwib+eOutXzFboowzP/6YO0h8ifI9dXh4NiBbosS57OHZgHyJss0enhHIlyjL7OEZgfMygh/Pv/TABTaOr5QhcXylDInLVsqIuGyljIjLV8qAuHylDIgrauiOy2sIiOM1hMSNNQTFXWoIi0s1BMadawiNI/qNjaNPEJxncF9fFcAAAAAASUVORK5CYII=", + "tools/plasso": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/nlSKa8K447NfNmrqQAABj5JREFUeJztWktvGzcQ3krrtXqkU0XWTW6bPm4WEMfObe1CiH2rkjTpUYlRNL1VcGLkKCNFcq2LIOjP7fI9Q3KWKy7RU+YkcZfffvPgcPgois/yWf5fKZ9lBjz+Ki/egt3JijdgbD8nXnnL2DgjXnXAGJtmBLxgXPLhvRJ4rM6FN1xLwMPom4OnXfCqpcRjs+irB+y7DoDHCo9tYm82sTWJq7HQeOznOMEmuOrIS9qAjfwZJ9jI3qr1pXJp8NjdDgQbuerykpBIdhjo99pcfQHwYtnBfpt29Uv9yhW35F43gi2u5ilByHjFTdmebqBxCFdXN/aLHLA13QCCpKtNRD+T3590JUi4+jf4cM5/BD8rZcgc8V1tInqf45zyXzUNONe6GrVcV5uIli77gv+kx6khOIOGR2K+9F783RVvRwneAZphV5uUoKy7w3+T2cEQ5KxehVxtgmBfNY74n787ECzA8LKuNhE90bQFByrdIIIFCCHt6sq0vDef4P+o7KAJvtYva4dqVxvOH02fympEEjTqWMdIVxuragNyWdOALsECDAruagM/rUEvrkU4O/gECxB1eyszyeGw463h7BAgCBILuzLYH1E3shjRBKcr1GwCxYiTTgWPNoKfnPaBg4cMWNDZQRMcr9wnCww4cx5T2UETDBTMxxDPS2dEdqAJghrGN2ChssOGJBjMG7ZICEwyo2A3TZCYv/QQCU2D4eygCfrUpVwQBixUdvCKEW2lGQEo00ywOBHZwUs3esySNQBPPMQszQ3sZYd4MTpcU3XEMkgkSrFYULUTB/Szwxb1sitEdohTpIRHSKAYSacossM/dT6KIjuw6bfeg1SKu6qfR3InkaLu55NMpDhiRhySiRRhBeiQTKNYMiiIZBrFCgFikmkUz9cYEpBMteISIwKSiY6ufnQQ+1J01QbpUVceW1J01L627aNUikjtDWhPpgjVrkFrOkWrNs7fPShqtfGU1YeiGobXuLEPxYHnk54Udz2f9KR46vukH8Ub3yf9KIpI9BdqyRRLikcqxVHQJ4Wt/LeluBv0SQ/A07BP7Lp2tiXgTdgnyQSlkwMsUgnKGXqVj+CI8EmM4EO/0JIinOxvF8QIlsFqkMucd/N3SGIEH3G9gluLy2C3GMHqVjx+svKfrIM+wQR/+uHrGj/XU/f4gdtTONlb3CGCYo5w1jt2P9AluRP0CSSo9n2Q8rAafIOXQi9CPkEEjwG4lkcAkE3+gn2Fk93lFiRoNm3AcJeGt/IW2IM7eeKYARIsTV+wrNlhjliSVcgnkODc9rJ63LiANsqHAZ9AgtD6ZgdANo5x8abqy9DWJEHQfldkUPbJrVkfc8u9wLq0ETReUWZtdKyOECKPcs7A8QkkeKq+LTrqlPQHgD9DajdRzkljnwRc/FQGg66ZpaIbRfcDJolsgwhO3q1UeFxpqvCLZrfNUZsL8gnYNZu+E+EhdhK/5L8kxlw8BNuBL28dQOQT5xRAdxV5vQYugZ3K71EHvLA/Wzp4cqtzYECkS5yxcLQGPZwc6tpEBuzQAMoPuvuLl4CHl7susePYm/uqADrUuuMdWsnDricCW3HnjpnfPjCAc9EQKjTMSAxtFZX3HEv+q95Uy+JNoI8eicTJDzSKlkbP38UP4vhJmp+c1048wEO9r/Oa6CNGInkC6Z0jscmTc9pKUpqRSB6reGnZSGu5c1RTT0SN8ss6ABg9+A2LyAer4QcPz52CusqcyYx1dusApl7i4KlGDFk3KGeJgEtr/svnAC/5ygXX1AyxE+uc67ZObbKGgEVpBn+dB7Cp6ZbxIIwCojxaiTSaGISFtKGz79sMrNQgLFRqrp3Gs07XPcJy0GOUBYVcA6aKSA7+5JEucsp3p7ceIuvenHebZBGR8caZqGe8I8EeoqqYyA2ZbUSVm3DR0E/M0fDj+5kQ7YJp8us3dQZAeIOo4ZkBEpxBcEhqV2ALQZeI2u8bdZSHGDFDmOOCNse1RbSka73201VKeGiwyoFYXN4zLLPgNVKePM+nspJF7vRInPimi8jgOe/jiu2RjNOqvC4SvzLZWcR+UI9CxBWZdzL6ZC4Ak4tNX+RQmWXDk4vGjCaU81XG0kkWOuRltlTAOh/gMHdmGGYOGruJsY38B2/oVAe2mIrvAAAAAElFTkSuQmCC", + "tools/pselect": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/qtn3PIGJDkTU78rPAAABQNJREFUeJztmktv1DAQx6ukbHaP026g3JIiXjeiggS3BhCPGwEEHJeKD8BKcOC2RSA48ur3JS/bsT1jJ945gFQfILsb/+LM/GfGmXRn53ycj39k3OIG7nED4Ro3cG/FDISb3MDle2YgPOYGphtmILzhBqac6m6AsM8NBMYlAvcSOyBk3EC+AOyBfDlCAPd+MAPZAlACuXKEBMITbiBTjlBAeMEN5AnAIZAlAIF7iRqQo0hrQI4A1IEMOUIHMhRpA7h9ABrA7XOECVxumIGuIi1OmQZ0FOkwoCMAA4F0AIYCySWGAskiHQykAjAYSOWIcCBRpEng4ooHCE+nAb+kP6yT9IHnCAoYD/2IA/EcQQAX+TC8CCBapAngF4Dr9knmwIo0Dowr2F/5gVgA4sBCT3kkEAlAFHhi1A0SiOeI2IzLpDQCiwaiRTqGZ/oXX80r00A0ABO4pF+gMreBDiCaIyrdtoUVpg4gWqRzDRjb9+ECLpEckWumzW0xuIBYABbLwYcI0YITiOSIAlbDBdoB5QQiRXoN6iIRFvJuoF2k3w5uMsds4gbaNt9VwAhNmx6gZfRIxV6BZk0f0FxiDMfyCM3rPqCZDGK4KBf4GuH5gUYAJnDQHcwr/NHLCzRiayaM8IfY+PmBRvSXfezlxKbKDzSKdB/MEbWnGgHUnVmk3X/UlmoEUJdbAY0Jksq3o3INzZ2nsGnvGNXMSKDmz5+tMwpynzsKOJy92xhvUZHPmeOAA4+2wRzBo+2AgyVGTSFdt4bcBqjuMG4KaU4/WY8EqgCc1/c/J308Hihlt6iBEaXqCUBVpGsHDwtLMFDmiHy5UziaE6OBMgBzWJWXOIAiRxTwXZaBrYBdAIoPHMA2RzAB04eHh0dHHMCXDejup5V1/lTgy/uHV47ufrP3c6HAzHf+VOArbmB4m4AALn3nTwV6S8ZkYMYNPOABvsjFEZWgpgHTTSGPiZcN04CP66orBuGVScA648XyAyHtScCbzZZAfKCbdPVObkQLD/rCJr1CSrsB5qMKfVt61z4jNqV+/yPRKtKAYmcqRkZNmcNeTHe8wViR8gol7brUL2vLUE15OV+YudRXjI0SVifenqA0WSG/Id+j1S5JSl9PUD74nvm90jxRfKSW2E9W22jlFTJrN08ASUU05fvJ6sfEsqo1ThsFfCCa8r2KB7spv7TXzVaktiJ6xW7usKGivEIZ8QJcrv/9hfdhOoWsBt+ohJMRwKjV6CxHb7qdqSlASZvatPXPeXGFedqWsEo4lLTj/pcP2PtPxFbSKykhbQGsb9o2IyKPtc8rCXRPpDvz0m7EINOUtKnHpUps2k9qcRnTkfat8gol7VIu4nNtaf2JAOs2yYRDSXvQHrhjEtEOnFyifbH+hEwcLnKDiDVzVMLJ7B874LE8TgwiFj3KK4S017IbJIgb+RGTmko4hLTfalea60Rs+KS9q/s/uVr7754L6Es4ZtNmUfs6veEAvvNIOzZtMbvt2hn4pR3bsz873/D7Es4chq3dbvx2vveVXsGlPSMlTw2VcDL093LqHxz4pJ1P/RMi5RXMiOK3CcCZTDjpigXolnYIUCWcYx6g8srYl12eMXd5JQTolHYQUHkl4wGqhGNLOwjoknYQUCUcW9pBwIFXyPdY04CnYtrzDQ9QSPtBQDMIHZ1X0NITBmwTDl4cw4CNtG3zbTPOMPNtMyJX5T4f/8v4C9sfTIwhx+h6AAAAAElFTkSuQmCC", + "tools/pshape": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP+AO4HZ8U7G5SiAHBLPQAAA6lJREFUeJzt2r9u4kAQBvAVAoeUvuSSuy4REn2uSrl+g7iixXmCo0gP4gWONz4HjMe7s7N/ZiZdvhp+ivR9gt1gU+fl9Zj5QpP3sse3xU4VfDdmrQnemz6NHni3/wSXL2rghzlnowU+PF3AWacEWjNkrgO+mjEZY0yDj28AZowxDb6bSdJjTIL3xklyjCnwMkFIcowp8MN4SY0xAV4nCEmNMQFa30uOMQ6+Yi81xig4nWDuGKPge8hLjDEG3oe9+BgjoD9BSGyMERBNEBIZIw3iCUIiY6RBS3uxMZJgcIIQcowUGJ4ghBwjBRIThFBjJEByghBijGGQniCEGGMYjEwQEh5jEIxNEBIeYxC0OR4xxhCYmCAkNMYAmJogJDTGAJicICQwRgxmTBCCx4jAnAlC8BgRmDVBCBqjD+ZNEILG6IO2zMNj9MDsCUKOMTB/ghBvjC5YMEHImgaLJghpKLBsghBnjFOwcIKQTRgsnSBkOsYJaLmeM0YAGROEHDHImSAExjiCrAlC1j7InCCkcUHuBCHXMRrhBCGbKcifIGQYo5FOEDIHUDRByPEKyiYIOY/RyCcIWV9A8QQhzSconyCkH6PRmCBkUxuNCUJmnbGaXj9GozSZaxb6f+EfXXBlfumCB/OoC3amVm1l0Q/baoLzHlRtZdWDqq0celC1ld3nx5diK4vz5+FWD6zO4A898PlLPrE1W9ldvqT+aXm3w7feVgusBvCnFtgOoForzQDePel4s5fr2UapldvxsLTVAasRVGqlHUGlVpoR1Gnl3Mlwgt1rgMvJkfivBlhNQJVW2gmo0kozATVauXRyvfjs5eDSuUkptHLjgAqttA74IAc7B6yfpN6sdkErBeceKG7lxgN/S8GTB4pb6TxQemRa1D5oZeAcgcKD7AqBwlZOCBS20iFQ1srYyQS0EnAeAEWtrAKg6HpxCICig2wXACWtQCdf+S9TSSurICho5RAEBa3sgiC/lUknDrjlghUBsi99zwTIPjI1BMhuZUeA3OvFbU2BWx5YkSDzyNSSoPZPSMyD7HB0DYG8VpxOPHDLAasIyGqljYCsVpoIyGnF7cT/sXVfDi7rGMg4yFZRkNFKGwUZrTRRsLwVrxP0k/q+FPQ6QWBxKzcJsLiVNgEWH2RTjyWUXvpm/vsRaMtA9MwNAgtb8TvBYOH14pQEC1tBzy3h522KjkwL9HYM2hIQPweFwaKD7CoDLGrllAEWtYKfJUs/7VyYb/AbZOQ/D7t8kpmFSS8AAAAASUVORK5CYII=", + "tools/qselect": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/wvwy54pPXlb5S+ZHgAABFJJREFUeJztmrtzEzEQxj0mcXCpscOjM5PQ43HCo7MhA5RoDEzowpD0GApSOg0ZOjwh/y++s30P6VutdnVFCn8FQ+7xs7TaXa2ka7XStDc9+puIqOvKmP5Zg7xds9TLBoGzDGjeNQec5MDevCle16zUmBkP1sDGzGg3QPO2EV6n4JleI964UwLN/qAB4KICNC/See1hFWjmycDdGq8B3/lWB5pXqUDrAM2HNF7X5aV2escDJnb6ygcmdbozBMD+QA/cBTxjxnrgDAIf6oETCNxX8+5DnumpgQcYaNRA23AL94gGqm0IwiTXYy1wQQDHSp6TWwupIwWHiTGvlTwvt6Y2kAgTfbLxc2sufdwRYaLPhhbyHql5MLemTMzYaRImlBni9b7rgdBpEmobmFt7Z/6Dl9k/mwey/19jIHQaP+j2psYFmmNoFwt4ftB1JsYHwuIC5lbfp61BQBRNKLf6j50bDATVOCpB5l43hhTQcy+UW/3E/9NQQM+/gNP4S4D1r0Jgb1B/FsSd79M7JaSq1dVx/aKfC4FPL/Ibx+7laX7ZyUq+DX2fXj3j+1xngvpsHR6YSFZ2Bvl2Za/55ncvP2ZO5EYeeC83IZwQbGnE9u2yvf2WZ0T03gzYvvJTeRHZnRbNqfd5Dl67wkPVWif7bFQuhmV7arEH87SlelzcuigASx9uVxKsMk+fl4TMiQ/LP5+reE9NvUntwoq6tVN3WDVa1qYi/FTFUac+J+VWu6FdhteNqSuz4rrTqtrDyy55supkbqmqPdr+JJx3tH37ZqTaCTn3eBF7XdlDxK0O4BnzWQ/EtW+PIdJAonDj2kgDieKcsyMJBENc6P1AAaQWYLmOz+RAGwIGAo8CEquHjfpiID0kuei1MQUMDIkKyPQ4sB1A3KS2FdRAywEHMiC1yFa3kNiZ0QPvcTzplsqiaSDjhaFIgcK5uirhJMqPiRAYTF25hLPoVxYo3JZCC6a6HsiA7CCbZ+S72V33WpvlBTbOEJDNXaFSCQGp7bKK6NIGAXmvobMXBD5heYHIQ8AFCwz4NQJaFhhwQwTk3XAsAka44VwEpPapS7mrXgaYlrwAkHfD0EEHALIzVHALHABnLDC0DAVANhsGZygAtBxQmF1bQw4oXOaxc2jIC5HY9Co9HWPTq3Rhy7mhsArh3VC8d2HDPPnmCpMNuZohe6Z2gUle7EcNHpAZZPYYwQOGFxS8BT1gODXw34V4wOCYRNSZLjAYeP0Il3GBIRP2YzZrXKBN5LnAQI/xeQgHpHsc2rgIAKkxPvodh3OBRJj0v0Q2zwPCITm6jsc5wENAO/0hoDnADrCgjOYA/41Gw2X8j0YnJ59O//waqIBbbXUXlEVv+IBGqIgjJJlmWXyN0Z3ykEukqGM4iSIPCuMlO8qM0SJvSdxha5Qkx8FRkhxYx0lwpB4nwaF/pASfJUTKYqD+MyTi046Ej2jiPz6JVuznMVttdef1H+UXTUp3lXy7AAAAAElFTkSuQmCC", + "tools/rect": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlP/AAaP9yvWlf28D3KXXQAAAI5JREFUeJzt2qENAgEAQ9EmXAjIw6BRWAz+FAucQSJYACbA4BmZsAJUkfcG+Au0GcsiKCgoKCgo+ENwvqbkdPwE949WL1ndx2xevV6y3mXb7CW3nLvBZw7d4CKXbnCZqRscujkAAAAAAAAA/tbUzQ39Sb0++tdvCfXjRP3aUT+f9O8x/QOPoKCgoKCg4HfePOIKnncZ9gYAAAAASUVORK5CYII=", + "tools/rselect": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAFVBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAASAQCkAAAAB3RSTlMA/yLwES08nmbEeAAAAHhJREFUeJzt2rENgCAQQFFWcAUn0B1cwA3cfwoJDYlamStOea+98NsjhFIAaKa7pU/3+/To0/XhsKDg22AJIigoKCg4dnCrooKRLQD4gLkKbeW/OQgKCgoKCo4TDF/0AJBW+Ctx/kUvKCgoKDh08CLhjyDBvwcBaE6NenWJCmvruAAAAABJRU5ErkJggg==", + "tools/ruler": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAAsSURBVHicY2AYBaNgFIwY8B8LGBUcFRw8ggwYCkYFKRQcRVRDo2AUjIIRAwAZE3u9DtJG3wAAAABJRU5ErkJggg==", + "tools/sharpen": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA//GYCstmMUUYT9HGbgAAA8NJREFUeJyt2EtOHDEQgOFWnARYGkT2SBGwBIlNdpFv4FXEDucEcIPkBpATZ8rd7vaj/Khy1WJgJM/PdH/jadTLMjZnr4MLR0c9CAfNd+Gg+yYctNeyvTOtZVWU1rIqRmtZFae1rIrVWlTlZCKroiAoqWIgKKniICipYiEoqOJNJFXUGpRTMWtQTsWtQTkVuwbFVDYTORUVglIqJgSlVFwISqnYEBRS2U2kVNQRlFExR1BGZTW5kVNZTR7FVDaTDzGVzUSJqWwm52Iq2z5ZxFS2fbJIqYR9skiphH2ySKmEfbJIqYTvru1kzqvYPehEVPbvrkVIRR1BGRVzBGVU3BGUUbFRUELluJ6cnvwTUFFxUELFxEEJFRcHJVRsEpxXia7x8NRMq6g0OK9i0uDZtIpLg/MqNgvOqkQma3BWReXBWRWTB2dVXB6cVbFFcE4lNtmCcyqqDM6pmDI4p+LK4JyKRYJ/J1QSkxD8NKGisOCMisGCFxMqDguu/8jyVCwa5KukJnuQr6LwIF/F4EG+isODfBVbCXJVMpMjyFVRtSBXxdSCXBVXC3JVbDXIU8lNouAXlkpuEgW/slRykyh4ccNRyU2iIE8lN4mDHJXCJA5yVAqTOMhRKUzi4GeGSmESBzkqhUkSfCOrlCZJkK5SmiRBukppkgTpKqVJEqSrlCZpkKqCmKRBqgpikgapKohJGqSqICZpkKqCmGRBmgpmkgVpKphJFqSpYCZZcCGpYCZ5kKSCmeTBD4IKapIHFUEFNcmD5wQV1CQPUlRQkyJIUEFNiuC4Cm5SBMdVcJPipeMquIm+zdcNq+AmWj9l64ZVcJMTwHu6blSlYnKa+3ThqErFBOYlWTiqUjGBufqZrPTnpq9SM4H5Va7sq9hG8PJPvNLfeO+q1E38QcdLx1QaJjA/oqVjKg0Tf9DxG/Jnp6fSMoG5zdf2VGwnGB/iiErbxAeOHTii0jGBOXbgiErHxM9Len7aKj0TmGMHDqjYgaB+To6nqdI3gdl3YF9lwMQfdPL3WyojJjDhcmDhSUtlxATm+jVa31Kxg8HwYeypjJn4eYjOeV1l0MS/rffjHdRVRk1g7o5zVFcZNYG5fNlfUVexhOC6A/3NxKoKwQTmuatCMIGBHbjeTKypUExg4Nw9wi81FYqJn6fttlVNxVKDpw9jS4VoAnPfVCGa+HloqVBNYK7eH+EHrkI2gblrqFhO8PI3PKIqDBNf9I+YCsdkH0yFY7IPpsIyCYOp2JkgosI0CVOqTJlgKlMmmMqUCaZi54K7yn+5QWE9MWT65gAAAABJRU5ErkJggg==", + "tools/shbrush": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/t8Sg8BxMFAcKotE6AAABUFJREFUeJyt2suP00YYAHBDkk1ynLBpy40A28cNVhuJI+Gh9oi7XRC3tAhVvRVUek4QSOUGqCDx3xJ73jPfyx7PZWVn9vPP87DHn11VULlzTyl18gz8LS5fBHWq6n+ly32+6n+SeGcmnlrs2LoPBPFmKxtQfcNWvhAE3Chf7nKVF3y8dRBPHTOVp+pvLt6oDgNyxLHadgKyxIl61A3IEW+ra92AHHGvvhUCFzJizbWJAS7/quZvJcTDkSXAZTsWPvHE2eFnctwY4FZvvWaJE6ZJDPCHeJP4lxeHX6+wwMV7uz3miDV9Akb0k9+zoYnT9vi3xECWOKFbJAdyxH3741U5kCGO9IVz2QFIEycqGmUSIE20V+LvOgAp4tjOdniywECK6G8VEBED4sRPypetHIgSg3vjoaOz/8OBCHFaq7Acp9MFB8LEWRxPqe/jiBQQIn5eqbQcR11NAXPi/HkWrvnvn6XAhDh6k56uLSd/yoARcY6Ga0P+8l4CDImigBwwacV/7zGnzAPTjv4n7+SwUyYsMOvo6SaLFwybDQ/MxuLojyReMLBnAqC+YQbEahQbw6l32u5h1jxT22qWWM3rIF50cdCH2tEBXzqK2zUOAm6DqnN9CCEwnNF7ty+6wOoDobfCBBgSZ3bXIrouXE6OywAhYnwH0HvpPg6AUCtuo8obvgkNcLlPiTXU/qv4qATwfJoSX7TbyZRQbEALvGVHtyOOgTPWAclnOgs0y7dwujSHShfZrNB2ceNKiRsAA7UrBGwPmhI/HDZuQAEVvgr1YxAgQot2aChBQJAIPVZoQOoGgCBxlbdWTfeKAa4Q4iYfIGb470jg8g5CBB4e9fXVPezAwHN93Jx4KX+8NTMcvgX4STKDiZP8OmWW8vBNygBvVBVCPALaao8TbRc3DQ8Tp8CF70ihRDcGtyjxOnBev2NEPwZxIpQIQonBhRolgqkqhBhOEpQIJtMQogE+rSkinO4DiW4MrulWFBPdJBmRRLgARD9JqmGIL/0xBiG6Lm6OMQTRjcGBiMEYHIYYTJJBiLaLVwQxW+lQRDsGP+JEm8cSEd0YnONEl7mUEP1qBiX61KqAaLv4cAtHiQ99r/FE28VNHIwYFJ5ox2ATByU2JViXkURXGOLyTEh0hSGec/nFiOjioMTDlY1NgXqiXs0gxFMDZFOgAdGsZkCi/ttceuVEu5oBiWsHlBPdagYgPvNAObGpgBEXAVBOvEsQA+AwxBA4FNEBhyKeB/9QRpynwFLiOgOWEYNJMgwRAhYRIWAREQSWEEFgKTEHlhEBYBkRAjritgsRHIMJEc8aAkR4DMZEPBuSE0mgI+7kxFck0OYa8PfXGRHvYl0+tBWIRGRKZIBGQCS9ICIBFOT5ACIBNPWppFdOJIH6QYNMbQbEUx5YXWoHA1XDE5kxqMtlVuiJ9CSRB7TE+xJgdZvrZU9cSIC64+AXrxlRAtSXByZlH666OaBeAnDfohzJgfrF0Zap5YkcUDch8UlBQmSBc3Yqx0TuFZO5haG53JzIvAQzC8cdH1BI1F3CvDjqQqylZywkSl42diJqIJJq7kE0QPajMjGxG5AndgTyxK5AjtgZyBG7A2liDyBN7AOkiL2AFLEfECf2BOLEvkCM2BuIEfsDYWIBECaWACFiEdATPagM6IlWtC4DeqJ5djDJ3/5Av9J5EmwVAIPFWPOxztu0RUuI6uTBr6ocCCSSC4FAIrkMmBNLgSmxGJgSy4ExUbjcoktIZFfyouITBj8OEs9/bXmTfYYQFvO95eOh4jXfDF5c/PYO/u0rQa7h7oqGVTEAAAAASUVORK5CYII=", + "tools/smudge": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/n43xwcW5PnxkxoCQwAABxRJREFUeJzNms1z20QUwDWSJYbjOh5s32TF/brFTmmbm+O6LdxSh5kMN8WUALc6pDAc40wLxzpA/172U9p9u6vVymLSd4kkSz/tvq99b6MgaCSLtNlzNglR76BV4BlqmThCCHVbJCZbDESbvDVgiFC7xGcMiG5PWgIecyC6bIcYIdQusYNaJo5Qu8R4LQPRfGdiiFTZeYy/ACC63TFmRhC4Y1xH1xpwt5iBKtxZjxMTED1vDjw2ApsTjTPGMrjfEHhmAaL+vWZA3WmENHMelqzN0mhRsKmQShN3fFYFbOKOdhVS8XaeqJqH0L4nsOMCDjyBjhlj8eOBZL07sNJpmgC1ZL0r0K3CnhfPlKyB7HkBa6gw9QJOnLxB7gW0JGtJul68GjP+5AW0JuumKnQ7Td8rfVUl6/9LhTMv4M9uoN+i0nrcuQd44wV0Juv2nWaY+/DiO4i7d17AO4g7P6dJ7iBZz7yAEzfQL+7adpoaceeXrL9zA1MvYNvJukaR1HrcvfAC1iiSPvtk7Rd3rSfriZP32RRJw3k2XpuADYukOfGNZLyzCrnTDESXNNV4vUZFUtmyP4bARsma9IU/ZFmW49CGjj7zArKOtnsSxFR7vXt6bDeIu+FBED9gT/dTGItNkvVzSXO9HAwROk1WOeIOZyxLwEuQIFP1Cce2OZ3diyCSwqWfK9EIk/WIKdoitEjCfnakWlXOF0CFVB1D675QyOYYbVUryEqcGaZk3yw4Y1NUd0P6J3JpoiqseLVlL5W87wYMkJihVClM1itx72VuAh7Tx39SeXiWpSdqlfVyzX/ZGIyd0CFo5et7CZhqDy3F7QZjE+V/0pfRvdJvTJV1KIh9zdghHcIEArvlJWPcFV47gMbuECfUC/ZucC4OzSt8VKgEGPtL6HQa0BJl0UNxg2rsc2KALyqA1hU+eSRuViJ7QlxEU6GkQ3s7ljwQd8umwc+9rQSmViBPyEQk0+DnPhqBXOnV7Vi5QF6KaWNVfRW81oB7AuhI1uVy1uODfE0e1o3yXsSyqyyclknk8gm5YHGbWcxvdC5PRarA8lfAHNsATKNaMyayXJePBSz08nirAfk7PriBZWBTIBlJqlWwg5wvAWkNoBQ0+ITo6p22IdLjgVKzlyhcnJyMTFYRbmhR4Sm8IFycHE/IOGCf8i/3mpl5QMdz7RpzH3LUoZoCO/bcyAOz0zzFOUu7uFpzIJntHpzzQVgx45AMRl/ySM6lB8d0GVXs3OWdkHHXgtd6OjEZX9O/WIl4oQ/lLQIRyakJ+IbfZFiW40DMGddKT2UVMiOZc+tK3GX7XwhdUF4GSTnpYc5UaCn9H7uIZA79A6n8Eio0zlgm3ubG3yMyP1wRC+KQh6K9X3QRaSWHS9hoTCzzz31e1P5mBZZEUzEi6inSBZxOs/2TgBmoX5UKi9xvrmUfq36wpDb+tYJXFPiWWpZb+JauhvGU+UxeBZSIQ76YJFPc5GRfs5Nwy368wpe+YYeuf1yWRDQ/vDgsms45Q75BQConzIimJrMcMfh1UyezWojsn3/SDJDNGzTRmkyFKL3PXDwbZLo1Agcp/XXFzdHz+O8iTau6cBeJp9liMd+vOzwqES/q+vPs8PBQuAhONkDq97PxdPH7gsYXO2ND7oNRrfw26WXhHYI6xHDt1yErwpJWD17a4WMO1ien0hVSWfjt7qlCM8MNuFA152leDQzhnEdwyKpE240jc1AtSkr7HlUO8ahMWVTiH+EddEmagSEjW8vO8vslzVI4B47/wPyr7Il8SwhGxLaayG6LZYBEyL7bK6k6mEtTpMu6pkTb1sdDZJZeCgDSOa9LzJ9yRDWIZ0CJItGZP+UomzxILAZAlSjvwMWPqoi25I82xR1boMQg4fOyfN+34kVGf0FWum8LYuGfuiuLusRSENE1c1/4ykqsH4Wr0C5ALS8dRCDTNbtbDAp6Ir3mRVwyojAEq46Al4RrLyIztLiXKvFv81trEo+UOU/IyTAF9yy3HkT21cWMn4XAM7msfIgjWYnJ2kK8NhHjC7xkXsCXdBTL8lZKjnALcTp+xcY9uJorm7HUskV4iFZKqx81otIiDeWsRf0sF2diy1T7ok1s5Asi6K2lEajxVnQVLuIEAWIxxnMFWBK1/VpRtbEm4hwASUfChFpF6pZqEjt/0hSTZcUCIL4u0wK42MKrJMbF1dNsy5TEJ03NrGxFFdndSgQZd8nKN1GQ0ykqNYd7jBv1MlsOerIDqP2ImwguJ7KvsM0VNcvbiWMjkFnig3QMW0q7rcdGoFxaib1ctYlwEDUg8T6xYSTCredB1IB0nsJxtvxRNVcXRFjLk+5IAyaSVYTpYOfJ16eullYxUQMGa1QmataQ6XXWci2/ViHq18jbP8qTGBjqUbKa1O0ExvOiTWZE45ejq+3AMEAs/wGzfPhC9BE2hAAAAABJRU5ErkJggg==", + "tools/sponge": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/qlh7TQU2AYilPfvrgAABvRJREFUeJztWs1z00YUFxg79lG2ErU3WQokvdkWIXCL3YSkNwfHpb2ZGNzhhh0K5WZwZ7im04YZ/ttq337o7ZdkOXSmB/0OxF7v/vS+d98KxylRokSJEiVK/J/xd2/v2DsNDybfhK0W77oMfrS8Pd+o7SIMHt+SrrrryvB+uBXfdO5quH8Lvmc6XYLoG/NtLqONz3U3s+Mn5NsoHt+Meqm/H2zAVxX+WDzhYyPuc69TnJCL4x+gwUv+kOawKB9fenVtlNptLYvx8aVyiLxEjrkqRnhhDBApCws5pto3BlwfExZyDBXwR3VYjkZ/fcfUwILNiTrOfdIr6upPFpW6TDTneUFGMP7vlge57omgbq5XHisgxmQaRooE9Ta3XZU53FurUHwmU989M6hdSXj8x+KhBOvUcKKPP3WRY2q9kGZgfRTTEW5GEvy/5PDVyKynzEoBjLT11Kh30wBaxNcGHoG7ZE6HhUiLjFyk3CmqUt4skgr3BYSvzV7fjEfxeCJmviCq1tjEJhFmnnIjVOauhmOUTAvuUqLLHw1EWOHhp2DVdzPBM4NM6/CsaKWEHrdx7+1pBHNXBhkxaO5WqDBdOhakhE3mjYfwZanbUUfAfdLiLD5I0hbCOqL0vmPSZitNHruVfPg++XtItHyMOFiQt9HcBNO9LMb9ZMZfyd8jMnUUhjwLCDlLMpEiIommvbldRObkQHXoNObpcFeyDzPrqBe+NTN2qEoaYYotPvUIjxLHj8dxgoNxgoeCcDuXUEj4Bg0+x1Z18Obj07KcQShsGGhjYttquCk6ENcZhDWWHh6qB+epB+SHgiI5hHyHxZnNNeTJywrBMTWiah8V9Azg49LLc1qM0SfE9MHk350MQmdFyvYjPKIRfqJUbbCDqo+O2khpMFSVkzDqu4Mh2NZ3JPOuh67ilASNnx0aYpTQzd1wa3EYL/kX5tV36qRKShjgteNfdT6i5WDCvx6CgBN1FiJERiStxUA9RdDYEWeBem/uRfpGVU0JU50r4ELl0NGgfvU0meyEJ3ywq3wH8IQOsgmRyuLMwLPIl4TZKk7IrSiKi2TFe2wwK6McKWxcXqHvuCZh1lT5BSf0ItKQQL/00UhYdddySpcTfqBxRtpts8rMVScaRWXvOBQBAZXOc2jMgDMG8YQ7RREGNmQ9kkEOUblBGEIIZw6W8ANO+J4cW7zTMKLnuUYvjHSFf5Os0+WE4GDc5MjwQusZs4sDhPYmgrBiJSTW1YVzUrVY1aHpKQj53mFG81EGYQsJmBLKfZiut/G0TlXehs9sb04Ju5mEyRGZqz3dW3B2GmQQYWQX8PYoIbXBeQ4hqfHC2HxLJmLBYRy2sgeJminhHby4eTDSbUrbHtq7MHHrMW0XaECSkxcENvx6D6/t8BiTQG6FqmICBhgwICRA2FEJmza3R0uWm4HEB1uCe03qHBCekcGPaN221e2DZzph/VBIwQhbqlOOdLdfzehp2NNUbuymUiRSQT0cKusDze2kAqAZaEtecU3e0DVAeKKY7I1GuONI2bnP6Wo9sS6gZgLCZEe5VJfLKgeSVb3oyRLoYmRoYoU5tWESV6HkU9SgYUL8CG8RhnJD0AEdPOWmgmGIandK+MI4FxF+thK2JkrTFKiRZSRsWwldXwlr0hpBS2NHAF6zEapo6pGpTXnVLkBIdMaRNQhNmZlPGIlL7eT4lF47kJK1MlfkbMIrdNfgoSCBDdW8C3lZpd+3rQMXmU3qScO+fC9ONwvDE2mtMYroO3+mXxJNpKtius6wY8uttEJYkedhgekmclddI8675wbCplPvp59lPdgthkEzRmh4FCERMqn7Myt6VX1Vx07YQsPbisnshIFVdkIiEmBHmeVblz21E36H/LCjCjSxLVMP5IrwfAVVGd0NU1NtGZYNrb90kB/Yc+eKZl3DshPrL0Mkuq8SwmG3YSor0NZUDb94Ush3FJXhTHRh4INzTk1KlOYBfG1K1n2qRol3f2a97FrM8Td/SF3B/MCsAVXJ5Lp8/MT05L0We1vxwWLpfPAyII4obJ+/v7S/mcoC33JQe3O4ERFHixHia4jsq8ZUlthUBc8YoXRfM1VfY5rgDVnPLyNgwaccbKfWa0GBltlthDAprMZ2dTb7+vXrl9lsRj6/vhnF0kPOzIFFCCt5F0pY8r6y0kT4MrdBR1jtopV1nXAHTJjXoGPUe8j6hhYGWql1NaagEX9kJnSj0VzzcR4uuZdrOh8XszgjevmgYT+XwcQYOM4/FgGXhQmdy35yrDO9VxH+Koppn7dSGoq5WMD6SqXAi04ZFcvBdfP/YWF8peJt8hZfYKW9UvHNlybrQ3mlstjUfgj1pKztvT/ue6eL6LbilShRokSJEiX+K/wLfxvT0jUZkVsAAAAASUVORK5CYII=", + "tools/transform": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAABVSURBVHic7dbLCQAgDAPQbOD+W7pBBMEPFMGDYJTkUnjHEmgB52hI1pnI3EETQ0RRcHURwdAEGI0q2Eo7bGqy8VsUrKLR2FHwlK9w/2O5i4Kri/hICvTnbL6rQpevAAAAAElFTkSuQmCC", + "tools/zoom": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAHlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3KG9qAAAACnRSTlMA/oNIHAXwxtytrZ5dxAAAA+5JREFUeJztmz1zEzEQhm9sHwylAthOd4kDpMQZCJQmyQToEjIToCN8TegwCcxQms8Wp4C/S2Isne5O0r5a7WRSsO0p7z2rXe1JKyfLXLa5/OfHQffw8/Id5+NIy9d+K2PvBjupenuW3Ezybpre2oGqWXeQIJffq8ud2RHb7fy+S0+pr1xFj96pIk/voU9PqWOO3hO/nlI34vU645BgbxQtuB7SU+pVrF7QYYbTYYcZTgcirC0q0p0JLdiPQXxE6yn1jQ/4YbCVZVtrt9iI1Rn8YirW3ipvFvOx9VfVclUpZz20SLRsvZXqsw1bsQAFh9bfrNQfblgPr2J6HQvCMU3WBHdHkODT8i9eup7fLJ9/hASXiMSwkmoB0bM89uRF6TTk8xUzfNGTFvnUDPkFCJYxLnxDyrwC4pxPKEAbsU/ndhsJYZkIt0nBZ+EQ/7My0N9JQTOFwenBRs1sTIbkzExYepReGxxp3ktNYgv05QHkyKntgwPNi98Qgnq2qUVlFigVFZ2y5LLXJWSRGKdf/JoS3NauhNeKCTK56k0NCYe5hQ2zX11A7+1Telk2gXy5hMakjMqL4Cidr0Cd0wl2DRp1nRbchd6t/XhPC16GZkcLFrRgCxKcxguGl8oYTcMyEcN1bhIvGE5ZvZRHtGBnPrR7voJ6gQJbyVyPPV/Biz+H4mkjntjiS0+8OIiXr+F8lFiBFf8EiH+k9GeU2A+cWq7XQPgzKv6hF9+KGEfCU53BmyX57ZxOBrENp/iW2AwkJnEIvlj+WCF+8AEPXevQqJmJHx7Fj7fiB3DxFoF8E4Nuszw2A7DWknQjKKZVRSfNjMBqph01H9vdSowQb/ehHUS4IYkiVlqmqtoyVTXDEGtNXXNZtrla1wMRHW3nnbzRdo5BhBrjKYghwxCBy4VIxLE0InlBE4tIXSHFI0Y4DSIGnR4wEMMXhUMGYvAqs10pEiBi8LK1ErSFDLtaCV0HVxGVevvzBLlxD1xYO/IK8dx/pe5Y71Bw/Jf+jpKEIGbenyVwEf3mSFQQ0WOO1XnREHNxxOfiiNOLj7gkjbgvjThsCqYhOgTTEJtzmIjoEkxCdAqmIDoFUxDdggmIrignIXoE+Yi7bkE+YssjyEZ01NhERN+Wio3o3UeyEX1HED6i7wjCRtz2CPIRGzu0VETfgYGNWN97/kcUReQK+soiX7AtLehD5At6EPmCbkTgtwNxiFRfPxoxaZfjQiTvPGIRgcu3OMQiSbCJCP76D0dM3L83Eckf7cQiAnfAUYhJae1CTPY4q5XudI+rpTs5xjOzEAsRwXIbIQNYbsZ6EjN4ZvP9Yi/xfzBsxeVP6vBkzvcXqtJVkbl96cQAAAAASUVORK5CYII=", + "tools/corner": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOAAAADgBAMAAADoA3fSAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/xaV1VS6IRbyAAAA2klEQVR4nO3UwU0DMRRF0cgzLuCXMCIpwBINuIQR6b8WRFaQsGDjt+GcBq709O3LBQAAAAAAAAAAAAAAAAAAAAAAgP+upYNbOnhNB890cIR7rcLBng7u6eCRDo50cIaDvcLBLR080sEzHZzhYKtwcEsH93TwTAdHOPh1M9FgTwf3dPBIB0c6OMPBx80kg1s6eE0Hz3RwhIOPjy0Z7OngHg7eZjTYPqqSwf5e0eDbrGSw3auSwT4qGvw+ZyD4c871wac5lwef51wcfJ1zbfD2OufS4G9zZt4h8Befs4IbC/yY1jcAAAAASUVORK5CYII=", + "align/h0": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADpJREFUSMft1KERACAUw9Duv3QxCP4hMaWXyDdAZN2BL+gdCIL9GLigr9GjYNQRCILdGLigUcS9y3AByjBczu6rOJ4AAAAASUVORK5CYII=", + "align/h1": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAD9JREFUSMdjgAP+D3DmqCClgv+hYFRwVHBUcPgLDsIiaOgK/kcBg1gQ2dGjgqOCo4LDW3AQFkEoYFCU3sNLEAC7t+0vT092rwAAAABJRU5ErkJggg==", + "align/h2": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADtJREFUSMft1bEJADAMA0Hvv7QCIUUCKW2QzX95A0jxSWAG6gSC4Hw0nKCmqCdjjCsQBGej4QTt+KMqXIMKXM6L8LJqAAAAAElFTkSuQmCC", + "align/hG": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA9SURBVHicY2AAg/8oFMOo4EgRhILBLjgKqAsGYRRjF0ShRgVHBUcFh7XgICyCRusj2oNBGMWj9dGoIAMDADy/vlAXYw0vAAAAAElFTkSuQmCC", + "align/v0": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADVJREFUSMftzqENAEAMw8Dff+kvCCgpKnIlm0Q6lPeHiHinvpzFYu6KoigCMYmiuMCERzNsBQ5SXM5ajT16AAAAAElFTkSuQmCC", + "align/v1": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAD9JREFUSMdjGAUjFfyHgkEvCKFGBaksCAvuUcFRQfIEISSIgQCDUXAQBt2o4DAQHIRF+lAUHIRNDpjgKBjhAABYnu0vd1/ipAAAAABJRU5ErkJggg==", + "align/v2": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADNJREFUSMft07EJAAAIA0H3X1qLWFoKRvhvAtcniLzLzh41IAiuoE4GgiB4jsoef5RDhlhaoVzOaTpIBAAAAABJRU5ErkJggg==", + "align/vG": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA1SURBVHicY2AYBaNgFIwY8B8IICSCNRgFQU4FI1TWqOCo4KjgMBQchEUQrnJpFIyCUTAyAAA8v75QTRCbbQAAAABJRU5ErkJggg==", + "par/center": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADxJREFUSMft1MEJAEAIA8Hrv2mvgPhQIaCw+5x3yLtSJIFzJPdCwTKyTn8hgUXkPu3pQsEGsk6J/9yNN/ro8VrsBbRb2AAAAABJRU5ErkJggg==", + "par/jall": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAAC5JREFUSMft0qERAAAIxDD2XxoWQKGeu0RWt77ohXiP+DM54s/kiD+TI/5Mjk8MbhM6G2PsedIAAAAASUVORK5CYII=", + "par/jcenter": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADNJREFUSMdjGCrgPxYwKki+4CgYTZ+DWXAUjKbPwSw4CkbT52AWHAU0TqKjgiQIDtnECQDksdpsFfT2ZwAAAABJRU5ErkJggg==", + "par/jleft": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADNJREFUSMdjGCrgPxYwKki+4CgYTZ+DWXAUjKbPwSw4CkbT52AWHAW0TJ+jgiQIDuWUCQCCPtps+DDFCgAAAABJRU5ErkJggg==", + "par/jright": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADRJREFUSMdjGCrgPxYwKki+4CgYTZ+DWXAUjKbPwSw4CkbT52AWHAVAQONUOipIguDQTJ8ARzPabNnvzlgAAAAASUVORK5CYII=", + "par/left": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAXRSTlMAQObYZgAAADxJREFUSMft1MENAAAEBEH9N00BPJAQkt3nvC8nX9IgsI80u08wjWxzIXWBSeQ9fcP7BAvINoP4z9v4JAPCelrsVzGixgAAAABJRU5ErkJggg==", + "par/right": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAQMAAACxAfVuAAAABlBMVEUAAAAAAAClZ7nPAAAAAnRSTlMA/1uRIrUAAAA7SURBVHic7dAhDgAwDMPA/v/TnTS4BaUhlXzQ0FVLtED0I/LkZKIdkfQuvpOJdkSenEy0I3L6Q5zEFQ4Pd1rsYDTK0QAAAABJRU5ErkJggg==", + "par/lind": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAMJJREFUeJzt10EKAyEMRmEvqWaRhUfIEeZoOVppO8Isyvg2FUr/t/6EIAGxlLNaC0twCetNgoK7IUpQcBMEayso+FV4XOBtg0KjsFFYDwoHhUZho/AcEsBBoVHYKHwPSeCg0ChsFL6GXD7s9RwSQaOwUfgcksFBoVHYKOwUOoVBYULY6YU7hUFhQtjp4jqFQWFC2AuETmFQmBD2eWAFncKgMCHs88AKOoVBYVI4+5U/l+D/QJSg4CYI1lZQcBtECX7qAUpgeWwtR7NGAAAAAElFTkSuQmCC", + "par/rind": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAMhJREFUeJzt17ENAyEQRFG0RASUsSVQCqVRGv3YZ852dHs/QrI8E63ECxY0CSmF6T0+F/yOVxEU3A/jCAruhVFtBQV3wzgfaBQWCp3CAaHdXeoNC4VO4YDQbh/+BIVCp3BAaB3CQqFTOA54VdxV3he0DmGh0CkcEFqHsFDoFA4KJ4WNwkphpnAtSWCjsFKY1wyKOylsFFYKM4XHkgw2CiuFmcLnkhA2CiuFmcI0KWwUVgrzT/y5BP8HxhEU3Auj2goK7oZxBCF8AJvVRYAg9TkgAAAAAElFTkSuQmCC", + "par/flind": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/3+ASBS0bgAAAL5JREFUeJzt0rENxCAQRFGaZCEgoIQtwaVtaSfbZ0uXwE8OEcxP/ZBW1qQj3eWcxnUKK4VGYT4o7BRWCo3C75EAdgorhUbhfSSBncJKoVF4HXnCPOj62CmsFBqF55EMdgorhUZhobBR6BQGhIX+8EahUxgQFjrcRqFTGBCWBGGj0CkMCMvzYAYbhU5hQFieBzPYKHQKg8LRWK/BCgouhErt1Gy473gFBRdApXYKD1ZQcAFUaqdGw/2Zr6Dg/+EHdgSj7Otco54AAAAASUVORK5CYII=", + "par/bind": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAACVBMVEUAAAAAAAAAAACDY+nAAAAAA3RSTlMA/4CE6rqMAAAAq0lEQVR4nO3SMQ6AIBBEUULnQTySxpKjeAnvKyFkwWZ2YpRQzNS/eNlsCI9dm20PaGsLDxguLUwwjC08YdiQmNghMbFDYmKHdIiG9IiG9IiG9IiGdIkV6RMr0idWZCLCSBILkiEWJEMsyESFkSRmJEfMSI6YkYkM40mG2ott5BTiUPtm9KEVKhwQatpM8x7XnlehwgGhps00+mEVKhwQatpMQ4/7eF+FCv8Pb7YbUtgjTuk8AAAAAElFTkSuQmCC", + "par/aind": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAACVBMVEUAAAAAAAAAAACDY+nAAAAAA3RSTlMA/4CE6rqMAAAArklEQVR4nO3SMQ6AIBBEUUPnQTySxpKjeAnvKyG4YGJ2plBCMVOSX7yQnVaw6Z5ChR1CTRtp6HDteBUq7BBq2kijD1ahwg6hpo0073Af56tQYYdQ+2b4w8u3K3RD7Y+d9Yc3N1xquLvhXMPohqGGB4n0iQ3SJzZIn9ggAdGQiGhIRDQkIhoSEgsSEwsSEwsyEmEgiRnJEDOSIWZkpMJAEhOSIyYkR0zISIbheHm8AHEKUti+lQcfAAAAAElFTkSuQmCC", + "type/bold": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8T1ns2bBtESgAAAkNJREFUeJzt2sFSgzAQBmAG7QMg9Y5o71bwjkLv1rbv/yrWHhz5E/bfuOkUNXvU9JtkE9KwTZalSDGzKORomqYdhk0dDfyCh/e44Mms4oJFUWrIEPDYy9fIYFFuIoNF0ZJhB4NUPEa9Xzsf+/x7Xh+GvnFFCmbZvRc8Rb53yCcO5k4Xv/8TB1B2XHwRwCx7AHFZUXArgo7IB30lg9kOBk27yEBMMu3iNQFxHSzNIHaxs4K4Dm7NIGSZTQsHF9Cgk0Fs7oIZJPHZDEISyTwrQNxA3qwgprmzgthEflgUIC5tOYkKEKe5NIO4Z4qzogG30KSzgnfQ5NEK4p4pTvNPQHHD0YC4ssV1MwtQXIgaENuYwfzXgb42QaBzlowNzj+H8wOxzfyf5eigeT88+45t/k7Bw01nBbexQfyir6zgetzCfhQB0HxYin6cw3UtrhoNiMtQPhIrvi+24wbynGjA9bgBeQvgICZFTqECxDmRU6gAIYXs/ZaCoW/gFIQR0xoBBWFnIK+OHMQOkimh4CIwgwxc9IEZJCCWgWgFQwZXPXp0RqbAvF7tB7fcp6h8ecDp0NTmgkBe1w0DNQkMAZWeGtR6SpBXscPAlj7BAWCp/73CD4Z8OIEJTGACE5jABP4zMKgcmsAEJvAfg9WfB50NNuC17kJgZwSdGuzsQOeuCKmIhoM3RtC5YkSv/JBwrmkpCnBSuBfJjLPiXnWzjdnTQdUNucnYebyi1FXNfP3rfd4x2uFQ11WgNmGNIoEJPDeYIsWF4gNzXiQHsVY9vAAAAABJRU5ErkJggg==", + "type/caps": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP+QI+W4xTrlFwAAAnJJREFUeJzt2s1ymzAQB3CNcR4ADHc7Tu8mcu927dzjJH3/V2mbQR+IXe2ujJtksnsUv/kLCRAfgzFaWlpaWu9VA9Wez7/vt7bIgXCop22By8G6/rUTuzysu53UETBIrqNg3exkjoT1SeZo2K5F7l/ZjW9dV/bvrlt7/xZkI3XGLAJ0TdWPetrIdcZcgLY90DXXmQ0Aq2iAUmd6AEYDXEkdDMP+tDuhM0sQhq5fhQ6B4Rg0QmfuYOgPoBsL12Fwct5xHQbDWFYyh8I+mRyuC/ucQB8wTA7XoTBMTj4wdSisjuMNXIfCcBEcRA6HfrZXIofDO2bgnhvoNzTMjhsisGIGLriB/hromB13VOBm7sB+2NAS7jhyGbhkBl64gQtm4ObDAv1sMwPrTxvYSwOpOexHTgNLAsUnNrE4JIvI/wx0SzGxwPrFgVxg98zAIzfQHT3iJuUvKOom5eeGCFywA91QDszAAxHoh/Kcd8uxY9xv13nXJxtomH/6Cssh8fSV3Jbpp6/B4dC1E6dX+uCAwp+unTgb0mclFPqpIQ5e6jAYHkzzc+1nxjkM+pEQcz1xGLy45pPQIXD6gsR1MAxv1vmRAA6G/pwhRgI4ED56F96ruS6Cw7c7+/jgHdhx3kXTChTUMeHy8FXusrBhdhy7HOxKXAaWORw+lTkMtttCB8H2/DJhbJe5L5c5DdRADdRADdRADdRADdRADfy+gc/zuK8UeJjH3TBwNY+7YWAzj7thYDePi97Upy/nJQ76YHeVi37COc3iwkfZ0Qesche+2OW7ZrtjBNvtlc7a6L+od/lioeFwHfiD2DVOAzWwJFBL6xPUH3MVV6asXlIlAAAAAElFTkSuQmCC", + "type/italic": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP/oTbmFZ57VBwAAAvVJREFUeJztmM1200AMRtM42WNT9kmAPYZ2b6DZkwLv/yoU2lqKmZGu7OHQns63zeSOR5/mR1qtqqqqqqostba6w+Hm+P0D520d4CP3SJlrBrzTe4bsMbDtvhLgZw68+0gAjPAIEXoy6o0H3ASB7VsSxz+SYHaTX5rrH3shfosDE8tq5NfLOPCV/fMuDEz+Q9ybRiQnCVM6Sv34+8CAEvb0FmusGJvjc0s6OTNOtHU/QFJ2R4Ay/HVmROOOONPan3/MA+SzmJjdCjKEBBGEfO3PqQTWE3NlHJzfq+JKcnPmBuctDNm8IbO7qaokAR8AEBxhKCUiQDm8jEHjgQQye08mbzmQGTgOspZxL2RyBIhM9o9MkZhsbNMIEJksZ7CfNsjkDQeyC+gCjZrMbZksgXYPB3D+r9y3RXpu6yyWp8DgAZHJEmj/CkC7XgLtpiEzWeLiZo1/yf9WwBNJsF1+kArh4AGRyYEQqsUY5/8JBfpeaO5AFiKTIytGJp/IoAcRkyPbBD3HZUzoTs6a3IglOx8oqwEfCO54CU92NapmBR8ITM4XlimJyblN/zH0gSrDhvQAtWD0/vdM3qpiOTPluRyTNQ9Vec57QPM6VORtzPmvWqWB8EyTmy+aB/sXhslXe81jZbI2eXKMbM8+jzcv0iY3P89x7SXtzsHWEubB1hLpoj3owqeFeMrkrFjf8FF+//BdoAG78vuHsc9zTY7izJ7u4QZ3hpXQwyui0wjEjUZbsv3L8CIlMJLfQgtKTAatGKKXZ3KkRkd6+ib31eSl+ocmo1a3r+dk8ozbKKFq8nK9PJPtimeGnr7J2Ypnrp6RybiKsyXvpEImy8YrdMkH+oFIoXYbkapCi/CUJ4WyRjwplDXiSZmzRhWNZdJQFY1l0lBCWOjwagsDN6WBasVFTFH7rkwe9hpYYC9POhfLM3vaqxkW8m4nvLZbtui/eIuIzXW6N3X8NA+XhC3IHqtZOCu/ewM4zAFavb0575EawsUhrKr6//oF/0vTiqBv60oAAAAASUVORK5CYII=", + "type/scaps": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8f3qFs2Lc/NQAAAvNJREFUeJzt2s1y2jAQAGCNGh7AMbm7ItyLDXeaNvdAkvd/lbhEVrWWdrWythOYam+A/Vl/tuQVStWoUaNGjUs0eAxj/H4/GzHQwc85JgNsmvbAJ1ngSJ6FwaY5dMIgV+SDTS8NNk+8SitltjtwotJmrJ4x5m0A37cvXFE9QtCFhpdad2zxZxwcSfALrxn/xHcMVNovY8su4jcUVKDW7CLe4aDaLCniigBBM3KLSIGLiqgpEPQLs4gkCIq4lgBBg3QC4II60yAY9w8sUNGgP+5bCXBBI9IgaETeQ4wGwdPohwR4yu7mBOh3870E6Hczb9wkQP/xxrv5EuDqX4K8kZ0AdQVFwdjvXw/6v4tUWRy8rV4WB6//aSP+gBWfAkQmKX/9JT6NHiVAf6LvBEB/KcJcFNNg/jBMgH6f8EZNAszvExoEq7lOAFzwFkCD4I0UxDAM+2cTKzQFrjDOsZGcCQFqvIAuwgwHAT5iCiniIHwDx0UuOMsR4GV84oFb4K07HJzd4wA0l9yZNmb7awfOeZnneVovEdOjIBr95TKvoCZ/P8IicrypJ6dWsKe6+6jPBPdTCWagnsq4zgOdNwfdwAJ1Ztc3ArpKH/kguFsDcFqo9FxwfwYdGIDK1vkeB+3wai+Z53lGNwRPn188IKBKRAjaRvS7uQy0Sx9/5VgGrqRBfSugf+Z1lvB/Au04XHqn7ILj7J2y9F4OQfuSgD1t8kGbyfLfD8pA26p+IrAItJMKOqdkg5uwT4rAafmDzsu5oF3v4SuHTHCalvG1TQ6o3YYWtfpigjBmb73F4HwDrBQMtugKwTbYRCwDI5u7ReA+78WHBtthtpQqAMmDKljBawO7mwdZTXNbYGqv8uvBozSYSgNng6kcZjaYys1ng6n9jWwwNRA5INgVS2X7OdeFSUw6z6oZoD4BkP67EwfcQI/+I5rbWzmil3xt5kGJrjbR/0QZs33bBd4Y+/doNllpLyV7iBwSs6aIecljKljBBWCNGlcQH/LbN8WtNzjmAAAAAElFTkSuQmCC", + "type/strike": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8e3WOWxulIxwAAAkBJREFUeJzt2s9SwjAQBvBMgQeIlTtUvKul94p4V5D3fxXbcXDydSD7rV3Hzrh71PZH/jVNtgnBw2NiEXNRd9Gc9ruVFXiOsvmgTQrszW1lC3YkV0oejLFhRA0Yl4SoAmMpizqQq3WoNo9wV/eXqr+xqjavR/xX3DJgCPcDMP21I4pPnPh+Fex+DQpJNGMf6ww4KD9X6VkODHcgvjHgIgsW0CLMaAzzLBjm0IyH8SBWekmAhQAWUMR2PBie0wtuDUBoE2IsimCAOssjRwahW25EMIgg1JnoZxGEflbOi5evgH5uDUBoxAcDEB53eVaUQRgIcjfLIIxE+VkhwLRX5HFDgGtrMO3m0gKcWYMLa3A+eVCe4qYEmlf5n4DmwyZ9UkwmB3MwnRxMJth0PjR5BaQztsVLCt4pFq9RWDq0BiAsblYGoO6VolzbEEtYEYQmJPZnIghLm9YATGvM7PckEGpMNKEIwuqQ2e0JoHZBLIJQQGoPngdh88htwbMg7vS4JEEOLCDtQOYIMuAgZ0JmMQAszoUo+kQLcNx+fgDmgqwwDZY70iPBkkk3KEC+fBzIZdJosD5oPAksa1WqOAvWdX3akxndK6D6ZgcdHAleH9D5cNBBS/ASLF7MhIMOOuiggw7+BrhycHpgaw1S5w7+FJRTwEqQ+L6tA5n0oAokcsA60GIgwhcxi16BHDB1GEQI+KLPnVfJBp7Q6bqlHcUVL3EYmqQURlXthyexvqLRnRL8jkvWOX5UQgcd9PDw8PDQxCdxNPc8B0YSMQAAAABJRU5ErkJggg==", + "type/sub": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8c3ZRhFMSQiQAAAxZJREFUeJzt2k1T2zAQBmCN4tzrmt790dxLbe4OgXsNzf//K42cGrRu0Ptus8wwg3SN8kQrKfpY27lccskll1xEKVOlP5Xh4fhUW4FLqYbH1hQM5h1JsuCJfKQi58GyHBhRA5Y3hKgCywqLOpBqo3Pt7lZ8y/m2DV9s293vg/yovGNA575LUPzaQYo/OXH/Jnj6NdFIohtDaRLgqv1c0JsU6Doh3jNgkQS96BFqpLdJ0G1FNzJNBKAMmmmiB6AXTRyvB90UV/hmAIpRI+YiBLUxQ1AOy1cIOgiKeXBjAIqYlevi5RpinH8ZgKITfxiAYuLgVRGDYiLgYcagi0cF/1cIMB4VPG8IsLEG42GuLMCNNVhYg9sPD+Il7iOB5iF/EtB82sT/FJPFwRyMFweTBTZeD022gCmqYrFJiT3FYhsVRweLjV4cbmoDULelKM82xBEWgqILifsZBMXRBo8JBuOImfseAkXERBdCUJwOx+tB7YEYgqKB1B08DYrLI3cFT4Ly1sMlCVKgF2kHMkeQAFc5EzKLIUC/NMKHRIvgyMyNIktHeixYPZEeCVZURoQH+fZx4EDnTSmwv68VHgIrJZcC+75/OGqC/RdUfzmDGcxgBj8h2B76nnraRYLnYwnztIsDl2OYSQ42lOelCj7hUGB0tYBnMAqcXuvAoBlQdR9lQHEfRTEzYEg6DK3fzUdQdCFlwOZv151Dr68HpyXQ+bnceD24fxmK8BQNpB04cOm4xga8fbmGhuH5YgEu+R9zsLABX8u7gAaD8o7gxmZiSxAsNzFYQ7DBC6IO3OOkqQoMyw3KcarAAo+JDuyISjGItosQMcw7x+AI6oa9RbWNIrAjohAg+FOFiPFZJAbBjCiYiAUI0oNUxAIEWy4zxqsbfZ2qSY2xfCKWrt9Rx0ORA05GFMYY52D9JMDU+yodMVHXb+ikUkjUJPTP5bq8KXaoi9v2uH4T61yGi28J4gZespbyPw1UgnMD0/8SHRgaCOaMCpyPrortE4JEA1Xg3MDREAwNVO0lCNzHDfRIJor8OXA+zGAGMfgHF14H/+Dc7McAAAAASUVORK5CYII=", + "type/sup": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8c3pRhFoIu0AAAAxVJREFUeJzt2k1TszAQAGCGwt30406jvVvBO7V6t2r//1+RtAV287mBnfetM9mTQ/FxN0nTdCXLGEIe6/qj4pCusduLLho2Mb94Qqy4xG9xizWPWIghXljA0wiyFN2P4CU+GcASeCw1L9SKkfnueKmZAdzehu5aejUfPPWFPimwnQ8ehqnofhLPHGA/cFsecC82t58WXOASgA+cYDGCwhd1F837+asK0cVYshcc3qjNh2QFlfnqIyeAHenZ6dWktLGgb6dX4Gc86Ba344YYBTq30e6tt86mgI4c1XYD90N5/TAcIsulVL8o5e7niF8SrzZQTXKLrjxhEIY8YtG2Mz+ag3Fwgt1fQ0lahlFVvNaubT2glr9ZdGlJfOEDVUkg3mwv6x96hRfM0YjopwRVsTEQpRfMSjSMWoqFbaoCIC5aS9FWcZYHQHRI0Nbc3pzjMDies1Rs4Cu2OSaAaNbQFFhWNQV01qxe2FjuD4F4Wpb4emu5PwiidTBOgnURkkBU80g8WqeEAsLj6rjunAkSQDSIz+Ci/agZBtHCeQEJ2g/DYRAthOWYoHUPp4AZnJXNkKDrtE4A4ayshwQti5oKbnXwkmA7HYTTvOovmPsMHVzo4AEmmMeDhQ4KFNoJlgCWdw8aW9xdg+wl/xHQGwTQWDZzQfhOcb6F/ysINwfXLhgFwv1w6bgnCjyBW8JNFQK4B7eEv76Hwcg+UhhEh5uKATQ+UuaCcE7Cqyby9EXonAVBdLQh9PaCIKyY0n0MgahiwhAGQXQ6bOeDjgPxdBAlSOqO+kH05ZHWEPaC+FsPrX3rA3PUdiB2rD2g1jMh9pcRmPdJ5KrRgjhy118Qg9yip3pfRI8IroyOyDyQnh8NbPx901iwfqsivBC4iuR8YF3X7+eYYk0w+pcTmMAEJjCBCUxgAhOYwAT+W7BK4P2BHI/BIbC9e5DhCS4MhrvekSClPRgFcjxKiL/RV/M99B8xjscnUQ+Y8N+SYIInBJqP1MQGfkInroVky+9b6DFdlPKsP4l1jYbwlKAtbFYfkzJMYAJTpPh78QvJUwjDMnHmuQAAAABJRU5ErkJggg==", + "type/under": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAAXNSR0IB2cksfwAAABJQTFRFAAAAAAAAAAAAAAAAAAAAAAAA4CsZogAAAAZ0Uk5TAP8f3WWWKA+IJAAAAj5JREFUeJzt2s9SwjAQBvBMhQeolTtEvKul94rlriDv/yoWHWbydSD7LexoHXePQH/kX9NkmxA8PEYWZS7qPpp9t55bgceomg/apMCDuYq2YE9uqVLyYFk2jKgByxkhqsCykkUdyNU6xOUTXNV/Eg8Xxrjc7PCrcsWAITwMwPTfdig+c+L7WbD/Nygk0YyHWGTAQfm5St/kwHAP4hsDTrNgAS3CjMYwyYJhAs24vR7ESs8IsBDAAorYXg+Gl/QHdwYgtAkxFkUwQJ3lkSOD0C23IhhEEOpM9LMIQj8r58XTv4B+bg1AaMRHAxBud3lWlEEYCHI3yyCMRPleIcC0V+RxQ4ALazDt5soCvLEGp9bgZPSgPMWNCTSv8j8BzYdNeqeYTA7mYDo5mEyw6Xxo8ghIZ2yLhxQ8Uyweo7B0aA1AWNzMDUDdI0W5tiGWsCIITUjsz0QQljatAZjWmNnvSSDUmGhCEYTVIbPbE0DtglgEoYDUHjwPwuaR24JnQdzpcUmCHFhA2oHMEWTAQc6EzGIAWBwLUcS4GWRFqP38AMwFWWEarNakR4IVk25QgHz5OJDLpNFgzWU4SbCqVaniLFjX9b4jM7pnQPXFDjrooIMOOuiggw466ODPgnMHxwe21iB17uBXQTkFrASJ99s6kEkPqkAiB6wDLQYivBGz6BXIAVOHQYSAN/rceZVs4Amdvlvaq7jitRyGJimFEWM3PIn1HU33dVRLHaesY1xUQgcd9PD4o5Eb2BcNegcd5MBP2qX9eK19CMoAAAAASUVORK5CYII=", + "lrs/bin": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/gB8KGMVmQ4AAAJFSURBVHicpdexTuNAEAbgyVopHOQyj+DmELrKvR+BgiUUEfgRKNEVwS+RPiUCIaqUSHkJ95SIHgldcbnd2fHasXc8wUyXfMnu2P5t74L2dfOxAVOzp8/mO/D4AL5Oqy7/gXap10N+h049t7mntSPf9RVgW/N1SEFVxCV9ftzv9f3eHZ6pxLEbelY3q/Vq44cHvcA/v+h2/UWOLV/Zcbf6sFboa8M7o5+6W9dudljUx9Ap21GkYela7NebHR1uAaog25ZTyG2DwTLDJ1BCxrDpKsL2mSpAATe1qSUePMuXdG74yU1xrSGXzFnBwZVhxbemwFyRlOHCHHdOsQlOPbEMJ0F+s1zY5s8Caq9o7Bh+9xRvm9heUFvNbeXmdTdGUjOol+YHNx91luG8Cf6vp72pf48b/80UroK3yHGcwvIHnMHFEM8lvhzitcSLIa5A/4DN/V2OZuWeDlxFMuc8T2QueI5lvuXZPNf0+Wie0jOVqVTmgSxmMg9kcW54IGwC27fBQBYFruyLimd9BJecqmN4x3GEnI/kCXIxkvENzGdR4ASZzeIUmQ2bwCkyGzaBM2Q2iwLPkdksCrxGZrPomA1bNcz6YEH2TVbEu1EcEeejeEJchDk+jpks0kKUy6LAU2ImiwKnxEwWBc6ImSzOiZmwCbwmZrIocEXMZFFgXXMZUuV5F+LIc/CCJ56DZzXzHJrcLW7Bryo7ddbiRe/vtLSl/Vhv17TVbe4OX69r/V7wq61+VetZr/z8qtlcNWz2URuLs/bm6j+BMbUibx6xWgAAAABJRU5ErkJggg==", + "lrs/newlayer": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAAA3RSTlMAgH8BTzA4AAAApUlEQVRIx+3UoRHDMBAFUQupDJWalJoygnJBmQ1Yfeyx77ObB5bdUXFX5mO75ubm5ubm8/P/7sOPqtfvFF5V78Cz6hN4VNVzz8SViSsTVyauTFyZuDJxZeLKxJWJKxNXJq5MXJm4MnFl4srElYkrE1cmrkxcmbgycWfiysSViSsTdyauTFyZuDJxZeLCxDOvzDPz2DBxJm9wZZ6ZhzPxzCvzFM7xL3aB/p8IYvJLAAAAAElFTkSuQmCC", + "lrs/folder": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wAZezFBYccAAACiSURBVHic7dahEcJAFIThnbuJOJEyUkIEjiZuECDwCCghTaSfa4ISTkAHOHDc20xWIZjM++1nVi6yDM5b4wu+PZY8NRxn5gPaBuaT4cR8NhyY94Yj82QYtA3F8p2YGjR3mpPmoJmmL7hqTprx1Nz00hw1o2oeNfeag+ao2fM8z/M2XVEY+TPZAm6Ke7pz1Iij4opc1vVzLfJ1nXf/faGdf85vsX+c5iQpMJEAAAAASUVORK5CYII=", + "lrs/mask": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wAYaKzkEVgAAADzSURBVHic7ZWxDQIxDEUjThQUcFVGuBFuDwpyIEFBT8MILJEh6BjhlmAECjpGQOgUxSi2fxGqkN8+KbaT7x/jVJmKC8NVf6z2enrJtPHODaOIHx//7CW6mvx1E3A34Z1QOdiTr74I+KidLZ3uAx44Oou7cdFK88X7iA8MthFvtM7Y3hpHNGqNc60vKT5rc3GTzSlea2Nzg3cUp49iKU7v5U7xNgunt+qzsPvSjw8HGAyWd2uW4vRJwIP2FKd2AGYCVgRGBmsAlgisIFpgMji3/iA8QPSA4EKxB0ITRC4IbBT34LNAX41pn9pHVVW+nKqKC8NvfTocjLPIGhQAAAAASUVORK5CYII=", + "lrs/adj": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wDKNQowm4wAAAKvSURBVHicxZc7buMwEIZ/OJVt+BhpArjMUWSpEGQfwaWwxcKXSJ8yMLDYSuVifQn1Khd7giDAPmYoPoZjki4W2bCwE32eGQ4pzvxEJcb+5/nh/Es+gfj78zNorL6l8d5QYDGkcG0psB4T+BV+bK/x/hTwYrzCP4CEORLGwtzh3pHfz9Lc4tobz/mtY9x5v7Q6/NMhwpPA1afgHco37AKtJW4gsTEfBJ5izM62AQvfcGmuAw7ztrg72ZVBtCYOc7TB4+kK9zY4VGi3ijY4VGi3B9McHCq02KLB4kMCk8d7iy8JTPPZzLhGAlPw9Yy7JO7N3BDth8At8GTwMYkp5KPBUxJXJ1438HcST1gyjicecI87xl0Gt1gwbjOYzEbCfQbXvOpQeYnzfqLMoPISeKLMEG+IxEfaFKi0Be4pcai0BW4pceyyuKPE0WXxjrYUbRbTCzOiyWKa9FMJX/CIYx5PZXzAPQ55fMS2hHtscMnjpoxbLG/hUx53uCvh3T/hGov3xXr8r9gV/fuReV/eC9MhK72pvN83cOGUtLfwsnRCm1t4U6gOXLkKtcWc0HxlMuc7X9dM8chXRcJDoaaaypSvyBR2RNxBr6pithuYZgLVBAVuuCJnOxGtCtXzapfDk+kGkXKQ+EINHqq7i0Y1dyKVmccdd2goZRFww/0dleqSHtsWmxEHs3iAEj2h+7v2nhQmVrjkZI2VPTlRRDZWmCQlFb0LVtakBBmbWFGUknMc0EmqhBh0ajAtJTmel3PXQtQr0aSMNQ+2AfcKc7Qh4E7hV0gZqxS2uQkIjSy9W+NIYUfqnhWyuzyEPD2uOY9I3QvvVW1uKEOMO2f+54U/1c1CK8YvGkebvho1jsydscA+uryQiSPnL2TiOidribtzfa1SuNq/aBrhqn47r87f5ZO/9y6wAK4j/7gAAAAASUVORK5CYII=", + "lrs/arrow_down": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAACVBMVEUAAAAAAAAAAACDY+nAAAAAAnRSTlMAgJsrThgAAADCSURBVEjH7dChDQMxEAXRDXERqcb1pJoUYZJUeZbJgJE+PHDaoR887VbXdc/t8w/96p3mVSPN33qleW480ZXwteeR6Er4PJcHOuHrzCPQCZ96u2lw08JFg5sWLhpctHHT4KbBTYMnGtw0uGnwQIObBjcNHmlw6IRDg5sGTzQ4tHHT4IkGhzYOnXBo49DGoY0nGhzaOLRx6IBDG4c2Lto4tHHRwqGNizYObfzQCYd249AJhybwTSd8xXlsOuGzuq67sQv6llXHqTZ3eAAAAABJRU5ErkJggg==", + "lrs/arrow_right": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAAA3RSTlMAgH8BTzA4AAAA40lEQVRIx33NoZEDMAwAQZXm0lKiS1ARAiLSv0lYZo8uuPj2CZbmNq/572NOc5vX/ObkNLd5yW9uTnObl/zm5jS3eclvbk5zm5f85uY0t3nJb25Oc5uX/ObmNLd5yW9uTnObl/zm5jS3eclvbk5zm5f85uY0t3nJb25Oc5uX/ObmNLd5zWMu8zUf8gS5zNd8yBPkMl/zIU+Qy3zNhzxBLvM1H/IEuczXfMgT5DJf8yFPkMt8zYc8QS7zNR/yBLnM13zIE+QyX/MhT5DLfM2HPEEu8zUf8gS5zNd8yBOszNf8e/0Piwmj/7MOhPAAAAAASUVORK5CYII=", + "lrs/clipping": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/ce+dRcNAAAAI7SURBVHic7di9TQMxGMZxi1QpwhaMkAKJIWgSkKBwjSgY4ZZgiVSMcEtETEBDxQYhyinkcn6/HpsKnrdN/Bf8IDnbKXH+8sxW7twywAADDDDAAAO/EHja7Gd3mK9QYH18+643368HsGUMMMAAAwwwwAADDDDAAAMMMMAAAwwwwAADDDDAAAMMMMAAAwzAgc9NOceA8NKmnwaWK2juip9ggQUe1V84OC8lwhYKdGVgiayX/jAQwr0QgBCyEIAQBAIIQf7fBBAkAghBJEAQRAIAQft4hhFkAgBBIYgjKARhBP0bKoigEYQRVIIogkoQRLC+pEMIOkEQwSBI6SMQMAhSuvbX28+pSz9gEewRXt2ASRBBMAkCCN6j2kWwCQIIz07ARXjzAg7CuvcCDsKDt95DcAk8BJcgpXkbQUoXVqDcWwljIZR7K2GujICwtyrHQugjAQMhRGAhhAgshBCBhdDHAipCkEBHCBLoCEECHaGPBhSEMIGGECbQEMIEGkIfD4gIAIGMABDICBkJSAgdEhAQwBN0ieA9VSdTImQsUCJ0WKBAgC8RpgggQYmQ0cAUoUMDE4SKe5RzBJhgipDxwDlChwfOEKquksYIFQTnCLkmMEboagIjhMrbtBNCFcEYIdcF5m0EI4TqC8VtG8HpJJxrA4s2gp+TcDXBEcE/ZKgzIAQOGdoMCIFDhjYHhMghQ51tG8GA0EAwIDQQDAh9S2CPAO2tyllie6tyFsj2UppZI0FK743r001r4H/MN7je3XGolvHtAAAAAElFTkSuQmCC", + "lrs/eye": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+SYFU6oDnW5AAADSElEQVR4nO1YS5biMAzM6wkHyIc9JMw+aWCfHpo9DHD/q0w+2CrJsmOYVb8XrcBxSSXJsi0nySKLLPITJP1+PO7dO8jzvspGyevj/TWbt22GUh/jCZw4dLQfCU//OtARHkN+1arYXn7PGl+5lK0Ul/exPfUgOvVyfqIPAfAMNojW4xzH/Nc81otOg8GyUnQa+BqFzbL1u6RHUYLWRoNdt/9EY3u334uWTvwVwz1xHvGXDPcVFhHqqvIpxZi1CrX9vd+PPj1gSPbK/TrsO/6NAU1fHbPDphMsbjItZ417BituR48NuAzXtPaHAq0NqHY82Omsp+U3aDyQ+YNE5zrri0nAGlgVzhbVaKwPdvCCWWxk/KaQfSljgyvT+v+w48LIFDLG51lvaf+z5GugkwWwec6TpEcrG6vG+MjdxpCMYkr16oLXzrLphMsNJEDQHnLDiQsuZtGt6A8Ru8gjpeRZNst9REzhvDJW0kfF8NOVYQXC/lQ6qekQbOtsMjeYJsOTala9DYBpV3zqLx54fBVOIZQAbiSYS5FI0+tEfNRKZZLcUZwTeBcHxoATuCOwhu2nOqbtRDz9guAPGDE/GgCHaGPqDZgdIUEwZMuA2ZndamCbjdX/gOmz+cVoXzUwqbeVaSdiwL40cGk/W952IvJWT81GAZuJyFs5+fBsI9p2k9qEc5XT15aGzE+8p1xdMLlleRUwEY57xWly2YazhIkQstQF25DQ8mxgIobM4U2aiVUH/mNFO7yVbaZgkUfTLccWitodz6rfNBkmhy7citdrJU+GDB1BYBqPFrihk85SamNr1KYELsmwcM0gGQHT9hKH3RgZtiGk6LCbeH993Oash4UwbuwgFYLWQpAQRXAQTu3GD8VpuJa3mkopeK1A90CnbCE00tw7bDJ2Hiyet7zDwbuK3m6eYIYIK5pWG0Z2j5ITULGCZlg3ny2iJXP2hKEkhO+3/HHjxr5pEeX3u4IeN868yVFzKe/j9fH+nXyfZX/k6b/DjxVGfO8Gp3kobwWZzL856G1/HDqETVJf9zhJ+JEmjJ7BBpnPPS0NcvNg65C/Vs6tRvkYA03cV8BMrvVX4PkxwltOfv9ZbbOqqvevPV4ussgiP1L+AQ8hBe9YslSuAAAAAElFTkSuQmCC", + "lrs/fx": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4AgMAAABECt5BAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/UazI/6rwAAAGHSURBVHic7dUxVoNAEAbgNTyLFNDlCBwhrc9DOJBHUqROE47AJTiChZU5gMVegiNQ2HkEd2fYEMM/RF/0+Z4yBcnyATvA7GDMFFP8z0hq8lsizC1Dq3BEHmQLImaINb5lWGqcMqQaLxgajR3sjKmJCsg1lW5LtILq2DKXmGVOomqcsf4C3z3tXmR3H726l0/ZQeXWD9caJzKuFE5lvMEc1TLOMSdhRwV5HnZsIbup9zZ65cnBY2kot5xBDrl2V+U5MsSu5G3/O+AbvihPcg84DmWX+gIb8JwzNn5pbAEvJbPuOMDlySwDTn1GkuMD4EWo6Zm8lDNu5Lb9jV/g7OtcH/9eYoJ8WgLfzHQV/2hq/WPp4fPcXGJ7BS8+NEhQiuUYH+tc480Yz8MSTN4Qx7yu/XGFhQu4Sz2Fa2wWvgwNXKFGeo7vDmh9u7MyyzlI2zxnblzcd1Fq0vayR1Ia1yzUygrysZy2mLuG3X3/Bty15LXBLB8LOmjMp++Nxu5DVTwbnaeY4g/HO3uMDTTW9IgYAAAAAElFTkSuQmCC", + "lrs/chain": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQAgMAAACaKAorAAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/ec9u8mmAAAAHSSURBVHic7di7ccJAEABQgSIFOFMJKoHAGUX4sGdwcAU4oAQ1cVUQ2CWoCZVAQgmOPNoVOu14fx5DYmujneENnOB2b7mimEV5CWOcukKKxzDFm2TKlNFeeqsqzCIKqJmjFwGlOdoLSwok+EWtKNrZ65ZWvqXo1X446fFqip5Y1FP0zKJEEf9F3Q7BSx9D9gCpiA6YnlUUMa1UdMR0o6IW07WKOkxLFXH5gv4h+ny30Rp2noEq2OgGaqBVGKiHLmCgBLVrFAIgvRBaRHpJHfGD9OKMiPQyPyBqVBQQ9SJKFCmd7iaop4hv0TVFfLNvKOKPjS1F/AFUURRZtKJox6KSoo5F8EVNSDio4fEmJB351Rzx68Yx5IrEMWQYaK5IHGiG0WhEymg0hLjdFrSgHyLXpvNsX1chuErKVZyeMnc1DFfrcTUxVzt0NdaaImUet5p9oujeB1Cg6JfHq+ugdh35LSJrHk/2GOIaaJyjUQ0/rYG2sJMMtIH/JQYqLqfCRt/yBf09pO/xDlO9WlpM9eKMmOplPvbApCLsN8a/fDydzjKCz8hx7+uJniJlHs+hzOM5lHk8hzKP54gscl1Sua67XBdnvis412We61rQdcEoXlV+AZ82MdaHEc2lAAAAAElFTkSuQmCC", + "lrs/link": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJAAAACQAgMAAACaKAorAAAAAXNSR0IB2cksfwAAAARnQU1BAACxjwv8YQUAAAAMUExURQAAAAAAAAAAAAAAADXpN5YAAAAEdFJOUwD/3nPbvJpgAAAACXBIWXMAAA7DAAAOwwHHb6hkAAABS0lEQVRYw+2Wy23CQBCGV3Di4NxSAiVw4EYTfkjh4AI4uAQ34Sq4UEKaoIQckiaSjL1ez+x4zS+EoiDNf8Crj89i2dess1gsFsvT5yv3OafZPg85jY5i3QSKUYpZlrM0g6PYloNqkBTrOCjUr/VslYu05CiWSdCoLhHbSFCTpNhOgiNJim0lqNSfI3aVoCRJMUjqJCjUMBF7nNQ/LvTVS9+klmLhdec+uPTGGX34ud9wqeaMgYxLfGX14OCSWQWpTUvrIL2nJRckh0ufcgjPc1K0HMeeSmkXS/WM9BpL1Yx0jaVyRurukop/KJX3DgE0mNC0QBN8a6lAK7NFpCbtTBuhTkvTlvI7eP39G2rQ0/dz2pz+LFje5r7nywfGUIkWjp4/Pg4fd45DZQMqQFApg4oiVF6hQo2VfOjyAF1DsAsNdDWyWCwWy9PGuR/zmiTgwYiKmwAAAABJRU5ErkJggg==", + "lrs/lock": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wDMOCLbQLcAAANmSURBVHic7duxbhpBEAbgjV0BovQjuHFkpaK0lJcguECGR0hJEQVegp4yIopSXRmJl7ieMi+A5CYhgvh2Z2b/3b1l45goM5057+ed2dkDe89mGIvJz/Vq/Xkf+xYTuzhfmWN8rU8DPi7MU7wOCxFgYsfHhDAw2hoSX/KBRzreXOxygYcFA0wvF9gaEd/ygAc53vTqLMCbgDFVDuBPIFSFAPAIADwFDIwWCLhtD8zQeHNRtwZACUM5QGCCx8MyQgBngHOAQCADmAMC8Bocot8OGIfGoxwQEMwA5QCAcAaolwCA9kET/kICILSIuAgAiJQAFAEAkRKAIvjAu9h4vwg+EO6CYxHSwPsoYOoksI0DgxQQa6NDyCp6gKzhzZp/LavoAbyG3X093H+nr8gqegDrw+7umBUT6gQwpT9t91SXLXmxSgAbVDC6v67jAF2ErpstSULclSRAF4GsGJmCWAYJkEVgW9dV4TIO3MMJ0CmIW4IEyE6o6OukNnHATVXkOsOwB7hVFE3vcuDrKIFF4AeRHLgsgFGoViQ53ggCcG3g3btm+IoAXBt4d09bBN4IAnBtUEnAFoFvaAHYeYK3UVsEdkkAto/AhxGLLyPAFJf6GLY+VQSwfSR2/SHsCg3aANXQC1tFhgvAtlvtA1ZnK8wB24jeO9ghmgKx+gQA+MF6lgZsnToIGKOLAQB+rm6amfUyB+xSg1V0CbYBBqXAEgHNIrMl4oDdjDUENq0B+KuF24/0KgeazQj7yHVSGhDvPvLyycCsNQAb0ZVoeSowTgJNlcD96F8D4F5ym7UYuCoFBi8OFKdQDCyfD9iCKmUBiz8FXMUB6iuggAIKKKCAAs8IzD+ZdnHzAwL0cC4R5OCMAPBkJxBvAJD6YyqfQu0DsT+p+3HrA9ssoOcBWRmQHCwQO1VAUUkgrwSuCBaYZgIdCWwygUsBZNbQVdECmePtr68NkLsIdhkaIH6ugWLAgfv0CBHXHEgcjIDonxswzQY65wa8/fvAKwUUUEABBRRQQAEFFFBAAQUUUEABBRRQQAEFFFBAgf8POLtjomLg5Q/rioHiE8/iM9fiU9/ic+fik+/is/fsdexLoPj5g+InIIqfwSh+CmT4IQu484HiJ2GKn8UZTlatx//+p0EJDOfr9NBjrMnzSL8AZdCrydT7HRoAAAAASUVORK5CYII=", + "set/front": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/wDROaqwHD0AAAOiSURBVHic3dixbtswEABQQp4cI5+RJYHRyZ9iy4Oh6BM8Gh1S/YT3jEGKIpPHovoJ7RqD7gaKAGkrkkeK5N3xBKNZyikRnsTjSSaPVGuu3f98uv169v8q1j2qoV2dJVi+KtPuOgF+VtC+5eF942BxzsJfyrdPOVg2Iyy6DDyooC0zsNdPenn/86afvOBhpd13/deDlicW6p5f7J9vrm8SDj1fdTCsR+ibgnrMLs8682bcFKx8TuCuEwP3LiUu4GsG9jBQ//wFDYfOFvF9OhACVlHPpu8TCQ9Rz+5GAtbBmCGUOQnbOEQd5IyCwwOW8ZWD7gLDTRKiCfJIwJ1SXXylVGpFwKGj9JIOBsN9OhY9mmsC9ubVonsxbNVNemk75AfDJh20HnaBYalzkbQhYx2Cm+QFmpsbdUSwwtkx4SC4w9nRmVghuNWfStpqdYPgAadRJ3KJ4D79duBuBGucbxMPAVcY7gjY0nBGwCOGmwR+eX66bSbA33ZC/kHBIoAPMHHbKTRqZQjtUhUvVyR8Haf3uxyswoXglIF9CNMPKIDRA/Ejh0vUA9EjSw/DNS1Y13DXB5W0JQP7FC5oWKUuGY6HqOekbw9Rz0nf7qNIx4zG7T4zIsQ4SAeJEOMg3U+BCDEOEn5cVIhxkPBzJUOMgoQJgAwxChKmFDLEKEiYpMgQVThP2mmvpF24LtmJlBlLMBqYmrcc9NMaTPZ7DvoZFZaPnoN+2LAgNRz0w7ZLHDvocdh20dzw8Oizo5fhHQ9XkB27sLPZ8fmBUoHNjs8PFB81D+duLKacaXk4cy/QFEgNDwsXoi656N8BwM6GaIq4TL4h41AWZvJtM+4KTfZr1O20HkvXzIsxr8YXw5kXY16NL6+Z36pty6Bgz7xBHdy4BcjDYFNR5+CVdrBNyUII1MBWcm4rJUK3OZOg3+41AvQbSAGOW9I8DDa5WVh4J8H1R8J8uwT++xj/K9jm4OxDYZ2D80ugMPdcAIVpb4TSROqhNDV7KE72DorLh4PyguRgw7uw4JuwaDrY8nAWwZqH8wjKpQJAufgAKJczACcUSBZOKLksnFDEAew5uEigXGgClEtXgHIxDHBCeW3hhIIdYE/DBYLypgKgvE0BKG98AMpbKQfFzZmD4nbPQXED6aC4JfVQ2uR6KG2bPZQ24iMUtvYjFA4LRigcPwRQONAIzkj7/ANHmD10CWH2GCeCuYOhCOaOmmIIh1cFcXiVQHMc9vxOuvVfbbWqTsr5YWMAAAAASUVORK5CYII=", + "set/union": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/gAicCKdMBIAAALkSURBVHic7dm7kdswEAZgiBwFDOiLVIJKYHCOVIIDS/ZYDpj7giuBTbAEZw6uBDShEhg4uxJMgC8A++9ihzMeJ97sZr45ErtLvGSuXHx7N+bp5/qn4dzdmjHKIQdv3o2yz8BXM0ctw7tZYxDh2wY/SPBmgugF+BLCZwHaEJY8vJsoBha2MaxY2MWw4OAXk0TPwO8pbBj4msKagTaFJYa31PmXBPArhWcIWworCMlY/GgAJGPxo6EQjMWNhkJSFxcnAMGg3bApBIN2w6YQDNoNm8IOwQJAkB2XHwqRM4ZCmB1jHgR+xvBEIEzjmEgCyXcwRUPgJwyPBLYYVgTCwoyl2Q8vGB4I7DAs9sEf71iNUYbwF8ti+CK4MVZ3l90G35SQaQYKrRIybUhh7g0XyHwpFLZaaJUwl+wVKp5spN4KYmoKOMkimC3f0rjMB0WhzUP/cSlecfpc8w0xw1YB/ZTSKaCfpKwCumlP0WLTRKoZi5+amakzDjfZK+oyLR+dwvkFSfMP3RKnKaBfNJkVKA63DCuacVrYVdlxWwVVdtzm46JwfjvTKaDfIFkFdFsuVRrdJk7VZP0INfl2u2Gj+rIc1BSmcVBTmN7BNu+mDbsCTkcARamnQ8Ul6+ZjSh7OB58uC3slXA5nNgcHJVwPkBm4HUkzbjvkyhEcm+W4/of/DFrJlX8VdhIs9sCLBA97oDil1AFsJVjtgeJEegygODU3ARQn+3MAxeXjFEBxQXoEUFzi+gBKi2bQPPIyXETwwsNDBIVi1xEUSnOMoFCaJoJCxk8RFBLZR1CYA64x7DhXJJDNT51ANj/HBLIdeU4g22iPBHL9E/bOBDsMCwJbDCsCuesTApki9gRyl0YUMvdVFMKWbABkbukoRJmMs7jAlsIKQnBsHiDE96cIkmenT14gabUHA+H1MoRJY5xZiO7KMYzK2AgQXPwzkP6UwMDtqukZuOiicr68+ohcfKPprsOefkN3/QNz7BGg/vj3xQAAAABJRU5ErkJggg==", + "set/difference": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAf/hiBGx/K0AAAP7SURBVHicxZgxdtswDIZl63nQ4HTyEXQEDVnyfIQMpu2XeNCcZsgRfAkeIUOm5gB5r7qEjtChW+cOdSWRFAHih6z2vb5isqlPIgCCAMEsU+XX29NX/WmUb6aTx+vcdzPI52vcjfHyPs3lNoD7ZhK8NaM8T4I2gvspbm2IvEyAJQWPOpcbJo0KFhys5808NbfloGr3jUlEW50qBU/zVNSVtCmoKLlMOWPOECwkWM+zRbNmI8HdPFsUa3LJ4bhYIHA7z2hsNjAamy0WsBe0iC0CD/O8g/2DOGMkB92IHAlip5ezANcYlFkA+ht5fDZYYVAuzWwQriBaww0GZYzPAvOfb08WgywqPilQCk5xFMxfJzgaZ7dTHAGVqJGg4mgBXvlgDPFq+PdwuVwBXZH8yJS9FacuAteBd1NgX+5dGbUGOsqD/dbzhbkDY7EWYD9z7X623c4E2+EwOjEo0YPAIg/aWOgHUGp5GL3deHDT73WZLnYhHsY9sRmyq1jQXVBxzATl8FPki6NXMR5aqgEUHjp5FeNurJyf0rlP3ov1CBbjGJPw9pmAx+AIAbZ0R6y9gYmSL26hScJYet8mSp7dLFHF7rV9BpRs3FBUsU/2DVDSOYQVB+tfY0runTYssbR+lVoKHtwIy5Kluc/cRESOTqmagpX3AbPm5LSmtnRAjD3m70VSlsJ/FpPb4Qu8IuYGmN2/ukprrPU6E7O9d5KMv/EDZBF3bvyeg2EBVtzoboaag2FJiX9qp9KWgyFIyLnmTI2k1jz6F6gtS1ndSzcUHeljXhwsqlEpastaHlVuxmjx8u5AWQ+te7ahKoZdlyr5mEWPO2AFanbvwecYkbXXXIJDAv4xgo0H7wU4TLr/WNGZu7Fagqjx2cAOiMRicDMGQXPWwvMraPcwCBrIVmkEREtqFVA0uSrYtc0ssKzezeX/GJxoJHN2WJ4N/kdjdIcnO3k2qAVFFotYALcauPg7EG+FQXgSmQ3C7eqEZxuYAJzwbINSCnyEkhScDKU9L1x9lEi9cIeA1BykZSBI9kF4vIDy4SWpQKAgKZ8QJS7IIlFKFM0gRWKmKMNBVonjRGHXHoijQtSJT5UePkaxifLpcSZInt5OpAckfVy5pSlE49/iiKyEkSU2uxVuq7DZVkxUQGuWUnUwhF/P4Z1KCdzbIiUtMLEESi7RNAVQEo3Bt9EsvPFx0hV25NxSXKqs8e3SrRgu8UXvMr0p7o8UQEXWQIYpcNiXyQOr3WKSJhf8pTrRA4479DQQJI2401C9g4+tfZbdGXVmelngOP1e3R0qHy6X13hOhpI0bWcVnH1Xzj858cE/uPiPF0MPzSQ4XjV1B+sr4sjrnLsO+6LM+xuKVUGMXWFsHAAAAABJRU5ErkJggg==", + "set/intersection": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5TAP/PZuW4XZsAAARLSURBVHictVkxctwwDOSJ40KF7OqewCeocIqMn5DCOnucK672pLgn+BN6ggtPMmM/IDPxJ/SEa1yldpGJKIoECCx1l0yCSkctCWBJASDOmJLY96f759fia8IdulE+H0dOuBF5DHfZzfLliOI+AjfLytOCR5akBY8s2XRM9gtA7/LmhzG/+mXHrV/oxT+d+6ey7pp88F7tljTfxOeh626XNCcPmgW//Tv61Zf9bjOWRyu3BeBo1gP9qpjBQsSbcR7GVWJ/LzMFTGrxoiox2XKfvfQFbwbJsCt400tNtVSRTLrKR1bYm0YdF4v3BihSxkzS6tPioNtgFMw1nh2lp4b89NJp7zbgx4JvBI2NNILZPSByhewZtDkj39cauAaM14gKBxg/Q+S23aeTxuDsFu1rDYAOnZQGGL4GTIycaSrW6JBWgtyLt6d7tAkS+DEE5O8aaDPg+Ry4Ny8AyA7AUsbIgC2Fd00aA57zRKCUM+CBA1UiIGC2oF6SIp+b3t89vweg3LEEDC4/mylkA8eTap9Zum8mAeURSsBD8qCH7kSgJW2R9kx3IpzltAjcQaAj84cO+B0Phfc5JoIIzPyOx6xhNq0j53sAbJmmBOQnI34KA7PdRSA/qvPHZTkbdNqYkfPnWnEfCfhAwDkA1Jy1swSksRg+HJ9dJyBjcg5SA/8iqORh3oSwZ7PJKzq95E0IpHmarQhI9oSokOdnS8AdG3sNhBgmfQKmvZnTh1MlhHR7Tkgiwac9JC5CirPikNLWJLdDepSJnBhPPoY0LBM5KzL3yem90YmcEbmLTk9rtzKnKX7qyI6IH4qfmb+1DIfk9nVUsQ0L7HIguX0TjZ4QqlZh3ky/5yLO6upHMD6ECZUuA8ibB0OF5kqXkeTNlaHStdE1BO3N3lAxDGoaOrs7Vl6j0uDAgEPkHZVTicktuwK0IE8l3Vt2qXCohoi67/wBmcM5qlT44U2HbY2A6Co1wLIUXM4wECRvVJ8ZdIEEdeUk6koKqxIDLrkl4HhtfsySTREoi9M/AL6WgFkRYxYukjY7/CcDT1b9P7z+98CrEjC/dBSOWQDeZMBiM6D5OyD8uILUWfUNP9cIvM2AIAAEOcuAKKTAV/jONyvjQHgjisBdBiy1AkRiAaE5Sp9RDIJ9lDw/g/Qxi8hAICEVlii2ShphFLgmB5F8qDQcpRU3MpXYSy9UqUA25aoK7QrdS9B9iSCqO6E7HUFUv0OWXGSS1FTo0qhuTqlLo7o5stCMoq+HsrUUBDSYcM8JTLewe+cAvQPamx646ICRFVJTAyPRGJzt0MZmF5/ikJdB6alxi7BVuh1uOjZSUdb85OO97iTixqjLX/iJ+IurO9kWLXzslhc4oeiBmvlFXP4AusPV3pgPXVEzbxaY96zQUpLaD4/TQzGuH2toCHeSLP1JsNx04dISrpjLJjn5r4SlVpOQ0LzagOaVlIu3x7uvP/G737GyVxO24FNVAAAAAElFTkSuQmCC", + "set/xor": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgAgMAAAD2oY++AAAAAXNSR0IB2cksfwAAAAxQTFRFAAAAAAAAAAAAAAAANek3lgAAAAR0Uk5T/gBpH+wd2hUAAANbSURBVHic7dk7jpxAEAbgHhABtgjnCCSWVo7IOYID49nAGnOEDTeyuAS5L0FoqS+BnM4RnKzk0FQDM11dfzWIyIEr8s58u3RXF/2yabT49sOYd2/3H43mrp2ZIhm24MW5SY4bsDVL5HF4NfcYovD2gO9j8GK8GCPw1YdPEdj5MNHh1bAYVPjCYaFCy2GqwS8miF6BzyEsFdiGMFdgF8IEw0vo3OAA+FXCCsIXCQsIRV9cbwAUfXG9kRD0hXoj4WcEzwCKcaEoAQSdpm5LCDpN3ZbQIpgCCLJD+ZEQOWMkFFU7Ry8gTOOUSAFB7VBUAsJ8TxkX8BOGmYBwYKahEbDFMD8OawxPAloM02Pwe4fVFIkP/6iMw9eIm+LurnH3gLedUCkGCbudUClDCe1OqLwpEvpVeIvBzvvkV6dDluwRp148eVp+WhVaDkHX5qLgX5zR+zDD5xDKVs6Fy/9AhfI/w459Voa9o3AvV9D2DI2Ue12DgijQ2DsYPCcXmTXLlBL89gmVnZukOv6Z20KE6xdNe2HDE1SgNJGK4h5BI2lqFlNnDxpJk30bwgo0kpYPG8JMvpZuQQrdsgllD6IlTi7kqSxmWjTBCiTfdFqGwVzSi2qmhR0sLLLbtFVoJSxEt2nzUUs498b7wm1nrIRiEN0GqQPQNdJrPG254H6oCN7N6RcNnMdcpXkJnppi8IpfsURS5wyeanOWSLd1VSZ56vf9B7cZVlb8Jz/jNKRGWfHpZGS9JqqQjjH18s/5CNAqcHr4+tXgYK1B8+H30opmA64x15Kxm7DfCdfDWbcFh53wfoDciMeRdMMtD96Eb81O2PyH/z7sYi45Am0MpkdgHYOnI7CNwdyD2iTlojgClYl0jsyD0f136cHovrryoHJgnOPswejGuvcgXOLWGD0YOyR4xaMsw0ukDNY6PDHY6jBnMDI0GYORoSkZjGT8zGAkkSODkVe74dBqLg1gq8E8gGp+sgCqFVkFUC20PoBa/fi1M0OLYSqgdjUhoHZ9IqB2cyOgdmkkYYtgDqByVSYhbGQPIMokz+IK8ZUjgOCgPECI708RFM8On7xCeBmMILxehjAojEqF6K4cQzaMZQSCi38Fyv9KUODjqukJOHZRuVxefUSO32jSdVjyE7rmL+aVUNj25WwjAAAAAElFTkSuQmCC", + "liq/smudge": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/4ok6bxZBkuS7AUAAAH2SURBVHic7Zk7bsMwEESNOLZrxZ86uoEF5ADxDazKrXUDFc79QzINvaNmuGMgxb7uAcQQppdfrVYVXcLjQARGYARGYARGYARGYARGYM0lNZgdvhh4djgwmgasLwbeHQ70qcGnw4EpNbg6HBhSg2+HA++pwd7hwFtq8OFwYJsaHOZ2B3aX5zpgHenNKLMO5L/t5HBgYwaFdWDdPdc+60hvfgPrwFf+Ded2B3Kpdrd2B3Z5RTrOzY4MZphZB/Jsqucn68houmQdeJguWQfWl+cuWUcm0yXrQBnmqkvWkTyd6vnEOvBTurw3O1Cqv9p8WEfyjK+nPOvAXyVcmx2RV05ZlKpzFevIayb0vt2Bsvkc2x3pzaCwDjzMoLAObE1lsY6MZpRZByazgrAOPEztsw5sTB2wDmxNA9aBXKoHh78+cJcLy+GvD/z/YygvG3lhy6eefHFQL1/yBVa+Bag3Kfk2Kt/oRzPGrFvK4ac68LEOlOPZqd0t8gOn+kgsP7TLrxXqi4/8aqa+Asivt/IL+Gg6ZN0if8QYTIesW+QPQeUX3NodkD+mqZ/75A+SeS2vn0BZB4ZO/KirfnaWP4zLn+7lHxfknz8GM8asA/JPSPKPXKOpAtYXA88OB+SfMnOD2eFAXow8HoERGIERGIERGIERGIERaDN+AU54LwjSfioWAAAAAElFTkSuQmCC", + "liq/reconstruct": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAJ1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdEvm1AAAADXRSTlMA/wfrVUChvdaGbhkpPsRAzQAABlNJREFUeJztmklvHEUUgFvtaTt296XUMGMMhwEjhCMODJtEwqEbS1nEJRZIBE52IiSSXDKQIBE4ZKIQDlw8LEJCHAYOkNxiRZDlNBaEReJH0fVeVU8vtbyq8TFP8oynpvy5qt5Sr151wBh7MbBI0YcZO4QnLxevi9Cv+Hl8XuCDIVsr3lYk8In5gMmvxdfd4pdIAlfnAj4YMcGIod9w9dxb8wCPMxT++4C/P+zbcCZgfFPw2LT4NLQpzwpMdiSPZcXH8bzACo/tFp/z9OXBPMAqj10sGp4h0bTAuMJLz0+pMC0w/GbGu9LAxRa8ErhZ4rpv1v/Tn98PLN6sAv5d8i71698cKtoecwZulKv3Y7P3ctHacwUmI8Fb/bnVO+Htt12BA8HLFN25w0wcgcFPeh5895IrcAnWTz2Op61aUQBjPuev1d0XrVppAMHDcsY+13SHQHuKDkxu4DBe0fbnJrBNB74NoSq8obcMrpWnyMBowI7y976+/x7DTYYGzK1+gPupybSrQNgrJ2Yg+Mo2EQgWbVygAH3lSRpwBT2kbwbmlkWsANHluhbgOu80pQA7GBN2zTycx0UKcAt4axZeEHLHNKRMJVBErcwGhB3asNAl8B7wrNmaWMSJFRgOmdXvUfg2gA5lBC5SB4jRTW84EpgTVzDARdQbjgCiSiw7pJA7Ru8TwOcZwY+FrBitSwBhGsawNJPCElf1ykMgRHaT/dckZ2f0XyIQZrxq3sFnsqTfISQQZvwGkRck1gCb0G3GKgBcclBJKe8ZgGDV19x4Gxoj46hwRHTjihQ5mtpPAXiCEQ5xdSnCe6rUDWr5hOuM72oXSXjKu44zhlOCcg+X0eZ9Jx4GCGWEqOx6LoK+qlp3TyD6lspyfIFLuj3SFxgPNEPkrZd9iPuaITJfoi7RwObrHkRNKsS0+rfJMv7pZ0qgKeHTCp6p04aLMa3JWwVzg6ZesNHNketDZBfawNSLFzyHwDRrAX10wgX9j3WrgRFaKDmSSoSia/slNFz1BIoUq3bg9Vcyl6jt0dCQ+QJxK0j7TWBf090u4Vjq9If+DGg735kkGmF+nLDXTpVAX6sB2cCIU7hN+kFfAGmJq05Ow+F0D6b63e3AOzSUEt7ir8LG00/5q7U2LYUdsDwCPgL6AKm2+t87tz4Uf8MPU53My2MqQP6eHIPMnbMOqWuRNAlnU4mPDfC2JDedDW0SV9cmOgtxZ9TYx5wkqS12mAUi2z3iC4za2sPcVFfitEmnDdxCfU/8gCtt4BCBPb9lXGwD7wuTfNULuKTwAHm3MPEBLqhcStx+2Ap/StlTAeV9TzPbpUiudPrOAIDp1B04VkeRu956GWrC0hiJzj4d6uKcyNOcc4pIGzj/wSFmrsTjOqAoULony9rQvui5ivq9AvVCrl/ZgVh4V9dSvIDiuOlYcDIBcYiu+bIBKIZoq+VX5aEZCAel5vHVKDuXzEUMHnUuaL9tS7HlXTcCi/Brqo62RNiuHhgOe1MX4L4NGNxz0Ui5vxmAoRNPVF7saVpEBK4TgfGQaDljInCT6H4RowF/p54uoVyfWoGwGUwpQJjxmhUIDk25dkAdX7MC96mb1R8Y4a1AiBC2+81CsLreJTxVxdeQkDihHx8llEwhWzE/isAFjTAjACHjs95wYnjvUoq6kNfXSjMqyeUGRPCUHcIiopfwdI0AvENYxC0mrYsAXLYvonDjXRoQauDmR9xyqRJapR0swhTCUMXsIypwj3fatv1H1utTgeAEpvLTEIBfBVQgWKIpJoIdiItLChBGYNJKZzZAGjC3aWVHriARuG7TShH95YUuCbhs8JXTfOmi2RKTgIk+am/g9jDOnIDwYJHyMjYaoVO+ULbQgGNNBONF4saJkAbc16h5s/Q4R+CCjCV1waN63eRpQHC+q81WWUyoDZ0GLFwh/WTSaDw8QF7qAYy//HbabDssHyts3/jYgQp5VvK+qLf7AjuSd6R/IMByvq2ymx/wvtAHa58SvIB/MclrG7sHMLxp4DkAf/sF32ePBat4VGB88mPZLzTyqMBqWVAouDtV9iQCReHyXw7BKb+uqR0QgVhaPQtJGA+OraeMXYFY/BUPj6ueMnYFxgLIN5A91sv0PR2B/Ppq4Qr1GU6DhALIM5zY2NMRaD8BOU75YIH/A6qoVYOuG6TdAAAAAElFTkSuQmCC", + "liq/smooth": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAJ1BMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADdEvm1AAAADXRSTlMA//beFK1eBZInd0PIkcoy5wAABbFJREFUeJzNW72P3FQQt3L2em1v470EAlyRVUCIpMlKER+i8e0pEqLCCImPah1oEE0+FClFirVSpKBhD4mKYq+BhgIHpERUtxIIIf4pPPPefWbfzG86fkUaz/7sN2/mN/PmXqLo/4P0j69g2+LqZz/9rhl9WW5XKOFe2ePqF99JNrd6kwVK2BJh+apkkk17i0OQr2A++f1PyeIGSHif+S7dEUwGEzL5CCQ8YMKbkknDJnOML+O3j6UtGTDfjrSGU3jE1i9JJuzB8lOMz694IVgUvIbLIJ9b8ba0HI7TcgUSjtj6LcEiXas+OQ19A4eWLY5iXvEl9ZViHp3BbS0I3SsXMGHcKkGYWGKQUKzl9TRqHp1HPpGSNCadGf9qIYw+qISHQ9uW6Ngnwr9R60L3daspxxl0/2oWnJnwinuHf66YsAvfQQn7EBv/LJvMLGkXdaQzsjWJ2zbKxyGmrGdqEZpE1X5XEWEXdnrMDi3S6lZ8KNpQiR1XIKFbsWzdaWJ5Gg2g7JQnr4F8GSKcVE7eBAlHarXr3WzuQKRqF/momWN8rnqvZKOcbECp4eq9oxglhsSrgRVHW3jU5FD1vouLYaPWd8ISloZUbzIJlCivQIQsS3pA0DouYoQ1FBAUq1cwwhb6QiIEe/8G6oBanJD2T7dtVcE8xr0S8beBkLVGVToDIRcLtbE3bMoA0QYLYcapUilWFAsvY4Qpy6HWRxoyhauFGoidoUa1elGOol1DI8KpovnnAhIKHkskEEdIKHhsIYFI0ToGjygJEogDJBQ8qKi8+0wxygzNV1G+8bVuNcGTOf0W8U1tiGwIB3gdxbA0xA2EkaG5YaTK89zSz/V0z/9SLLhBfB3l++HjcqzZ1Hg2x48R/3T4McBp9kqx2jI4cYrYDqDq6FAjtT6d6q39EVhi1WatwfWBJVYV+Ef4miGJdScLbOI8hGq9czU0FuEN1A8NM2ghBE6r8hPovdhximv9WDWt4W1x09cdLfv4zAXNgjhuyvKaErbuHIxsixu/luU/il2HbsvAE5ZPELs5wPibJ9xWanmLymzcesbLlWj3gGygU2kx9Yxvyy+ewi3JrSM3yvHNU0lswHTbE8rxzduCFfy49oxyfNd4acknnlEsBjNcZqMffeiI7+eCD06EUpfS8jyDSwvaNbnYmctGHaSdHg+PUjWrgjYjOBIJT72Y7IXje6Du22nENW9Jug4f/tiJcNcU5dfp30RqdWjr4OluFPGXtZKXdlF9OMFA3Gs616BnII9OTAbLGciBS8ci+JiLbvjxBuwpgUHbfGghZNkRursWz+aTH0iDLurrwEmdA2uEcAxb2gLRV1/hE+6CxfnMF0gtjGEe60DzBWlNlnHB8Q8kDbWMoI9/IDmJG14LYa60B0xoSWatQ+YXVgZCPqoJh0kzoRtth39h+UODw1T+xdBMWMuKZydURttDqw+dOqyCjxNr2Dh1WAQfj+Qg2IClLNkXrKnnZuVhyd61ioM77l4JPu7MhTmRJbuxCqyLi7Bkt9YSoA1A1rKgb0AhSnas1LANyETJLpSyHfqGoNuHpo7TYSIFxpacmMFvCObC0iw2Tm2C2Xpg7g/dXaegD9fmRJEvlGVKG/Ai3BwgeMcvN4ehcj+ON/nQQsgVJXx5qjNHDZ3Pyj/l91UWQlpz+IibKX3Kxt+sy/eCD4fmTe7xUJhv8YkevibTBwXPlr4JGygl9gU0O5X4nM+i8DUZvpXxvmig9Y7nsa+tZyaXm/PgSZR4sfbApq7u4upKeOPEJoa15qHE5sJcloXIJ7J2UeUEjSwLR/dWFyifu8kTlgW/BPy++Peq+b4pkd16wrIQ+QE6HDT6BTpeMZ53HLPXJQvbit2F9rlgwcKAr3imvj6x7XGnhpjukzO4L3ULBJfHc5iQ/geBeFk9Nt1b7fHhVBQu9wcDU1+YKi1V+ssk/Mr/AFUZEz+MCHxSAAAAAElFTkSuQmCC", + "liq/twirl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/9g3YHqYtN9pj0cAAAOrSURBVHic7ZpNc9owEIaNZfC1pilcgbT0WhOSXJ2m7Tm0nZyhTcu1TlPy94tWli1/CK3T1zPNDHsDi8eS9t3VSsLzeLaIpP1itmaYIOArHNCLifgOB+wTcIIDehsJHAGBPnrMAu1nbyWBJ0BgKIFDIFCN+QZIXKGF46MnMUBPojeVxAQIvEIrkSbxJRAYoFOYB/fKBpwfVJZFxoqPdjOl7RdAoEAHH8UKchkgN4+RQAo+JDBGC7GHzjc+WtkDCVwDgX10qATodUp0AkQGs3cEHoHtrRthI4EBOjnA01fYSemQAIG9TqolII92FvCyHVqKdLJTQYZyiI68Xifbx1YyXN7ez6Qy3v64bno8baea5TYybPin1hXR6hxjeR9VrYoMW2zNxLcaTvbyS6lRzHfyxbSJt7cHs1XKzjWfLbi9vTFGETF9IlI7z9x9+uWPVgtsw60SaQvgDjwXL4peZy3pgzNOarzZ4+7n9rH07W9qSaJxZ9cyb3etpSc+GU+SfMTuKTRow7uykAstyd2YOliatADe1UMtl9Mp/7hP/2Te2PSyGHSqu8oDfrc8vsiejwbMESvgOLE+132cFt5xA0eHZmZhuI2TuqJCuBZbFcAJC+jgeSJXz5CT/Z08HSIRM7e6ecWgEw6QY4HicY7RAhZwwPfxigXUQ3YX1wNWrReYOeKwpSxgnOvw1NFywatGq4nRanIoDF5Y8Bx+SXlA5ZKNe9DMcyyVqU/6WR/X1oYqL7mBasQ36v37eE4s7TKxuoGrbO60eCxEnYndwDxvLQ4RNc8NVCOhvJXqH9XXi/f6kTveSdVqJ6H9sq+gyokxyF/FWBWpbRbExmpg1KJLo7R0R7sovXdjaHxfhp+dLT/cmqUHI7mGpYkRhwsrTn6LtY+VHSzVxpwlhwaZFJ/7diJrCatfeFj7yOqfCo/y9tPQSGn+eBss8kmlChZNJf5D8+9rRj5ZV789r3ZynjB51t3iubntmjfuC5strfokN/FxK7eZs93XVrtT2QHkNRk5GXmRR7lrAgT6jU7+B4PfdsQW1TzZSIZAHv5OS+oaetQ1BesafnYm0IECB8JP9+BA+HXyEfi/AuHChgPhyQGZvtqdCnMsQi8BkbW0eaJN0ate2sm6nACBV+jaJkZXXz10doD//W6ADhX8//kitBApVJDXZLQZRd54x2jd9NC6CdEZUR0nAYHMW54WtkGnhxi9NPvoaO4/E68gYyXuJFbw/xNPgMS0E2k/g0lkK/EvxGqmmaAM3vEAAAAASUVORK5CYII=", + "liq/shrink": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/7Pgg08nC1hmBlAAAAVXSURBVHic7VtNcxo5EFUwzFwjyMeV8eKcd4hrz8YOyTW4jPcKWzG+7lRM/Pd3pBHDSHrdGilf3lTewS5mpIfU/VofLSGEj0wqTMGbFkNVYsKVsFCo4q+5EpUq8ao34VYVf8GVWAT7YKHp0L90gbxUJTa9CRsjfqQLjNT7cW8+Y8Qp/X4QZ0JjRKaCfn8RQTgIeGURZ0JjI9oreawJhShZr+jvexlFuGK9oi3yZxThZzZWqoCqAIasVxYB3QNkbPAXocgk6lDCyGJlrbBipDuM94mxO1FpEBsnbSWiW1VsnCiMGDevouNE8NGV4mTjZqy1MsHJxs0wGrIUJxvLT9GbYYqTjZufk2/iIlmBHqIq2rocMlI3SaoRjS/h8LBIUo2ZN1DPiiTV0LrJSW8FUBHqGMWtQo6gJo5EGZqKYFpJlCEtxJM0GRrjA3lsudmGRYkFnKrrRm+gKam6JldERfQy5ABC2SW3pmCBlZ04vCqcwJAIBMqD+It8h0OFD5RRKeQb6iUOFXaW35dSSPme+jYYKidM5D3UDqsJ5Qf8Go/Zz+hlg+LThESvcezpDQAsfy3lgVCewRIw9lZEKOdXskMoz1EnYOwtcCjvC2kRyvHffiE4q2DCT6V0COtue2McDGa0UtpftSwdQjl29QODufS0lF3LDkTR+TC3+w13dK4485uyy3cmskX38/y2U7YChM6CPbPpdJDkV9aj+bK1mtbwFBAe4vHu0qabmBCxbKA57/VzHWXO6KDjUU/z+5s/nHrjtilHp7ecs/U9XNE1W4ovN5deFUsm2ZX3uu6AbsGrxw7d4+4fULAp7WjEb+QRbw9gyvihBhvZF56ENfaukfti4gfZod8plJOZ19uvoeTpdMeBIEiMlyE6hcxTLNW42zBZyxlq52S2jlzS5Xc3pxTbbNm/bRZ07dPTRtKT+t/pjEsdhKG67Uwq0Ukqj9CZMr8BoW37ryMEm3Byf9WfcOM/+tUJP/qPUvl+E2qA4PmZhIsnT/j0bfi/1OFTJNz4j57YePjNCX/ErJdM+F0merQUScnNtYRosZRGyC7n7iPJ8uCC8+3str943D0hgZ5LYnfDyiK8aM9i9gBNM0GyIp1Og6TMr1PoFM5gx++KcE0KkyXobTqdwtwR+wPZvJfr3e7xsd6F1392u7WbTsCNzEGx+bu13r07OYcmqbhbX/rbt+Me3Nt7m30XSnHqJIZOs/jbt0O6a+90d740QYWSsFaWMne2mU3ewck2dFSlCS8c53UJVWtsZ74Rwk5zWNvpZ4BQ7/+sZJqtjzPR/XRu+75Sz1AyzUn3jbo+4LJzOpm2cR4WPmFttgIQ+qmNlXqMEpJ+yvQolAOhmxgi61KbvU824Qu3Z4e6MKkLp7192SE8h8M5PEfeIk9pjIqWEGedtUNxYvwCls8KQ0idBqiqOHU/xRUUI3MWYCUzW7D3RGpGQZ0EmLDFxx/kSWZWCvL0o6k6hV9Dn7WOyDfUyUkOLdsLxMkJ9H0vVFjCMJh7gTg5wcHcByvcFDL2giDOLOEo2QsldieaGHohJwSXdH1HAQeKeZ5yOIoDxZ/3eoM8YkxV9gklD+IgOwjyLD5ViMQBHjcJ8CBvJnFjNgNKhvSNigAoGSbdPlSgD6apGxUBMAfTabpZEUsOkaobUjX0TRwexOClkHCFkx9ThiluHnArDpkwT7F2SknesIcIKZmMkuvVNj6a+WE5+va0qUIOANx9TAIV2ykdzXFeCZi9iI0V3QQm/rexscLfTTZDUUysVIFBOfKHC+HfETRe6S/t5ncBG6ZEESftYTD6t3FGDBcfxA04RVAVI9KI/wGIdk2Ub0oGgAAAAABJRU5ErkJggg==", + "liq/blow": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAGFBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWNxwqAAAACHRSTlMA/7KC4FAnC04hTXgAAAVLSURBVHic5VtBd9o4EFZxbF8X4m2vGELPdVnSa0zonpf6kV5N07DX+mVT/n6RLIglj2Y0St5L+vY7kBdb+pBmRqOZkRDCiWh4QGY9TOTD4djdC0Eju761n+by6bsgwgIcy1Y+PQ/hS0vZtbYft4L4EUAYy56j3uNWiP8EEA5AEWohjgMIlbA+OJ4DX0SiAEWoRx6glRQWoZZtgFZUvz+hN2WYVtTMrqA36zCtNM5x/Be2VgqnpKIwreTOXgnkNEgkiLXlDoNCETl1orUCmDyKAdKpQb7MiQaZlmuVo1g71olEHKJmt5KRVYmhxGal1MxbzQkq9zV/NUeoZTT81TxAx6De/sEibFApuV2bE5jVaAnz7KbAe5Rs95Dja6Hg2k1KSJ1tNzFhFw3X3+BmiG04WAdkShF3WzkjhM42xC1hFinXEHG7Fq0hchwYYdetnXIsO6dE5IqkXCgpJTIt++Ref95V88lktVodviE7/JlM55sbqX2mZSur+FxNVJzVx3K6+M5zsRFMZOPKl+/uLz/C8xsftqRyTBTCaFFTdB8ZdBLZ9Otz0ik4KdMvIXQSM3Did3kg3QHZAphtOJ3E0lo29+DwMrkyNrvdfr8X4vCx22028/nkAhKNMcj0C9BgvvnXqb3dBhjA9UmSCWTIhD/eAl1GWt0P1rctF/KTiFAb2eZTdWHO6lK+ujUlcrAq5WyILeiNbDM+jMZU5nshvpl0Ug7K2RDBldrGrpTADMqZMMTa6h5LKY7oRnRxVwcdwtGlbuxNeBLLbQ4Qzn4Yjcc4YWQq7tFQjoTZ5WNjb8Kuad2ahOd1592ZB2E/dngoO4TXRtihCIkdCEh+4vxEODMbN2GEIsk14XursavAYnRWdmE/zBXhpd1YERK7OEgoGcXwU6/x2oPQke8lpbDn60moZA+ESzHUVhHWYYQgCh9CTqriTTh8dkLP3KfwactJwr3acoo3vwmhVyPPKPt/SOi1CF4/YfHqCV9Uhq/fDn8TwtfvD5+T0GvX42xSL0PI3ugpi+CEIusXIRzChPfi7ycQ9gPOuBS9CNsvxoYj2ENq4YyxfYJ2uyJ4X7ZZgB1lN4GEkq/NU6xZH3NhktDM+ts6Q5tJmZlPUGqW6vRR53rXdeedT5VaEXbKCKc6wzEbHXXqTT6EVnr7WGeA8mXVmCgRGKXxh05K78zoiSJGJ+tPjKqP6NZYlu28bflAOIklNeuNM5EU3f+XN8KvMK8twS5fykmmZl1puagBG4MJZ1a9MdNLxK58LeUHUel/M+xjVB/fWsWl9q27lCbEz6ro95h1NgSwnKaKfTe7fYdov7vbVB/B+nZm+RhokEesjkDaXNfCAjhIX4x6LlDi4YLuCSKbubbT2xDKbNqb7VMocTo1cU5xnC7dSySV5zD9Dhcknvv4Qxe2qskKJlpNF5X8O/YmVJuu9A7AEdJCHSFh9yogSL2g3kE5G8bxrfS66DlgIwlrf8JiSIRWKrjw56OrX2tqChYaSkQFJWQLZBW2HPKOg6nSuLIrzgUZZdnIzhzzFgoYWxmIeAtFkJbNXSjkgfQZ065JQ6TO8OEeiCEWTLsmg1jsRhMMPKJjmyEVgLHNkLoZwbcawm647lUCtRv1knmLs8FmxbcaIrXgOi+J3qlYB5QvAgGf6LTwOabrA6l6oPJ1onCbRhGgZO0exuAr7u2dFu57lT5pDAD3vcpBiJL1agYl1QQpWasZ0iWiLhRbx1pRQ2ff/BXapQCyD7yb7PjhgtAiDPmlQauVvqyKQJ247uu3vwuoQwi3oBAjxGsQGIBd4a/xQgwKMSd2vF/smUx3JGjqLwAAAABJRU5ErkJggg==", + "liq/pleft": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgCAYAAACLz2ctAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA25pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwgMjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpFQ0E4RTZENkRDMzVFMzExQjAzNUUwMDRCNzlEOTUxRSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyODlDOUI2RUI1RkIxMUU4QjZDRkZDMjM5OTEyNjQzNSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyODlDOUI2REI1RkIxMUU4QjZDRkZDMjM5OTEyNjQzNSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cykiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDplNTUwYTQ0YS0wNGU3LWExNDgtYWU1My03MmQ4NTJiOTA4NDMiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6RUNBOEU2RDZEQzM1RTMxMUIwMzVFMDA0Qjc5RDk1MUUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz79MJ0YAAAFjklEQVR42uydTYhWVRjH74yhVkIFZggVpJAKSYQWQcuCcBP0sXMbDkSLXIggoqdAFy60lmG1iwgzqLWLooQW4aYgUxJEQQzKDxwSHX19ju8zNBkzc899P57nnPP7wZ+Bl3mfe859/nPfe+57738mer1eA2DFJLsAMCBgQAAMCBgQAAMCBgTAgIABATAgYEAADAgYEAADAgYEwICAAQEwIGBAAAwIGBAAAADaMCHiwWDgHBAwIAAGBAwIgAEBAwJgQAAAAAAAAAAAAAAAa/ZSP1+WFDCH7/Tn99QHC3qqvdQHSwOOqom514cxGnAUTcy9PozZgMNuYu71wcCAw2xi7vXByIDDamLu9cHQgMNoYu71wdiAgzYx9/rgwICDNDH3+uDEgF2bmHt9cGTALk3MvT44M2BqE3OvDw4NmNLE3OuDUwO2bWLu9bNvYO7vH7SJpdc372/tBlysiaXXx4AODLhQE0uvjwGdGHC+JpZe37Q/hBP9lwnqswixOgKGSuvzEezAgKHi+hjQ2ICh8vre+1v0hehQQX1wasBQSX1waMBQUX1wZsBQWX1wZMBQYX1wYsBQaX1wYMBQcX0wNmCovD4YGjBQH6wMGKgPVgYM1AcrAwbqg5UBA/XByoCB+mBlwEB9sCJQHwAAAAAAAAAAAMAvMUvEw8PBl0X/iC6KzolOin4V/SQ6RZsG4mnRi6JnROtFT4geE90vetjDAHvOdUH0meg10VL8tChLdV99qvvOe3/dD3Cu/hId0r9q+P+R7pDuo5x6mtVgZ3VLdET0LL67uw+O6D7JsZdZDnquEeNHzaMVGm+l6JOMjVeEAWd1SbRdtKQC48VQ0fd0ziX0rohJzOpH0dqCzRfn9kNhPStqMlHXRFMFmm9K51ZUv7xkCj8iWi5aJVoj2iDaLHpJX+vC59q06cyN96DoY9HWju//U3Rc9LPoN9EZfe26fozDImwS7Red7/AX9kvml2zW6RxS531e99km7DM84gLjDf1LTmnG36JXMpzvqx0WGnHfvF7JYsyMeNrwln6UtG3MTdE7Gc3xXdFMwvzivnizyfTfNOTKA6KDidfBPnJ+dIhj+zDxOuhB3RdgxMtN/yaGtk37Vk/sPS42vkmYx8VMTy2K5EnRicRzpdWOxr868dz2hM4ZnB1BjiY08axoo4Nxb9SxtB33V06P4KDnUIcTmnlFtMVwvFt0DG3He5gVbh6r5AMJTY2rzZ1jXkFO6DZTVroHWOXmxb4m7RraF6IVYxjXCt1Wytj20c48eT+x0fH2/80jHE+s/XvimD6gjXmzJ7HhN7Tpy4Y4hmVa80biWPbQvjLY3aR/n3q66X/1N8g/9Z7UGqc7bH83bSuLHaLbHYwQn9Db1vSfImvLcn3PyQ7bu61jhQJ5O3HlOVdXRV82/Vu8Xmj6t4ndp1qlr03p71zpuI0ZHSMUTPzS3uONndf04xoq4Lkm7duHUeusjgkqIn5sHnNgvmNN97u+IXPiKjU+TTdtYLxp3fYkbYCnRF+P0XxxW2vY7XAvz6s5ZkZguljzqG4DYEEeF+1q0p8/me/ew11aE+6BuyvaLVbi46Hxe9z4uOhafS1emH5Ifyde94vxcvFxxz+a/uOP0XjH9TVYwIDkA5YN+YADinzANMgHHKHIB1z4SEc+4JhEPuC/kA9obETyAUnHIh9wjJAP6FjkA2JA8gFHBPmAI4R8wPkhH9AY8gHJB3QB+YDkA7qAfEDyAV1APiD5gC4gHxDMIR8QXBxByAcE83Mo8gHBfJVMPiCYQz4gmEM+IJhDPiCYQz4gmEM+IJhDPiCYQz4gmEM+IJhDPiCYQz4guIB8QHAB+YDgAvIBxwR3V7RbrJAPCFDkEbDX67EXwPQyBAAGBAwIgAEBAwJgQKiDOwIMAEbj62LpHZfeAAAAAElFTkSuQmCC", + "rotate": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAACgBAMAAAB54XoeAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/4BN2acpkSCoAAACoElEQVR4nO2Zz07DMAyHyzruFLZ7LHgA/t6H2O5MsPd/FbpuSdO0ie3kpwlEfbX26XPitKlXVXPMMcccc8RigQYSmLdowEACAxcNGEhgYCuIBRIYeBSEAgkM7ASRQAIDT4JAIIGBZ0EckMBAKwgDEhjoBFFAAgN7QRCQwEBPEAMkMNAXhAAJDBwIIoAEBg4FAUACAwPBciCFwPqlDZygjdX2kEcNBQex0zNjgk70Hil4snxECnbxBRXsJLGCbaylZcsE21gJiWJgs8aWLCfKFZsPtGLziVZcwRVlRSsUG1HvjBS3u0Mb39sJ4G2Woks8f4+IJkfRS9UPQe4uR3GQq9/LVzHIvg6SmwzFMPvmJ3N6cZQeEDOOyzjtVy3bFu46t9fWzF04/b2W1cxdia+1NbOX9r5oYc3cZ4WnqH67cPmNVnE63ysKF5H9eHSrKFxE9vN2qV1E7gO8VnYiPyJwNd8IgdwQw9UsexFU7JjF1SzdFXYQ5A60+AbKjKqeLNDoFKNZt4gbMTA97nOLKN5mbiBpF1F6+CpuZGpbX3hVtL+JJ6/UfcOMnd2uKIDJwbjbFc2nUHJ0r2/EKv3ngt1m6fOmi9TfH/aBs9EAU2EPn6Kz02H7RtHZ6ViigfbVpzkqlwXaztacvcsC3VH5R0B7mFWTl78N3M/AGaiP39/YFojilT9thGMn8XeBdDJmwIpyQaGiQlCkqBEUKaoEBYo6QYGiUpBV1AqyimpBRlEvyChmCCYVcwSTilmCCcU8wYRipmBUMVcwqpgtGFHMF4woFghOKpYITioWCU4olglOKBYKjhRLBUeKxYKBYrlgoGgAQF8RIThQNBBgr4gR9BQNCGgVUYJO0cCAJ0Wc4FnRAIFHRaRgp2igwIqwgq2iSSR/AFEvvdtaHTqdAAAAAElFTkSuQmCC", + "reload": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+mgFlSmU7P1AAAC9ElEQVR4nO2ZzZaiMBCFOafbBwiM+1HovWi753TrXofm/V+lQYSkqu6NwdUsrJWgn7cqP5VKkmXETt1hv3X5tjz8NOw3xM6HjZstPy7Bz3snbQH+vXHGyp8k9P2fRQfxzxRWu0zodntMZ3sL6VX/fEnz2dJ1/7hWcBtjA8/fhsdCst9RtqcnT+vbk3Qa9JG0ovHCzgk4GvBolReW8COnZ8fvwiH82OnJ8drCCU4P9jkLB/AqSbh3vJmEA7jmv5dWzp8WtZa2ubWShQH8jLCLCJfH7nTu2j1vSCrsU8f58ADWwnLmn4FfHn5TbwuVsVaYHr+8KlbnCNIZaHDlhiXat2++IvHOcYNGBz5ViIUjwTbXPVkYA2EPr8VcRAFnqGVGWCaBD8aCCa+95sIYFm0dEV6hmMOGiAmjBhMh6xUkMNhVIuQdZdEAlSHnzRJhJ0MhgysjSV2+5V5/AdaJDuBe46Qu2ot7DYWdeM07ucbw1X9m86k3nEHD/4yMEAjn4Wve1gxOChnHXARwzlnc2pWHo/UhqO3ysokAL3vZy172sv/R0FY9ms79ccQHW0i4+TUvZ0sYtaAMydniSS0oQ4rF8DWEERuBw0LwD4Z5zGHl9RfDaTXVDsK8cBb1YgNhLhyWfH1sSLhJ8noNYV6cCK8rBEcKQVHYXxAcqYquKjgrzNmV3o4YOHVjtQNwbGMVCt+6RMOR0lcI36JLby+5VaggnLYFHgeSgVnUMl+N0VkYO66OYXcMzsHRrNob3WMDMKD1YcV93iHY0PqIZpp3EJZn0u+tzpJTm2JYHCyZNWXONAwej7ROXQuWo7kzOUzNp7gnYD+KnhBuLBw5FZcW5Nbp1TrttFZOnOndhWywjYUjfxJOPfoUKW4WxvcX2uRKNAtnSefMcrp64RTHVZrZeOHHx9R6+ay9cPboyNdssa9OtGCUNvlJ36NErkHsZY25waE0YK3h7k66cspQ6rBHx9xM0lp4Sycu+A7JspP6cLW4Ga4WO6r6C9LVFP30/VNlAAAAAElFTkSuQmCC", + "cross": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/8ky3+Rv8AAABVtJREFUeJyt289x22gMxmGNdNLs0F1oz7nw4Nk6mN0Z70EF+JAS1IT6UAlugunAtxQRSdYfit+LFz+slkcM/A3xxJZIAFks/rfrj0ryXyL250fhgJ8ieX/gP78a2uTl8M4P6ETyenjjB/QieTN8/8AHjCJ5P4i6gms1tMnLYwwjdCJ5fYxhhF4kb44xjDCK5CMBRjgRzJOX5xhE6ETy+hyDCL1I3pxjEGEUyWcCiPBF8Ji8vMQQQieS15cYQuhF8uYSQwijSL4QIIQrwTR5eYsBhE4kr28xgNCL5HsMIIwi+R7LEe4E9+RpLEXoRPI0liL0InkaSxFGkTyNZQjTcq/Jj7EEoRPJj7EEoRfJj7EEYS+SHwgShOXQJq9mMYuwFsndLGYRNiK5n8Uswl4kzwgswpzglDwnsAhzglPySxMzCHOCU3J7qEGYEwzDv+IOYoSWYPixWLWnhgjt3Q7Hu/3kCC3B38foK0dQBIsCgiRYFBA0QQFBExQQNAFHCAg4QkSAESICjBARUISQgCLEBBAhJoAIMQFDMAQMwREgBEeAEBwBQbAEBMETAARPABA8QY6QEOQIGUGKkBGkCBlBhiAI5n8sHoF8hVsE9VwwvyyCvT2AAAg8AnuKMQiEwCIQAoeACBwCfZALERiBQWAEMQIkiBH4s2yAQAlCBEoQIWCCCKHyOC8ROEGAwAk0QoFAI5TeaBRChUAiVAgkQoVAIpQIFEJz+QZDi9BcvsUBEHyTJUfI2jwpQtZoShGyVleKkDXbMoS83Zcg5A3HBCFveSYIedPVI5C2r0UgjWeLQFrfFoE03x0Ca/8bBDaAMAhsBGIQ2BAmRqBjoBCBDqJCBDoKCxHoMC5C4OPAAIEPJAMEPhINEPhQViMUJqIaoTCT1QiFqbBGKMylJUKFQCJUCCRChaBt+Q/zfsF/uINt6QBh8E/l5+W/QuUA+XuwKxwgfxO3hQPk30IBIfhr5AcEnwc7fEDwibTFBwSfiRgh/FSmB4TfCzt4QPjNtIUHhN+NEMF8O7MDzPPBDh1gnlC26ADzjIQQ7FMaOcA+J+7AAfZJdQsOsM/KACF5Ws8PSN4XdukByRvL9jkCgJC+tT1JkCOkb64ZQvrunCCAt/cnCTIE0MHwCKCHYhFQF+dJAo+AOlkOQfTS2pBBUN08cVMlgoOIxQiqoynuKkaQPdUCgu7qFhB0X7mAoDvbBYSgt44Rou4+RojmCxghmnBghHDGAhHiKQ9EiOdMECGedEEEM2tDCG7ahxDcvBEhuIknQrAzV4Dgp74Awc+dAYKffAOEZPaeImTT/xQh2z9IEbINiBQh3cFoEx72B/ItkPYWHzYY8j0UkfFhz593jcQ9TrsyYBfHIpBtIItA9pEsAtmIsghoJ8sgsK0wg8D20gwC24wzCHA3L0Sg24EhAt1PDBHohmSIgHc0AwS+JRog8D3VAIFvygYIhV1diVDZFpYIlX1liVDZL5AI7YaDaaK3CO9izcQ00VuEg9jyMHOEBuFU7hzBzREahFO5cwQ7R5gjnMvdixhFOJe7ETGI8FXuWsQgwle5SxGDCJdy9yLGEC7lbkQMIVzLXYtYdD0gXMtdilh4TRFu5e5FLLp6Ve5GxKJrMoG6l7sWseia/J+PNxEEA7VRlTuKWHTdEQ4iCGaKN4RpuZ2IRdet3jcRRDPFa73vIohmitd6DyKIxqqdKrfDBLd630QQjlVHVe6ICa71HkQQTpY7VW6HCS71zstdcYKveptyPwuT5V6V+1oYrneq3JfCcH2lyl3tC8P1UZX7WRiu96rc18J+QafKfRGx6FrVdgnE9evZA749e8D9+g2w4Fwzf7ERbQAAAABJRU5ErkJggg==", + "checkmark": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAAgMAAAAhHED1AAAADFBMVEUAAAAAAAAAAAAAAAA16TeWAAAABHRSTlMA/95wQrXL2gAAA6VJREFUeJzt27uN3DAQBmBhN3Igd7ElMDDgNnh7gDdgARdcCWpi+3AJakJwBc6dOLek067ImeFoHoltcLLDSf+Jn0WJGtBd16pVq1atWrVq1eo/ql/O8883Z0B/dQaEOPgCpphc559jfHUF9DG+uAJCjD6EaQ5IjvNnAh9CvwS8jPaAhSDG7/aAaQ14M5+/EsT4zRzQfwTE0RoQtoB3a8C0BVin9EYQo3VKPwjMCOEZkGwB0zPAdjc/CaxTeicwTumQBSRLwJQFWBAyAhtCTmCa0qEIMEzpexGgn9KnWJY64JM34OINuDsDIIH6kQAJ1A8lSKB+LEKCUXl+I2gEfyNB0gZAgkF5PiRQvxQggfq11AgaQSPoGkHXCLpG0P0rBFx3TkLAduckBGx3TkLwhVkwiQh+Mks2EcGdWTFJCE7cmk1CsFzlWDlfRLBcZe0zWDQRlqusfQZDAuq49Sprn8GQgLrS9Sor7T1EQB12qUYvt1hZ5IXeq4NbbrFjAq69d5YQ9MzoPksIAhMuIpiY4SkIyHQNAXmXiwj2YQ7M7xiCfZiJ+R1DsA8TTTQRQXazIwQRQT7fBwtBPt8hgoSgmO8AARFQj+5ivgMESEA+N8tHXokACcgnd/nIKxEgAfnuKIdZIOgJAIKIoAfH5AgiggAOyhFEBBM4KEMQEaCADEFEgIaQIYgIEGKGICIoO90FgoyAQZAR4JE+EaBObQmD/tADAV5abRGFhvpawaku4yD2hoD+eSoEVQQpQRVBSkAg3HQEGOGqIyAQRhUBgfCuIujwSvCmI8Br0auOAK+G56M1BHgxOl+vioBA0BEQCIhg4AMQwm/w89HXNkKAdfi1DRFgpaMAiKAkIBB0BIcIgoYDj3BIcIRwSHCAIOm5sAiinguHkCQBHMIgCWAQZG0nBkHYdpp8BMRaR0dAPEZ1BMSDXElQR0jSgBrCIA2oIMibjxUERfORRkjyABphkAeQCJr+K4mg6r9SCEkTQCEMmgC01tG2oNGCT92Chgs+dQsaLfi0LWiEoO3C15b+8oIISRsAEQZtAEDQ71cCCIYdU+UbzrBdqXzDGTZMlS2ZUR9QvOZNWyBzBNMmzBzBtA00b82NloAMwbgL9OIjyBGMO2FPToIdwbwR9uIj2BHMm4FPToIHgn0v8IZg3428IZi3Aj8QRnvAiuDa3B+ifS/yWr2P4GOtM3oC5rWO8/83BB/BguAiWBBGX0D3w3l+99Ub0KpVq1b6+gOHPSRKOIZnzgAAAABJRU5ErkJggg==", + "pos": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4BAMAAADLSivhAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/9cTVpQaovGbAAABlklEQVR4nO2ZQY6DMAxFKzU9gKv2AKgXGEViH25QNPe/ywwwUCAuE/ttushf0jy5+gTbsk+nI4V0+POxupufPTfXLzccRR7+wCLu0Bf51dMJdwPstCzIqOSC4wS7LBvsGuSy7C+wL3Q/w3c7G2RRMsPdCza/rdkul2VRVjJatg5sDn2RjWwXvNvCJsuC7JQMcNzDBsu2dhktywJbQvc5bL/gA2WGKlzhCn8C3JbA3zp7bkrgN9ksZgc1WM9moSmDr0mBO+WgBmvlo1UPqs8yz8Y8XwhnnsU3B9VnO89CY4F3nk0ltRTeetaKDV57NlfFcnjl2VwVy+GXZ6Gxw4tnSwNigGfPWvHAk2d5D1Gm0TOlhyjTY+WWPXTat2sW3Qh8Z38bGcZeFbok7HqyDwN9kiwZoDTEEiBLvSjps3KDCh0rsay4o7aCNTSolcqlwcWqcIUr/BFwL5nKhyxovIMGS2ikxYZpaIzHBohodImGpmxciwbFbESNhuNsLI8WAmgVwZYgaP3CFj9o5YSWXWzNhhZ8/60WfwDkFH1iPYe5kwAAAABJRU5ErkJggg==", + "zoomIn": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwBAMAAABdmfltAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/+UUmE52sBY+AAAE+UlEQVR4nNWb21bqMBCGu6w8AAXvkY33Knof3HgPW3z/V9lARfPPIZmcWMu56+nr9M80mTaTrrNY/7ndLpf3w3K53X4+mi6xUA9v91PPhtV7DXZ/WE6ZLYvR/eGeY89ul6Ff32TsyVYf+dwXxd0vp/9mYvt/IezJHrLk6AMyfMuRQbZwc8g2bjrZyk0l27mJ5Gg8+PZg576kcKdTczxPgu8Ft2Fn4/abNO50OrfJnCTwaCaZEwUezSBznyjwaENcjAwhThYV4zbL4aO5iBDJEXGxSGRktdxowfbLa7nRgu33rF61ff9YP/br18NWvfefdIchkTimGckuyw6vmHovMlp1WXRYTCDkdEN1WXJYG+PFzEBxWYrhQc1KXgWyEsu3wpmBnnYi+OHEM/mJ4R5cGA/mtvNiI4NAlq5gTRfPzXgLCs3HY80wLLA+Vog41nSWfIHnH46ds08UeDQm8x27Nz3DmCzQfpZpQZUwjuj8raLNR5Sw5iBcDKIFVSIhHyORQbQgStgd5i47OEqUSHCYuQxaECVSHGYugxZEiSSHmcvOO4T9RJrDzGU/4DAYxc4vZHvtciKxUwmKoZKeyOoBzy5HpWOqYyixPCSGwCoAJZabLgieyCLjkyhNFwSja99aosRKchAGoxZO3KsEcRiMWlx82xuUiIBRi0t3ARJrmV0EDE89jPt6UZ9EMGoxygltp2aMETBGluNPwUZZIxgb6g/ftcgF33D3oEHVHjMGBpHPoQXq6N8RMXDHMHArVeI4GBQ9PTgEhf5JFQVDDLiOqO7yweDg4rjjiT5CJhjes1mH2gzqZXEwtN6prfxoCwyjcTAF+TealYB9TQcSxosSsB8Fx0CGMHYlYAiLHYIDKVAcTFz07xP6lxEHg6gOlAnlVnFwh61VEbwB8JO3pXdBJvDeQ83IVhEYffTBizLwDYA39cB+gM0B7K4BnhrNBN6Vgf1Xbw5RXRE8XAf8WAb2B6ffCPZPKgTDNZ3lpCxwRSn8a35j410FXPXNa9YJXQXsOt0EELUrjSB7b2tRD9xwlH7ytirmFTNymyIwPnyz3O22HhjTWHgPa+bHjTL6Hb1PAZh+G7T5auqwLat9553CYE+2s8G+h3cd+6DMB9NPXPitUOvrf9GRD0qXD2YcCL9af1hOTw6BXOmf0PgKb9ieLLDv35zdqtJ/t/HBQZxFLhiCa2wqaM46/zbdeRcEYJ2/sV+CCn9ok8Eg8eUFhqeo8cf7TtpZ4x/9xTmcrqgwq+C+9qLw5fMgPwEAz1E+c/NDsMywBMHy/IptTigIlmeEqMiGSjBi+vUb5Y5Gwyf2G+lZPWIy9MuXkkwfl83yOu8QmfQsmpfGJtrjsZKZdOx4S6bSAxPpRZP/oan/rqRcgThMQyq7wIKWV9D3lpaE5Naw8NeWaBEq5PONVt3wwZiW3WTWCTn+TPSUrMomqQNjRV45tViSgBN6Uk71mKgfK6RLr3eT+0Ve+pdcoefEE4VixRBZqCnUgl8or0yrgtRiXyoITanb1AdLsSLUXmmqv6xy0e3qnbkr1saGRnelTNhWzRvqXdTCZkP9cTgdaVWK3a54XKq8tZkLc9sV6LdbUtBsEUS7ZRsZkWHNqJOXxpgX3bRazNNu+VG7BVPNlni1W5TWbhldu4V/7ZYqds0WV3btloO2W8DaKUtuy7Ejuski4bOt/WXNa9Ml/wE5YCpbayJoEAAAAABJRU5ErkJggg==", + "zoomOut": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAACwBAMAAABdmfltAAAAElBMVEUAAAAAAAAAAAAAAAAAAAAAAADgKxmiAAAABnRSTlMA/90TkEkQ3c9eAAAEwElEQVR4nNVbSVbjMBDVw+kD2IG9CbAPBPaCDvu4O7n/VRrHhKgGOTVIr1/+ztNX6VdpsFQKQYLmsP1Yrdp2tXrcHtaiTySs+4/7NkH3+FmCu9kD1m9uNzVLW4D67YOnHfH4186bM/dktJG2+TNHO+LJJEczI8OPHAZmCa+FuXmX8LbtrZJZyqtllulgUONiPKR4kvO+anjb9reUdzHbLii6KONtlLxfzDKZVQJPEMmsFHiCQGa9ECMEYhiEGHFRjIWNt23jBSHETRnjQtM2eW7CrP9snpsw67+X7Ffbz8Nm3WwO+2227Ae9wWAi8TXNUJvMG0wHzcwgmzWZN5gbMflxNmsyZ3CXcfYrZ0TGZM7gLjsreePe5k1mGl23y/GG8IthjuybtNHN8bLMt+x7Sl6WmfuCuu5iJ0s7AMZ91HWCYYFEHeM+4jrJTIR2hpG8MygFnkBkviNl4zdmupQU2DNEixuDEEeDsBjYIPw8ynhplKJQxkoo5mMoMpAWKCZknvs2GdkUwdPBbDAxGcQFUkJjMDEZaIGUUBlMTI7JIxSNKoNJYKQBB4ON7fzmkP28yddFBKTkOvNAOI1OgHx/Nuw5q5EQ0EfngIMaKV03ArrvR2RYE7XrqGknLaHEBiWwFpG9a1ACa3GybXArgbQ4ee+eK00JUOuOq0a0EUM/7eg9feuYACMr0lqQUVYK4KgHequ3Et9Q84BDTcE2AnjqGFpAHavEAcbWkYYWZQOpOAgKYxSPADEQA1I92omBgX1AnbHZd0jSZYDR1tl5offGeEtFd/iOEqUFLT3EqaYdGqF7DzGIgjXUPHqIQVjs8KUDyMSU2NGgAxI1AmVc0QbDoAfErmiD8daDIDH38hOGhGqJrlyANqbEvY/4BhC/1yG+BcTRR7wQEbdCZInT4Nv5iNOm11058dpHnHYW10fcAgInMfgmSF4yEReUohrxdUfFNTbptNssSPwfOno38ZBc9T5iOJhWI35OrgrOK5aoGBdg5avN3cA01kectrWK82MwDy83o9/hchwAPx1rPA93AP8bpL4s9p83xteArs1ILbwL5IfSDvyLC34oS/399wE5M9qJCQ8oqdQKy1hzsNhUaE1oasL0jgnUvqGI94CiU/8LxOmtxCC4JlctaFkGgHpHWokyq7HfgjIrtGrAtWKuFiVWvO+4myXW6E/GccvgSvDL8VD4AvsgPwEA6uHfuTkzPHu1gEqc24J7T4jfEcIbhe79vOR7uLkVswwZwBqnTnrJPhEB2pVKiTY9fbu8MXmERHLtS0MXDfCZZycddryerfSZjXTX5v/c1n8giRv2/AocUjjVJHIcrMHoQ9xucUqINYeFNtvhQskZ4KwbOhjjBCRjnlCkdcKvmDKbuA6MJHlZcrE4AWlamiF7jNWPJGzp8934fpGm/qkz9CL7IpOsqMwpzI09THqlLgsyF/tsfqUibzM/WLIprPJM03xj5XNYpbmxc6N7Jk1Yls0717tkE5sF+cfz05Faqdj1kserpbvXS9Cvd6Sg2iGIesc26h000R+NER+6qXWYp97xo3oHpqod8VIcSlP/FcrU0PPWO/hX76hiqHa4MtQ7DlrvAGuO2k87UVc5JHzEJj3WvBF98g8n+QTj6NOXVAAAAABJRU5ErkJggg==", + "intro": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDI0IiBoZWlnaHQ9IjgyMCI+PGRlZnM+PGZpbHRlciB4PSItNTAlIiB5PSItNTAlIiB3aWR0aD0iMjAwJSIgaGVpZ2h0PSIyMDAlIiBpZD0iZmx0MSI+PGZlR2F1c3NpYW5CbHVyIHN0ZERldmlhdGlvbj0iOS41MTQiLz48L2ZpbHRlcj48cmFkaWFsR3JhZGllbnQgaWQ9ImdyZDEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeD0iMzEyLjkxIiBjeT0iNzQ5LjgwNyIgcj0iNTguODQ4Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM4NTdjNjMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMyMjFmMTkiLz48L3JhZGlhbEdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZ3JkMiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiIHgxPSIzMzguMDY4IiB5MT0iNzYyLjc1NSIgeDI9IjMxNC43MDgiIHkyPSI3NjcuMzkxIj48c3RvcCBvZmZzZXQ9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJncmQzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjMwOS40OTYiIHkxPSI3NDMuMDA4IiB4Mj0iMzYxLjQzNyIgeTI9IjgwMS45NzEiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIgc3RvcC1vcGFjaXR5PSIwIi8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImdyZDQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeD0iMzA2Ljc2MSIgY3k9Ijc0MS44NiIgcj0iMTIuNTMiPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2ZmZiIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2I5YjliMCIvPjwvcmFkaWFsR3JhZGllbnQ+PHJhZGlhbEdyYWRpZW50IGlkPSJncmQ1IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjI4Ny40MDgiIGN5PSI3NTEuOTk0IiByPSI5LjM5NCI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjNWI2NzZiIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMTQxNzE4Ii8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImdyZDYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMjg4LjU3NSIgeTE9Ijc1My41MTYiIHgyPSIyOTMuMTQ2IiB5Mj0iNzYwLjE0MiI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMjQyNDI0Ii8+PC9saW5lYXJHcmFkaWVudD48cmFkaWFsR3JhZGllbnQgaWQ9ImdyZDciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeD0iMzI0LjQ4MSIgY3k9Ijc0MS43NDMiIHI9IjE0LjcwOSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjYjliOWIwIi8+PC9yYWRpYWxHcmFkaWVudD48bGluZWFyR3JhZGllbnQgaWQ9ImdyZDgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzUwLjQ5IiB5MT0iNzcwLjM2IiB4Mj0iMzQ2LjA3NyIgeTI9Ijc3OS45OTciPjxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzZlM2QwOSIvPjxzdG9wIG9mZnNldD0iLjI0MiIgc3RvcC1jb2xvcj0iI2VhODExMyIvPjxzdG9wIG9mZnNldD0iLjYyMSIgc3RvcC1jb2xvcj0iIzVjMzMwNyIvPjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2UwN2MxMiIvPjwvbGluZWFyR3JhZGllbnQ+PGxpbmVhckdyYWRpZW50IGlkPSJncmQ5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjM1OS44NjgiIHkxPSI3ODAuNzkzIiB4Mj0iMzYxLjgiIHkyPSI3NzYuODk3Ij48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiNiZGJkYmQiLz48c3RvcCBvZmZzZXQ9Ii4zMzMiIHN0b3AtY29sb3I9IiNlMmUyZTIiLz48c3RvcCBvZmZzZXQ9Ii42NjciIHN0b3AtY29sb3I9IiNhM2EzYTMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNkZGQiLz48L2xpbmVhckdyYWRpZW50PjxyYWRpYWxHcmFkaWVudCBpZD0iZ3JkMTAiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjeD0iMzY0LjY3OCIgY3k9Ijc4My4wNSIgcj0iMTAuMjEzIj48c3RvcCBvZmZzZXQ9IjAiIHN0b3AtY29sb3I9IiM2OTY5NjkiLz48c3RvcCBvZmZzZXQ9IjEiLz48L3JhZGlhbEdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZ3JkMTEiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzcwLjcyNSIgeTE9Ijc4MS4wMDEiIHgyPSIzNzMuMjAyIiB5Mj0iNzg1LjU5MSI+PHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjZmZmIi8+PHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjZmZmIiBzdG9wLW9wYWNpdHk9IjAiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0iZ3JkMTIiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4MT0iMzMzLjIwMiIgeTE9Ijc2Ny4xOTciIHgyPSIzMjkuMjg2IiB5Mj0iNzY4LjE0Ij48c3RvcCBvZmZzZXQ9IjAiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3Atb3BhY2l0eT0iMCIvPjwvbGluZWFyR3JhZGllbnQ+PC9kZWZzPjxzdHlsZT4uc2hwM3tmaWxsOiMwMDB9LnNocDEwe2ZpbGw6IzJlMzQzNjtzdHJva2U6IzAwMDtzdHJva2Utd2lkdGg6Mi4xMX0uc2hwMTJ7ZmlsbDojZmZmfS5zaHAyMntmaWxsOiNlYTZjMDB9LnNocDIze2ZpbGw6I2ZkYWQwMH0uc2hwMjR7ZmlsbDojZmRkMjMxfTwvc3R5bGU+PGcgaWQ9Ikdyb3VwIDEiPjxwYXRoIGlkPSJSb3VuZGVkIFJlY3RhbmdsZSAxIiBkPSJNMyA0My42NXY3MzIuNjdjMCAyMi40NSAxOC4yNyA0MC42NSA0MC44IDQwLjY1aDkzNi4zOGMyMi41MyAwIDQwLjgtMTguMiA0MC44LTQwLjY1VjQzLjY1YzAtMjIuNDUtMTguMjctNDAuNjUtNDAuOC00MC42NUg0My44QzIxLjI3IDMgMyAyMS4yIDMgNDMuNjV6IiBmaWxsPSIjMGYxNzFkIiBzdHJva2U9IiNmZmYiIHN0cm9rZS13aWR0aD0iNS45NjQiLz48L2c+PGcgaWQ9ImZvcm1hdHMiPjxnIGlkPSJwcyI+PHBhdGggaWQ9IlJvdW5kZWQgUmVjdGFuZ2xlIDIiIGQ9Ik02MC44MyA3MjQuNjd2NTJjMCA0LjQyIDMuNTggOCA4IDhoNDRjNC40MiAwIDgtMy41OCA4LTh2LTUyYzAtNC40Mi0zLjU4LTgtOC04aC00NGMtNC40MiAwLTggMy41OC04IDh6IiBmaWxsPSIjMDAwMjExIi8+PHBhdGggaWQ9IlJvdW5kZWQgUmVjdGFuZ2xlIDIgY29weSIgZD0iTTY4LjgzIDcxNi42N2g0NGM0LjQyIDAgOCAzLjU4IDggOHY1MmMwIDQuNDItMy41OCA4LTggOGgtNDRjLTQuNDIgMC04LTMuNTgtOC04di0xMC42NmgtOC42MWMtMy40NCAwLTYuMjQtMi43Ny02LjI0LTYuMThWNzQzLjJjMC0zLjQyIDIuNzktNi4xOCA2LjI0LTYuMThoOC42MXYtMTIuMzRjMC00LjQyIDMuNTgtOCA4LTh6bS0xLjgyIDYyLjM0aDQ4di01NmgtNDh2MTRoMjUuNzVjMy40NCAwIDYuMjQgMi43NyA2LjI0IDYuMTh2MTYuNjNjMCAzLjQyLTIuNzkgNi4xOC02LjI0IDYuMThINjcuMDF6IiBmaWxsPSIjMGNmIi8+PHBhdGggaWQ9IlBTRCIgY2xhc3M9InNocDMiIGQ9Ik01Ny4zNiA3NDUuODZ2NC42NmgxLjFjMS4wMiAwIDEuNzktLjIgMi4zLS42MS41MS0uNC43Ni0uOTkuNzYtMS43N3MtLjIxLTEuMzUtLjY0LTEuNzJjLS40Mi0uMzgtMS4wOS0uNTYtMi0uNTZoLTEuNTJ6bTcuNTIgMi4xN2MwIDEuNjktLjUyIDIuOTgtMS41OCAzLjg3LTEuMDYuOS0yLjU2IDEuMzUtNC41MSAxLjM1aC0xLjQzdjUuNThoLTMuMzN2LTE1LjdoNS4wMmMxLjkxIDAgMy4zNS40MSA0LjM1IDEuMjMuOTkuODIgMS40OCAyLjA0IDEuNDggMy42N3ptMTIuMjQgNi40NGMwIDEuNDItLjUxIDIuNTQtMS41MyAzLjM1LTEuMDIuODItMi40NCAxLjIzLTQuMjYgMS4yMy0xLjY4IDAtMy4xNi0uMzItNC40NS0uOTV2LTMuMDljMS4wNi40NyAxLjk2LjggMi42OSAxIC43NC4xOSAxLjQxLjI5IDIuMDIuMjkuNzMgMCAxLjI5LS4xNCAxLjY4LS40Mi4zOS0uMjguNTgtLjcuNTgtMS4yNSAwLS4zLS4wOC0uNTgtLjI1LS44Mi0uMTgtLjI0LS40My0uNDctLjc2LS42OS0uMzMtLjIyLTEuMDEtLjU4LTIuMDQtMS4wNi0uOTYtLjQ2LTEuNjgtLjg5LTIuMTYtMS4zLS40OC0uNDItLjg2LS45LTEuMTUtMS40NS0uMjgtLjU2LS40Mi0xLjItLjQyLTEuOTQgMC0xLjM5LjQ3LTIuNDggMS40MS0zLjI3Ljk0LS44IDIuMjQtMS4yIDMuOS0xLjIuODIgMCAxLjYuMSAyLjM0LjI5Ljc0LjIgMS41Mi40NyAyLjMyLjgybC0xLjA3IDIuNTljLS44NC0uMzUtMS41My0uNTktMi4wOC0uNzItLjU1LS4xNC0xLjA4LS4yMS0xLjYxLS4yMS0uNjQgMC0xLjEyLjE1LTEuNDYuNDQtLjMzLjMtLjUuNjgtLjUgMS4xNSAwIC4zLjA3LjU1LjIuNzcuMTQuMjIuMzYuNDMuNjUuNjQuMy4yIDEgLjU3IDIuMTEgMS4xIDEuNDcuNyAyLjQ4IDEuNCAzLjAyIDIuMTEuNTUuNy44MiAxLjU3LjgyIDIuNTl6TTkzIDc1MC44M2MwIDIuNTktLjc0IDQuNTctMi4yMSA1Ljk0LTEuNDcgMS4zOC0zLjYgMi4wNi02LjM4IDIuMDZoLTQuNDR2LTE1LjdoNC45M2MyLjU2IDAgNC41NS42OCA1Ljk3IDIuMDMgMS40MiAxLjM1IDIuMTMgMy4yNCAyLjEzIDUuNjd6bS0zLjQ2LjA5YzAtMy4zOC0xLjQ5LTUuMDYtNC40Ny01LjA2SDgzLjN2MTAuMjJoMS40M2MzLjIgMCA0LjgxLTEuNzIgNC44MS01LjE2eiIvPjwvZz48ZyBpZD0iZ2ltcCI+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzQ4LjE1IDc3MC4yMmMwIDUuMTUtOS42MSA5LjMzLTIxLjQ2IDkuMzMtMTEuODUgMC0yMS40Ni00LjE4LTIxLjQ2LTkuMzNzOS42MS05LjMzIDIxLjQ2LTkuMzNjMTEuODUgMCAyMS40NiA0LjE4IDIxLjQ2IDkuMzN6IiBmaWx0ZXI9InVybCgjZmx0MSkiLz48cGF0aCBpZD0iTGF5ZXIiIGQ9Ik0yOTkuODYgNzI5LjA2czYuMDcgMTIuNTEgMjAuMjYgMTIuMTZjMjkuNzQtLjc1IDM0Ljk1LTE2LjI2IDM1LjctMTguNS43NS0yLjI0IDEuODktMS45IDIuMTUuMTcgOS43IDg4LjA0LTY3LjMxIDUwLjI2LTcwLjA1IDM1LjI3IDE1LjI5LTQuNDggMTEuNTYtMTMuMDYgMTEuNTYtMTMuMDZ6IiBmaWxsPSJ1cmwoI2dyZDEpIiBzdHJva2U9IiMyZTM0MzYiIHN0cm9rZS13aWR0aD0iMi4xMSIvPjxwYXRoIGlkPSJMYXllciIgZD0iTTMxMS4xOCA3NjYuMmMxNC4yMiAyLjg0IDIxLjQ2LjIxIDI1LjctMy4wNy0xLjEyLTEuNDUtMy4wMy0zLjAzLTMuMDMtMy4wM3M0Ljk3IDEuMzggNi43MSAzLjY0YzEuNzQgMi4yNS42NSAzLjY0LjE5IDYuNTItMS4wMi0yLjUzLTIuOTEtMy40OC0zLjE3LTQuNDgtMy44MSA1LjI3LTEzLjMxIDUuMDUtMjYuNDEuNDN6IiBmaWxsPSJ1cmwoI2dyZDIpIi8+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzU1Ljk4IDcyNy43NGMtMS4xOSAxLjk2LTIuOTcgNC4yOS01LjY3IDYuNTMtNS41NSA0LjYtMTQuODggOC43OC0zMC4xNCA5LjE3LTguOTEuMjItMTQuNjctNC4wOC0xOC4yLTcuOTFsLS4yNiA5LjQzYy4yOS44OC44OCAyLjkzLS4xMyA1Ljc0LTEuMDkgMy4wMi00LjU1IDYuMS0xMC40OSA4LjQ0LjUzIDEuMSAxLjA1IDIuMiAyLjY0IDMuNzYgMi4xNyAyLjEyIDUuMTggNC40MSA4Ljc3IDYuNDYgNy4xNyA0LjExIDE2LjQ2IDcuMzcgMjUuMTMgNy41MiA4LjY2LjE1IDE2LjU4LTIuNjEgMjIuMDMtMTAuNTUgNS4wMi03LjMzIDcuNzctMTkuNzMgNi4zMy0zOC41OHoiIG9wYWNpdHk9Ii4xODQiIGZpbGw9Im5vbmUiIHN0cm9rZT0idXJsKCNncmQzKSIgc3Ryb2tlLXdpZHRoPSIyLjExIi8+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzE1LjM0IDc0Ny45YzAgMy4wNy0xLjYzIDUuOS00LjI5IDcuNDNhOC41OTMgOC41OTMgMCAwIDEtOC41OCAwIDguNTcxIDguNTcxIDAgMCAxLTQuMjktNy40M2MwLTMuMDcgMS42My01LjkgNC4yOS03LjQzYTguNTkzIDguNTkzIDAgMCAxIDguNTggMCA4LjU3MSA4LjU3MSAwIDAgMSA0LjI5IDcuNDN6IiBmaWxsPSJ1cmwoI2dyZDQpIiBzdHJva2U9IiM4ODhhODUiIHN0cm9rZS13aWR0aD0iMi4xMTEiLz48cGF0aCBpZD0iTGF5ZXIiIGQ9Ik0yOTguMjUgNzUxLjEzYzQuMTYgNS43NiA0LjIxIDEyLjgzLjEyIDE1Ljc4LTQuMDkgMi45NS0xMC43OC42Ny0xNC45NC01LjA5cy00LjIxLTEyLjgzLS4xMi0xNS43OGM0LjA5LTIuOTUgMTAuNzgtLjY3IDE0Ljk0IDUuMDl6IiBmaWxsPSJ1cmwoI2dyZDUpIiBzdHJva2U9IiMwMDAiIHN0cm9rZS13aWR0aD0iMi4xMSIvPjxwYXRoIGlkPSJMYXllciIgY2xhc3M9InNocDEwIiBkPSJNMzEyLjkgNzQ5LjE3YzAgMS40OC0uNzkgMi44NC0yLjA3IDMuNThhNC4xMiA0LjEyIDAgMCAxLTQuMTMgMCA0LjEzMyA0LjEzMyAwIDEgMSA0LjEzLTcuMTZjMS4yOC43NCAyLjA3IDIuMSAyLjA3IDMuNTh6Ii8+PHBhdGggaWQ9IkxheWVyIiBkPSJNMjg0LjA2IDc0Ny45M2MtMS4zNSAxLjAxLTIuMDYgMi43Mi0xLjk5IDUuMDQuMDYgMi4zMi45OCA1LjE2IDIuODYgNy42NiAxLjg4IDIuNTEgNC4zNCA0LjE4IDYuNTUgNC45IDIuMjEuNzEgNC4wNS41MSA1LjM5LS41IDEuMzUtMS4wMSAyLjA2LTIuOCAyLjAxLTUuMTMtLjA1LTIuMzMtLjk0LTUuMTEtMi44Mi03LjYxLTEuODctMi41LTQuMjktNC4xNC02LjUxLTQuODQtMi4yMi0uNzEtNC4xNC0uNTMtNS40OS40OHoiIG9wYWNpdHk9Ii4yODIiIGZpbGw9Im5vbmUiIHN0cm9rZT0idXJsKCNncmQ2KSIgc3Ryb2tlLXdpZHRoPSIyLjEiLz48cGF0aCBpZD0iTGF5ZXIiIGNsYXNzPSJzaHAxMiIgZD0iTTI5MC4yOCA3NTEuODFjMCAxLjYtLjcxIDMuMDgtMS44NiAzLjg4LTEuMTUuOC0yLjU4LjgtMy43MyAwcy0xLjg3LTIuMjgtMS44Ni0zLjg4YzAtMS42LjcxLTMuMDggMS44Ni0zLjg4IDEuMTUtLjggMi41OC0uOCAzLjczIDBzMS44NyAyLjI4IDEuODYgMy44OHpNMzEwLjA0IDc0Ny4yNmEyLjg2IDIuODYgMCAxIDEtNS43MTkuMDAxIDIuODYgMi44NiAwIDAgMSA1LjcxOS0uMDAxeiIvPjxwYXRoIGlkPSJMYXllciIgZD0iTTMzNC41NSA3NDguODNjMCAzLjYtMS45MiA2LjkzLTUuMDQgOC43MmExMC4wNzUgMTAuMDc1IDAgMCAxLTE1LjExLTguNzJjMC0zLjYgMS45Mi02LjkzIDUuMDQtOC43MmExMC4wNzUgMTAuMDc1IDAgMCAxIDE1LjExIDguNzJ6IiBmaWxsPSJ1cmwoI2dyZDcpIiBzdHJva2U9IiM4ODhhODUiIHN0cm9rZS13aWR0aD0iMi4xMTEiLz48cGF0aCBpZD0iTGF5ZXIiIGNsYXNzPSJzaHAxMCIgZD0iTTMzMS42OSA3NTAuMzJjMCAxLjczLS45MiAzLjMzLTIuNDIgNC4yLTEuNS44Ny0zLjM1Ljg3LTQuODUgMGE0Ljg1NCA0Ljg1NCAwIDAgMSAwLTguNGMxLjUtLjg3IDMuMzUtLjg3IDQuODUgMCAxLjUuODcgMi40MiAyLjQ3IDIuNDIgNC4yeiIvPjxwYXRoIGlkPSJMYXllciIgY2xhc3M9InNocDEyIiBkPSJNMzI4LjMzIDc0OC4wOGEzLjM2IDMuMzYgMCAxIDEtNi43MjItLjAwMiAzLjM2IDMuMzYgMCAwIDEgNi43MjIuMDAyeiIvPjxnIGlkPSJMYXllciI+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzU1LjE4IDc3OC45MWwxLjk1LTMuODljLTcuMjctNS4zMi0yMC42OC05LjE5LTIwLjY4LTkuMTktMi4zMi0xLjA4LTMuMDYgMS4wMS0xLjQ1IDIuMzYgMCAwIDExLjQ3IDguMjIgMjAuMTcgMTAuNzJ6IiBmaWxsPSJ1cmwoI2dyZDgpIiBzdHJva2U9IiM2NzM5MDciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjExIi8+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzY0LjUgNzgyLjVsMS4wNS0yLjMyLTguMTItNS4yLS42NS0uMDYtLjI4LS45Yy0xLjE4Ljc0LTIuODkgMy40OC0yLjQ0IDUuMDNsLjg4LS4zMy40OC40NiA5LjA5IDMuMzJ6IiBmaWxsPSJ1cmwoI2dyZDkpIiBzdHJva2U9IiM4ODhhODUiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIyLjExIi8+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzU5LjI0IDc3OC4xMWw1LjM5IDIuMzEiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2ZmZiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIuMTEiLz48cGF0aCBpZD0iTGF5ZXIiIGQ9Ik0zNzYuMyA3OTIuMzRjLTIuNTMtOC41OS0zLjQzLTE1LjQxLTEwLjA0LTE0LjgxLTUuMzMuNDktNS43IDguMTMtLjIgMTAuMjQgNS4zMSAyLjAzIDEwLjI0IDQuNTcgMTAuMjQgNC41N3oiIGZpbGw9InVybCgjZ3JkMTApIi8+PHBhdGggaWQ9IkxheWVyIiBkPSJNMzY2LjY1IDc3OC4yM2MuNzYtLjIyIDEuNTgtLjAzIDIuMTYuNTIuNTcuNTUuODEgMS4zNi42MyAyLjEzLS4xOS43Ny0uNzcgMS4zOC0xLjUzIDEuNjEtLjc2LjIyLTEuNTguMDMtMi4xNi0uNTJhMi4yNSAyLjI1IDAgMCAxLS42My0yLjEzYy4xOS0uNzcuNzctMS4zOCAxLjUzLTEuNjF6IiBvcGFjaXR5PSIuNTI5IiBmaWxsPSIjZmZmIi8+PHBhdGggaWQ9IkxheWVyIiBjbGFzcz0ic2hwMTIiIGQ9Ik0zNTYuOTggNzc1LjA3Yy41MS0uMTUgMS4wNy0uMDIgMS40Ni4zNWExLjUgMS41IDAgMSAxLTIuMDcgMi4xNyAxLjUgMS41IDAgMCAxIC42MS0yLjUyeiIvPjxwYXRoIGlkPSJMYXllciIgZD0iTTM3My4xMiA3ODcuMnMtLjgyLTMuMDgtMi42NC00LjY5Yy0uNjQtLjU3LjE3LTEuNC43Ny0uNjcgMS4zMSAxLjU5IDEuODcgNS4zNiAxLjg3IDUuMzZ6IiBvcGFjaXR5PSIuNDI3IiBmaWxsPSJ1cmwoI2dyZDExKSIvPjwvZz48cGF0aCBpZD0iTGF5ZXIiIGQ9Ik0zMjYuNTEgNzY5LjcyYzMuMTYuMyA2LjAxLS41NyA3LjItMSAuMjEtMS4xNyAxLjEzLTMuNDIgNC4zMi0zLjU3bC0xLjEyLTEuOTZzLTQuMTUgMi44NC04LjU4IDMuNjh6IiBmaWxsPSJ1cmwoI2dyZDEyKSIvPjwvZz48ZyBpZD0ic2tldGNoIj48cGF0aCBpZD0iTGF5ZXIiIGQ9Ik01MzAuNzQgNzIyLjZsMjEuNDQtMi4yNyAyMS40NCAyLjI3IDE2LjYgMjIuMjgtMzguMDMgNDQuMjktMzguMDMtNDQuMjl6IiBmaWxsPSIjZmRiMzAwIi8+PGcgaWQ9IkxheWVyIj48cGF0aCBpZD0iTGF5ZXIiIGNsYXNzPSJzaHAyMiIgZD0iTTUxNC4xNCA3NDQuODhsMzguMDMgNDQuMjktMjIuNjMtNDQuMjl6TTU3NC44IDc0NC44OGwtMjIuNjMgNDQuMjkgMzguMDMtNDQuMjl6Ii8+PHBhdGggaWQ9IkxheWVyIiBjbGFzcz0ic2hwMjMiIGQ9Ik01NTIuMTcgNzg5LjE3bDIyLjYzLTQ0LjI5aC00NS4yNnoiLz48L2c+PGcgaWQ9IkxheWVyIj48cGF0aCBpZD0iTGF5ZXIiIGNsYXNzPSJzaHAyNCIgZD0iTTU1Mi4xNyA3MjAuMzRsLTIxLjQ0IDIuMjctMS4xOSAyMi4yOHpNNTc0LjggNzQ0Ljg4bC0xLjE5LTIyLjI4LTIxLjQ0LTIuMjd6Ii8+PHBhdGggaWQ9IkxheWVyIiBjbGFzcz0ic2hwMjMiIGQ9Ik01OTAuMjEgNzQ0Ljg4bC0xNi42LTIyLjI4IDEuMTkgMjIuMjh6TTUyOS41NSA3NDQuODhsMS4xOS0yMi4yOC0xNi42IDIyLjI4eiIvPjxwYXRoIGlkPSJMYXllciIgZD0iTTU1Mi4xNyA3MjAuMzRsLTIyLjYzIDI0LjU1aDQ1LjI2eiIgZmlsbD0iI2ZlZWViNyIvPjwvZz48L2c+PGcgaWQ9ImFueSI+PHBhdGggaWQ9IlJvdW5kZWQgUmVjdGFuZ2xlIDEiIGNsYXNzPSJzaHAzIiBkPSJNNzY4IDczMC44djUwLjE3YzAgNS41NCA0LjU2IDEwLjA0IDEwLjE3IDEwLjA0aDgxLjRjNS42MiAwIDEwLjE3LTQuNDkgMTAuMTctMTAuMDRWNzMwLjhjMC01LjU0LTQuNTYtMTAuMDQtMTAuMTctMTAuMDRoLTgxLjRjLTUuNjIgMC0xMC4xNyA0LjQ5LTEwLjE3IDEwLjA0eiIvPjxwYXRoIGlkPSJKUEcgUE5HIEdJRiBTVkcgVElGRiBETkcgLi4uIiBjbGFzcz0ic2hwMTIiIGQ9Ik03ODAuOTQgNzM5LjczYy0xLjMxIDAtMi4zMS0uMjctMy4wMS0uODMtLjctLjU2LTEuMTctMS40Ni0xLjQtMi43MWwyLjYyLS4zOGMuMTEuNjQuMzEgMS4xMi42IDEuNDIuMjkuMzEuNjkuNDcgMS4yMS40N3MuOTItLjE4IDEuMTktLjUyYy4yNy0uMzUuNDEtLjg1LjQxLTEuNDl2LTYuNTJoLTIuNTF2LTIuMDRoNS4xNHY4LjQ5YzAgMS4zLS4zOCAyLjMxLTEuMTIgMy4wMy0uNzUuNzItMS43OSAxLjA4LTMuMTMgMS4wOHptMTcuMDktOC42N2MwIC44LS4xOSAxLjUyLS41NiAyLjE1LS4zNy42My0uODkgMS4xMS0xLjU4IDEuNDYtLjY5LjM0LTEuNTEuNTEtMi40Ni41MWgtMy4xM3Y0LjM4aC0yLjY0di0xMi40M2g1LjY3YzEuNSAwIDIuNjYuMzQgMy40OCAxLjAzLjgxLjY4IDEuMjIgMS42NSAxLjIyIDIuOXptLTIuNjYuMDVjMC0xLjMxLS43OC0xLjk2LTIuMzQtMS45NmgtMi43M3Y0LjAzaDIuOGMuNzMgMCAxLjI5LS4xOCAxLjY4LS41My40LS4zNi41OS0uODcuNTktMS41NHptMTAuNDkgNi41OWMuNjkgMCAxLjM1LS4xIDItLjMuNjQtLjIgMS4xNC0uNDUgMS40OS0uNzV2LTEuNzJoLTMuMDhWNzMzaDUuNDl2NC41N2MtLjY2LjY4LTEuNTMgMS4yMS0yLjYgMS41OWE5Ljk4IDkuOTggMCAwIDEtMy4zNy41N2MtMi4wNSAwLTMuNjMtLjU2LTQuNzMtMS42OC0xLjEtMS4xMi0xLjY1LTIuNzEtMS42NS00Ljc2cy41NS0zLjYyIDEuNjYtNC43MWMxLjExLTEuMDkgMi43LTEuNjQgNC43OC0xLjY0IDIuOTYgMCA0Ljg0IDEuMDggNS42NSAzLjI0bC0yLjQ0LjcyYy0uMjYtLjYzLS42Ny0xLjEtMS4yMy0xLjQzLS41Ni0uMzItMS4yMi0uNDgtMS45OC0uNDgtMS4yNCAwLTIuMTguMzctMi44MiAxLjExLS42NS43NC0uOTcgMS44LS45NyAzLjE5IDAgMS40LjMzIDIuNDkgMSAzLjI2LjY2Ljc2IDEuNiAxLjE1IDIuOCAxLjE1em0yOC44MS02LjY0YzAgLjgtLjE5IDEuNTItLjU2IDIuMTUtLjM3LjYzLS45IDEuMTEtMS41OSAxLjQ2LS42OC4zNC0xLjUuNTEtMi40NS41MWgtMy4xM3Y0LjM4aC0yLjY0di0xMi40M2g1LjY2YzEuNTEgMCAyLjY3LjM0IDMuNDkgMS4wMy44MS42OCAxLjIyIDEuNjUgMS4yMiAyLjl6bS0yLjY2LjA1YzAtMS4zMS0uNzgtMS45Ni0yLjM0LTEuOTZoLTIuNzN2NC4wM2gyLjhjLjczIDAgMS4yOS0uMTggMS42OC0uNTMuMzktLjM2LjU5LS44Ny41OS0xLjU0em0xNS4yNyA4LjQ1aC0zLjA5bC01LjQ5LTkuNTdjLjExLjkzLjE2IDEuNjcuMTYgMi4yNHY3LjMzaC0yLjM0di0xMi40M2gzLjAxbDUuNTcgOS42NWMtLjExLS44OS0uMTYtMS43LS4xNi0yLjQzdi03LjIyaDIuMzR2MTIuNDN6bTguNDUtMS44NmMuNjggMCAxLjM1LS4xIDEuOTktLjMuNjQtLjIgMS4xNC0uNDUgMS40OS0uNzV2LTEuNzJoLTMuMDdWNzMzaDUuNDl2NC41N2MtLjY3LjY4LTEuNTQgMS4yMS0yLjYxIDEuNTlhOS45OCA5Ljk4IDAgMCAxLTMuMzcuNTdjLTIuMDUgMC0zLjYyLS41Ni00LjczLTEuNjgtMS4xLTEuMTItMS42NS0yLjcxLTEuNjUtNC43NnMuNTUtMy42MiAxLjY2LTQuNzFjMS4xMS0xLjA5IDIuNzEtMS42NCA0Ljc5LTEuNjQgMi45NSAwIDQuODMgMS4wOCA1LjY0IDMuMjRsLTIuNDMuNzJhMi45NSAyLjk1IDAgMCAwLTEuMjQtMS40M2MtLjU2LS4zMi0xLjIyLS40OC0xLjk3LS40OC0xLjI0IDAtMi4xOS4zNy0yLjgzIDEuMTEtLjY0Ljc0LS45NiAxLjgtLjk2IDMuMTkgMCAxLjQuMzMgMi40OS45OSAzLjI2LjY3Ljc2IDEuNiAxLjE1IDIuODEgMS4xNXptLTcxLjI0IDE5LjA3Yy42OCAwIDEuMzUtLjEgMS45OS0uMy42NC0uMTkgMS4xNC0uNDUgMS40OS0uNzVWNzU0aC0zLjA3di0xLjkyaDUuNDl2NC41NmMtLjY3LjY4LTEuNTQgMS4yMS0yLjYxIDEuNTktMS4wNy4zOS0yLjE5LjU4LTMuMzcuNTgtMi4wNSAwLTMuNjItLjU2LTQuNzMtMS42OC0xLjEtMS4xMi0xLjY1LTIuNzEtMS42NS00Ljc3IDAtMi4wNS41NS0zLjYyIDEuNjYtNC43MSAxLjExLTEuMDkgMi43MS0xLjY0IDQuNzktMS42NCAyLjk1IDAgNC44MyAxLjA4IDUuNjQgMy4yNGwtMi40My43M2MtLjI3LS42My0uNjgtMS4xMS0xLjI0LTEuNDMtLjU2LS4zMy0xLjIyLS40OS0xLjk3LS40OS0xLjI0IDAtMi4xOS4zNy0yLjgzIDEuMTEtLjY0Ljc0LS45NyAxLjgxLS45NyAzLjE5IDAgMS40LjM0IDIuNDkgMSAzLjI2LjY3Ljc2IDEuNiAxLjE1IDIuODEgMS4xNXptMTAuOSAxLjg2aC0yLjY0Vjc0Ni4yaDIuNjR2MTIuNDN6bTExLjc0LTEwLjQyaC02LjY2djMuODVoNi40NXYyLjAxaC02LjQ1djQuNTZoLTIuNjNWNzQ2LjJoOS4yOXYyLjAxem0yNy40MyA2Ljg0YzAgMS4yMi0uNDUgMi4xNS0xLjM3IDIuNzktLjkxLjY0LTIuMjYuOTctNC4wMy45Ny0xLjYxIDAtMi44OC0uMjktMy44LS44NS0uOTItLjU3LTEuNTEtMS40Mi0xLjc3LTIuNTdsMi41NS0uNDFjLjE3LjY2LjUxIDEuMTMgMS4wMSAxLjQzLjUuMyAxLjIuNDUgMi4wOC40NSAxLjg1IDAgMi43Ny0uNTYgMi43Ny0xLjY2IDAtLjM1LS4xMS0uNjUtLjMyLS44OC0uMjEtLjIyLS41MS0uNDItLjg5LS41Ny0uMzktLjE1LTEuMTMtLjM0LTIuMjItLjU1LS45NC0uMjItMS42LS40LTEuOTctLjUzLS4zNy0uMTMtLjctLjI5LTEtLjQ3LS4zLS4xOC0uNTUtLjM5LS43Ni0uNjVhMi42MyAyLjYzIDAgMCAxLS40OC0uODljLS4xMi0uMzQtLjE4LS43My0uMTgtMS4xNyAwLTEuMTIuNDMtMS45OCAxLjI4LTIuNTguODYtLjYgMi4xLS45IDMuNzQtLjkgMS41NiAwIDIuNzMuMjUgMy41Mi43My43OC40OCAxLjI5IDEuMjggMS41MSAyLjM5bC0yLjU2LjM0Yy0uMTMtLjUzLS4zOS0uOTQtLjgtMS4yMS0uNC0uMjctLjk3LS40LTEuNzMtLjQtMS41OSAwLTIuMzkuNDktMi4zOSAxLjQ4IDAgLjMyLjA4LjU5LjI1Ljc5LjE3LjIxLjQyLjM5Ljc2LjUzLjMzLjE0IDEuMDEuMzIgMi4wMy41NCAxLjIxLjI1IDIuMDcuNDkgMi42LjcuNTIuMjIuOTMuNDcgMS4yMy43NS4zMS4yOS41NC42My43IDEuMDMuMTYuMzkuMjQuODUuMjQgMS4zN3ptMTIuODEtOC44NWwtNC42MyAxMi40M2gtMi42OGwtNC42Ni0xMi40M2gyLjc2bDIuNTkgNy45OGMuMTYuNTIuMzggMS4zLjY2IDIuMzVsLjE5LS43Ni40Ni0xLjU5IDIuNTgtNy45OGgyLjczem03LjMzIDEwLjU3Yy42OSAwIDEuMzUtLjEgMi0uMy42NC0uMTkgMS4xNC0uNDUgMS40OS0uNzVWNzU0aC0zLjA4di0xLjkyaDUuNDl2NC41NmMtLjY2LjY4LTEuNTMgMS4yMS0yLjYgMS41OS0xLjA3LjM5LTIuMi41OC0zLjM3LjU4LTIuMDUgMC0zLjYzLS41Ni00LjczLTEuNjgtMS4xLTEuMTItMS42NS0yLjcxLTEuNjUtNC43NyAwLTIuMDUuNTUtMy42MiAxLjY2LTQuNzEgMS4xMS0xLjA5IDIuNy0xLjY0IDQuNzgtMS42NCAyLjk2IDAgNC44NCAxLjA4IDUuNjUgMy4yNGwtMi40NC43M2MtLjI2LS42My0uNjctMS4xMS0xLjIzLTEuNDMtLjU2LS4zMy0xLjIyLS40OS0xLjk4LS40OS0xLjI0IDAtMi4xOC4zNy0yLjgyIDEuMTEtLjY1Ljc0LS45NyAxLjgxLS45NyAzLjE5IDAgMS40LjMzIDIuNDkgMSAzLjI2LjY2Ljc2IDEuNiAxLjE1IDIuOCAxLjE1em0tNjguOTYgMTAuNTFoLTQuMDh2MTAuNDJoLTIuNjR2LTEwLjQyaC00LjA3di0yLjAxaDEwLjc5djIuMDF6bTQuMDYgMTAuNDJoLTIuNjR2LTEyLjQzaDIuNjR2MTIuNDN6bTExLjc0LTEwLjQyaC02LjY1djMuODVoNi40NHYyLjAxaC02LjQ0djQuNTZoLTIuNjR2LTEyLjQzaDkuMjl2Mi4wMXptMTEuMTkgMGgtNi42NnYzLjg1aDYuNDV2Mi4wMWgtNi40NXY0LjU2aC0yLjY0di0xMi40M2g5LjN2Mi4wMXptMjMuMyA0LjExYzAgMS4yOS0uMjUgMi40LS43NiAzLjM2YTUuMjEgNS4yMSAwIDAgMS0yLjE3IDIuMTljLS45My41MS0yIC43Ni0zLjIuNzZoLTUuMXYtMTIuNDNoNC41NmMyLjEyIDAgMy43Ni41MyA0LjkzIDEuNTggMS4xNiAxLjA2IDEuNzQgMi41NyAxLjc0IDQuNTR6bS0yLjY2IDBjMC0xLjMzLS4zNS0yLjM1LTEuMDUtMy4wNS0uNy0uNzEtMS43MS0xLjA2LTMuMDEtMS4wNmgtMS44N3Y4LjQxaDIuMjNjMS4xMyAwIDIuMDMtLjM5IDIuNy0xLjE2LjY3LS43NyAxLTEuODEgMS0zLjE0em0xNS40MiA2LjMxaC0zLjA5bC01LjQ5LTkuNTdjLjEuOTMuMTYgMS42OC4xNiAyLjI0djcuMzNoLTIuMzV2LTEyLjQzaDMuMDJsNS41NyA5LjY1Yy0uMTEtLjg5LS4xNi0xLjY5LS4xNi0yLjQydi03LjIzaDIuMzR2MTIuNDN6bTguNDQtMS44NmMuNjkgMCAxLjM1LS4xIDItLjMuNjQtLjE5IDEuMTQtLjQ0IDEuNDktLjc1di0xLjcyaC0zLjA4di0xLjkyaDUuNDl2NC41N2MtLjY2LjY3LTEuNTMgMS4yLTIuNiAxLjU4LTEuMDcuMzktMi4xOS41OC0zLjM3LjU4LTIuMDUgMC0zLjYzLS41Ni00LjczLTEuNjgtMS4xLTEuMTItMS42NS0yLjcxLTEuNjUtNC43NyAwLTIuMDUuNTUtMy42MiAxLjY2LTQuNzEgMS4xMS0xLjA5IDIuNy0xLjYzIDQuNzgtMS42MyAyLjk2IDAgNC44NCAxLjA3IDUuNjUgMy4yM2wtMi40NC43M2MtLjI2LS42My0uNjctMS4xMS0xLjIzLTEuNDMtLjU2LS4zMy0xLjIyLS40OS0xLjk4LS40OS0xLjI0IDAtMi4xOC4zNy0yLjgyIDEuMTEtLjY1Ljc1LS45NyAxLjgxLS45NyAzLjE5IDAgMS40LjMzIDIuNDkgMSAzLjI2LjY2Ljc3IDEuNiAxLjE1IDIuOCAxLjE1em0tNDEuNTMgMTFoLTIuNTh2LTIuNjloMi41OHYyLjY5em01LjA5IDBoLTIuNTh2LTIuNjloMi41OHYyLjY5em01LjA5IDBoLTIuNTh2LTIuNjloMi41OHYyLjY5eiIvPjwvZz48cGF0aCBpZD0iLlBTRCAuWENGIC5za2V0Y2giIGNsYXNzPSJzaHAxMiIgZD0iTTE1MC42OCA3NjguNThoLTQuMXYtNC41OWg0LjF2NC41OXptMzAuNC0yMC42NGMwIDIuNzktLjkxIDUuMDItMi43NCA2LjY2LTEuODMgMS42NS00LjMyIDIuNDgtNy40NiAyLjQ4aC04LjcxdjExLjVoLTQuMDJ2LTI5LjUyaDEyLjQ4YzMuMzIgMCA1LjkuNzcgNy43MiAyLjMyIDEuODIgMS41NSAyLjczIDMuNzQgMi43MyA2LjU2em0tNC4wNC4wNGMwLTMuODEtMi4zLTUuNzItNi45LTUuNzJoLTcuOTd2MTEuNjVoOC4xNGM0LjQ5IDAgNi43My0xLjk3IDYuNzMtNS45M3ptMzMuMDggMTIuNDVjMCAyLjcyLTEuMDcgNC44My0zLjIxIDYuMzMtMi4xNCAxLjQ5LTUuMTUgMi4yNC05LjA0IDIuMjQtNy4yMiAwLTExLjQxLTIuNS0xMi41Ni03LjVsMy45LS43OGMuNDQgMS43OCAxLjQgMy4wOCAyLjg2IDMuOTEgMS40Ni44MyAzLjQ0IDEuMjUgNS45NSAxLjI1IDIuNiAwIDQuNi0uNDUgNi4wMS0xLjMzIDEuNDEtLjg5IDIuMTEtMi4xOSAyLjExLTMuOTEgMC0uOTctLjIyLTEuNzUtLjY2LTIuMzUtLjQ0LS42LTEuMDYtMS4xLTEuODYtMS40OS0uOC0uMzktMS43Ni0uNzItMi44Ni0uOTgtMS4xMS0uMjctMi4zNC0uNTUtMy42OS0uODYtMi4zNC0uNTItNC4xMi0xLjAzLTUuMzMtMS41NXMtMi4xNy0xLjA5LTIuODctMS43M2MtLjctLjYzLTEuMjQtMS4zOC0xLjYxLTIuMjMtLjM3LS44NS0uNTYtMS44My0uNTYtMi45MyAwLTIuNTMuOTctNC40OCAyLjkyLTUuODUgMS45NC0xLjM3IDQuNzItMi4wNSA4LjM0LTIuMDUgMy4zNiAwIDUuOTQuNTEgNy43MiAxLjU0IDEuNzggMS4wMiAzLjAzIDIuNzcgMy43NCA1LjI1bC0zLjk1LjY5Yy0uNDQtMS41Ny0xLjI2LTIuNy0yLjQ4LTMuNDEtMS4yMi0uNy0yLjkxLTEuMDYtNS4wNy0xLjA2LTIuMzcgMC00LjE4LjM5LTUuNDMgMS4xOC0xLjI1Ljc4LTEuODcgMS45NS0xLjg3IDMuNSAwIC45LjI0IDEuNjYuNzIgMi4yNS40OC41OSAxLjE4IDEuMSAyLjA5IDEuNTEuOTIuNDEgMi43My45MiA1LjQ1IDEuNTIuOTIuMjEgMS44Mi40MiAyLjczLjY0LjkuMjEgMS43Ny40NyAyLjYuNzcuODIuMyAxLjYuNjUgMi4zMiAxLjA2LjcyLjQgMS4zNS45IDEuODggMS40OS41NC41OC45NSAxLjI3IDEuMjYgMi4wNy4zLjguNDUgMS43My40NSAyLjgxem0zMS4wMy02LjkyYzAgMy4wNS0uNiA1LjcxLTEuNzkgOC0xLjE5IDIuMjgtMi44OCA0LjAzLTUuMDcgNS4yNS0yLjE5IDEuMjEtNC43MSAxLjgyLTcuNTcgMS44MmgtMTEuMDl2LTI5LjUyaDkuOGM1LjAzIDAgOC45IDEuMjUgMTEuNjMgMy43NiAyLjczIDIuNSA0LjA5IDYuMDcgNC4wOSAxMC42OXptLTQuMDQgMGMwLTMuNjYtMS4wMS02LjQ1LTMuMDItOC4zNy0yLjAxLTEuOTItNC45Mi0yLjg4LTguNzQtMi44OGgtNS43djIzLjExaDYuNjFjMi4xNyAwIDQuMDgtLjQ3IDUuNzMtMS40MiAxLjY1LS45NSAyLjkxLTIuMzIgMy44LTQuMTEuODgtMS43OSAxLjMyLTMuOSAxLjMyLTYuMzN6bTE0NS44MiAxNS4wN2gtNC4xdi00LjU5aDQuMXY0LjU5em0zMS43NyAwaC00LjQ0bC04LjktMTIuOTEtOS4wOSAxMi45MWgtNC40M2wxMS4yNy0xNS4zNC0xMC40MS0xNC4xOGg0LjQ0bDguMjQgMTEuNTggOC4wMi0xMS41OGg0LjQ0TDQwMy43IDc1My4xbDExIDE1LjQ4em0xNy41Ny0yNi42OWMtMy4yOCAwLTUuODQgMS4wNS03LjY2IDMuMTUtMS44MiAyLjEtMi43MyA0Ljk4LTIuNzMgOC42NCAwIDMuNjIuOTUgNi41MyAyLjg1IDguNzMgMS45IDIuMiA0LjQ3IDMuMyA3LjcxIDMuMyA0LjE1IDAgNy4yNy0yLjA1IDkuMzYtNi4xNGwzLjI4IDEuNjNjLTEuMjIgMi41NS0yLjkzIDQuNDgtNS4xNCA1LjgxLTIuMjEgMS4zMi00Ljc3IDEuOTktNy42OSAxLjk5LTIuOTkgMC01LjU3LS42Mi03Ljc1LTEuODYtMi4xOS0xLjIzLTMuODUtMy00Ljk5LTUuMy0xLjE0LTIuMjktMS43Mi01LjAyLTEuNzItOC4xNiAwLTQuNzEgMS4yOC04LjM5IDMuODMtMTEuMDYgMi41Ni0yLjY3IDYuMDktNCAxMC42MS00IDMuMTUgMCA1Ljc5LjYxIDcuOTEgMS44NHMzLjY3IDMuMDUgNC42NyA1LjQ3bC0zLjgxIDEuMjZjLS42OS0xLjcyLTEuNzktMy4wMy0zLjMxLTMuOTQtMS41Mi0uOTEtMy4zMy0xLjM2LTUuNDItMS4zNnptMzkuMDUuNDRoLTE3LjA0djEwLjk3aDE2LjUzdjMuMzJoLTE2LjUzdjExLjk2aC00LjAydi0yOS41MmgyMS4wNnYzLjI3em0xMjkuNDcgMjYuMjVoLTQuMXYtNC41OWg0LjF2NC41OXptMjMuOTItNi4yN2MwIDIuMTQtLjgxIDMuNzktMi40MyA0Ljk1LTEuNjIgMS4xNi0zLjg5IDEuNzQtNi44IDEuNzQtMi44NCAwLTUuMDItLjQ3LTYuNTYtMS4zOS0xLjUzLS45My0yLjUzLTIuMzgtMi45OS00LjM1bDMuMzQtLjY1Yy4zMiAxLjIxLjk5IDIuMSAyIDIuNjcgMS4wMS41NyAyLjQxLjg1IDQuMjEuODUgMS45MiAwIDMuMzMtLjMgNC4yMi0uODguODktLjU5IDEuMzMtMS40NyAxLjMzLTIuNjQgMC0uOS0uMzEtMS42Mi0uOTItMi4xOC0uNjItLjU2LTEuNjItMS4wMi0yLjk5LTEuMzhsLTIuNzItLjcyYy0yLjE3LS41Ni0zLjcyLTEuMS00LjYzLTEuNjQtLjkyLS41NC0xLjY0LTEuMTktMi4xNi0xLjk2LS41Mi0uNzctLjc4LTEuNzEtLjc4LTIuODMgMC0yLjA3Ljc0LTMuNjQgMi4yMi00LjcyIDEuNDgtMS4wOSAzLjY0LTEuNjMgNi40Ny0xLjYzIDIuNTEgMCA0LjUxLjQ0IDUuOTkgMS4zMiAxLjQ3Ljg4IDIuNDEgMi4yOSAyLjggNC4yM2wtMy40LjQyYy0uMjEtMS0uNzgtMS43Ny0xLjctMi4zMS0uOTItLjU0LTIuMTUtLjgxLTMuNjktLjgxLTEuNzEgMC0yLjk3LjI2LTMuNzkuNzgtLjgxLjUxLTEuMjIgMS4zLTEuMjIgMi4zNCAwIC42NS4xNyAxLjE4LjUxIDEuNi4zMy40Mi44My43NyAxLjQ5IDEuMDYuNjYuMyAyLjA1LjcgNC4xNyAxLjIyIDIgLjUgMy40NS45NyA0LjMzIDEuMzkuODguNDMgMS41OC45IDIuMDkgMS40Mi41Mi41MS45MSAxLjExIDEuMTkgMS43OS4yOC42OC40MiAxLjQ1LjQyIDIuMzF6bTIzLjE3IDYuMjdoLTQuNDRsLTcuNy0xMC4zNS0yLjc4IDIuMjh2OC4wN2gtMy43OXYtMzEuMWgzLjc5djE5LjQzbDkuOTktMTFoNC40NGwtOS4yMyA5Ljc0IDkuNzIgMTIuOTN6bTIxLjk4LTEwLjU0aC0xNi4yNGMwIDIuNi41NCA0LjYgMS42MiA2LjAxIDEuMDggMS40MSAyLjY2IDIuMTIgNC43NCAyLjEyIDEuNjQgMCAyLjk1LS4zMyAzLjk0LS45OC45OS0uNjYgMS42Ni0xLjQ5IDIuMDEtMi41bDMuMzIuOTRjLTEuMzYgMy41OC00LjQ1IDUuMzctOS4yNyA1LjM3LTMuMzcgMC01LjkzLTEtNy42OS0zLTEuNzYtMi0yLjY1LTQuOTYtMi42NS04LjkgMC0zLjc1Ljg5LTYuNjIgMi42NS04LjYxIDEuNzYtMiA0LjI3LTMgNy41NC0zIDYuNjkgMCAxMC4wMyA0LjAyIDEwLjAzIDEyLjA1di41em0tMTYuMi0yLjg5aDEyLjI5Yy0uMjEtMi4zOS0uODItNC4xMy0xLjgzLTUuMjMtMS4wMS0xLjEtMi40Ni0xLjY0LTQuMzYtMS42NC0xLjgzIDAtMy4yOS42MS00LjM2IDEuODMtMS4wNyAxLjIyLTEuNjUgMi45LTEuNzQgNS4wNHptMjkuNzcgMTAuNDh2Mi43OGMtMS4yNC4zNC0yLjUyLjUtMy44My41LTMuMDMgMC00LjU0LTEuNzEtNC41NC01LjEzdi0xNS4xM2gtMi42M3YtMi43NGgyLjc4bDEuMTEtNS4wN2gyLjUzdjUuMDdoNC4ydjIuNzRoLTQuMnYxNC4zMWMwIDEuMDkuMTggMS44Ni41MyAyLjMuMzYuNDQuOTguNjYgMS44Ny42Ni41IDAgMS4yMy0uMSAyLjE4LS4yOXptNi4xLTguNDljMCAzLjAyLjQ4IDUuMjUgMS40NCA2LjcuOTUgMS40NiAyLjM5IDIuMTggNC4zMSAyLjE4IDEuMzUgMCAyLjQ3LS4zNiAzLjM4LTEuMDkuOS0uNzIgMS40Ni0xLjg0IDEuNjctMy4zNWwzLjgzLjI1Yy0uMyAyLjE4LTEuMjMgMy45Mi0yLjggNS4yMi0xLjU3IDEuMy0zLjU2IDEuOTUtNS45OCAxLjk1LTMuMTggMC01LjYxLTEtNy4yOS0zLjAxLTEuNjctMi0yLjUxLTQuOTMtMi41MS04Ljc3IDAtMy44MS44NC02LjcyIDIuNTItOC43MiAxLjY5LTIuMDEgNC4xLTMuMDEgNy4yNC0zLjAxIDIuMzMgMCA0LjI2LjYgNS44IDEuOCAxLjUzIDEuMiAyLjUgMi44NiAyLjg5IDQuOTdsLTMuODkuMjljLS4yLTEuMjYtLjctMi4yNi0xLjUtMy0uNzktLjc0LTEuOTMtMS4xMS0zLjQtMS4xMS0yLjAxIDAtMy40Ni42Ny00LjM2IDEuOTktLjkgMS4zMy0xLjM1IDMuNTctMS4zNSA2Ljcxem0yMi4zNy03LjM2aC4wNmMuODItMS40OCAxLjc5LTIuNTYgMi45NC0zLjI1IDEuMTQtLjcgMi41OS0xLjA0IDQuMzQtMS4wNCAyLjQ3IDAgNC4yOS42MSA1LjQ2IDEuODMgMS4xNyAxLjIyIDEuNzYgMy4yNyAxLjc2IDYuMTV2MTUuMTFoLTMuODF2LTE0LjM3YzAtMS42LS4xNS0yLjc4LS40NC0zLjU2LS4zLS43Ny0uNzgtMS4zNC0xLjQ1LTEuNy0uNjgtLjM3LTEuNjEtLjU1LTIuOC0uNTUtMS43OCAwLTMuMjEuNjItNC4yOCAxLjg1LTEuMDggMS4yMi0xLjYxIDIuODgtMS42MSA0Ljk2djEzLjM3aC0zLjc5di0zMS4xaDMuNzl2OC4wOWMwIC44NS0uMDMgMS43NC0uMDggMi42NC0uMDQuOTEtLjA4IDEuNDMtLjA5IDEuNTd6bTE2OS4wNSAxOC44aC00LjF2LTQuNTloNC4xdjQuNTl6bTMyLjU5IDBoLTQuMWwtMy4zOS04LjYzaC0xMy41MWwtMy40MSA4LjYzaC00LjE2bDEyLjA5LTI5LjUyaDQuNTdsMTEuOTEgMjkuNTJ6bS0xMy42OC0yNC43N2wtLjU3LTEuNzQtLjE5LjU5Yy0uMzUgMS4xNi0uODYgMi42NS0xLjU1IDQuNDZsLTMuNzkgOS43aDExLjA5bC0zLjgxLTkuNzRjLS4zOS0uOTYtLjc4LTIuMDUtMS4xOC0zLjI3em00MS4zNyAyNC43N2gtNC44NGwtMTUuODctMjUuMTQuMTEgMi4wMy4xIDMuNXYxOS42MWgtMy41N3YtMjkuNTJoNC42N2wxNi4wMyAyNS4zMWMtLjE3LTIuNzQtLjI1LTQuNzItLjI1LTUuOTV2LTE5LjM2aDMuNjJ2MjkuNTJ6bTMxLjMtMjkuNTJsLTExLjQ0IDE3LjI4djEyLjI0aC00di0xMi4yNGwtMTEuNC0xNy4yOGg0LjQxbDkuMDMgMTQuMDYgOC45OC0xNC4wNmg0LjQyeiIvPjwvZz48cGF0aCBpZD0iUGhvdG9wZWEiIGQ9Ik0zNjYuMzYgMTYzLjU0YzE0LjY5IDAgMzYuMzYtNi45OCAzNi4zNi0zNi44MSAwLTI4LjQ5LTE1LjczLTMyLjk0LTQ0LjUzLTMyLjk0SDMyOC44djEwMy44OGgxOXYtMzQuMTNoMTguNTZ6bS0yLjk3LTUzLjg3YzE1Ljg4IDAgMjAuMDQgNS4zNCAyMC4wNCAxNy4yMSAwIDE0LjEtNS43OSAxOC44NS0xOS42IDE4Ljg1SDM0Ny44di0zNi4wNmgxNS41OXptMTE1LjQ4IDg4di0zOS45MmMwLTIwLjkyLTguNDYtMzUuNDctMzEuNjEtMzUuNDctNS41IDAtMTEuMTQgMi4yMy0xNS40NCA1LjA1Vjg2LjM3aC0xOC40MXYxMTEuM2gxOC40MVYxNDMuOGMzLjQxLTQuMDEgNy43Mi02LjM4IDEzLjk1LTYuMzggMTAuMzkgMCAxNC43IDYuNTMgMTQuNyAyMC4zM3YzOS45MmgxOC40em00OS41OCAxLjQ4YzIzLjc1IDAgMzcuNTYtMTcuNjYgMzcuNTYtMzguNDMgMC0yMC43OC0xMy44MS0zOC40NC0zNy41Ni0zOC40NHMtMzcuNTUgMTcuNjYtMzcuNTUgMzguNDRjMCAyMC43NyAxMy44IDM4LjQzIDM3LjU1IDM4LjQzem0wLTYxLjczYzExLjg4IDAgMTguNyA5LjUgMTguNyAyMy4zcy02LjgyIDIzLjMtMTguNyAyMy4zYy0xMS44NyAwLTE4LjctOS41LTE4LjctMjMuM3M2LjgzLTIzLjMgMTguNy0yMy4zem04OC40NyA0Ni42aC01LjA1Yy0xMC4zOSAwLTExLjI4LS42LTExLjI4LTExLjg3di0zMy41NGgxNi4zM3YtMTUuMTRoLTE2LjMzdi0xOC4yNWwtMTguNCAxLjkzdjE2LjMyaC04LjkxbC0xLjYzIDE1LjE0aDEwLjU0djQxLjFjMCA5LjY1IDUuOTMgMTkuNDQgMTkuODkgMTkuNDRoMTMuMjFsMS42My0xNS4xM3ptNDUuMTMgMTUuMTNjMjMuNzUgMCAzNy41NS0xNy42NiAzNy41NS0zOC40MyAwLTIwLjc4LTEzLjgtMzguNDQtMzcuNTUtMzguNDQtMjMuNzUgMC0zNy41NiAxNy42Ni0zNy41NiAzOC40NCAwIDIwLjc3IDEzLjgxIDM4LjQzIDM3LjU2IDM4LjQzem0wLTYxLjczYzExLjg3IDAgMTguNyA5LjUgMTguNyAyMy4zcy02LjgzIDIzLjMtMTguNyAyMy4zYy0xMS44OCAwLTE4LjcxLTkuNS0xOC43MS0yMy4zczYuODMtMjMuMyAxOC43MS0yMy4zem04Ni4wOSA2MS43M2MyMy43NSAwIDM2LjM3LTE3LjY2IDM2LjM3LTM4LjQzIDAtMjAuNzgtMTIuNjItMzguNDQtMzYuMzctMzguNDQtOC4xNyAwLTEzLjIxIDIuMDgtMTguMjYgNS40OWwtMS40OC00LjNoLTE2LjAzdjExMC4xMWgxOC40di0zOS40N2M0LjkgMy4yNiA5LjY1IDUuMDQgMTcuMzcgNS4wNHptLTEuMTktNjEuNzNjMTEuODggMCAxOC43IDkuNSAxOC43IDIzLjNzLTYuODIgMjMuMy0xOC43IDIzLjNjLTExLjg3IDAtMTcuMDctOS41LTE3LjA3LTIzLjNzNS4yLTIzLjMgMTcuMDctMjMuM3ptMTEyLjk2IDI3LjE2Yy43NC0zLjU2IDEuMTktNi44MyAxLjE5LTEwLjA5IDAtMTkuNTktMTMuOTUtMzIuMjEtMzIuNjYtMzIuMjEtMjIuODYgMC0zNS42MiAxNy44MS0zNS42MiAzOC40NCAwIDIwLjc3IDEzLjM2IDM4LjQzIDQwLjIyIDM4LjQzIDEwLjU0IDAgMTkuMTUtMi42NyAyNC43OS01LjYzbC0uODktMTUuNTljLTYuMDggMy4yNy0xNS44OCA2LjA5LTIyLjg2IDYuMDktOS43OSAwLTIwLjA0LTUuNjQtMjIuMTEtMTkuNDRoNDcuOTR6bS0zMC44Ny0yNy4xNmM5Ljk0IDAgMTMuMzYgOC4wMSAxMy4zNiAxNC42OWgtMjkuOTljMS43OC04LjQ2IDcuMTMtMTQuNjkgMTYuNjMtMTQuNjl6bTEwOC4zNiA0Ni42aC0yLjM4Yy01LjM0IDAtNi41My0uNzQtNi41My0xMS44N3YtMjAuMDRjMC0yMS41Mi0xMC4yNC0yOS44My0yNi44Ny0yOS44My05LjIgMC0xOC4xMSAyLjIzLTI3LjAxIDYuNTNsMS42MyAxNC45OWM3Ljg3LTMuODYgMTMuNjYtNS42NCAyMC4zNC01LjY0IDkuNSAwIDEyLjkxIDMuNzEgMTMuMzYgMTIuMTctMTMuOTYuNDUtNDEuNzIgNS42NC00MS43MiAyNi41NiAwIDE0LjEgOS42NSAyMi4yNiAyMS41MyAyMi4yNiA4LjkgMCAxNy44MS0zLjExIDIyLjcxLTguNiAyLjgyIDUuMTkgOC4zMSA4LjYgMTYuNjIgOC42aDYuNjhsMS42NC0xNS4xM3ptLTI3LjMyLTQuMzFjLTMuODYgMy43MS05LjM1IDUuMzUtMTIuNjEgNS4zNS02Ljk4IDAtOS45NS0yLjgyLTkuOTUtOC45MSAwLTguNzUgMTIuMTctMTIuOTEgMjIuNTYtMTMuMzV2MTYuOTF6IiBmaWxsPSIjZTZlNmU2Ii8+PHBhdGggaWQ9IlNvbGlkIENvbG9yIEZpbGwgMTEiIGQ9Ik0xMjkuOTYgNTkuMzNoMTE3LjIyYzE1LjYyIDAgMjguMjUgMTIuNjIgMjguMjUgMjguMjR2MTE3LjE5YzAgMTUuNjItMTIuNjMgMjguMjQtMjguMjUgMjguMjRoLTk5LjJsLS4zMy03NC44M2gtLjA0di0uNTNjMC0yOC4zNyAyMi41My01MS4zIDUwLjQtNTEuMyAxNi43MiAwIDMwLjI0IDEzLjc2IDMwLjI0IDMwLjc4IDAgMTcuMDItMTMuNTIgMzAuNzgtMzAuMjQgMzAuNzgtNS41NyAwLTEwLjA4LTQuNTktMTAuMDgtMTAuMjZzNC41MS0xMC4yNiAxMC4wOC0xMC4yNiAxMC4wOC00LjU5IDEwLjA4LTEwLjI2LTQuNTEtMTAuMjYtMTAuMDgtMTAuMjZjLTE2LjcyIDAtMzAuMjQgMTMuNzYtMzAuMjQgMzAuNzggMCAxNy4wMiAxMy41MiAzMC43OCAzMC4yNCAzMC43OCAyNy44NyAwIDUwLjQtMjIuOTMgNTAuNC01MS4zIDAtMjguMzctMjIuNTMtNTEuMy01MC40LTUxLjMtMzkuMDIgMC03MC41NyAzMi4xLTcwLjU3IDcxLjgydi42MmgtLjE3bC4zMyA3NC42NGMtMTQuNTItMS4xOS0yNS45LTEzLjMyLTI1LjktMjguMTRWODcuNTdjMC0xNS42MiAxMi42My0yOC4yNCAyOC4yNS0yOC4yNHoiIGZpbGw9IiMxOGE0OTciLz48L3N2Zz4=" +} \ No newline at end of file diff --git a/tools/Open-Photopea/code/external/ext.js b/tools/Open-Photopea/code/external/ext.js new file mode 100644 index 00000000..9d95c65d --- /dev/null +++ b/tools/Open-Photopea/code/external/ext.js @@ -0,0 +1,16227 @@ + + + var UDOC = {}; + + UDOC.G = { + concat : function(p,r) { + for(var i=0; ix1)x1=x; if(yy1)y1=y; } + return [x0,y0,x1,y1]; + }, + rectToPath: function(r) { return {cmds:["M","L","L","L","Z"],crds:[r[0],r[1],r[2],r[1], r[2],r[3],r[0],r[3]]}; }, + insideBox: function(a,b) { return b[0]<=a[0] && b[1]<=a[1] && a[2]<=b[2] && a[3]<=b[3]; }, + newPath: function(gst ) { gst.pth = {cmds:[], crds:[]}; }, + moveTo : function(gst,x,y) { var p=UDOC.M.multPoint(gst.ctm,[x,y]); //if(gst.cpos[0]==p[0] && gst.cpos[1]==p[1]) return; + gst.pth.cmds.push("M"); gst.pth.crds.push(p[0],p[1]); gst.cpos = p; }, + lineTo : function(gst,x,y) { var p=UDOC.M.multPoint(gst.ctm,[x,y]); if(gst.cpos[0]==p[0] && gst.cpos[1]==p[1]) return; + gst.pth.cmds.push("L"); gst.pth.crds.push(p[0],p[1]); gst.cpos = p; }, + curveTo: function(gst,x1,y1,x2,y2,x3,y3) { var p; + p=UDOC.M.multPoint(gst.ctm,[x1,y1]); x1=p[0]; y1=p[1]; + p=UDOC.M.multPoint(gst.ctm,[x2,y2]); x2=p[0]; y2=p[1]; + p=UDOC.M.multPoint(gst.ctm,[x3,y3]); x3=p[0]; y3=p[1]; gst.cpos = p; + gst.pth.cmds.push("C"); + gst.pth.crds.push(x1,y1,x2,y2,x3,y3); + }, + closePath: function(gst ) { gst.pth.cmds.push("Z"); }, + arc : function(gst,x,y,r,a0,a1, neg) { + + // circle from a0 counter-clock-wise to a1 + if(neg) while(a1>a0) a1-=2*Math.PI; + else while(a1e ? fz3 : (116*fz-16)/k; + var yr = fy3>e ? fy3 : (116*fy-16)/k; + var xr = fx3>e ? fx3 : (116*fx-16)/k; + + var X = xr*96.72, Y = yr*100, Z = zr*81.427, xyz = [X/100,Y/100,Z/100]; + var x2s = [3.1338561, -1.6168667, -0.4906146, -0.9787684, 1.9161415, 0.0334540, 0.0719453, -0.2289914, 1.4052427]; + + var rgb = [ x2s[0]*xyz[0] + x2s[1]*xyz[1] + x2s[2]*xyz[2], + x2s[3]*xyz[0] + x2s[4]*xyz[1] + x2s[5]*xyz[2], + x2s[6]*xyz[0] + x2s[7]*xyz[1] + x2s[8]*xyz[2] ]; + for(var i=0; i<3; i++) rgb[i] = Math.max(0, Math.min(1, UDOC.C.srgbGamma(rgb[i]))); + return rgb; + } + } + + UDOC.getState = function(crds) { + return { + font : UDOC.getFont(), + dd: {flat:1}, // device-dependent + space :"/DeviceGray", + // fill + ca: 1, + colr : [0,0,0], + sspace:"/DeviceGray", + // stroke + CA: 1, + COLR : [0,0,0], + bmode: "/Normal", + SA:false, OPM:0, AIS:false, OP:false, op:false, SMask:"/None", + lwidth : 1, + lcap: 0, + ljoin: 0, + mlimit: 10, + SM : 0.1, + doff: 0, + dash: [], + ctm : [1,0,0,1,0,0], + cpos: [0,0], + pth : {cmds:[],crds:[]}, + cpth: crds ? UDOC.G.rectToPath(crds) : null // clipping path + }; + } + + UDOC.getFont = function() { + return { + Tc: 0, // character spacing + Tw: 0, // word spacing + Th:100, // horizontal scale + Tl: 0, // leading + Tf:"Helvetica-Bold", + Tfs:1, // font size + Tmode:0, // rendering mode + Trise:0, // rise + Tk: 0, // knockout + Tal:0, // align, 0: left, 1: right, 2: center + Tun:0, // 0: no, 1: underline + + Tm :[1,0,0,1,0,0], + Tlm:[1,0,0,1,0,0], + Trm:[1,0,0,1,0,0] + }; + } + + + + function FromPS () + { + } + + FromPS.Parse = function(buff, genv) + { + buff = new Uint8Array(buff); + + var str = FromPS.B.readASCII(buff, 0, buff.length); + var lines = str.split(/[\n\r]+/); + + var crds = null; + var epsv = null; + + for(var li=0; li2*lcnt) { lcnt=ocnt; console.log(ocnt, os.length, file.stk.length); }; + if(ocnt>8000000) { + for(var key in opoc) if(opoc[key][1]<1000) delete opoc[key]; + console.log(Date.now()-otime, opoc); throw "e"; + } */ + + if(typ=="integer" || typ=="real" || typ=="boolean" || typ=="string" || typ=="array" || typ=="procedure" || typ=="null") { os.push(tok); return true; } + + if(typ!="name" && typ!="operator") throw "e"; + + //if(opoc[val]==null) opoc[val]=[0,0]; opoc[val][0]++; opoc[val][1]=ocnt; + + if(val.charAt(0)=="/") { + if(val.charAt(1)=="/") throw "e"; + else os.push(tok); + } + else if(val=="{") { + var ars = [], car = {typ:"procedure", val:[] }; + + var ltok=getToken(es,ds); + while(true) { + if (ltok.val=="{") { var ncr = {typ:"procedure", val:[]}; car.val.push(ncr); ars.push(car); car=ncr; } + else if(ltok.val=="}") { if(ars.length==0) break; car = ars.pop(); } + else car.val.push(ltok); + ltok=getToken(es,ds); + } + os.push( car ); + } + else if(val=="[" || val=="<<") os.push( {typ:"mark"} ); + else if(val=="]" || val==">>") { + var arr = []; while(os.length!=0) { var o=os.pop(); if(o.typ=="mark") break; arr.push(o); } + arr.reverse(); + if(val=="]") os.push( {typ:"array", val:arr } ); + else { + var ndct = {}; for(var i=0; i=tgt.val.length) throw "e"; + if(src.typ=="string") for(var i=0; i=0; i--) if(es[i].typ=="file")file=es[i]; os.push(file); } + else if(op=="currentdict") { var dct=ds[ds.length-1]; os.push({typ:"dict", val:dct}); } + else if(op=="known") { var key=os.pop().val.slice(1), dct=os.pop().val; os.push({typ:"boolean",val:dct[key]!=null}); } + else if(op=="version") { os.push({typ:"string", val:[51]}); } // "3" + else if(op=="currentpacking") { os.push({typ:"boolean",val:env.pckn}); } + else if(op=="setpacking" ) { env.pckn = os.pop().val; } + else if(op=="currentglobal" ) { os.push({typ:"boolean",val:env.amodeGlobal}); } + else if(op=="setglobal" ) { env.amodeGlobal = os.pop().val; } + else if(op=="currentflat" ) { os.push({typ:"real",val:1}); } + else if(op=="currentlinewidth") { os.push({typ:"real",val:gst.lwidth}); } + else if(op=="currentpoint" ) { var im=gst.ctm.slice(0); UDOC.M.invert(im); var p=UDOC.M.multPoint(im,gst.cpos); + os.push({typ:"real",val:p[0]}, {typ:"real",val:p[1]}); } + else if(op=="currentscreen" ) { os.push({typ:"int",val:60}, {typ:"real",val:0},{typ:"real",val:0}); } + else if(op=="setscreen" ) { os.pop(); os.pop(); os.pop(); } + else if(op=="findresource") + { + var cat = os.pop().val.slice(1), key = os.pop().val.slice(1), rs; + if (cat=="Font") { rs = {typ:"font",val:UDOC.getFont()}; rs.val.Tf=key; } + else if(cat=="ProcSet") rs = {typ:"dict",val:{}}; + else throw("Unknown resource category: "+cat); + os.push(rs); + } + else if(op=="defineresource") { + var cat = os.pop().val.slice(1), ins = os.pop().val, key = os.pop().val.slice(1); + if(env.res[cat]==null) env.res[cat]={}; + env.res[cat][key]=ins; + } + else if(op=="image" || op=="colorimage") { + var ncomp = 1, multi = false; + if(op=="colorimage") { ncomp = os.pop().val; multi = os.pop().val; } + var src0, src1, src2; + if(multi) { src2=os.pop(); src1=os.pop(); src0=os.pop(); } else src0 = os.pop(); + var mat = FromPS.readArr(os.pop().val), bpc = os.pop().val, h = os.pop().val, w = os.pop().val; + + if(ncomp!=3) throw "unsupported number of channels "+ncomp; + if(bpc!=8) throw "unsupported bits per channel: "+bpc; + + var img = new Uint8Array(w*h*4); for(var i=0; i0 ? (v0<>>(-v1)); + if(op=="mod") out = v0%v1; + if(op=="exp") out = Math.pow(v0, v1); + if(op=="atan")out = Math.atan2(v0, v1)*180/Math.PI; + + if(otp=="real") { f32[0]=out; out=f32[0]; } + os.push({ typ:otp, val:out }); + } + else if(["neg","abs","round","truncate","sqrt","ln","sin","cos"].indexOf(op)!=-1) { + var o0 = os.pop(), v0=o0.val, out = 0, otp = ""; + if(op=="neg" || op=="abs" || op=="truncate") otp=o0.typ; + else if(op=="round") otp="integer"; + else if(op=="sqrt" || op=="sin" || op=="cos" || op=="ln") otp="real"; + + if(o0.typ=="real") { f32[0]=v0; v0=f32[0]; } + + if(op=="neg" ) out = -v0; + if(op=="abs" ) out = Math.abs(v0); + if(op=="round")out = Math.round(v0); + if(op=="truncate") out = Math.trunc(v0); + if(op=="sqrt") out = Math.sqrt(v0); + if(op=="ln" ) out = Math.log(v0); + if(op=="sin" ) out = Math.sin(v0*Math.PI/180); + if(op=="cos" ) out = Math.cos(v0*Math.PI/180); + + if(op=="ln" && v0<=0) throw "e"; + + if(otp=="real") { f32[0]=out; out=f32[0]; } + + os.push({typ:otp, val:out}); + } + else if(["eq","ge","gt","le","lt","ne"].indexOf(op)!=-1) { + var o1=os.pop(), o0=os.pop(), v0=o0.val, v1=o1.val, out=false; + if(op=="eq") out=v0==v1; + if(op=="ge") out=v0>=v1; + if(op=="gt") out=v0> v1; + if(op=="le") out=v0<=v1; + if(op=="lt") out=v0< v1; + if(op=="ne") out=v0!=v1; + os.push({typ:"boolean",val:out}); + } + else if(["and","or"].indexOf(op)!=-1) { + var b2 = os.pop(), b1 = os.pop(), v1=b1.val, v2 = b2.val, ints=(b1.typ=="integer"), out; + if(op=="and") out = ints ? (v1&v2) : (v1&&v2); + if(op=="or" ) out = ints ? (v1|v2) : (v1||v2); + os.push({typ:ints?"integer":"boolean", val:out}); + } + else if(op=="not") { + var b=os.pop(), v=b.val, ints=b.typ=="integer"; + var out = ints ? (~v) : (!v); + os.push({typ:ints?"integer":"boolean", val:out}); + } + else if(op=="if") { + var proc = os.pop(), cnd = os.pop().val; + if(cnd) FromPS.addProc(proc, es);//FromPS.callProcedure(proc, file, os, ds, es, gs, gst, genv); + } + else if(op=="ifelse") { + var proc2 = os.pop(), proc1 = os.pop(), cnd = os.pop().val; + FromPS.addProc(cnd?proc1:proc2, es); + } + else if(op=="exec" || op=="stopped") { var obj = os.pop(); + if(op=="stopped") os.push({typ:"boolean", val:false}); + + if(obj.typ=="procedure") FromPS.addProc(obj, es); + else if(obj.typ=="name") FromPS.addProc({typ:"procedure",val:[obj]},es); + else throw "unknown executable type: "+obj.typ; + } + else if(op=="dup" ) { var v=os.pop(); os.push(v,v); } + else if(op=="exch") { os.push(os.pop(), os.pop()); } + else if(op=="copy") { + var n = os.pop(); //console.log(n); + if(n.typ=="integer") { var els=[]; for(var i=0; i0 && ctx.init<=ctx.limit) || (ctx.inc<0 && ctx.init>=ctx.limit)) { + es.push(tok); FromPS.addProc(ctx.proc, es); + os.push({typ:"integer",val:ctx.init}); ctx.init+=ctx.inc; + } + } + else { + var lf = new Float32Array(1); + lf[0]=ctx.limit; ctx.limit=lf[0]; + lf[0]=ctx.inc ; ctx.inc =lf[0]; + lf[0]=ctx.init; + if((ctx.inc>0 && lf[0]<=ctx.limit) || (ctx.inc<0 && lf[0]>=ctx.limit)) { + es.push(tok); FromPS.addProc(ctx.proc, es); + os.push({typ:"real",val:lf[0]}); lf[0]+=ctx.inc; ctx.init=lf[0]; + } + } + } + else if(op=="loop" ) { + var proc=os.pop(); + es.push({typ:"name",val:op+"---", ctx:{ proc:proc }}); + } + else if(op=="loop---") { + var ctx = tok.ctx; + FromPS.addProc(ctx.proc, es); + } + else if(op=="forall") { + var proc = os.pop(), obj = os.pop(); + es.push({typ:"name",val:op+"---",ctx:[proc,obj,0]}); + } + else if(op=="forall---") { + var ctx=tok.ctx, proc=ctx[0],obj=ctx[1],i=ctx[2]; + if(obj.typ=="dict") { + throw "e"; + for(var p in obj.val) { FromPS.addProcedure(proc.val, file); FromPS.addProcedure([obj.val[p]], file); } + } + else if(obj.typ=="procedure" || obj.typ=="array") { + if(i=0; i--) { FromPS.addProcedure(proc.val, file); FromPS.addProcedure([obj.val[i]], file); } + } + else { console.log(proc, obj); throw "forall: unknown type: "+obj.typ; } + } + else if(op=="exit") { + var i = es.length-1; + while(es[i].typ!="name" || !es[i].val.endsWith("---")) i--; + while(es.length>i) es.pop(); + //console.log(es,i); throw "e"; + } + else if(op=="bind") { + + /* var v=os.pop(), prc=v.val; os.push(v); + for(var i=0; i=0; j--) { + var ar=os.pop(), av=ar.val, nv; + if(ar.typ=="string") { nv = FromPS.strToInt(av); if(j==0) bpc=av.length; } + else { nv = []; for(var k=0; k=file.buff.length) throw "e"; + var cc = file.buff[off]; off++; + if(FromPS.isWhite(cc)) continue; + if(cc==126) { + if(i!=0) { + if(i==3) { arr.push(((tc>>>24)&255)); } + if(i==4) { arr.push(((tc>>>24)&255), ((tc>>>16)&255)); } + var lb = (5-i)<<3; // i=2: 24, i=3: 16 ... + var nn=((tc>>>lb)&255); tc=(tc&((1<84) throw "e"; + tc += (cc-33)*pws[i]; i++; + if(i==5) { + arr.push((tc>>>24)&255); arr.push((tc>>>16)&255); + arr.push((tc>>> 8)&255); arr.push((tc>>> 0)&255); + i=0; tc=0; + } + } + }, + RunLengthDecode : function(file) { + var arr = [], off=file.off; + while(true) { + if(off>=file.buff.length) { console.log(arr); throw "e"; } + var cc = file.buff[off]; off++; + if(cc==128) { file.off=off; return new Uint8Array(arr); } + if(cc< 128) { for(var i=0; i=0) { if(ds[di][name]!=null) return ds[di][name]; di--; } + return null; + } + FromPS.where = function(name, ds) + { + var di = ds.length-1; + while(di>=0) { if(ds[di][name]!=null) return ds[di] ; di--; } + return null; + } + + + + + + + + FromPS.skipWhite = function(file) { + var i = file.off, buff=file.buff, isWhite = FromPS.isWhite; + + while(isWhite(buff[i]) || buff[i]==37) { + while(isWhite(buff[i])) i++; // not the first whitespace + if(buff[i]==37) { while(i=buff.length) return null; + + var cc = buff[i], ch = String.fromCharCode(cc); i++; + + if(ch=="(") { + var dpth=0, end=i; + while(!(buff[end]==41 && dpth==0)) { if(buff[end]==40) dpth++; if(buff[end]==41) dpth--; if(buff[end]==92) end++; end++; } + var str = []; + for(var j=0; j" && buff[i]==62)) { tok = {typ:"name", val:ch=="<" ? "<<" : ">>"}; i++; } + else if(ch=="<") { + var end = i; while(buff[end]!=62) end++; + var str = FromPS.readHex({buff:buff,off:i},(end-i)>>>1); + tok = {typ:"string",val:str}; i = end+1; + } + else { + var end = i; + while(end [ ] { } % / + FromPS.isSpecl = function(cc) { return [ 40,41, 60,62, 91,93, 123,125, 37, 47 ].indexOf(cc)!=-1; } + FromPS.isWhite = function(cc) { return cc==9 || cc==10 || cc==12 || cc==13 || cc==32; } + FromPS.isEOL = function(cc) { return cc==10 || cc==13; } + + FromPS.getString = function(str) { + var s=[]; + var m0 = ["n" , "r" , "t" , "b" , "f" , "\\", "(", ")", " ", "/"]; + var m1 = ["\n", "\r", "\t", "", " ", "\\", "(", ")", " ", "/"]; + + for(var i=0; i=0; i--) stk.push(ks[i]); + continue; + } + pi++; //if(pi!=2) continue; + + var cts = pg["/Contents"]; //console.log(pg); + if(cts.length==null) cts = [cts]; + //var uu = pg["/UserUnit"]; if(uu) console.log(uu); + + var bb = pg["/MediaBox"]; if(bb==null) bb = root["/Pages"]["/MediaBox"]; + var env = FromPS._getEnv(bb); env.pgOpen = true; + var gs = []; + var os = []; // operand stack + var ds = FromPS._getDictStack(ops, prcs); + var es = []; + + genv.StartPage(bb[0],bb[1],bb[2],bb[3]); + if(tr["/Encrypt"]) { if(stk.length==0) alert("Encrypted PDF is not supported yet."); } + else + for(var j=0; j23) break; + } + } + FromPDF.operator = function(op, os, ds, es, gs, env, genv) + { + var gst = env.gst; + var lfi = es.length-1; while(es[lfi].typ!="file") lfi--; + var fle = es[lfi].val; + var res = fle.extra["/Resources"]; + if(op=="Do") { + var nam = os.pop().val, xo = res["/XObject"][nam]; + //console.log(xo); + var st=xo["/Subtype"], stm = FromPDF.GS(xo); + if(st=="/Form") { + //console.log(FromPS.B.readASCII(stm,0,stm.length)); + es.push( {typ:"file", val: { buff:stm, off:0, extra:xo }} ); + } + else if(st=="/Image") { + var sms = null; //console.log(xo); + if(xo["/SMask"]) sms = FromPDF.getImage(xo["/SMask"], gst); + var w=xo["/Width"], h=xo["/Height"], cs=xo["/ColorSpace"]; + var img = FromPDF.getImage(xo, gst); + if(xo["/ImageMask"]==true) { + sms = img; + img = new Uint8Array(w*h*4); + var r0 = gst.colr[0]*255, g0 = gst.colr[1]*255, b0 = gst.colr[2]*255; + for(var i=0; i0) grd.push([0, F(fs[0], [zero], cs)] ); + for(var i=0; i>1)]>>((1-(x&1))<<2))&15; + else if(bpc==2) ci=(buff[so+(x>>2)]>>((3-(x&3))<<1))&3; + else if(bpc==1) ci=(buff[so+(x>>3)]>>((7-(x&7))<<0))&1; + return ci; + } + + FromPDF.Func = function(f, vls) + { + //console.log(f, vls); + var dom = f["/Domain"], rng = f["/Range"], typ = f["/FunctionType"], out = []; + for(var i=0; i>") break; + file.off= off; + var key = FromPDF.readObject(file, mfile, xr); + var val = FromPDF.readObject(file, mfile, xr); + o[key] = val; + } + if(o["/Length"]!=null) { + var l = o["/Length"]; + var tk = FromPS.getFToken(file); if(file.buff[file.off]==13) file.off++; if(file.buff[file.off]==10) file.off++; + o["buff"] = file.buff.slice(file.off, file.off+l); file.off += l; FromPS.getFToken(file); // endstream + } + return o; + } + FromPDF.GS = function(o) { + if(o["stream"]==null) { + var buff = o["buff"]; delete o["buff"]; + var flt = o["/Filter"], prm=o["/DecodeParms"]; + if(flt!=null) { + var fla = (typeof flt == "string") ? [flt] : flt; + var keepFlt = false; + for(var i=0; i>1) )&255; + if(type==4) for(var x=bpp; x>1))&255; + for(var x=bpp; x>1) )&255; } + + if(type==4) { for(var x= 0; x500) obj.nam+="-Bold"; + //console.log(wgh, obj.nam); + //console.log(obj); + } + else if(fnm=="CREATEPALETTE") { obj = {t:"pl"}; } + else if(fnm=="SETTEXTCOLOR") prms.tclr = [buff[loff]/255, buff[loff+1]/255, buff[loff+2]/255]; + else if(fnm=="SETTEXTALIGN") prms.talg = rU(buff, loff); + else if(fnm=="MOVETO" ) { UDOC.G.moveTo(gst, rS(buff,loff+2), rS(buff,loff)); } + else if(fnm=="LINETO" ) { + if(gst.pth.cmds.length==0) { var im=gst.ctm.slice(0); UDOC.M.invert(im); var p = UDOC.M.multPoint(im, gst.cpos); UDOC.G.moveTo(gst, p[0], p[1]); } + UDOC.G.lineTo(gst, rS(buff,loff+2), rS(buff,loff)); var ofill=prms.fill; prms.fill=false; FromWMF._draw(genv, gst, prms); prms.fill=ofill; + } + else if(fnm=="POLYPOLYGON") { + var nop = rU(buff, loff); loff+=2; + var pi = loff; loff+= nop*2; + + for(var i=0; i127) { i++; cc=(cc<<8)|buff[loff+i]; } + str+=String.fromCharCode(cc); //console.log(gst.font.Tfs, str); + } + //console.log(str); + //for(var i=0; i>>3)]>>>(7-(x&7)))&1; + img[qi ] = buff[off+ind*4+2]; + img[qi+1] = buff[off+ind*4+1]; + img[qi+2] = buff[off+ind*4+0]; + img[qi+3] = 255; + } + } + if(bc==24) { + for(var y=0; yy1){r[1]=y1; r[3]=y0;}*/ console.log(prms.crct); } + else if(fnm=="SETMITERLIMIT") gst.mlimit = rU32(buff, loff); + else if(fnm=="SETTEXTCOLOR") prms.tclr = [buff[loff]/255, buff[loff+1]/255, buff[loff+2]/255]; + else if(fnm=="SETTEXTALIGN") prms.talg = rU32(buff, loff); + else if(fnm=="SETVIEWPORTEXTEX" || fnm=="SETVIEWPORTORGEX") { + if(prms.vbb==null) prms.vbb=[]; + var coff = fnm=="SETVIEWPORTORGEX" ? 0 : 2; + prms.vbb[coff ] = rI32(buff, loff); loff+=4; + prms.vbb[coff+1] = rI32(buff, loff); loff+=4; + FromEMF._updateCtm(prms, gst); + } + else if(fnm=="SETWINDOWEXTEX" || fnm=="SETWINDOWORGEX") { + var coff = fnm=="SETWINDOWORGEX" ? 0 : 2; + prms.wbb[coff ] = rI32(buff, loff); loff+=4; + prms.wbb[coff+1] = rI32(buff, loff); loff+=4; + FromEMF._updateCtm(prms, gst); + } + else if(fnm=="COMMENT") { var ds = rU32(buff, loff); loff+=4; } + + else if(fnm=="SELECTOBJECT") { + var ind = rU32(buff, loff); loff+=4; + //console.log(ind.toString(16), tab[ind]); + if (ind==0x80000000) { prms.fill=true ; gst.colr=[1,1,1]; } // white brush + else if(ind==0x80000005) { prms.fill=false; } // null brush + else if(ind==0x80000007) { prms.strk=true ; prms.lwidth=1; gst.COLR=[0,0,0]; } // black pen + else if(ind==0x80000008) { prms.strk=false; } // null pen + else if(ind==0x8000000d) {} // system font + else { + var co = tab[ind]; //console.log(ind, co); + if(co.t=="b") { + prms.fill=co.stl!=1; + if (co.stl==0) {} + else if(co.stl==1) {} + else throw co.stl+" e"; + gst.colr=co.clr; + } + else if(co.t=="p") { + prms.strk=co.stl!=5; + gst.lwidth = co.wid; + gst.COLR=co.clr; + } + else if(co.t=="f") { + prms.fnt = co; + gst.font.Tf = co.nam; + gst.font.Tfs = Math.abs(co.hgh); + gst.font.Tun = co.und; + } + else throw "e"; + } + } + else if(fnm=="DELETEOBJECT") { + var ind = rU32(buff, loff); loff+=4; + if(tab[ind]!=null) tab[ind]=null; + else throw "e"; + } + else if(fnm=="CREATEBRUSHINDIRECT") { + oid = rU32(buff, loff); loff+=4; + obj = {t:"b"}; + obj.stl = rU32(buff, loff); loff+=4; + obj.clr = [buff[loff]/255, buff[loff+1]/255, buff[loff+2]/255]; loff+=4; + obj.htc = rU32(buff, loff); loff+=4; + //console.log(oid, obj); + } + else if(fnm=="CREATEPEN" || fnm=="EXTCREATEPEN") { + oid = rU32(buff, loff); loff+=4; + obj = {t:"p"}; + if(fnm=="EXTCREATEPEN") { + loff+=16; + obj.stl = rU32(buff, loff); loff+=4; + obj.wid = rU32(buff, loff); loff+=4; + //obj.stl = rU32(buff, loff); + loff+=4; + } else { + obj.stl = rU32(buff, loff); loff+=4; + obj.wid = rU32(buff, loff); loff+=4; loff+=4; + } + obj.clr = [buff[loff]/255, buff[loff+1]/255, buff[loff+2]/255]; loff+=4; + } + else if(fnm=="EXTCREATEFONTINDIRECTW") { + oid = rU32(buff, loff); loff+=4; + obj = {t:"f", nam:""}; + obj.hgh = rI32(buff, loff); loff += 4; + loff += 4*2; + obj.orn = rI32(buff, loff)/10; loff+=4; + var wgh = rU32(buff, loff); loff+=4; //console.log(fnm, obj.orn, wgh); + //console.log(rU32(buff,loff), rU32(buff,loff+4), buff.slice(loff,loff+8)); + obj.und = buff[loff+1]; obj.stk = buff[loff+2]; loff += 4*2; + while(rU(buff,loff)!=0) { obj.nam+=String.fromCharCode(rU(buff,loff)); loff+=2; } + if(wgh>500) obj.nam+="-Bold"; + //console.log(wgh, obj.nam); + } + else if(fnm=="EXTTEXTOUTW") { + //console.log(buff.slice(loff-8, loff-8+siz)); + loff+=16; + var mod = rU32(buff, loff); loff+=4; //console.log(mod); + var scx = rF32(buff, loff); loff+=4; + var scy = rF32(buff, loff); loff+=4; + var rfx = rI32(buff, loff); loff+=4; + var rfy = rI32(buff, loff); loff+=4; + //console.log(mod, scx, scy,rfx,rfy); + + gst.font.Tm = [1,0,0,-1,0,0]; + UDOC.M.rotate(gst.font.Tm, prms.fnt.orn*Math.PI/180); + UDOC.M.translate(gst.font.Tm, rfx, rfy); + + var alg = prms.talg; //console.log(alg.toString(2)); + if ((alg&6)==6) gst.font.Tal = 2; + else if((alg&7)==0) gst.font.Tal = 0; + else throw alg+" e"; + if((alg&24)==24) {} // baseline + else if((alg&24)==0) UDOC.M.translate(gst.font.Tm, 0, gst.font.Tfs); + else throw "e"; + + + var crs = rU32(buff, loff); loff+=4; + var ofs = rU32(buff, loff); loff+=4; + var ops = rU32(buff, loff); loff+=4; //if(ops!=0) throw "e"; + //console.log(ofs,ops,crs); + loff+=16; + var ofD = rU32(buff, loff); loff+=4; //console.log(ops, ofD, loff, ofs+off-8); + ofs += off-8; + var str = ""; + for(var i=0; i0) { + UDOC.G.curveTo(gst, rC(buff,loff), rC(buff,loff+nl), rC(buff,loff+2*nl), rC(buff,loff+3*nl), rC(buff,loff+4*nl), rC(buff,loff+5*nl) ); + loff+=6*nl; + cnt-=3; + } + //console.log(JSON.parse(JSON.stringify(gst.pth))); + } + else if(fnm=="RECTANGLE" || fnm=="ELLIPSE") { + UDOC.G.newPath(gst); + var bx = FromEMF._readBox(buff, loff); + if(fnm=="RECTANGLE") { + UDOC.G.moveTo(gst, bx[0],bx[1]); + UDOC.G.lineTo(gst, bx[2],bx[1]); + UDOC.G.lineTo(gst, bx[2],bx[3]); + UDOC.G.lineTo(gst, bx[0],bx[3]); + } + else { + var x = (bx[0]+bx[2])/2, y = (bx[1]+bx[3])/2; + UDOC.G.arc(gst,x,y,(bx[2]-bx[0])/2,0,2*Math.PI, false); + } + UDOC.G.closePath(gst); + FromEMF._draw(genv,gst,prms, true); + //console.log(prms, gst.lwidth); + } + else if(fnm=="FILLPATH" ) genv.Fill(gst, false); + else if(fnm=="STROKEPATH") genv.Stroke(gst); + else if(fnm=="STROKEANDFILLPATH") { genv.Fill(gst, false); genv.Stroke(gst); } + else if(fnm=="SETWORLDTRANSFORM" || fnm=="MODIFYWORLDTRANSFORM") { + var mat = []; + for(var i=0; i<6; i++) mat.push(rF32(buff,loff+i*4)); loff+=24; + //console.log(fnm, gst.ctm.slice(0), mat); + if(fnm=="SETWORLDTRANSFORM") gst.ctm=mat; + else { + var mod = rU32(buff,loff); loff+=4; + if(mod==2) { var om=gst.ctm; gst.ctm=mat; UDOC.M.concat(gst.ctm, om); } + else throw "e"; + } + } + else if(fnm=="SETSTRETCHBLTMODE") { var sm = rU32(buff, loff); loff+=4; } + else if(fnm=="STRETCHDIBITS") { + var bx = FromEMF._readBox(buff, loff); loff+=16; + var xD = rI32(buff, loff); loff+=4; + var yD = rI32(buff, loff); loff+=4; + var xS = rI32(buff, loff); loff+=4; + var yS = rI32(buff, loff); loff+=4; + var wS = rI32(buff, loff); loff+=4; + var hS = rI32(buff, loff); loff+=4; + var ofH = rU32(buff, loff)+off-8; loff+=4; + var szH = rU32(buff, loff); loff+=4; + var ofB = rU32(buff, loff)+off-8; loff+=4; + var szB = rU32(buff, loff); loff+=4; + var usg = rU32(buff, loff); loff+=4; if(usg!=0) throw "e"; + var bop = rU32(buff, loff); loff+=4; + var wD = rI32(buff, loff); loff+=4; + var hD = rI32(buff, loff); loff+=4; //console.log(bop, wD, hD); + + //console.log(ofH, szH, ofB, szB, ofH+40); + //console.log(bx, xD,yD,wD,hD); + //console.log(xS,yS,wS,hS); + //console.log(ofH,szH,ofB,szB,usg,bop); + + var hl = rU32(buff, ofH); ofH+=4; + var w = rU32(buff, ofH); ofH+=4; + var h = rU32(buff, ofH); ofH+=4; if(w!=wS || h!=hS) throw "e"; + var ps = rU (buff, ofH); ofH+=2; + var bc = rU (buff, ofH); ofH+=2; if(bc!=8 && bc!=24 && bc!=32) throw bc+" e"; + var cpr= rU32(buff, ofH); ofH+=4; if(cpr!=0) throw cpr+" e"; + var sz = rU32(buff, ofH); ofH+=4; + var xpm= rU32(buff, ofH); ofH+=4; + var ypm= rU32(buff, ofH); ofH+=4; + var cu = rU32(buff, ofH); ofH+=4; + var ci = rU32(buff, ofH); ofH+=4; //console.log(hl, w, h, ps, bc, cpr, sz, xpm, ypm, cu, ci); + + //console.log(hl,w,h,",",xS,yS,wS,hS,",",xD,yD,wD,hD,",",xpm,ypm); + + var rl = Math.floor(((w * ps * bc + 31) & ~31) / 8); + var img = new Uint8Array(w*h*4); + if(bc==8) { + for(var y=0; y255) { + var bi = win.indexOf(cc); + bys.push(bi==-1 ? 32 : win[bi-1]); + } + else bys.push(cc); + } + + bys = FromPS.makeString(bys); + + for(var i=0; i>2); ist[ti]=img[i+0]; ist[ti+1]=img[i+1]; ist[ti+2]=img[i+2]; } + } + + var xo = this._res["/XObject"]; + for(var ii in xo) if(ToPDF._eq(this._xr[xo[ii].ind]["stream"],ist)) return ii; + var ii = "/I"+(ToPDF.maxI(xo)+1); + xo[ii] = {"typ":"ref",ind:this._xr.length}; + + var io = { + "/Type":"/XObject", + "/Subtype":"/Image", + "/BitsPerComponent":8, + "/ColorSpace":(img.length==w*h || (fmt=="/DCTDecode" && ToPDF.jpgProp(img) && ToPDF.jpgProp(img).comps==1)) ? "/DeviceGray" : "/DeviceRGB", + "/Height":h, + "/Width":w, + "stream":ist + } + if(fmt!=null) io["/Filter"] = ToPDF._format(img); + if(msk) { io["/SMask"] = {"typ":"ref","ind":this._xr.length-1}; delete xo[mii]; } + this._xr.push(io); + return ii; + } + ToPDF.jpgProp = function(data) { + var off = 0; + while(off>"); + if(stm) { + W(F, S(dpt)+"\nstream\n"); + F.file.req(F.off, stm.length); + for(var i=0; ithis.size) this.size *= 2; + var ndata = new Uint8Array(this.size); + for(var i=0; i0.05, rm; + if(gotRot) { rm=gst.ctm.slice(0); rm[1]*=-1; rm[2]*=-1; rm[4]=ox; rm[5]=oy; ox=oy=0; this._trsf(rm); } + + var soff = 8+16+12 +4*6 +16; + this._addRec("EXTTEXTOUTW", soff+ strl*2); + //ToEMF._writeBox(f, [0,0,500,500]); + f.off+=16; + wU32(f.file,f.off,2); f.off+=4; + wF (f.file,f.off,31.25); f.off+=4; + wF (f.file,f.off,31.25); f.off+=4; + + wI32(f.file,f.off,Math.round(ox)); f.off+=4; + wI32(f.file,f.off,Math.round(oy)); f.off+=4; + wU32(f.file,f.off,str.length); f.off+=4; + wU32(f.file,f.off,soff); f.off+=4; + wU32(f.file,f.off,0); f.off+=4; + //ToEMF._writeBox(f, [0,0,3000,3000]); + f.off+=16; + wU32(f.file,f.off,0); f.off+=4; + for(var i=0; i1); + if(useMulti) { + cnum *= cnt; + if(c=="L") fnm="POLYLINETO"; + hsz = 8 + 20 + 4*cnum; + } + this._addRec(fnm,hsz); + if(useMulti) { f.off+=16; wU32(f.file, f.off, cnt*op[1]); f.off+=4; i+=cnt-1; } + for(var j=0; jthis.size) this.size *= 2; + var ndata = new Uint8Array(this.size); + for(var i=0; i0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=o.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(a!==b)throw new Error(d[a]);if(e.header&&o.deflateSetHeader(this.strm,e.header),e.dictionary){var n;if(n="string"==typeof e.dictionary?h.string2buf(e.dictionary):"[object ArrayBuffer]"===_.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,a=o.deflateSetDictionary(this.strm,n),a!==b)throw new Error(d[a]);this._dict_set=!0}}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg||d[a.err];return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}function s(t,e){return e=e||{},e.gzip=!0,n(t,e)}var o=t("./zlib/deflate"),l=t("./utils/common"),h=t("./utils/strings"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=Object.prototype.toString,u=0,c=4,b=0,g=1,m=2,w=-1,p=0,v=8;i.prototype.push=function(t,e){var a,i,n=this.strm,r=this.options.chunkSize;if(this.ended)return!1;i=e===~~e?e:e===!0?c:u,"string"==typeof t?n.input=h.string2buf(t):"[object ArrayBuffer]"===_.call(t)?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;do{if(0===n.avail_out&&(n.output=new l.Buf8(r),n.next_out=0,n.avail_out=r),a=o.deflate(n,i),a!==g&&a!==b)return this.onEnd(a),this.ended=!0,!1;0!==n.avail_out&&(0!==n.avail_in||i!==c&&i!==m)||("string"===this.options.to?this.onData(h.buf2binstring(l.shrinkBuf(n.output,n.next_out))):this.onData(l.shrinkBuf(n.output,n.next_out)))}while((n.avail_in>0||0===n.avail_out)&&a!==g);return i===c?(a=o.deflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===b):i!==m||(this.onEnd(b),n.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===b&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=l.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Deflate=i,a.deflate=n,a.deflateRaw=r,a.gzip=s},{"./utils/common":3,"./utils/strings":4,"./zlib/deflate":8,"./zlib/messages":13,"./zlib/zstream":15}],2:[function(t,e,a){"use strict";function i(t){if(!(this instanceof i))return new i(t);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0===(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new f,this.strm.avail_out=0;var a=s.inflateInit2(this.strm,e.windowBits);if(a!==h.Z_OK)throw new Error(d[a]);this.header=new _,s.inflateGetHeader(this.strm,this.header)}function n(t,e){var a=new i(e);if(a.push(t,!0),a.err)throw a.msg||d[a.err];return a.result}function r(t,e){return e=e||{},e.raw=!0,n(t,e)}var s=t("./zlib/inflate"),o=t("./utils/common"),l=t("./utils/strings"),h=t("./zlib/constants"),d=t("./zlib/messages"),f=t("./zlib/zstream"),_=t("./zlib/gzheader"),u=Object.prototype.toString;i.prototype.push=function(t,e){var a,i,n,r,d,f,_=this.strm,c=this.options.chunkSize,b=this.options.dictionary,g=!1;if(this.ended)return!1;i=e===~~e?e:e===!0?h.Z_FINISH:h.Z_NO_FLUSH,"string"==typeof t?_.input=l.binstring2buf(t):"[object ArrayBuffer]"===u.call(t)?_.input=new Uint8Array(t):_.input=t,_.next_in=0,_.avail_in=_.input.length;do{if(0===_.avail_out&&(_.output=new o.Buf8(c),_.next_out=0,_.avail_out=c),a=s.inflate(_,h.Z_NO_FLUSH),a===h.Z_NEED_DICT&&b&&(f="string"==typeof b?l.string2buf(b):"[object ArrayBuffer]"===u.call(b)?new Uint8Array(b):b,a=s.inflateSetDictionary(this.strm,f)),a===h.Z_BUF_ERROR&&g===!0&&(a=h.Z_OK,g=!1),a!==h.Z_STREAM_END&&a!==h.Z_OK)return this.onEnd(a),this.ended=!0,!1;_.next_out&&(0!==_.avail_out&&a!==h.Z_STREAM_END&&(0!==_.avail_in||i!==h.Z_FINISH&&i!==h.Z_SYNC_FLUSH)||("string"===this.options.to?(n=l.utf8border(_.output,_.next_out),r=_.next_out-n,d=l.buf2string(_.output,n),_.next_out=r,_.avail_out=c-r,r&&o.arraySet(_.output,_.output,n,r,0),this.onData(d)):this.onData(o.shrinkBuf(_.output,_.next_out)))),0===_.avail_in&&0===_.avail_out&&(g=!0)}while((_.avail_in>0||0===_.avail_out)&&a!==h.Z_STREAM_END);return a===h.Z_STREAM_END&&(i=h.Z_FINISH),i===h.Z_FINISH?(a=s.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,a===h.Z_OK):i!==h.Z_SYNC_FLUSH||(this.onEnd(h.Z_OK),_.avail_out=0,!0)},i.prototype.onData=function(t){this.chunks.push(t)},i.prototype.onEnd=function(t){t===h.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg},a.Inflate=i,a.inflate=n,a.inflateRaw=r,a.ungzip=n},{"./utils/common":3,"./utils/strings":4,"./zlib/constants":6,"./zlib/gzheader":9,"./zlib/inflate":11,"./zlib/messages":13,"./zlib/zstream":15}],3:[function(t,e,a){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;a.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var a=e.shift();if(a){if("object"!=typeof a)throw new TypeError(a+"must be non-object");for(var i in a)a.hasOwnProperty(i)&&(t[i]=a[i])}}return t},a.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var n={arraySet:function(t,e,a,i,n){if(e.subarray&&t.subarray)return void t.set(e.subarray(a,a+i),n);for(var r=0;r=252?6:l>=248?5:l>=240?4:l>=224?3:l>=192?2:1;o[254]=o[254]=1,a.string2buf=function(t){var e,a,i,r,s,o=t.length,l=0;for(r=0;r>>6,e[s++]=128|63&a):a<65536?(e[s++]=224|a>>>12,e[s++]=128|a>>>6&63,e[s++]=128|63&a):(e[s++]=240|a>>>18,e[s++]=128|a>>>12&63,e[s++]=128|a>>>6&63,e[s++]=128|63&a);return e},a.buf2binstring=function(t){return i(t,t.length)},a.binstring2buf=function(t){for(var e=new n.Buf8(t.length),a=0,i=e.length;a4)h[n++]=65533,a+=s-1;else{for(r&=2===s?31:3===s?15:7;s>1&&a1?h[n++]=65533:r<65536?h[n++]=r:(r-=65536,h[n++]=55296|r>>10&1023,h[n++]=56320|1023&r)}return i(h,n)},a.utf8border=function(t,e){var a;for(e=e||t.length,e>t.length&&(e=t.length),a=e-1;a>=0&&128===(192&t[a]);)a--;return a<0?e:0===a?e:a+o[t[a]]>e?a:e}},{"./common":3}],5:[function(t,e,a){"use strict";function i(t,e,a,i){for(var n=65535&t|0,r=t>>>16&65535|0,s=0;0!==a;){s=a>2e3?2e3:a,a-=s;do n=n+e[i++]|0,r=r+n|0;while(--s);n%=65521,r%=65521}return n|r<<16|0}e.exports=i},{}],6:[function(t,e,a){"use strict";e.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],7:[function(t,e,a){"use strict";function i(){for(var t,e=[],a=0;a<256;a++){t=a;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[a]=t}return e}function n(t,e,a,i){var n=r,s=i+a;t^=-1;for(var o=i;o>>8^n[255&(t^e[o])];return t^-1}var r=i();e.exports=n},{}],8:[function(t,e,a){"use strict";function i(t,e){return t.msg=D[e],e}function n(t){return(t<<1)-(t>4?9:0)}function r(t){for(var e=t.length;--e>=0;)t[e]=0}function s(t){var e=t.state,a=e.pending;a>t.avail_out&&(a=t.avail_out),0!==a&&(R.arraySet(t.output,e.pending_buf,e.pending_out,a,t.next_out),t.next_out+=a,e.pending_out+=a,t.total_out+=a,t.avail_out-=a,e.pending-=a,0===e.pending&&(e.pending_out=0))}function o(t,e){C._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,s(t.strm)}function l(t,e){t.pending_buf[t.pending++]=e}function h(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function d(t,e,a,i){var n=t.avail_in;return n>i&&(n=i),0===n?0:(t.avail_in-=n,R.arraySet(e,t.input,t.next_in,n,a),1===t.state.wrap?t.adler=N(t.adler,e,n,a):2===t.state.wrap&&(t.adler=O(t.adler,e,n,a)),t.next_in+=n,t.total_in+=n,n)}function f(t,e){var a,i,n=t.max_chain_length,r=t.strstart,s=t.prev_length,o=t.nice_match,l=t.strstart>t.w_size-ft?t.strstart-(t.w_size-ft):0,h=t.window,d=t.w_mask,f=t.prev,_=t.strstart+dt,u=h[r+s-1],c=h[r+s];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do if(a=e,h[a+s]===c&&h[a+s-1]===u&&h[a]===h[r]&&h[++a]===h[r+1]){r+=2,a++;do;while(h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&h[++r]===h[++a]&&r<_);if(i=dt-(_-r),r=_-dt,i>s){if(t.match_start=e,s=i,i>=o)break;u=h[r+s-1],c=h[r+s]}}while((e=f[e&d])>l&&0!==--n);return s<=t.lookahead?s:t.lookahead}function _(t){var e,a,i,n,r,s=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=s+(s-ft)){R.arraySet(t.window,t.window,s,s,0),t.match_start-=s,t.strstart-=s,t.block_start-=s,a=t.hash_size,e=a;do i=t.head[--e],t.head[e]=i>=s?i-s:0;while(--a);a=s,e=a;do i=t.prev[--e],t.prev[e]=i>=s?i-s:0;while(--a);n+=s}if(0===t.strm.avail_in)break;if(a=d(t.strm,t.window,t.strstart+t.lookahead,n),t.lookahead+=a,t.lookahead+t.insert>=ht)for(r=t.strstart-t.insert,t.ins_h=t.window[r],t.ins_h=(t.ins_h<t.pending_buf_size-5&&(a=t.pending_buf_size-5);;){if(t.lookahead<=1){if(_(t),0===t.lookahead&&e===I)return vt;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+a;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,o(t,!1),0===t.strm.avail_out))return vt;if(t.strstart-t.block_start>=t.w_size-ft&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.strstart>t.block_start&&(o(t,!1),0===t.strm.avail_out)?vt:vt}function c(t,e){for(var a,i;;){if(t.lookahead=ht&&(t.ins_h=(t.ins_h<=ht)if(i=C._tr_tally(t,t.strstart-t.match_start,t.match_length-ht),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=ht){t.match_length--;do t.strstart++,t.ins_h=(t.ins_h<=ht&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=ht-1)),t.prev_length>=ht&&t.match_length<=t.prev_length){n=t.strstart+t.lookahead-ht,i=C._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-ht),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=n&&(t.ins_h=(t.ins_h<=ht&&t.strstart>0&&(n=t.strstart-1,i=s[n],i===s[++n]&&i===s[++n]&&i===s[++n])){r=t.strstart+dt;do;while(i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&i===s[++n]&&nt.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=ht?(a=C._tr_tally(t,1,t.match_length-ht),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function m(t,e){for(var a;;){if(0===t.lookahead&&(_(t),0===t.lookahead)){if(e===I)return vt;break}if(t.match_length=0,a=C._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,a&&(o(t,!1),0===t.strm.avail_out))return vt}return t.insert=0,e===F?(o(t,!0),0===t.strm.avail_out?yt:xt):t.last_lit&&(o(t,!1),0===t.strm.avail_out)?vt:kt}function w(t,e,a,i,n){this.good_length=t,this.max_lazy=e,this.nice_length=a,this.max_chain=i,this.func=n}function p(t){t.window_size=2*t.w_size,r(t.head),t.max_lazy_match=Z[t.level].max_lazy,t.good_match=Z[t.level].good_length,t.nice_match=Z[t.level].nice_length,t.max_chain_length=Z[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=ht-1,t.match_available=0,t.ins_h=0}function v(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=V,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new R.Buf16(2*ot),this.dyn_dtree=new R.Buf16(2*(2*rt+1)),this.bl_tree=new R.Buf16(2*(2*st+1)),r(this.dyn_ltree),r(this.dyn_dtree),r(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new R.Buf16(lt+1),this.heap=new R.Buf16(2*nt+1),r(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new R.Buf16(2*nt+1),r(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function k(t){var e;return t&&t.state?(t.total_in=t.total_out=0,t.data_type=Q,e=t.state,e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap?ut:wt,t.adler=2===e.wrap?0:1,e.last_flush=I,C._tr_init(e),H):i(t,K)}function y(t){var e=k(t);return e===H&&p(t.state),e}function x(t,e){return t&&t.state?2!==t.state.wrap?K:(t.state.gzhead=e,H):K}function z(t,e,a,n,r,s){if(!t)return K;var o=1;if(e===Y&&(e=6),n<0?(o=0,n=-n):n>15&&(o=2,n-=16),r<1||r>$||a!==V||n<8||n>15||e<0||e>9||s<0||s>W)return i(t,K);8===n&&(n=9);var l=new v;return t.state=l,l.strm=t,l.wrap=o,l.gzhead=null,l.w_bits=n,l.w_size=1<L||e<0)return t?i(t,K):K;if(o=t.state,!t.output||!t.input&&0!==t.avail_in||o.status===pt&&e!==F)return i(t,0===t.avail_out?P:K);if(o.strm=t,a=o.last_flush,o.last_flush=e,o.status===ut)if(2===o.wrap)t.adler=0,l(o,31),l(o,139),l(o,8),o.gzhead?(l(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),l(o,255&o.gzhead.time),l(o,o.gzhead.time>>8&255),l(o,o.gzhead.time>>16&255),l(o,o.gzhead.time>>24&255),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(l(o,255&o.gzhead.extra.length),l(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(t.adler=O(t.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=ct):(l(o,0),l(o,0),l(o,0),l(o,0),l(o,0),l(o,9===o.level?2:o.strategy>=G||o.level<2?4:0),l(o,zt),o.status=wt);else{var _=V+(o.w_bits-8<<4)<<8,u=-1;u=o.strategy>=G||o.level<2?0:o.level<6?1:6===o.level?2:3,_|=u<<6,0!==o.strstart&&(_|=_t),_+=31-_%31,o.status=wt,h(o,_),0!==o.strstart&&(h(o,t.adler>>>16),h(o,65535&t.adler)),t.adler=1}if(o.status===ct)if(o.gzhead.extra){for(d=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending!==o.pending_buf_size));)l(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=bt)}else o.status=bt;if(o.status===bt)if(o.gzhead.name){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindexd&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.gzindex=0,o.status=gt)}else o.status=gt;if(o.status===gt)if(o.gzhead.comment){d=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>d&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),s(t),d=o.pending,o.pending===o.pending_buf_size)){f=1;break}f=o.gzindexd&&(t.adler=O(t.adler,o.pending_buf,o.pending-d,d)),0===f&&(o.status=mt)}else o.status=mt;if(o.status===mt&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&s(t),o.pending+2<=o.pending_buf_size&&(l(o,255&t.adler),l(o,t.adler>>8&255),t.adler=0,o.status=wt)):o.status=wt),0!==o.pending){if(s(t),0===t.avail_out)return o.last_flush=-1,H}else if(0===t.avail_in&&n(e)<=n(a)&&e!==F)return i(t,P);if(o.status===pt&&0!==t.avail_in)return i(t,P);if(0!==t.avail_in||0!==o.lookahead||e!==I&&o.status!==pt){var c=o.strategy===G?m(o,e):o.strategy===X?g(o,e):Z[o.level].func(o,e);if(c!==yt&&c!==xt||(o.status=pt),c===vt||c===yt)return 0===t.avail_out&&(o.last_flush=-1),H;if(c===kt&&(e===U?C._tr_align(o):e!==L&&(C._tr_stored_block(o,0,0,!1),e===T&&(r(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),s(t),0===t.avail_out))return o.last_flush=-1,H}return e!==F?H:o.wrap<=0?j:(2===o.wrap?(l(o,255&t.adler),l(o,t.adler>>8&255),l(o,t.adler>>16&255),l(o,t.adler>>24&255),l(o,255&t.total_in),l(o,t.total_in>>8&255),l(o,t.total_in>>16&255),l(o,t.total_in>>24&255)):(h(o,t.adler>>>16),h(o,65535&t.adler)),s(t),o.wrap>0&&(o.wrap=-o.wrap),0!==o.pending?H:j)}function E(t){var e;return t&&t.state?(e=t.state.status,e!==ut&&e!==ct&&e!==bt&&e!==gt&&e!==mt&&e!==wt&&e!==pt?i(t,K):(t.state=null,e===wt?i(t,M):H)):K}function A(t,e){var a,i,n,s,o,l,h,d,f=e.length;if(!t||!t.state)return K;if(a=t.state,s=a.wrap,2===s||1===s&&a.status!==ut||a.lookahead)return K;for(1===s&&(t.adler=N(t.adler,e,f,0)),a.wrap=0,f>=a.w_size&&(0===s&&(r(a.head),a.strstart=0,a.block_start=0,a.insert=0),d=new R.Buf8(a.w_size),R.arraySet(d,e,f-a.w_size,a.w_size,0),e=d,f=a.w_size),o=t.avail_in,l=t.next_in,h=t.input,t.avail_in=f,t.next_in=0,t.input=e,_(a);a.lookahead>=ht;){i=a.strstart,n=a.lookahead-(ht-1);do a.ins_h=(a.ins_h<>>24,b>>>=y,g-=y,y=k>>>16&255,0===y)A[o++]=65535&k;else{if(!(16&y)){if(0===(64&y)){k=m[(65535&k)+(b&(1<>>=y,g-=y),g<15&&(b+=E[r++]<>>24,b>>>=y,g-=y,y=k>>>16&255,!(16&y)){if(0===(64&y)){k=w[(65535&k)+(b&(1<d){t.msg="invalid distance too far back",a.mode=i;break t}if(b>>>=y,g-=y,y=o-l,z>y){if(y=z-y,y>_&&a.sane){t.msg="invalid distance too far back",a.mode=i;break t}if(B=0,S=c,0===u){if(B+=f-y,y2;)A[o++]=S[B++],A[o++]=S[B++],A[o++]=S[B++],x-=3;x&&(A[o++]=S[B++],x>1&&(A[o++]=S[B++]))}else{B=o-z;do A[o++]=A[B++],A[o++]=A[B++],A[o++]=A[B++],x-=3;while(x>2);x&&(A[o++]=A[B++],x>1&&(A[o++]=A[B++]))}break}}break}}while(r>3,r-=x,g-=x<<3,b&=(1<>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function n(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new w.Buf16(320),this.work=new w.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function r(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=T,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new w.Buf32(bt),e.distcode=e.distdyn=new w.Buf32(gt),e.sane=1,e.back=-1,Z):N}function s(t){var e;return t&&t.state?(e=t.state,e.wsize=0,e.whave=0,e.wnext=0,r(t)):N}function o(t,e){var a,i;return t&&t.state?(i=t.state,e<0?(a=0,e=-e):(a=(e>>4)+1,e<48&&(e&=15)),e&&(e<8||e>15)?N:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=a,i.wbits=e,s(t))):N}function l(t,e){var a,i;return t?(i=new n,t.state=i,i.window=null,a=o(t,e),a!==Z&&(t.state=null),a):N}function h(t){return l(t,wt)}function d(t){if(pt){var e;for(g=new w.Buf32(512),m=new w.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(y(z,t.lens,0,288,g,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;y(B,t.lens,0,32,m,0,t.work,{bits:5}),pt=!1}t.lencode=g,t.lenbits=9,t.distcode=m,t.distbits=5}function f(t,e,a,i){var n,r=t.state;return null===r.window&&(r.wsize=1<=r.wsize?(w.arraySet(r.window,e,a-r.wsize,r.wsize,0),r.wnext=0,r.whave=r.wsize):(n=r.wsize-r.wnext,n>i&&(n=i),w.arraySet(r.window,e,a-i,n,r.wnext),i-=n,i?(w.arraySet(r.window,e,a-i,i,0),r.wnext=i,r.whave=r.wsize):(r.wnext+=n,r.wnext===r.wsize&&(r.wnext=0),r.whave>>8&255,a.check=v(a.check,Et,2,0),_=0,u=0,a.mode=F;break}if(a.flags=0,a.head&&(a.head.done=!1),!(1&a.wrap)||(((255&_)<<8)+(_>>8))%31){t.msg="incorrect header check",a.mode=_t;break}if((15&_)!==U){t.msg="unknown compression method",a.mode=_t;break}if(_>>>=4,u-=4,yt=(15&_)+8,0===a.wbits)a.wbits=yt;else if(yt>a.wbits){t.msg="invalid window size",a.mode=_t;break}a.dmax=1<>8&1),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=L;case L:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<>>8&255,Et[2]=_>>>16&255,Et[3]=_>>>24&255,a.check=v(a.check,Et,4,0)),_=0,u=0,a.mode=H;case H:for(;u<16;){if(0===l)break t;l--,_+=n[s++]<>8),512&a.flags&&(Et[0]=255&_,Et[1]=_>>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0,a.mode=j;case j:if(1024&a.flags){for(;u<16;){if(0===l)break t;l--,_+=n[s++]<>>8&255,a.check=v(a.check,Et,2,0)),_=0,u=0}else a.head&&(a.head.extra=null);a.mode=K;case K:if(1024&a.flags&&(g=a.length,g>l&&(g=l),g&&(a.head&&(yt=a.head.extra_len-a.length,a.head.extra||(a.head.extra=new Array(a.head.extra_len)),w.arraySet(a.head.extra,n,s,g,yt)),512&a.flags&&(a.check=v(a.check,n,g,s)),l-=g,s+=g,a.length-=g),a.length))break t;a.length=0,a.mode=M;case M:if(2048&a.flags){if(0===l)break t;g=0;do yt=n[s+g++],a.head&&yt&&a.length<65536&&(a.head.name+=String.fromCharCode(yt));while(yt&&g>9&1,a.head.done=!0),t.adler=a.check=0,a.mode=X;break;case q:for(;u<32;){if(0===l)break t;l--,_+=n[s++]<>>=7&u,u-=7&u,a.mode=ht;break}for(;u<3;){if(0===l)break t;l--,_+=n[s++]<>>=1,u-=1,3&_){case 0:a.mode=J;break;case 1:if(d(a),a.mode=at,e===A){_>>>=2,u-=2;break t}break;case 2:a.mode=$;break;case 3:t.msg="invalid block type",a.mode=_t}_>>>=2,u-=2;break;case J:for(_>>>=7&u,u-=7&u;u<32;){if(0===l)break t;l--,_+=n[s++]<>>16^65535)){t.msg="invalid stored block lengths",a.mode=_t;break}if(a.length=65535&_,_=0,u=0,a.mode=Q,e===A)break t;case Q:a.mode=V;case V:if(g=a.length){if(g>l&&(g=l),g>h&&(g=h),0===g)break t;w.arraySet(r,n,s,g,o),l-=g,s+=g,h-=g,o+=g,a.length-=g;break}a.mode=X;break;case $: +for(;u<14;){if(0===l)break t;l--,_+=n[s++]<>>=5,u-=5,a.ndist=(31&_)+1,_>>>=5,u-=5,a.ncode=(15&_)+4,_>>>=4,u-=4,a.nlen>286||a.ndist>30){t.msg="too many length or distance symbols",a.mode=_t;break}a.have=0,a.mode=tt;case tt:for(;a.have>>=3,u-=3}for(;a.have<19;)a.lens[At[a.have++]]=0;if(a.lencode=a.lendyn,a.lenbits=7,zt={bits:a.lenbits},xt=y(x,a.lens,0,19,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid code lengths set",a.mode=_t;break}a.have=0,a.mode=et;case et:for(;a.have>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=gt,u-=gt,a.lens[a.have++]=wt;else{if(16===wt){for(Bt=gt+2;u>>=gt,u-=gt,0===a.have){t.msg="invalid bit length repeat",a.mode=_t;break}yt=a.lens[a.have-1],g=3+(3&_),_>>>=2,u-=2}else if(17===wt){for(Bt=gt+3;u>>=gt,u-=gt,yt=0,g=3+(7&_),_>>>=3,u-=3}else{for(Bt=gt+7;u>>=gt,u-=gt,yt=0,g=11+(127&_),_>>>=7,u-=7}if(a.have+g>a.nlen+a.ndist){t.msg="invalid bit length repeat",a.mode=_t;break}for(;g--;)a.lens[a.have++]=yt}}if(a.mode===_t)break;if(0===a.lens[256]){t.msg="invalid code -- missing end-of-block",a.mode=_t;break}if(a.lenbits=9,zt={bits:a.lenbits},xt=y(z,a.lens,0,a.nlen,a.lencode,0,a.work,zt),a.lenbits=zt.bits,xt){t.msg="invalid literal/lengths set",a.mode=_t;break}if(a.distbits=6,a.distcode=a.distdyn,zt={bits:a.distbits},xt=y(B,a.lens,a.nlen,a.ndist,a.distcode,0,a.work,zt),a.distbits=zt.bits,xt){t.msg="invalid distances set",a.mode=_t;break}if(a.mode=at,e===A)break t;case at:a.mode=it;case it:if(l>=6&&h>=258){t.next_out=o,t.avail_out=h,t.next_in=s,t.avail_in=l,a.hold=_,a.bits=u,k(t,b),o=t.next_out,r=t.output,h=t.avail_out,s=t.next_in,n=t.input,l=t.avail_in,_=a.hold,u=a.bits,a.mode===X&&(a.back=-1);break}for(a.back=0;St=a.lencode[_&(1<>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,a.length=wt,0===mt){a.mode=lt;break}if(32&mt){a.back=-1,a.mode=X;break}if(64&mt){t.msg="invalid literal/length code",a.mode=_t;break}a.extra=15&mt,a.mode=nt;case nt:if(a.extra){for(Bt=a.extra;u>>=a.extra,u-=a.extra,a.back+=a.extra}a.was=a.length,a.mode=rt;case rt:for(;St=a.distcode[_&(1<>>24,mt=St>>>16&255,wt=65535&St,!(gt<=u);){if(0===l)break t;l--,_+=n[s++]<>pt)],gt=St>>>24,mt=St>>>16&255,wt=65535&St,!(pt+gt<=u);){if(0===l)break t;l--,_+=n[s++]<>>=pt,u-=pt,a.back+=pt}if(_>>>=gt,u-=gt,a.back+=gt,64&mt){t.msg="invalid distance code",a.mode=_t;break}a.offset=wt,a.extra=15&mt,a.mode=st;case st:if(a.extra){for(Bt=a.extra;u>>=a.extra,u-=a.extra,a.back+=a.extra}if(a.offset>a.dmax){t.msg="invalid distance too far back",a.mode=_t;break}a.mode=ot;case ot:if(0===h)break t;if(g=b-h,a.offset>g){if(g=a.offset-g,g>a.whave&&a.sane){t.msg="invalid distance too far back",a.mode=_t;break}g>a.wnext?(g-=a.wnext,m=a.wsize-g):m=a.wnext-g,g>a.length&&(g=a.length),bt=a.window}else bt=r,m=o-a.offset,g=a.length;g>h&&(g=h),h-=g,a.length-=g;do r[o++]=bt[m++];while(--g);0===a.length&&(a.mode=it);break;case lt:if(0===h)break t;r[o++]=a.length,h--,a.mode=it;break;case ht:if(a.wrap){for(;u<32;){if(0===l)break t;l--,_|=n[s++]<=1&&0===j[N];N--);if(O>N&&(O=N),0===N)return b[g++]=20971520,b[g++]=20971520,w.bits=1,0;for(C=1;C0&&(t===o||1!==N))return-1;for(K[1]=0,Z=1;Zr||t===h&&T>s)return 1;for(;;){B=Z-I,m[R]z?(S=M[P+m[R]],E=L[H+m[R]]):(S=96,E=0),p=1<>I)+v]=B<<24|S<<16|E|0;while(0!==v);for(p=1<>=1;if(0!==p?(F&=p-1,F+=p):F=0,R++,0===--j[Z]){if(Z===N)break;Z=e[a+m[R]]}if(Z>O&&(F&y)!==k){for(0===I&&(I=O),x+=C,D=Z-I,U=1<r||t===h&&T>s)return 1;k=F&y,b[k]=O<<24|D<<16|x-g|0}}return 0!==F&&(b[x+F]=Z-I<<24|64<<16|0),w.bits=O,0}},{"../utils/common":3}],13:[function(t,e,a){"use strict";e.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],14:[function(t,e,a){"use strict";function i(t){for(var e=t.length;--e>=0;)t[e]=0}function n(t,e,a,i,n){this.static_tree=t,this.extra_bits=e,this.extra_base=a,this.elems=i,this.max_length=n,this.has_stree=t&&t.length}function r(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function s(t){return t<256?lt[t]:lt[256+(t>>>7)]}function o(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function l(t,e,a){t.bi_valid>W-a?(t.bi_buf|=e<>W-t.bi_valid,t.bi_valid+=a-W):(t.bi_buf|=e<>>=1,a<<=1;while(--e>0);return a>>>1}function f(t){16===t.bi_valid?(o(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}function _(t,e){var a,i,n,r,s,o,l=e.dyn_tree,h=e.max_code,d=e.stat_desc.static_tree,f=e.stat_desc.has_stree,_=e.stat_desc.extra_bits,u=e.stat_desc.extra_base,c=e.stat_desc.max_length,b=0;for(r=0;r<=X;r++)t.bl_count[r]=0;for(l[2*t.heap[t.heap_max]+1]=0,a=t.heap_max+1;ac&&(r=c,b++),l[2*i+1]=r,i>h||(t.bl_count[r]++,s=0,i>=u&&(s=_[i-u]),o=l[2*i],t.opt_len+=o*(r+s),f&&(t.static_len+=o*(d[2*i+1]+s)));if(0!==b){do{for(r=c-1;0===t.bl_count[r];)r--;t.bl_count[r]--,t.bl_count[r+1]+=2,t.bl_count[c]--,b-=2}while(b>0);for(r=c;0!==r;r--)for(i=t.bl_count[r];0!==i;)n=t.heap[--a],n>h||(l[2*n+1]!==r&&(t.opt_len+=(r-l[2*n+1])*l[2*n],l[2*n+1]=r),i--)}}function u(t,e,a){var i,n,r=new Array(X+1),s=0;for(i=1;i<=X;i++)r[i]=s=s+a[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=d(r[o]++,o))}}function c(){var t,e,a,i,r,s=new Array(X+1);for(a=0,i=0;i>=7;i8?o(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function m(t,e,a,i){g(t),i&&(o(t,a),o(t,~a)),N.arraySet(t.pending_buf,t.window,e,a,t.pending),t.pending+=a}function w(t,e,a,i){var n=2*e,r=2*a;return t[n]>1;a>=1;a--)p(t,r,a);n=l;do a=t.heap[1],t.heap[1]=t.heap[t.heap_len--],p(t,r,1),i=t.heap[1],t.heap[--t.heap_max]=a,t.heap[--t.heap_max]=i,r[2*n]=r[2*a]+r[2*i],t.depth[n]=(t.depth[a]>=t.depth[i]?t.depth[a]:t.depth[i])+1,r[2*a+1]=r[2*i+1]=n,t.heap[1]=n++,p(t,r,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],_(t,e),u(r,h,t.bl_count)}function y(t,e,a){var i,n,r=-1,s=e[1],o=0,l=7,h=4;for(0===s&&(l=138,h=3),e[2*(a+1)+1]=65535,i=0;i<=a;i++)n=s,s=e[2*(i+1)+1],++o=3&&0===t.bl_tree[2*nt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}function B(t,e,a,i){var n;for(l(t,e-257,5),l(t,a-1,5),l(t,i-4,4),n=0;n>>=1)if(1&a&&0!==t.dyn_ltree[2*e])return D;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return I;for(e=32;e0?(t.strm.data_type===U&&(t.strm.data_type=S(t)),k(t,t.l_desc),k(t,t.d_desc),s=z(t),n=t.opt_len+3+7>>>3,r=t.static_len+3+7>>>3,r<=n&&(n=r)):n=r=a+5,a+4<=n&&e!==-1?A(t,e,a,i):t.strategy===O||r===n?(l(t,(F<<1)+(i?1:0),3),v(t,st,ot)):(l(t,(L<<1)+(i?1:0),3),B(t,t.l_desc.max_code+1,t.d_desc.max_code+1,s+1),v(t,t.dyn_ltree,t.dyn_dtree)),b(t),i&&g(t)}function C(t,e,a){return t.pending_buf[t.d_buf+2*t.last_lit]=e>>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&a,t.last_lit++,0===e?t.dyn_ltree[2*a]++:(t.matches++,e--,t.dyn_ltree[2*(ht[a]+M+1)]++,t.dyn_dtree[2*s(e)]++),t.last_lit===t.lit_bufsize-1}var N=t("../utils/common"),O=4,D=0,I=1,U=2,T=0,F=1,L=2,H=3,j=258,K=29,M=256,P=M+1+K,Y=30,q=19,G=2*P+1,X=15,W=16,J=7,Q=256,V=16,$=17,tt=18,et=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],at=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],it=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],nt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],rt=512,st=new Array(2*(P+2));i(st);var ot=new Array(2*Y);i(ot);var lt=new Array(rt);i(lt);var ht=new Array(j-H+1);i(ht);var dt=new Array(K);i(dt);var ft=new Array(Y);i(ft);var _t,ut,ct,bt=!1;a._tr_init=E,a._tr_stored_block=A,a._tr_flush_block=R,a._tr_tally=C,a._tr_align=Z},{"../utils/common":3}],15:[function(t,e,a){"use strict";function i(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}e.exports=i},{}],"/":[function(t,e,a){"use strict";var i=t("./lib/utils/common").assign,n=t("./lib/deflate"),r=t("./lib/inflate"),s=t("./lib/zlib/constants"),o={};i(o,n,r,s),e.exports=o},{"./lib/deflate":1,"./lib/inflate":2,"./lib/utils/common":3,"./lib/zlib/constants":6}]},{},[])("/")}); +/** + * @license + * Copyright 2015 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +var PDFJS; + +(function(PDFJS) { + "use strict"; + +var JpegError = (function JpegErrorClosure() { + function JpegError(msg) { + this.message = 'JPEG error: ' + msg; + } + + JpegError.prototype = new Error(); + JpegError.prototype.name = 'JpegError'; + JpegError.constructor = JpegError; + + return JpegError; +})(); + + var JpegImage = (function JpegImageClosure() { + var dctZigZag = new Uint8Array([ + 0, + 1, 8, + 16, 9, 2, + 3, 10, 17, 24, + 32, 25, 18, 11, 4, + 5, 12, 19, 26, 33, 40, + 48, 41, 34, 27, 20, 13, 6, + 7, 14, 21, 28, 35, 42, 49, 56, + 57, 50, 43, 36, 29, 22, 15, + 23, 30, 37, 44, 51, 58, + 59, 52, 45, 38, 31, + 39, 46, 53, 60, + 61, 54, 47, + 55, 62, + 63 + ]); + + var dctCos1 = 4017; // cos(pi/16) + var dctSin1 = 799; // sin(pi/16) + var dctCos3 = 3406; // cos(3*pi/16) + var dctSin3 = 2276; // sin(3*pi/16) + var dctCos6 = 1567; // cos(6*pi/16) + var dctSin6 = 3784; // sin(6*pi/16) + var dctSqrt2 = 5793; // sqrt(2) + var dctSqrt1d2 = 2896; // sqrt(2) / 2 + + function JpegImage(pms) { + if(pms==null) pms={} + if(pms.decodeTransform==null) pms.decodeTransform=null; + if(pms.colorTransform==null) pms.colorTransform=-1; + this._decodeTransform = pms.decodeTransform; + this._colorTransform = pms.colorTransform; + } + + function buildHuffmanTable(codeLengths, values) { + var k = 0, code = [], i, j, length = 16; + while (length > 0 && !codeLengths[length - 1]) { + length--; + } + code.push({ children: [], index: 0, }); + var p = code[0], q; + for (i = 0; i < length; i++) { + for (j = 0; j < codeLengths[i]; j++) { + p = code.pop(); + p.children[p.index] = values[k]; + while (p.index > 0) { + p = code.pop(); + } + p.index++; + code.push(p); + while (code.length <= i) { + code.push(q = { children: [], index: 0, }); + p.children[p.index] = q.children; + p = q; + } + k++; + } + if (i + 1 < length) { + // p here points to last code + code.push(q = { children: [], index: 0, }); + p.children[p.index] = q.children; + p = q; + } + } + return code[0].children; + } + + function getBlockBufferOffset(component, row, col) { + return 64 * ((component.blocksPerLine + 1) * row + col); + } + + function decodeScan(data, offset, frame, components, resetInterval, + spectralStart, spectralEnd, successivePrev, successive, + parseDNLMarker) { + if(parseDNLMarker==null) parseDNLMarker=false; + var mcusPerLine = frame.mcusPerLine; + var progressive = frame.progressive; + + var startOffset = offset, bitsData = 0, bitsCount = 0; + + function readBit() { + if (bitsCount > 0) { + bitsCount--; + return (bitsData >> bitsCount) & 1; + } + bitsData = data[offset++]; + if (bitsData === 0xFF) { + var nextByte = data[offset++]; + if (nextByte) { + if (nextByte === 0xDC && parseDNLMarker) { // DNL == 0xFFDC + offset += 2; // Skip data length. + var scanLines = (data[offset++] << 8) | data[offset++]; + if (scanLines > 0 && scanLines !== frame.scanLines) { + throw new DNLMarkerError( + 'Found DNL marker (0xFFDC) while parsing scan data', scanLines); + } + } else if (nextByte === 0xD9) { // EOI == 0xFFD9 + throw new EOIMarkerError( + 'Found EOI marker (0xFFD9) while parsing scan data'); + } + throw new JpegError( + "unexpected marker "+((bitsData << 8) | nextByte).toString(16)); + } + // unstuff 0 + } + bitsCount = 7; + return bitsData >>> 7; + } + + function decodeHuffman(tree) { + var node = tree; + while (true) { + node = node[readBit()]; + if (typeof node === 'number') { + return node; + } + if (typeof node !== 'object') { + throw new JpegError('invalid huffman sequence'); + } + } + } + + function receive(length) { + var n = 0; + while (length > 0) { + n = (n << 1) | readBit(); + length--; + } + return n; + } + + function receiveAndExtend(length) { + if (length === 1) { + return readBit() === 1 ? 1 : -1; + } + var n = receive(length); + if (n >= 1 << (length - 1)) { + return n; + } + return n + (-1 << length) + 1; + } + + function decodeBaseline(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : receiveAndExtend(t); + component.blockData[offset] = (component.pred += diff); + var k = 1; + while (k < 64) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = receiveAndExtend(s); + k++; + } + } + + function decodeDCFirst(component, offset) { + var t = decodeHuffman(component.huffmanTableDC); + var diff = t === 0 ? 0 : (receiveAndExtend(t) << successive); + component.blockData[offset] = (component.pred += diff); + } + + function decodeDCSuccessive(component, offset) { + component.blockData[offset] |= readBit() << successive; + } + + var eobrun = 0; + function decodeACFirst(component, offset) { + if (eobrun > 0) { + eobrun--; + return; + } + var k = spectralStart, e = spectralEnd; + while (k <= e) { + var rs = decodeHuffman(component.huffmanTableAC); + var s = rs & 15, r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r) - 1; + break; + } + k += 16; + continue; + } + k += r; + var z = dctZigZag[k]; + component.blockData[offset + z] = + receiveAndExtend(s) * (1 << successive); + k++; + } + } + + var successiveACState = 0, successiveACNextValue; + function decodeACSuccessive(component, offset) { + var k = spectralStart; + var e = spectralEnd; + var r = 0; + var s; + var rs; + while (k <= e) { + var offsetZ = offset + dctZigZag[k]; + var sign = component.blockData[offsetZ] < 0 ? -1 : 1; + switch (successiveACState) { + case 0: // initial state + rs = decodeHuffman(component.huffmanTableAC); + s = rs & 15; + r = rs >> 4; + if (s === 0) { + if (r < 15) { + eobrun = receive(r) + (1 << r); + successiveACState = 4; + } else { + r = 16; + successiveACState = 1; + } + } else { + if (s !== 1) { + throw new JpegError('invalid ACn encoding'); + } + successiveACNextValue = receiveAndExtend(s); + successiveACState = r ? 2 : 3; + } + continue; + case 1: // skipping r zero items + case 2: + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + r--; + if (r === 0) { + successiveACState = successiveACState === 2 ? 3 : 0; + } + } + break; + case 3: // set value for a zero item + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } else { + component.blockData[offsetZ] = + successiveACNextValue << successive; + successiveACState = 0; + } + break; + case 4: // eob + if (component.blockData[offsetZ]) { + component.blockData[offsetZ] += sign * (readBit() << successive); + } + break; + } + k++; + } + if (successiveACState === 4) { + eobrun--; + if (eobrun === 0) { + successiveACState = 0; + } + } + } + + function decodeMcu(component, decode, mcu, row, col) { + var mcuRow = (mcu / mcusPerLine) | 0; + var mcuCol = mcu % mcusPerLine; + var blockRow = mcuRow * component.v + row; + var blockCol = mcuCol * component.h + col; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + + function decodeBlock(component, decode, mcu) { + var blockRow = (mcu / component.blocksPerLine) | 0; + var blockCol = mcu % component.blocksPerLine; + var offset = getBlockBufferOffset(component, blockRow, blockCol); + decode(component, offset); + } + + var componentsLength = components.length; + var component, i, j, k, n; + var decodeFn; + if (progressive) { + if (spectralStart === 0) { + decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive; + } else { + decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive; + } + } else { + decodeFn = decodeBaseline; + } + + var mcu = 0, fileMarker; + var mcuExpected; + if (componentsLength === 1) { + mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn; + } else { + mcuExpected = mcusPerLine * frame.mcusPerColumn; + } + + var h, v; + while (mcu < mcuExpected) { + // reset interval stuff + var mcuToRead = resetInterval ? + Math.min(mcuExpected - mcu, resetInterval) : mcuExpected; + for (i = 0; i < componentsLength; i++) { + components[i].pred = 0; + } + eobrun = 0; + + if (componentsLength === 1) { + component = components[0]; + for (n = 0; n < mcuToRead; n++) { + decodeBlock(component, decodeFn, mcu); + mcu++; + } + } else { + for (n = 0; n < mcuToRead; n++) { + for (i = 0; i < componentsLength; i++) { + component = components[i]; + h = component.h; + v = component.v; + for (j = 0; j < v; j++) { + for (k = 0; k < h; k++) { + decodeMcu(component, decodeFn, mcu, j, k); + } + } + } + mcu++; + } + } + + // find marker + bitsCount = 0; + fileMarker = findNextFileMarker(data, offset); + // Some bad images seem to pad Scan blocks with e.g. zero bytes, skip past + // those to attempt to find a valid marker (fixes issue4090.pdf). + if (fileMarker && fileMarker.invalid) { + warn('decodeScan - unexpected MCU data, current marker is: ' + + fileMarker.invalid); + offset = fileMarker.offset; + } + var marker = fileMarker && fileMarker.marker; + if (!marker || marker <= 0xFF00) { + throw new JpegError('marker was not found'); + } + + if (marker >= 0xFFD0 && marker <= 0xFFD7) { // RSTx + offset += 2; + } else { + break; + } + } + + fileMarker = findNextFileMarker(data, offset); + // Some images include more Scan blocks than expected, skip past those and + // attempt to find the next valid marker (fixes issue8182.pdf). + if (fileMarker && fileMarker.invalid) { + warn('decodeScan - unexpected Scan data, current marker is: ' + + fileMarker.invalid); + offset = fileMarker.offset; + } + + return offset - startOffset; + } + + // A port of poppler's IDCT method which in turn is taken from: + // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz, + // 'Practical Fast 1-D DCT Algorithms with 11 Multiplications', + // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989, + // 988-991. + function quantizeAndInverse(component, blockBufferOffset, p) { + var qt = component.quantizationTable, blockData = component.blockData; + var v0, v1, v2, v3, v4, v5, v6, v7; + var p0, p1, p2, p3, p4, p5, p6, p7; + var t; + + if (!qt) { + throw new JpegError('missing required Quantization Table.'); + } + + // inverse DCT on rows + for (var row = 0; row < 64; row += 8) { + // gather block data + p0 = blockData[blockBufferOffset + row]; + p1 = blockData[blockBufferOffset + row + 1]; + p2 = blockData[blockBufferOffset + row + 2]; + p3 = blockData[blockBufferOffset + row + 3]; + p4 = blockData[blockBufferOffset + row + 4]; + p5 = blockData[blockBufferOffset + row + 5]; + p6 = blockData[blockBufferOffset + row + 6]; + p7 = blockData[blockBufferOffset + row + 7]; + + // dequant p0 + p0 *= qt[row]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = (dctSqrt2 * p0 + 512) >> 10; + p[row] = t; + p[row + 1] = t; + p[row + 2] = t; + p[row + 3] = t; + p[row + 4] = t; + p[row + 5] = t; + p[row + 6] = t; + p[row + 7] = t; + continue; + } + // dequant p1 ... p7 + p1 *= qt[row + 1]; + p2 *= qt[row + 2]; + p3 *= qt[row + 3]; + p4 *= qt[row + 4]; + p5 *= qt[row + 5]; + p6 *= qt[row + 6]; + p7 *= qt[row + 7]; + + // stage 4 + v0 = (dctSqrt2 * p0 + 128) >> 8; + v1 = (dctSqrt2 * p4 + 128) >> 8; + v2 = p2; + v3 = p6; + v4 = (dctSqrt1d2 * (p1 - p7) + 128) >> 8; + v7 = (dctSqrt1d2 * (p1 + p7) + 128) >> 8; + v5 = p3 << 4; + v6 = p5 << 4; + + // stage 3 + v0 = (v0 + v1 + 1) >> 1; + v1 = v0 - v1; + t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p[row] = v0 + v7; + p[row + 7] = v0 - v7; + p[row + 1] = v1 + v6; + p[row + 6] = v1 - v6; + p[row + 2] = v2 + v5; + p[row + 5] = v2 - v5; + p[row + 3] = v3 + v4; + p[row + 4] = v3 - v4; + } + + // inverse DCT on columns + for (var col = 0; col < 8; ++col) { + p0 = p[col]; + p1 = p[col + 8]; + p2 = p[col + 16]; + p3 = p[col + 24]; + p4 = p[col + 32]; + p5 = p[col + 40]; + p6 = p[col + 48]; + p7 = p[col + 56]; + + // check for all-zero AC coefficients + if ((p1 | p2 | p3 | p4 | p5 | p6 | p7) === 0) { + t = (dctSqrt2 * p0 + 8192) >> 14; + // convert to 8 bit + t = (t < -2040) ? 0 : (t >= 2024) ? 255 : (t + 2056) >> 4; + blockData[blockBufferOffset + col] = t; + blockData[blockBufferOffset + col + 8] = t; + blockData[blockBufferOffset + col + 16] = t; + blockData[blockBufferOffset + col + 24] = t; + blockData[blockBufferOffset + col + 32] = t; + blockData[blockBufferOffset + col + 40] = t; + blockData[blockBufferOffset + col + 48] = t; + blockData[blockBufferOffset + col + 56] = t; + continue; + } + + // stage 4 + v0 = (dctSqrt2 * p0 + 2048) >> 12; + v1 = (dctSqrt2 * p4 + 2048) >> 12; + v2 = p2; + v3 = p6; + v4 = (dctSqrt1d2 * (p1 - p7) + 2048) >> 12; + v7 = (dctSqrt1d2 * (p1 + p7) + 2048) >> 12; + v5 = p3; + v6 = p5; + + // stage 3 + // Shift v0 by 128.5 << 5 here, so we don't need to shift p0...p7 when + // converting to UInt8 range later. + v0 = ((v0 + v1 + 1) >> 1) + 4112; + v1 = v0 - v1; + t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12; + v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12; + v3 = t; + v4 = (v4 + v6 + 1) >> 1; + v6 = v4 - v6; + v7 = (v7 + v5 + 1) >> 1; + v5 = v7 - v5; + + // stage 2 + v0 = (v0 + v3 + 1) >> 1; + v3 = v0 - v3; + v1 = (v1 + v2 + 1) >> 1; + v2 = v1 - v2; + t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12; + v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12; + v7 = t; + t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12; + v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12; + v6 = t; + + // stage 1 + p0 = v0 + v7; + p7 = v0 - v7; + p1 = v1 + v6; + p6 = v1 - v6; + p2 = v2 + v5; + p5 = v2 - v5; + p3 = v3 + v4; + p4 = v3 - v4; + + // convert to 8-bit integers + p0 = (p0 < 16) ? 0 : (p0 >= 4080) ? 255 : p0 >> 4; + p1 = (p1 < 16) ? 0 : (p1 >= 4080) ? 255 : p1 >> 4; + p2 = (p2 < 16) ? 0 : (p2 >= 4080) ? 255 : p2 >> 4; + p3 = (p3 < 16) ? 0 : (p3 >= 4080) ? 255 : p3 >> 4; + p4 = (p4 < 16) ? 0 : (p4 >= 4080) ? 255 : p4 >> 4; + p5 = (p5 < 16) ? 0 : (p5 >= 4080) ? 255 : p5 >> 4; + p6 = (p6 < 16) ? 0 : (p6 >= 4080) ? 255 : p6 >> 4; + p7 = (p7 < 16) ? 0 : (p7 >= 4080) ? 255 : p7 >> 4; + + // store block data + blockData[blockBufferOffset + col] = p0; + blockData[blockBufferOffset + col + 8] = p1; + blockData[blockBufferOffset + col + 16] = p2; + blockData[blockBufferOffset + col + 24] = p3; + blockData[blockBufferOffset + col + 32] = p4; + blockData[blockBufferOffset + col + 40] = p5; + blockData[blockBufferOffset + col + 48] = p6; + blockData[blockBufferOffset + col + 56] = p7; + } + } + + function buildComponentData(frame, component) { + var blocksPerLine = component.blocksPerLine; + var blocksPerColumn = component.blocksPerColumn; + var computationBuffer = new Int16Array(64); + + for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) { + for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) { + var offset = getBlockBufferOffset(component, blockRow, blockCol); + quantizeAndInverse(component, offset, computationBuffer); + } + } + return component.blockData; + } + + function findNextFileMarker(data, currentPos, startPos) { + if(startPos==null) startPos=currentPos; + function peekUint16(pos) { + return (data[pos] << 8) | data[pos + 1]; + } + + var maxPos = data.length - 1; + var newPos = startPos < currentPos ? startPos : currentPos; + + if (currentPos >= maxPos) { + return null; // Don't attempt to read non-existent data and just return. + } + var currentMarker = peekUint16(currentPos); + if (currentMarker >= 0xFFC0 && currentMarker <= 0xFFFE) { + return { + invalid: null, + marker: currentMarker, + offset: currentPos, + }; + } + var newMarker = peekUint16(newPos); + while (!(newMarker >= 0xFFC0 && newMarker <= 0xFFFE)) { + if (++newPos >= maxPos) { + return null; // Don't attempt to read non-existent data and just return. + } + newMarker = peekUint16(newPos); + } + return { + invalid: currentMarker.toString(16), + marker: newMarker, + offset: newPos, + }; + } + + JpegImage.prototype = { + parse: function(data, pms) { + if(pms==null) pms={}; + var dnlScanLines = pms.dnlScanLines; + + function readUint16() { + var value = (data[offset] << 8) | data[offset + 1]; + offset += 2; + return value; + } + + function readDataBlock() { + var length = readUint16(); + var endOffset = offset + length - 2; + + var fileMarker = findNextFileMarker(data, endOffset, offset); + if (fileMarker && fileMarker.invalid) { + warn('readDataBlock - incorrect length, current marker is: ' + + fileMarker.invalid); + endOffset = fileMarker.offset; + } + + var array = data.subarray(offset, endOffset); + offset += array.length; + return array; + } + + function prepareComponents(frame) { + var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH); + var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV); + for (var i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + var blocksPerLine = Math.ceil(Math.ceil(frame.samplesPerLine / 8) * + component.h / frame.maxH); + var blocksPerColumn = Math.ceil(Math.ceil(frame.scanLines / 8) * + component.v / frame.maxV); + var blocksPerLineForMcu = mcusPerLine * component.h; + var blocksPerColumnForMcu = mcusPerColumn * component.v; + + var blocksBufferSize = 64 * blocksPerColumnForMcu * + (blocksPerLineForMcu + 1); + component.blockData = new Int16Array(blocksBufferSize); + component.blocksPerLine = blocksPerLine; + component.blocksPerColumn = blocksPerColumn; + } + frame.mcusPerLine = mcusPerLine; + frame.mcusPerColumn = mcusPerColumn; + } + + var offset = 0; + var jfif = null; + var adobe = null; + var frame, resetInterval; + var numSOSMarkers = 0; + var quantizationTables = []; + var huffmanTablesAC = [], huffmanTablesDC = []; + var fileMarker = readUint16(); + if (fileMarker !== 0xFFD8) { // SOI (Start of Image) + throw new JpegError('SOI not found'); + } + + fileMarker = readUint16(); + markerLoop: while (fileMarker !== 0xFFD9) { // EOI (End of image) + var i, j, l; + switch (fileMarker) { + case 0xFFE0: // APP0 (Application Specific) + case 0xFFE1: // APP1 + case 0xFFE2: // APP2 + case 0xFFE3: // APP3 + case 0xFFE4: // APP4 + case 0xFFE5: // APP5 + case 0xFFE6: // APP6 + case 0xFFE7: // APP7 + case 0xFFE8: // APP8 + case 0xFFE9: // APP9 + case 0xFFEA: // APP10 + case 0xFFEB: // APP11 + case 0xFFEC: // APP12 + case 0xFFED: // APP13 + case 0xFFEE: // APP14 + case 0xFFEF: // APP15 + case 0xFFFE: // COM (Comment) + var appData = readDataBlock(); + + if (fileMarker === 0xFFE0) { + if (appData[0] === 0x4A && appData[1] === 0x46 && + appData[2] === 0x49 && appData[3] === 0x46 && + appData[4] === 0) { // 'JFIF\x00' + jfif = { + version: { major: appData[5], minor: appData[6], }, + densityUnits: appData[7], + xDensity: (appData[8] << 8) | appData[9], + yDensity: (appData[10] << 8) | appData[11], + thumbWidth: appData[12], + thumbHeight: appData[13], + thumbData: appData.subarray(14, 14 + + 3 * appData[12] * appData[13]), + }; + } + } + // TODO APP1 - Exif + if (fileMarker === 0xFFEE) { + if (appData[0] === 0x41 && appData[1] === 0x64 && + appData[2] === 0x6F && appData[3] === 0x62 && + appData[4] === 0x65) { // 'Adobe' + adobe = { + version: (appData[5] << 8) | appData[6], + flags0: (appData[7] << 8) | appData[8], + flags1: (appData[9] << 8) | appData[10], + transformCode: appData[11], + }; + } + } + break; + + case 0xFFDB: // DQT (Define Quantization Tables) + var quantizationTablesLength = readUint16(); + var quantizationTablesEnd = quantizationTablesLength + offset - 2; + var z; + while (offset < quantizationTablesEnd) { + var quantizationTableSpec = data[offset++]; + var tableData = new Uint16Array(64); + if ((quantizationTableSpec >> 4) === 0) { // 8 bit values + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = data[offset++]; + } + } else if ((quantizationTableSpec >> 4) === 1) { // 16 bit values + for (j = 0; j < 64; j++) { + z = dctZigZag[j]; + tableData[z] = readUint16(); + } + } else { + throw new JpegError('DQT - invalid table spec'); + } + quantizationTables[quantizationTableSpec & 15] = tableData; + } + break; + + case 0xFFC0: // SOF0 (Start of Frame, Baseline DCT) + case 0xFFC1: // SOF1 (Start of Frame, Extended DCT) + case 0xFFC2: // SOF2 (Start of Frame, Progressive DCT) + if (frame) { + throw new JpegError('Only single frame JPEGs supported'); + } + readUint16(); // skip data length + frame = {}; + frame.extended = (fileMarker === 0xFFC1); + frame.progressive = (fileMarker === 0xFFC2); + frame.precision = data[offset++]; + var sofScanLines = readUint16(); + frame.scanLines = dnlScanLines || sofScanLines; + frame.samplesPerLine = readUint16(); + frame.components = []; + frame.componentIds = {}; + var componentsCount = data[offset++], componentId; + var maxH = 0, maxV = 0; + for (i = 0; i < componentsCount; i++) { + componentId = data[offset]; + var h = data[offset + 1] >> 4; + var v = data[offset + 1] & 15; + if (maxH < h) { + maxH = h; + } + if (maxV < v) { + maxV = v; + } + var qId = data[offset + 2]; + l = frame.components.push({ + h:h, + v:v, + quantizationId: qId, + quantizationTable: null, // See comment below. + }); + frame.componentIds[componentId] = l - 1; + offset += 3; + } + frame.maxH = maxH; + frame.maxV = maxV; + prepareComponents(frame); + break; + + case 0xFFC4: // DHT (Define Huffman Tables) + var huffmanLength = readUint16(); + for (i = 2; i < huffmanLength;) { + var huffmanTableSpec = data[offset++]; + var codeLengths = new Uint8Array(16); + var codeLengthSum = 0; + for (j = 0; j < 16; j++, offset++) { + codeLengthSum += (codeLengths[j] = data[offset]); + } + var huffmanValues = new Uint8Array(codeLengthSum); + for (j = 0; j < codeLengthSum; j++, offset++) { + huffmanValues[j] = data[offset]; + } + i += 17 + codeLengthSum; + + ((huffmanTableSpec >> 4) === 0 ? + huffmanTablesDC : huffmanTablesAC)[huffmanTableSpec & 15] = + buildHuffmanTable(codeLengths, huffmanValues); + } + break; + + case 0xFFDD: // DRI (Define Restart Interval) + readUint16(); // skip data length + resetInterval = readUint16(); + break; + + case 0xFFDA: // SOS (Start of Scan) + // A DNL marker (0xFFDC), if it exists, is only allowed at the end + // of the first scan segment and may only occur once in an image. + // Furthermore, to prevent an infinite loop, do *not* attempt to + // parse DNL markers during re-parsing of the JPEG scan data. + var parseDNLMarker = (++numSOSMarkers) === 1 && !dnlScanLines; + + readUint16(); // scanLength + var selectorsCount = data[offset++]; + var components = [], component; + for (i = 0; i < selectorsCount; i++) { + var componentIndex = frame.componentIds[data[offset++]]; + component = frame.components[componentIndex]; + var tableSpec = data[offset++]; + component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4]; + component.huffmanTableAC = huffmanTablesAC[tableSpec & 15]; + components.push(component); + } + var spectralStart = data[offset++]; + var spectralEnd = data[offset++]; + var successiveApproximation = data[offset++]; + try { + var processed = decodeScan(data, offset, + frame, components, resetInterval, + spectralStart, spectralEnd, + successiveApproximation >> 4, successiveApproximation & 15, + parseDNLMarker); + offset += processed; + } catch (ex) { + if (ex instanceof DNLMarkerError) { + warn(ex.message+" -- attempting to re-parse the JPEG image."); + return this.parse(data, { dnlScanLines: ex.scanLines, }); + } else if (ex instanceof EOIMarkerError) { + warn(ex.message+" -- ignoring the rest of the image data."); + break markerLoop; + } + throw ex; + } + break; + + case 0xFFDC: // DNL (Define Number of Lines) + // Ignore the marker, since it's being handled in `decodeScan`. + offset += 4; + break; + + case 0xFFFF: // Fill bytes + if (data[offset] !== 0xFF) { // Avoid skipping a valid marker. + offset--; + } + break; + + default: + if (data[offset - 3] === 0xFF && + data[offset - 2] >= 0xC0 && data[offset - 2] <= 0xFE) { + // could be incorrect encoding -- last 0xFF byte of the previous + // block was eaten by the encoder + offset -= 3; + break; + } + var nextFileMarker = findNextFileMarker(data, offset - 2); + if (nextFileMarker && nextFileMarker.invalid) { + warn('JpegImage.parse - unexpected data, current marker is: ' + + nextFileMarker.invalid); + offset = nextFileMarker.offset; + break; + } + throw new JpegError('unknown marker ' + fileMarker.toString(16)); + } + fileMarker = readUint16(); + } + + this.width = frame.samplesPerLine; + this.height = frame.scanLines; + this.jfif = jfif; + this.adobe = adobe; + this.components = []; + for (i = 0; i < frame.components.length; i++) { + component = frame.components[i]; + + // Prevent errors when DQT markers are placed after SOF{n} markers, + // by assigning the `quantizationTable` entry after the entire image + // has been parsed (fixes issue7406.pdf). + var quantizationTable = quantizationTables[component.quantizationId]; + if (quantizationTable) { + component.quantizationTable = quantizationTable; + } + + this.components.push({ + output: buildComponentData(frame, component), + scaleX: component.h / frame.maxH, + scaleY: component.v / frame.maxV, + blocksPerLine: component.blocksPerLine, + blocksPerColumn: component.blocksPerColumn, + }); + } + this.numComponents = this.components.length; + }, + + _getLinearizedBlockData: function(width, height, isSourcePDF) { + if(isSourcePDF==null) isSourcePDF=false; + var scaleX = this.width / width, scaleY = this.height / height; + + var component, componentScaleX, componentScaleY, blocksPerScanline; + var x, y, i, j, k; + var index; + var offset = 0; + var output; + var numComponents = this.components.length; + var dataLength = width * height * numComponents; + var data = new Uint8ClampedArray(dataLength); + var xScaleBlockOffset = new Uint32Array(width); + var mask3LSB = 0xfffffff8; // used to clear the 3 LSBs + + for (i = 0; i < numComponents; i++) { + component = this.components[i]; + componentScaleX = component.scaleX * scaleX; + componentScaleY = component.scaleY * scaleY; + offset = i; + output = component.output; + blocksPerScanline = (component.blocksPerLine + 1) << 3; + // precalculate the xScaleBlockOffset + for (x = 0; x < width; x++) { + j = 0 | (x * componentScaleX); + xScaleBlockOffset[x] = ((j & mask3LSB) << 3) | (j & 7); + } + // linearize the blocks of the component + for (y = 0; y < height; y++) { + j = 0 | (y * componentScaleY); + index = blocksPerScanline * (j & mask3LSB) | ((j & 7) << 3); + for (x = 0; x < width; x++) { + data[offset] = output[index + xScaleBlockOffset[x]]; + offset += numComponents; + } + } + } + + // decodeTransform contains pairs of multiplier (-256..256) and additive + var transform = this._decodeTransform; + + // In PDF files, JPEG images with CMYK colour spaces are usually inverted + // (this can be observed by extracting the raw image data). + // Since the conversion algorithms (see below) were written primarily for + // the PDF use-cases, attempting to use `JpegImage` to parse standalone + // JPEG (CMYK) images may thus result in inverted images (see issue 9513). + // + // Unfortunately it's not (always) possible to tell, from the image data + // alone, if it needs to be inverted. Thus in an attempt to provide better + // out-of-box behaviour when `JpegImage` is used standalone, default to + // inverting JPEG (CMYK) images if and only if the image data does *not* + // come from a PDF file and no `decodeTransform` was passed by the user. + if (!transform && numComponents === 4 && !isSourcePDF) { + transform = new Int32Array([ + -256, 255, -256, 255, -256, 255, -256, 255]); + } + + if (transform) { + for (i = 0; i < dataLength;) { + for (j = 0, k = 0; j < numComponents; j++, i++, k += 2) { + data[i] = ((data[i] * transform[k]) >> 8) + transform[k + 1]; + } + } + } + return data; + }, + + get _isColorConversionNeeded() { + if (this.adobe) { + // The adobe transform marker overrides any previous setting. + return !!this.adobe.transformCode; + } + if (this.numComponents === 3) { + if (this._colorTransform === 0) { + // If the Adobe transform marker is not present and the image + // dictionary has a 'ColorTransform' entry, explicitly set to `0`, + // then the colours should *not* be transformed. + return false; + } + return true; + } + // `this.numComponents !== 3` + if (this._colorTransform === 1) { + // If the Adobe transform marker is not present and the image + // dictionary has a 'ColorTransform' entry, explicitly set to `1`, + // then the colours should be transformed. + return true; + } + return false; + }, + + _convertYccToRgb: function convertYccToRgb(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 3) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = Y - 179.456 + 1.402 * Cr; + data[i + 1] = Y + 135.459 - 0.344 * Cb - 0.714 * Cr; + data[i + 2] = Y - 226.816 + 1.772 * Cb; + } + return data; + }, + + _convertYcckToRgb: function convertYcckToRgb(data) { + var Y, Cb, Cr, k; + var offset = 0; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + k = data[i + 3]; + + data[offset++] = -122.67195406894 + + Cb * (-6.60635669420364e-5 * Cb + 0.000437130475926232 * Cr - + 5.4080610064599e-5 * Y + 0.00048449797120281 * k - + 0.154362151871126) + + Cr * (-0.000957964378445773 * Cr + 0.000817076911346625 * Y - + 0.00477271405408747 * k + 1.53380253221734) + + Y * (0.000961250184130688 * Y - 0.00266257332283933 * k + + 0.48357088451265) + + k * (-0.000336197177618394 * k + 0.484791561490776); + + data[offset++] = 107.268039397724 + + Cb * (2.19927104525741e-5 * Cb - 0.000640992018297945 * Cr + + 0.000659397001245577 * Y + 0.000426105652938837 * k - + 0.176491792462875) + + Cr * (-0.000778269941513683 * Cr + 0.00130872261408275 * Y + + 0.000770482631801132 * k - 0.151051492775562) + + Y * (0.00126935368114843 * Y - 0.00265090189010898 * k + + 0.25802910206845) + + k * (-0.000318913117588328 * k - 0.213742400323665); + + data[offset++] = -20.810012546947 + + Cb * (-0.000570115196973677 * Cb - 2.63409051004589e-5 * Cr + + 0.0020741088115012 * Y - 0.00288260236853442 * k + + 0.814272968359295) + + Cr * (-1.53496057440975e-5 * Cr - 0.000132689043961446 * Y + + 0.000560833691242812 * k - 0.195152027534049) + + Y * (0.00174418132927582 * Y - 0.00255243321439347 * k + + 0.116935020465145) + + k * (-0.000343531996510555 * k + 0.24165260232407); + } + // Ensure that only the converted RGB data is returned. + return data.subarray(0, offset); + }, + + _convertYcckToCmyk: function convertYcckToCmyk(data) { + var Y, Cb, Cr; + for (var i = 0, length = data.length; i < length; i += 4) { + Y = data[i]; + Cb = data[i + 1]; + Cr = data[i + 2]; + data[i] = 434.456 - Y - 1.402 * Cr; + data[i + 1] = 119.541 - Y + 0.344 * Cb + 0.714 * Cr; + data[i + 2] = 481.816 - Y - 1.772 * Cb; + // K in data[i + 3] is unchanged + } + return data; + }, + + _convertCmykToRgb: function convertCmykToRgb(data) { + var c, m, y, k; + var offset = 0; + var scale = 1 / 255; + for (var i = 0, length = data.length; i < length; i += 4) { + c = data[i] * scale; + m = data[i + 1] * scale; + y = data[i + 2] * scale; + k = data[i + 3] * scale; + + data[offset++] = 255 + + c * (-4.387332384609988 * c + 54.48615194189176 * m + + 18.82290502165302 * y + 212.25662451639585 * k - + 285.2331026137004) + + m * (1.7149763477362134 * m - 5.6096736904047315 * y - + 17.873870861415444 * k - 5.497006427196366) + + y * (-2.5217340131683033 * y - 21.248923337353073 * k + + 17.5119270841813) - + k * (21.86122147463605 * k + 189.48180835922747); + + data[offset++] = 255 + + c * (8.841041422036149 * c + 60.118027045597366 * m + + 6.871425592049007 * y + 31.159100130055922 * k - + 79.2970844816548) + + m * (-15.310361306967817 * m + 17.575251261109482 * y + + 131.35250912493976 * k - 190.9453302588951) + + y * (4.444339102852739 * y + 9.8632861493405 * k - + 24.86741582555878) - + k * (20.737325471181034 * k + 187.80453709719578); + + data[offset++] = 255 + + c * (0.8842522430003296 * c + 8.078677503112928 * m + + 30.89978309703729 * y - 0.23883238689178934 * k - + 14.183576799673286) + + m * (10.49593273432072 * m + 63.02378494754052 * y + + 50.606957656360734 * k - 112.23884253719248) + + y * (0.03296041114873217 * y + 115.60384449646641 * k - + 193.58209356861505) - + k * (22.33816807309886 * k + 180.12613974708367); + } + // Ensure that only the converted RGB data is returned. + return data.subarray(0, offset); + }, + + getData: function(pms) { + if(pms==null) pms={}; + var width=pms.width, height=pms.height, forceRGB=pms.forceRGB!=null?pms.forceRGB:false, isSourcePDF=pms.isSourcePDF!=null?pms.isSourcePDF:false; + if (this.numComponents > 4) { + throw new JpegError('Unsupported color mode'); + } + // Type of data: Uint8ClampedArray(width * height * numComponents) + var data = this._getLinearizedBlockData(width, height, isSourcePDF); + + if (this.numComponents === 1 && forceRGB) { + var dataLength = data.length; + var rgbData = new Uint8ClampedArray(dataLength * 3); + var offset = 0; + for (var i = 0; i < dataLength; i++) { + var grayColor = data[i]; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + rgbData[offset++] = grayColor; + } + return rgbData; + } else if (this.numComponents === 3 && this._isColorConversionNeeded) { + return this._convertYccToRgb(data); + } else if (this.numComponents === 4) { + if (this._isColorConversionNeeded) { + if (forceRGB) { + return this._convertYcckToRgb(data); + } + return this._convertYcckToCmyk(data); + } else if (forceRGB) { + return this._convertCmykToRgb(data); + } + } + return data; + }, + }; + + return JpegImage; +})(); + + + "use strict"; + var ArithmeticDecoder = function ArithmeticDecoderClosure() { + var QeTable = [{ + qe: 0x5601, + nmps: 1, + nlps: 1, + switchFlag: 1 + }, { + qe: 0x3401, + nmps: 2, + nlps: 6, + switchFlag: 0 + }, { + qe: 0x1801, + nmps: 3, + nlps: 9, + switchFlag: 0 + }, { + qe: 0x0AC1, + nmps: 4, + nlps: 12, + switchFlag: 0 + }, { + qe: 0x0521, + nmps: 5, + nlps: 29, + switchFlag: 0 + }, { + qe: 0x0221, + nmps: 38, + nlps: 33, + switchFlag: 0 + }, { + qe: 0x5601, + nmps: 7, + nlps: 6, + switchFlag: 1 + }, { + qe: 0x5401, + nmps: 8, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x4801, + nmps: 9, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x3801, + nmps: 10, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x3001, + nmps: 11, + nlps: 17, + switchFlag: 0 + }, { + qe: 0x2401, + nmps: 12, + nlps: 18, + switchFlag: 0 + }, { + qe: 0x1C01, + nmps: 13, + nlps: 20, + switchFlag: 0 + }, { + qe: 0x1601, + nmps: 29, + nlps: 21, + switchFlag: 0 + }, { + qe: 0x5601, + nmps: 15, + nlps: 14, + switchFlag: 1 + }, { + qe: 0x5401, + nmps: 16, + nlps: 14, + switchFlag: 0 + }, { + qe: 0x5101, + nmps: 17, + nlps: 15, + switchFlag: 0 + }, { + qe: 0x4801, + nmps: 18, + nlps: 16, + switchFlag: 0 + }, { + qe: 0x3801, + nmps: 19, + nlps: 17, + switchFlag: 0 + }, { + qe: 0x3401, + nmps: 20, + nlps: 18, + switchFlag: 0 + }, { + qe: 0x3001, + nmps: 21, + nlps: 19, + switchFlag: 0 + }, { + qe: 0x2801, + nmps: 22, + nlps: 19, + switchFlag: 0 + }, { + qe: 0x2401, + nmps: 23, + nlps: 20, + switchFlag: 0 + }, { + qe: 0x2201, + nmps: 24, + nlps: 21, + switchFlag: 0 + }, { + qe: 0x1C01, + nmps: 25, + nlps: 22, + switchFlag: 0 + }, { + qe: 0x1801, + nmps: 26, + nlps: 23, + switchFlag: 0 + }, { + qe: 0x1601, + nmps: 27, + nlps: 24, + switchFlag: 0 + }, { + qe: 0x1401, + nmps: 28, + nlps: 25, + switchFlag: 0 + }, { + qe: 0x1201, + nmps: 29, + nlps: 26, + switchFlag: 0 + }, { + qe: 0x1101, + nmps: 30, + nlps: 27, + switchFlag: 0 + }, { + qe: 0x0AC1, + nmps: 31, + nlps: 28, + switchFlag: 0 + }, { + qe: 0x09C1, + nmps: 32, + nlps: 29, + switchFlag: 0 + }, { + qe: 0x08A1, + nmps: 33, + nlps: 30, + switchFlag: 0 + }, { + qe: 0x0521, + nmps: 34, + nlps: 31, + switchFlag: 0 + }, { + qe: 0x0441, + nmps: 35, + nlps: 32, + switchFlag: 0 + }, { + qe: 0x02A1, + nmps: 36, + nlps: 33, + switchFlag: 0 + }, { + qe: 0x0221, + nmps: 37, + nlps: 34, + switchFlag: 0 + }, { + qe: 0x0141, + nmps: 38, + nlps: 35, + switchFlag: 0 + }, { + qe: 0x0111, + nmps: 39, + nlps: 36, + switchFlag: 0 + }, { + qe: 0x0085, + nmps: 40, + nlps: 37, + switchFlag: 0 + }, { + qe: 0x0049, + nmps: 41, + nlps: 38, + switchFlag: 0 + }, { + qe: 0x0025, + nmps: 42, + nlps: 39, + switchFlag: 0 + }, { + qe: 0x0015, + nmps: 43, + nlps: 40, + switchFlag: 0 + }, { + qe: 0x0009, + nmps: 44, + nlps: 41, + switchFlag: 0 + }, { + qe: 0x0005, + nmps: 45, + nlps: 42, + switchFlag: 0 + }, { + qe: 0x0001, + nmps: 45, + nlps: 43, + switchFlag: 0 + }, { + qe: 0x5601, + nmps: 46, + nlps: 46, + switchFlag: 0 + }]; + function ArithmeticDecoder(data, start, end) { + this.data = data; + this.bp = start; + this.dataEnd = end; + this.chigh = data[start]; + this.clow = 0; + this.byteIn(); + this.chigh = this.chigh << 7 & 0xFFFF | this.clow >> 9 & 0x7F; + this.clow = this.clow << 7 & 0xFFFF; + this.ct -= 7; + this.a = 0x8000; + } + ArithmeticDecoder.prototype = { + byteIn: function ArithmeticDecoder_byteIn() { + var data = this.data; + var bp = this.bp; + if (data[bp] === 0xFF) { + var b1 = data[bp + 1]; + if (b1 > 0x8F) { + this.clow += 0xFF00; + this.ct = 8; + } else { + bp++; + this.clow += data[bp] << 9; + this.ct = 7; + this.bp = bp; + } + } else { + bp++; + this.clow += bp < this.dataEnd ? data[bp] << 8 : 0xFF00; + this.ct = 8; + this.bp = bp; + } + if (this.clow > 0xFFFF) { + this.chigh += this.clow >> 16; + this.clow &= 0xFFFF; + } + }, + readBit: function ArithmeticDecoder_readBit(contexts, pos) { + var cx_index = contexts[pos] >> 1, + cx_mps = contexts[pos] & 1; + var qeTableIcx = QeTable[cx_index]; + var qeIcx = qeTableIcx.qe; + var d; + var a = this.a - qeIcx; + if (this.chigh < qeIcx) { + if (a < qeIcx) { + a = qeIcx; + d = cx_mps; + cx_index = qeTableIcx.nmps; + } else { + a = qeIcx; + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } + } else { + this.chigh -= qeIcx; + if ((a & 0x8000) !== 0) { + this.a = a; + return cx_mps; + } + if (a < qeIcx) { + d = 1 ^ cx_mps; + if (qeTableIcx.switchFlag === 1) { + cx_mps = d; + } + cx_index = qeTableIcx.nlps; + } else { + d = cx_mps; + cx_index = qeTableIcx.nmps; + } + } + do { + if (this.ct === 0) { + this.byteIn(); + } + a <<= 1; + this.chigh = this.chigh << 1 & 0xFFFF | this.clow >> 15 & 1; + this.clow = this.clow << 1 & 0xFFFF; + this.ct--; + } while ((a & 0x8000) === 0); + this.a = a; + contexts[pos] = cx_index << 1 | cx_mps; + return d; + } + }; + return ArithmeticDecoder; +}(); + + + + "use strict"; + var JpxImage = function JpxImageClosure() { + var SubbandsGainLog2 = { + 'LL': 0, + 'LH': 1, + 'HL': 1, + 'HH': 2 + }; + function JpxImage() { + this.failOnCorruptedImage = false; + } + JpxImage.prototype = { + parse: function JpxImage_parse(data) { + var head = readUint16(data, 0); + if (head === 0xFF4F) { + this.parseCodestream(data, 0, data.length); + return; + } + var position = 0, + length = data.length; + while (position < length) { + var headerSize = 8; + var lbox = readUint32(data, position); + var tbox = readUint32(data, position + 4); + position += headerSize; + if (lbox === 1) { + lbox = readUint32(data, position) * 4294967296 + readUint32(data, position + 4); + position += 8; + headerSize += 8; + } + if (lbox === 0) { + lbox = length - position + headerSize; + } + if (lbox < headerSize) { + error('JPX Error: Invalid box field size'); + } + var dataLength = lbox - headerSize; + var jumpDataLength = true; + switch (tbox) { + case 0x6A703268: + jumpDataLength = false; + break; + case 0x636F6C72: + var method = data[position]; + if (method === 1) { + var colorspace = readUint32(data, position + 3); + switch (colorspace) { + case 16: + case 17: + case 18: + break; + default: + warn('Unknown colorspace ' + colorspace); + break; + } + } else if (method === 2) { + info('ICC profile not supported'); + } + break; + case 0x6A703263: + this.parseCodestream(data, position, position + dataLength); + break; + case 0x6A502020: + if (readUint32(data, position) !== 0x0d0a870a) { + warn('Invalid JP2 signature'); + } + break; + case 0x6A501A1A: + case 0x66747970: + case 0x72726571: + case 0x72657320: + case 0x69686472: + break; + default: + var headerType = String.fromCharCode(tbox >> 24 & 0xFF, tbox >> 16 & 0xFF, tbox >> 8 & 0xFF, tbox & 0xFF); + warn('Unsupported header type ' + tbox + ' (' + headerType + ')'); + break; + } + if (jumpDataLength) { + position += dataLength; + } + } + }, + parseImageProperties: function JpxImage_parseImageProperties(stream) { + var newByte = stream.getByte(); + while (newByte >= 0) { + var oldByte = newByte; + newByte = stream.getByte(); + var code = oldByte << 8 | newByte; + if (code === 0xFF51) { + stream.skip(4); + var Xsiz = stream.getInt32() >>> 0; + var Ysiz = stream.getInt32() >>> 0; + var XOsiz = stream.getInt32() >>> 0; + var YOsiz = stream.getInt32() >>> 0; + stream.skip(16); + var Csiz = stream.getUint16(); + this.width = Xsiz - XOsiz; + this.height = Ysiz - YOsiz; + this.componentsCount = Csiz; + this.bitsPerComponent = 8; + return; + } + } + error('JPX Error: No size marker found in JPX stream'); + }, + parseCodestream: function JpxImage_parseCodestream(data, start, end) { + var context = {}; + var doNotRecover = false; + try { + var position = start; + while (position + 1 < end) { + var code = readUint16(data, position); + position += 2; + var length = 0, + j, + sqcd, + spqcds, + spqcdSize, + scalarExpounded, + tile; + switch (code) { + case 0xFF4F: + context.mainHeader = true; + break; + case 0xFFD9: + break; + case 0xFF51: + length = readUint16(data, position); + var siz = {}; + siz.Xsiz = readUint32(data, position + 4); + siz.Ysiz = readUint32(data, position + 8); + siz.XOsiz = readUint32(data, position + 12); + siz.YOsiz = readUint32(data, position + 16); + siz.XTsiz = readUint32(data, position + 20); + siz.YTsiz = readUint32(data, position + 24); + siz.XTOsiz = readUint32(data, position + 28); + siz.YTOsiz = readUint32(data, position + 32); + var componentsCount = readUint16(data, position + 36); + siz.Csiz = componentsCount; + var components = []; + j = position + 38; + for (var i = 0; i < componentsCount; i++) { + var component = { + precision: (data[j] & 0x7F) + 1, + isSigned: !!(data[j] & 0x80), + XRsiz: data[j + 1], + YRsiz: data[j + 1] + }; + calculateComponentDimensions(component, siz); + components.push(component); + } + context.SIZ = siz; + context.components = components; + calculateTileGrids(context, components); + context.QCC = []; + context.COC = []; + break; + case 0xFF5C: + length = readUint16(data, position); + var qcd = {}; + j = position + 2; + sqcd = data[j++]; + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + qcd.noQuantization = spqcdSize === 8; + qcd.scalarExpounded = scalarExpounded; + qcd.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + var spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcd.SPqcds = spqcds; + if (context.mainHeader) { + context.QCD = qcd; + } else { + context.currentTile.QCD = qcd; + context.currentTile.QCC = []; + } + break; + case 0xFF5D: + length = readUint16(data, position); + var qcc = {}; + j = position + 2; + var cqcc; + if (context.SIZ.Csiz < 257) { + cqcc = data[j++]; + } else { + cqcc = readUint16(data, j); + j += 2; + } + sqcd = data[j++]; + switch (sqcd & 0x1F) { + case 0: + spqcdSize = 8; + scalarExpounded = true; + break; + case 1: + spqcdSize = 16; + scalarExpounded = false; + break; + case 2: + spqcdSize = 16; + scalarExpounded = true; + break; + default: + throw new Error('Invalid SQcd value ' + sqcd); + } + qcc.noQuantization = spqcdSize === 8; + qcc.scalarExpounded = scalarExpounded; + qcc.guardBits = sqcd >> 5; + spqcds = []; + while (j < length + position) { + spqcd = {}; + if (spqcdSize === 8) { + spqcd.epsilon = data[j++] >> 3; + spqcd.mu = 0; + } else { + spqcd.epsilon = data[j] >> 3; + spqcd.mu = (data[j] & 0x7) << 8 | data[j + 1]; + j += 2; + } + spqcds.push(spqcd); + } + qcc.SPqcds = spqcds; + if (context.mainHeader) { + context.QCC[cqcc] = qcc; + } else { + context.currentTile.QCC[cqcc] = qcc; + } + break; + case 0xFF52: + length = readUint16(data, position); + var cod = {}; + j = position + 2; + var scod = data[j++]; + cod.entropyCoderWithCustomPrecincts = !!(scod & 1); + cod.sopMarkerUsed = !!(scod & 2); + cod.ephMarkerUsed = !!(scod & 4); + cod.progressionOrder = data[j++]; + cod.layersCount = readUint16(data, j); + j += 2; + cod.multipleComponentTransform = data[j++]; + cod.decompositionLevelsCount = data[j++]; + cod.xcb = (data[j++] & 0xF) + 2; + cod.ycb = (data[j++] & 0xF) + 2; + var blockStyle = data[j++]; + cod.selectiveArithmeticCodingBypass = !!(blockStyle & 1); + cod.resetContextProbabilities = !!(blockStyle & 2); + cod.terminationOnEachCodingPass = !!(blockStyle & 4); + cod.verticalyStripe = !!(blockStyle & 8); + cod.predictableTermination = !!(blockStyle & 16); + cod.segmentationSymbolUsed = !!(blockStyle & 32); + cod.reversibleTransformation = data[j++]; + if (cod.entropyCoderWithCustomPrecincts) { + var precinctsSizes = []; + while (j < length + position) { + var precinctsSize = data[j++]; + precinctsSizes.push({ + PPx: precinctsSize & 0xF, + PPy: precinctsSize >> 4 + }); + } + cod.precinctsSizes = precinctsSizes; + } + var unsupported = []; + if (cod.selectiveArithmeticCodingBypass) { + unsupported.push('selectiveArithmeticCodingBypass'); + } + if (cod.resetContextProbabilities) { + unsupported.push('resetContextProbabilities'); + } + if (cod.terminationOnEachCodingPass) { + unsupported.push('terminationOnEachCodingPass'); + } + if (cod.verticalyStripe) { + unsupported.push('verticalyStripe'); + } + if (cod.predictableTermination) { + unsupported.push('predictableTermination'); + } + if (unsupported.length > 0) { + doNotRecover = true; + throw new Error('Unsupported COD options (' + unsupported.join(', ') + ')'); + } + if (context.mainHeader) { + context.COD = cod; + } else { + context.currentTile.COD = cod; + context.currentTile.COC = []; + } + break; + case 0xFF90: + length = readUint16(data, position); + tile = {}; + tile.index = readUint16(data, position + 2); + tile.length = readUint32(data, position + 4); + tile.dataEnd = tile.length + position - 2; + tile.partIndex = data[position + 8]; + tile.partsCount = data[position + 9]; + context.mainHeader = false; + if (tile.partIndex === 0) { + tile.COD = context.COD; + tile.COC = context.COC.slice(0); + tile.QCD = context.QCD; + tile.QCC = context.QCC.slice(0); + } + context.currentTile = tile; + break; + case 0xFF93: + tile = context.currentTile; + if (tile.partIndex === 0) { + initializeTile(context, tile.index); + buildPackets(context); + } + length = tile.dataEnd - position; + parseTilePackets(context, data, position, length); + break; + case 0xFF55: + case 0xFF57: + case 0xFF58: + case 0xFF64: + length = readUint16(data, position); + break; + case 0xFF53: + throw new Error('Codestream code 0xFF53 (COC) is ' + 'not implemented'); + default: + throw new Error('Unknown codestream code: ' + code.toString(16)); + } + position += length; + } + } catch (e) { + if (doNotRecover || this.failOnCorruptedImage) { + error('JPX Error: ' + e.message); + } else { + warn('JPX: Trying to recover from: ' + e.message); + } + } + this.tiles = transformComponents(context); + this.width = context.SIZ.Xsiz - context.SIZ.XOsiz; + this.height = context.SIZ.Ysiz - context.SIZ.YOsiz; + this.componentsCount = context.SIZ.Csiz; + } + }; + function calculateComponentDimensions(component, siz) { + component.x0 = Math.ceil(siz.XOsiz / component.XRsiz); + component.x1 = Math.ceil(siz.Xsiz / component.XRsiz); + component.y0 = Math.ceil(siz.YOsiz / component.YRsiz); + component.y1 = Math.ceil(siz.Ysiz / component.YRsiz); + component.width = component.x1 - component.x0; + component.height = component.y1 - component.y0; + } + function calculateTileGrids(context, components) { + var siz = context.SIZ; + var tile, + tiles = []; + var numXtiles = Math.ceil((siz.Xsiz - siz.XTOsiz) / siz.XTsiz); + var numYtiles = Math.ceil((siz.Ysiz - siz.YTOsiz) / siz.YTsiz); + for (var q = 0; q < numYtiles; q++) { + for (var p = 0; p < numXtiles; p++) { + tile = {}; + tile.tx0 = Math.max(siz.XTOsiz + p * siz.XTsiz, siz.XOsiz); + tile.ty0 = Math.max(siz.YTOsiz + q * siz.YTsiz, siz.YOsiz); + tile.tx1 = Math.min(siz.XTOsiz + (p + 1) * siz.XTsiz, siz.Xsiz); + tile.ty1 = Math.min(siz.YTOsiz + (q + 1) * siz.YTsiz, siz.Ysiz); + tile.width = tile.tx1 - tile.tx0; + tile.height = tile.ty1 - tile.ty0; + tile.components = []; + tiles.push(tile); + } + } + context.tiles = tiles; + var componentsCount = siz.Csiz; + for (var i = 0, ii = componentsCount; i < ii; i++) { + var component = components[i]; + for (var j = 0, jj = tiles.length; j < jj; j++) { + var tileComponent = {}; + tile = tiles[j]; + tileComponent.tcx0 = Math.ceil(tile.tx0 / component.XRsiz); + tileComponent.tcy0 = Math.ceil(tile.ty0 / component.YRsiz); + tileComponent.tcx1 = Math.ceil(tile.tx1 / component.XRsiz); + tileComponent.tcy1 = Math.ceil(tile.ty1 / component.YRsiz); + tileComponent.width = tileComponent.tcx1 - tileComponent.tcx0; + tileComponent.height = tileComponent.tcy1 - tileComponent.tcy0; + tile.components[i] = tileComponent; + } + } + } + function getBlocksDimensions(context, component, r) { + var codOrCoc = component.codingStyleParameters; + var result = {}; + if (!codOrCoc.entropyCoderWithCustomPrecincts) { + result.PPx = 15; + result.PPy = 15; + } else { + result.PPx = codOrCoc.precinctsSizes[r].PPx; + result.PPy = codOrCoc.precinctsSizes[r].PPy; + } + result.xcb_ = r > 0 ? Math.min(codOrCoc.xcb, result.PPx - 1) : Math.min(codOrCoc.xcb, result.PPx); + result.ycb_ = r > 0 ? Math.min(codOrCoc.ycb, result.PPy - 1) : Math.min(codOrCoc.ycb, result.PPy); + return result; + } + function buildPrecincts(context, resolution, dimensions) { + var precinctWidth = 1 << dimensions.PPx; + var precinctHeight = 1 << dimensions.PPy; + var isZeroRes = resolution.resLevel === 0; + var precinctWidthInSubband = 1 << dimensions.PPx + (isZeroRes ? 0 : -1); + var precinctHeightInSubband = 1 << dimensions.PPy + (isZeroRes ? 0 : -1); + var numprecinctswide = resolution.trx1 > resolution.trx0 ? Math.ceil(resolution.trx1 / precinctWidth) - Math.floor(resolution.trx0 / precinctWidth) : 0; + var numprecinctshigh = resolution.try1 > resolution.try0 ? Math.ceil(resolution.try1 / precinctHeight) - Math.floor(resolution.try0 / precinctHeight) : 0; + var numprecincts = numprecinctswide * numprecinctshigh; + resolution.precinctParameters = { + precinctWidth: precinctWidth, + precinctHeight: precinctHeight, + numprecinctswide: numprecinctswide, + numprecinctshigh: numprecinctshigh, + numprecincts: numprecincts, + precinctWidthInSubband: precinctWidthInSubband, + precinctHeightInSubband: precinctHeightInSubband + }; + } + function buildCodeblocks(context, subband, dimensions) { + var xcb_ = dimensions.xcb_; + var ycb_ = dimensions.ycb_; + var codeblockWidth = 1 << xcb_; + var codeblockHeight = 1 << ycb_; + var cbx0 = subband.tbx0 >> xcb_; + var cby0 = subband.tby0 >> ycb_; + var cbx1 = subband.tbx1 + codeblockWidth - 1 >> xcb_; + var cby1 = subband.tby1 + codeblockHeight - 1 >> ycb_; + var precinctParameters = subband.resolution.precinctParameters; + var codeblocks = []; + var precincts = []; + var i, j, codeblock, precinctNumber; + for (j = cby0; j < cby1; j++) { + for (i = cbx0; i < cbx1; i++) { + codeblock = { + cbx: i, + cby: j, + tbx0: codeblockWidth * i, + tby0: codeblockHeight * j, + tbx1: codeblockWidth * (i + 1), + tby1: codeblockHeight * (j + 1) + }; + codeblock.tbx0_ = Math.max(subband.tbx0, codeblock.tbx0); + codeblock.tby0_ = Math.max(subband.tby0, codeblock.tby0); + codeblock.tbx1_ = Math.min(subband.tbx1, codeblock.tbx1); + codeblock.tby1_ = Math.min(subband.tby1, codeblock.tby1); + var pi = Math.floor((codeblock.tbx0_ - subband.tbx0) / precinctParameters.precinctWidthInSubband); + var pj = Math.floor((codeblock.tby0_ - subband.tby0) / precinctParameters.precinctHeightInSubband); + precinctNumber = pi + pj * precinctParameters.numprecinctswide; + codeblock.precinctNumber = precinctNumber; + codeblock.subbandType = subband.type; + codeblock.Lblock = 3; + if (codeblock.tbx1_ <= codeblock.tbx0_ || codeblock.tby1_ <= codeblock.tby0_) { + continue; + } + codeblocks.push(codeblock); + var precinct = precincts[precinctNumber]; + if (precinct !== undefined) { + if (i < precinct.cbxMin) { + precinct.cbxMin = i; + } else if (i > precinct.cbxMax) { + precinct.cbxMax = i; + } + if (j < precinct.cbyMin) { + precinct.cbxMin = j; + } else if (j > precinct.cbyMax) { + precinct.cbyMax = j; + } + } else { + precincts[precinctNumber] = precinct = { + cbxMin: i, + cbyMin: j, + cbxMax: i, + cbyMax: j + }; + } + codeblock.precinct = precinct; + } + } + subband.codeblockParameters = { + codeblockWidth: xcb_, + codeblockHeight: ycb_, + numcodeblockwide: cbx1 - cbx0 + 1, + numcodeblockhigh: cby1 - cby0 + 1 + }; + subband.codeblocks = codeblocks; + subband.precincts = precincts; + } + function createPacket(resolution, precinctNumber, layerNumber) { + var precinctCodeblocks = []; + var subbands = resolution.subbands; + for (var i = 0, ii = subbands.length; i < ii; i++) { + var subband = subbands[i]; + var codeblocks = subband.codeblocks; + for (var j = 0, jj = codeblocks.length; j < jj; j++) { + var codeblock = codeblocks[j]; + if (codeblock.precinctNumber !== precinctNumber) { + continue; + } + precinctCodeblocks.push(codeblock); + } + } + return { + layerNumber: layerNumber, + codeblocks: precinctCodeblocks + }; + } + function LayerResolutionComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + var l = 0, + r = 0, + i = 0, + k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; l < layersCount; l++) { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i = 0; + } + r = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ResolutionLayerComponentPositionIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var maxDecompositionLevelsCount = 0; + for (var q = 0; q < componentsCount; q++) { + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, tile.components[q].codingStyleParameters.decompositionLevelsCount); + } + var r = 0, + l = 0, + i = 0, + k = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; l < layersCount; l++) { + for (; i < componentsCount; i++) { + var component = tile.components[i]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + for (; k < numprecincts;) { + var packet = createPacket(resolution, k, l); + k++; + return packet; + } + k = 0; + } + i = 0; + } + l = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ResolutionPositionComponentLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var l, r, c, p; + var maxDecompositionLevelsCount = 0; + for (c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + maxDecompositionLevelsCount = Math.max(maxDecompositionLevelsCount, component.codingStyleParameters.decompositionLevelsCount); + } + var maxNumPrecinctsInLevel = new Int32Array(maxDecompositionLevelsCount + 1); + for (r = 0; r <= maxDecompositionLevelsCount; ++r) { + var maxNumPrecincts = 0; + for (c = 0; c < componentsCount; ++c) { + var resolutions = tile.components[c].resolutions; + if (r < resolutions.length) { + maxNumPrecincts = Math.max(maxNumPrecincts, resolutions[r].precinctParameters.numprecincts); + } + } + maxNumPrecinctsInLevel[r] = maxNumPrecincts; + } + l = 0; + r = 0; + c = 0; + p = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; r <= maxDecompositionLevelsCount; r++) { + for (; p < maxNumPrecinctsInLevel[r]; p++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + if (r > component.codingStyleParameters.decompositionLevelsCount) { + continue; + } + var resolution = component.resolutions[r]; + var numprecincts = resolution.precinctParameters.numprecincts; + if (p >= numprecincts) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, p, l); + l++; + return packet; + } + l = 0; + } + c = 0; + } + p = 0; + } + error('JPX Error: Out of packets'); + }; + } + function PositionComponentResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var precinctsIterationSizes = precinctsSizes; + var l = 0, + r = 0, + c = 0, + px = 0, + py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsSizes.components[c].resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + if (k === null) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + c = 0; + } + px = 0; + } + error('JPX Error: Out of packets'); + }; + } + function ComponentPositionResolutionLayerIterator(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var layersCount = tile.codingStyleDefaultParameters.layersCount; + var componentsCount = siz.Csiz; + var precinctsSizes = getPrecinctSizesInImageScale(tile); + var l = 0, + r = 0, + c = 0, + px = 0, + py = 0; + this.nextPacket = function JpxImage_nextPacket() { + for (; c < componentsCount; ++c) { + var component = tile.components[c]; + var precinctsIterationSizes = precinctsSizes.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + for (; py < precinctsIterationSizes.maxNumHigh; py++) { + for (; px < precinctsIterationSizes.maxNumWide; px++) { + for (; r <= decompositionLevelsCount; r++) { + var resolution = component.resolutions[r]; + var sizeInImageScale = precinctsIterationSizes.resolutions[r]; + var k = getPrecinctIndexIfExist(px, py, sizeInImageScale, precinctsIterationSizes, resolution); + if (k === null) { + continue; + } + for (; l < layersCount;) { + var packet = createPacket(resolution, k, l); + l++; + return packet; + } + l = 0; + } + r = 0; + } + px = 0; + } + py = 0; + } + error('JPX Error: Out of packets'); + }; + } + function getPrecinctIndexIfExist(pxIndex, pyIndex, sizeInImageScale, precinctIterationSizes, resolution) { + var posX = pxIndex * precinctIterationSizes.minWidth; + var posY = pyIndex * precinctIterationSizes.minHeight; + if (posX % sizeInImageScale.width !== 0 || posY % sizeInImageScale.height !== 0) { + return null; + } + var startPrecinctRowIndex = posY / sizeInImageScale.width * resolution.precinctParameters.numprecinctswide; + return posX / sizeInImageScale.height + startPrecinctRowIndex; + } + function getPrecinctSizesInImageScale(tile) { + var componentsCount = tile.components.length; + var minWidth = Number.MAX_VALUE; + var minHeight = Number.MAX_VALUE; + var maxNumWide = 0; + var maxNumHigh = 0; + var sizePerComponent = new Array(componentsCount); + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var sizePerResolution = new Array(decompositionLevelsCount + 1); + var minWidthCurrentComponent = Number.MAX_VALUE; + var minHeightCurrentComponent = Number.MAX_VALUE; + var maxNumWideCurrentComponent = 0; + var maxNumHighCurrentComponent = 0; + var scale = 1; + for (var r = decompositionLevelsCount; r >= 0; --r) { + var resolution = component.resolutions[r]; + var widthCurrentResolution = scale * resolution.precinctParameters.precinctWidth; + var heightCurrentResolution = scale * resolution.precinctParameters.precinctHeight; + minWidthCurrentComponent = Math.min(minWidthCurrentComponent, widthCurrentResolution); + minHeightCurrentComponent = Math.min(minHeightCurrentComponent, heightCurrentResolution); + maxNumWideCurrentComponent = Math.max(maxNumWideCurrentComponent, resolution.precinctParameters.numprecinctswide); + maxNumHighCurrentComponent = Math.max(maxNumHighCurrentComponent, resolution.precinctParameters.numprecinctshigh); + sizePerResolution[r] = { + width: widthCurrentResolution, + height: heightCurrentResolution + }; + scale <<= 1; + } + minWidth = Math.min(minWidth, minWidthCurrentComponent); + minHeight = Math.min(minHeight, minHeightCurrentComponent); + maxNumWide = Math.max(maxNumWide, maxNumWideCurrentComponent); + maxNumHigh = Math.max(maxNumHigh, maxNumHighCurrentComponent); + sizePerComponent[c] = { + resolutions: sizePerResolution, + minWidth: minWidthCurrentComponent, + minHeight: minHeightCurrentComponent, + maxNumWide: maxNumWideCurrentComponent, + maxNumHigh: maxNumHighCurrentComponent + }; + } + return { + components: sizePerComponent, + minWidth: minWidth, + minHeight: minHeight, + maxNumWide: maxNumWide, + maxNumHigh: maxNumHigh + }; + } + function buildPackets(context) { + var siz = context.SIZ; + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var componentsCount = siz.Csiz; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var decompositionLevelsCount = component.codingStyleParameters.decompositionLevelsCount; + var resolutions = []; + var subbands = []; + for (var r = 0; r <= decompositionLevelsCount; r++) { + var blocksDimensions = getBlocksDimensions(context, component, r); + var resolution = {}; + var scale = 1 << decompositionLevelsCount - r; + resolution.trx0 = Math.ceil(component.tcx0 / scale); + resolution.try0 = Math.ceil(component.tcy0 / scale); + resolution.trx1 = Math.ceil(component.tcx1 / scale); + resolution.try1 = Math.ceil(component.tcy1 / scale); + resolution.resLevel = r; + buildPrecincts(context, resolution, blocksDimensions); + resolutions.push(resolution); + var subband; + if (r === 0) { + subband = {}; + subband.type = 'LL'; + subband.tbx0 = Math.ceil(component.tcx0 / scale); + subband.tby0 = Math.ceil(component.tcy0 / scale); + subband.tbx1 = Math.ceil(component.tcx1 / scale); + subband.tby1 = Math.ceil(component.tcy1 / scale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolution.subbands = [subband]; + } else { + var bscale = 1 << decompositionLevelsCount - r + 1; + var resolutionSubbands = []; + subband = {}; + subband.type = 'HL'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'LH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + subband = {}; + subband.type = 'HH'; + subband.tbx0 = Math.ceil(component.tcx0 / bscale - 0.5); + subband.tby0 = Math.ceil(component.tcy0 / bscale - 0.5); + subband.tbx1 = Math.ceil(component.tcx1 / bscale - 0.5); + subband.tby1 = Math.ceil(component.tcy1 / bscale - 0.5); + subband.resolution = resolution; + buildCodeblocks(context, subband, blocksDimensions); + subbands.push(subband); + resolutionSubbands.push(subband); + resolution.subbands = resolutionSubbands; + } + } + component.resolutions = resolutions; + component.subbands = subbands; + } + var progressionOrder = tile.codingStyleDefaultParameters.progressionOrder; + switch (progressionOrder) { + case 0: + tile.packetsIterator = new LayerResolutionComponentPositionIterator(context); + break; + case 1: + tile.packetsIterator = new ResolutionLayerComponentPositionIterator(context); + break; + case 2: + tile.packetsIterator = new ResolutionPositionComponentLayerIterator(context); + break; + case 3: + tile.packetsIterator = new PositionComponentResolutionLayerIterator(context); + break; + case 4: + tile.packetsIterator = new ComponentPositionResolutionLayerIterator(context); + break; + default: + error('JPX Error: Unsupported progression order ' + progressionOrder); + } + } + function parseTilePackets(context, data, offset, dataLength) { + var position = 0; + var buffer, + bufferSize = 0, + skipNextBit = false; + function readBits(count) { + while (bufferSize < count) { + var b = data[offset + position]; + position++; + if (skipNextBit) { + buffer = buffer << 7 | b; + bufferSize += 7; + skipNextBit = false; + } else { + buffer = buffer << 8 | b; + bufferSize += 8; + } + if (b === 0xFF) { + skipNextBit = true; + } + } + bufferSize -= count; + return buffer >>> bufferSize & (1 << count) - 1; + } + function skipMarkerIfEqual(value) { + if (data[offset + position - 1] === 0xFF && data[offset + position] === value) { + skipBytes(1); + return true; + } else if (data[offset + position] === 0xFF && data[offset + position + 1] === value) { + skipBytes(2); + return true; + } + return false; + } + function skipBytes(count) { + position += count; + } + function alignToByte() { + bufferSize = 0; + if (skipNextBit) { + position++; + skipNextBit = false; + } + } + function readCodingpasses() { + if (readBits(1) === 0) { + return 1; + } + if (readBits(1) === 0) { + return 2; + } + var value = readBits(2); + if (value < 3) { + return value + 3; + } + value = readBits(5); + if (value < 31) { + return value + 6; + } + value = readBits(7); + return value + 37; + } + var tileIndex = context.currentTile.index; + var tile = context.tiles[tileIndex]; + var sopMarkerUsed = context.COD.sopMarkerUsed; + var ephMarkerUsed = context.COD.ephMarkerUsed; + var packetsIterator = tile.packetsIterator; + while (position < dataLength) { + alignToByte(); + if (sopMarkerUsed && skipMarkerIfEqual(0x91)) { + skipBytes(4); + } + var packet = packetsIterator.nextPacket(); + if (!readBits(1)) { + continue; + } + var layerNumber = packet.layerNumber; + var queue = [], + codeblock; + for (var i = 0, ii = packet.codeblocks.length; i < ii; i++) { + codeblock = packet.codeblocks[i]; + var precinct = codeblock.precinct; + var codeblockColumn = codeblock.cbx - precinct.cbxMin; + var codeblockRow = codeblock.cby - precinct.cbyMin; + var codeblockIncluded = false; + var firstTimeInclusion = false; + var valueReady; + if (codeblock['included'] !== undefined) { + codeblockIncluded = !!readBits(1); + } else { + precinct = codeblock.precinct; + var inclusionTree, zeroBitPlanesTree; + if (precinct['inclusionTree'] !== undefined) { + inclusionTree = precinct.inclusionTree; + } else { + var width = precinct.cbxMax - precinct.cbxMin + 1; + var height = precinct.cbyMax - precinct.cbyMin + 1; + inclusionTree = new InclusionTree(width, height, layerNumber); + zeroBitPlanesTree = new TagTree(width, height); + precinct.inclusionTree = inclusionTree; + precinct.zeroBitPlanesTree = zeroBitPlanesTree; + } + if (inclusionTree.reset(codeblockColumn, codeblockRow, layerNumber)) { + while (true) { + if (readBits(1)) { + valueReady = !inclusionTree.nextLevel(); + if (valueReady) { + codeblock.included = true; + codeblockIncluded = firstTimeInclusion = true; + break; + } + } else { + inclusionTree.incrementValue(layerNumber); + break; + } + } + } + } + if (!codeblockIncluded) { + continue; + } + if (firstTimeInclusion) { + zeroBitPlanesTree = precinct.zeroBitPlanesTree; + zeroBitPlanesTree.reset(codeblockColumn, codeblockRow); + while (true) { + if (readBits(1)) { + valueReady = !zeroBitPlanesTree.nextLevel(); + if (valueReady) { + break; + } + } else { + zeroBitPlanesTree.incrementValue(); + } + } + codeblock.zeroBitPlanes = zeroBitPlanesTree.value; + } + var codingpasses = readCodingpasses(); + while (readBits(1)) { + codeblock.Lblock++; + } + var codingpassesLog2 = log2(codingpasses); + var bits = (codingpasses < 1 << codingpassesLog2 ? codingpassesLog2 - 1 : codingpassesLog2) + codeblock.Lblock; + var codedDataLength = readBits(bits); + queue.push({ + codeblock: codeblock, + codingpasses: codingpasses, + dataLength: codedDataLength + }); + } + alignToByte(); + if (ephMarkerUsed) { + skipMarkerIfEqual(0x92); + } + while (queue.length > 0) { + var packetItem = queue.shift(); + codeblock = packetItem.codeblock; + if (codeblock['data'] === undefined) { + codeblock.data = []; + } + codeblock.data.push({ + data: data, + start: offset + position, + end: offset + position + packetItem.dataLength, + codingpasses: packetItem.codingpasses + }); + position += packetItem.dataLength; + } + } + return position; + } + function copyCoefficients(coefficients, levelWidth, levelHeight, subband, delta, mb, reversible, segmentationSymbolUsed) { + var x0 = subband.tbx0; + var y0 = subband.tby0; + var width = subband.tbx1 - subband.tbx0; + var codeblocks = subband.codeblocks; + var right = subband.type.charAt(0) === 'H' ? 1 : 0; + var bottom = subband.type.charAt(1) === 'H' ? levelWidth : 0; + for (var i = 0, ii = codeblocks.length; i < ii; ++i) { + var codeblock = codeblocks[i]; + var blockWidth = codeblock.tbx1_ - codeblock.tbx0_; + var blockHeight = codeblock.tby1_ - codeblock.tby0_; + if (blockWidth === 0 || blockHeight === 0) { + continue; + } + if (codeblock['data'] === undefined) { + continue; + } + var bitModel, currentCodingpassType; + bitModel = new BitModel(blockWidth, blockHeight, codeblock.subbandType, codeblock.zeroBitPlanes, mb); + currentCodingpassType = 2; + var data = codeblock.data, + totalLength = 0, + codingpasses = 0; + var j, jj, dataItem; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + totalLength += dataItem.end - dataItem.start; + codingpasses += dataItem.codingpasses; + } + var encodedData = new Uint8Array(totalLength); + var position = 0; + for (j = 0, jj = data.length; j < jj; j++) { + dataItem = data[j]; + var chunk = dataItem.data.subarray(dataItem.start, dataItem.end); + encodedData.set(chunk, position); + position += chunk.length; + } + var decoder = new ArithmeticDecoder(encodedData, 0, totalLength); + bitModel.setDecoder(decoder); + for (j = 0; j < codingpasses; j++) { + switch (currentCodingpassType) { + case 0: + bitModel.runSignificancePropagationPass(); + break; + case 1: + bitModel.runMagnitudeRefinementPass(); + break; + case 2: + bitModel.runCleanupPass(); + if (segmentationSymbolUsed) { + bitModel.checkSegmentationSymbol(); + } + break; + } + currentCodingpassType = (currentCodingpassType + 1) % 3; + } + var offset = codeblock.tbx0_ - x0 + (codeblock.tby0_ - y0) * width; + var sign = bitModel.coefficentsSign; + var magnitude = bitModel.coefficentsMagnitude; + var bitsDecoded = bitModel.bitsDecoded; + var magnitudeCorrection = reversible ? 0 : 0.5; + var k, n, nb; + position = 0; + var interleave = subband.type !== 'LL'; + for (j = 0; j < blockHeight; j++) { + var row = offset / width | 0; + var levelOffset = 2 * row * (levelWidth - width) + right + bottom; + for (k = 0; k < blockWidth; k++) { + n = magnitude[position]; + if (n !== 0) { + n = (n + magnitudeCorrection) * delta; + if (sign[position] !== 0) { + n = -n; + } + nb = bitsDecoded[position]; + var pos = interleave ? levelOffset + (offset << 1) : offset; + if (reversible && nb >= mb) { + coefficients[pos] = n; + } else { + coefficients[pos] = n * (1 << mb - nb); + } + } + offset++; + position++; + } + offset += width - blockWidth; + } + } + } + function transformTile(context, tile, c) { + var component = tile.components[c]; + var codingStyleParameters = component.codingStyleParameters; + var quantizationParameters = component.quantizationParameters; + var decompositionLevelsCount = codingStyleParameters.decompositionLevelsCount; + var spqcds = quantizationParameters.SPqcds; + var scalarExpounded = quantizationParameters.scalarExpounded; + var guardBits = quantizationParameters.guardBits; + var segmentationSymbolUsed = codingStyleParameters.segmentationSymbolUsed; + var precision = context.components[c].precision; + var reversible = codingStyleParameters.reversibleTransformation; + var transform = reversible ? new ReversibleTransform() : new IrreversibleTransform(); + var subbandCoefficients = []; + var b = 0; + for (var i = 0; i <= decompositionLevelsCount; i++) { + var resolution = component.resolutions[i]; + var width = resolution.trx1 - resolution.trx0; + var height = resolution.try1 - resolution.try0; + var coefficients = new Float32Array(width * height); + for (var j = 0, jj = resolution.subbands.length; j < jj; j++) { + var mu, epsilon; + if (!scalarExpounded) { + mu = spqcds[0].mu; + epsilon = spqcds[0].epsilon + (i > 0 ? 1 - i : 0); + } else { + mu = spqcds[b].mu; + epsilon = spqcds[b].epsilon; + b++; + } + var subband = resolution.subbands[j]; + var gainLog2 = SubbandsGainLog2[subband.type]; + var delta = reversible ? 1 : Math.pow(2, precision + gainLog2 - epsilon) * (1 + mu / 2048); + var mb = guardBits + epsilon - 1; + copyCoefficients(coefficients, width, height, subband, delta, mb, reversible, segmentationSymbolUsed); + } + subbandCoefficients.push({ + width: width, + height: height, + items: coefficients + }); + } + var result = transform.calculate(subbandCoefficients, component.tcx0, component.tcy0); + return { + left: component.tcx0, + top: component.tcy0, + width: result.width, + height: result.height, + items: result.items + }; + } + function transformComponents(context) { + var siz = context.SIZ; + var components = context.components; + var componentsCount = siz.Csiz; + var resultImages = []; + for (var i = 0, ii = context.tiles.length; i < ii; i++) { + var tile = context.tiles[i]; + var transformedTiles = []; + var c; + for (c = 0; c < componentsCount; c++) { + transformedTiles[c] = transformTile(context, tile, c); + } + var tile0 = transformedTiles[0]; + var out = new Uint8Array(tile0.items.length * componentsCount); + var result = { + left: tile0.left, + top: tile0.top, + width: tile0.width, + height: tile0.height, + items: out + }; + var shift, offset, max, min, maxK; + var pos = 0, + j, + jj, + y0, + y1, + y2, + r, + g, + b, + k, + val; + if (tile.codingStyleDefaultParameters.multipleComponentTransform) { + var fourComponents = componentsCount === 4; + var y0items = transformedTiles[0].items; + var y1items = transformedTiles[1].items; + var y2items = transformedTiles[2].items; + var y3items = fourComponents ? transformedTiles[3].items : null; + shift = components[0].precision - 8; + offset = (128 << shift) + 0.5; + max = 255 * (1 << shift); + maxK = max * 0.5; + min = -maxK; + var component0 = tile.components[0]; + var alpha01 = componentsCount - 3; + jj = y0items.length; + if (!component0.codingStyleParameters.reversibleTransformation) { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + r = y0 + 1.402 * y2; + g = y0 - 0.34413 * y1 - 0.71414 * y2; + b = y0 + 1.772 * y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } else { + for (j = 0; j < jj; j++, pos += alpha01) { + y0 = y0items[j] + offset; + y1 = y1items[j]; + y2 = y2items[j]; + g = y0 - (y2 + y1 >> 2); + r = g + y2; + b = g + y1; + out[pos++] = r <= 0 ? 0 : r >= max ? 255 : r >> shift; + out[pos++] = g <= 0 ? 0 : g >= max ? 255 : g >> shift; + out[pos++] = b <= 0 ? 0 : b >= max ? 255 : b >> shift; + } + } + if (fourComponents) { + for (j = 0, pos = 3; j < jj; j++, pos += 4) { + k = y3items[j]; + out[pos] = k <= min ? 0 : k >= maxK ? 255 : k + offset >> shift; + } + } + } else { + for (c = 0; c < componentsCount; c++) { + var items = transformedTiles[c].items; + shift = components[c].precision - 8; + offset = (128 << shift) + 0.5; + max = 127.5 * (1 << shift); + min = -max; + for (pos = c, j = 0, jj = items.length; j < jj; j++) { + val = items[j]; + out[pos] = val <= min ? 0 : val >= max ? 255 : val + offset >> shift; + pos += componentsCount; + } + } + } + resultImages.push(result); + } + return resultImages; + } + function initializeTile(context, tileIndex) { + var siz = context.SIZ; + var componentsCount = siz.Csiz; + var tile = context.tiles[tileIndex]; + for (var c = 0; c < componentsCount; c++) { + var component = tile.components[c]; + var qcdOrQcc = context.currentTile.QCC[c] !== undefined ? context.currentTile.QCC[c] : context.currentTile.QCD; + component.quantizationParameters = qcdOrQcc; + var codOrCoc = context.currentTile.COC[c] !== undefined ? context.currentTile.COC[c] : context.currentTile.COD; + component.codingStyleParameters = codOrCoc; + } + tile.codingStyleDefaultParameters = context.currentTile.COD; + } + var TagTree = function TagTreeClosure() { + function TagTree(width, height) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i = 0; i < levelsLength; i++) { + var level = { + width: width, + height: height, + items: [] + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + TagTree.prototype = { + reset: function TagTree_reset(i, j) { + var currentLevel = 0, + value = 0, + level; + while (currentLevel < this.levels.length) { + level = this.levels[currentLevel]; + var index = i + j * level.width; + if (level.items[index] !== undefined) { + value = level.items[index]; + break; + } + level.index = index; + i >>= 1; + j >>= 1; + currentLevel++; + } + currentLevel--; + level = this.levels[currentLevel]; + level.items[level.index] = value; + this.currentLevel = currentLevel; + delete this.value; + }, + incrementValue: function TagTree_incrementValue() { + var level = this.levels[this.currentLevel]; + level.items[level.index]++; + }, + nextLevel: function TagTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + currentLevel--; + if (currentLevel < 0) { + this.value = value; + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return TagTree; + }(); + var InclusionTree = function InclusionTreeClosure() { + function InclusionTree(width, height, defaultValue) { + var levelsLength = log2(Math.max(width, height)) + 1; + this.levels = []; + for (var i = 0; i < levelsLength; i++) { + var items = new Uint8Array(width * height); + for (var j = 0, jj = items.length; j < jj; j++) { + items[j] = defaultValue; + } + var level = { + width: width, + height: height, + items: items + }; + this.levels.push(level); + width = Math.ceil(width / 2); + height = Math.ceil(height / 2); + } + } + InclusionTree.prototype = { + reset: function InclusionTree_reset(i, j, stopValue) { + var currentLevel = 0; + while (currentLevel < this.levels.length) { + var level = this.levels[currentLevel]; + var index = i + j * level.width; + level.index = index; + var value = level.items[index]; + if (value === 0xFF) { + break; + } + if (value > stopValue) { + this.currentLevel = currentLevel; + this.propagateValues(); + return false; + } + i >>= 1; + j >>= 1; + currentLevel++; + } + this.currentLevel = currentLevel - 1; + return true; + }, + incrementValue: function InclusionTree_incrementValue(stopValue) { + var level = this.levels[this.currentLevel]; + level.items[level.index] = stopValue + 1; + this.propagateValues(); + }, + propagateValues: function InclusionTree_propagateValues() { + var levelIndex = this.currentLevel; + var level = this.levels[levelIndex]; + var currentValue = level.items[level.index]; + while (--levelIndex >= 0) { + level = this.levels[levelIndex]; + level.items[level.index] = currentValue; + } + }, + nextLevel: function InclusionTree_nextLevel() { + var currentLevel = this.currentLevel; + var level = this.levels[currentLevel]; + var value = level.items[level.index]; + level.items[level.index] = 0xFF; + currentLevel--; + if (currentLevel < 0) { + return false; + } + this.currentLevel = currentLevel; + level = this.levels[currentLevel]; + level.items[level.index] = value; + return true; + } + }; + return InclusionTree; + }(); + var BitModel = function BitModelClosure() { + var UNIFORM_CONTEXT = 17; + var RUNLENGTH_CONTEXT = 18; + var LLAndLHContextsLabel = new Uint8Array([0, 5, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 1, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8, 0, 0, 0, 0, 0, 2, 6, 8, 0, 3, 7, 8, 0, 4, 7, 8]); + var HLContextLabel = new Uint8Array([0, 3, 4, 0, 5, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 1, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8, 0, 0, 0, 0, 0, 2, 3, 4, 0, 6, 7, 7, 0, 8, 8, 8]); + var HHContextLabel = new Uint8Array([0, 1, 2, 0, 1, 2, 2, 0, 2, 2, 2, 0, 0, 0, 0, 0, 3, 4, 5, 0, 4, 5, 5, 0, 5, 5, 5, 0, 0, 0, 0, 0, 6, 7, 7, 0, 7, 7, 7, 0, 7, 7, 7, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8, 0, 0, 0, 0, 0, 8, 8, 8, 0, 8, 8, 8, 0, 8, 8, 8]); + function BitModel(width, height, subband, zeroBitPlanes, mb) { + this.width = width; + this.height = height; + this.contextLabelTable = subband === 'HH' ? HHContextLabel : subband === 'HL' ? HLContextLabel : LLAndLHContextsLabel; + var coefficientCount = width * height; + this.neighborsSignificance = new Uint8Array(coefficientCount); + this.coefficentsSign = new Uint8Array(coefficientCount); + this.coefficentsMagnitude = mb > 14 ? new Uint32Array(coefficientCount) : mb > 6 ? new Uint16Array(coefficientCount) : new Uint8Array(coefficientCount); + this.processingFlags = new Uint8Array(coefficientCount); + var bitsDecoded = new Uint8Array(coefficientCount); + if (zeroBitPlanes !== 0) { + for (var i = 0; i < coefficientCount; i++) { + bitsDecoded[i] = zeroBitPlanes; + } + } + this.bitsDecoded = bitsDecoded; + this.reset(); + } + BitModel.prototype = { + setDecoder: function BitModel_setDecoder(decoder) { + this.decoder = decoder; + }, + reset: function BitModel_reset() { + this.contexts = new Int8Array(19); + this.contexts[0] = 4 << 1 | 0; + this.contexts[UNIFORM_CONTEXT] = 46 << 1 | 0; + this.contexts[RUNLENGTH_CONTEXT] = 3 << 1 | 0; + }, + setNeighborsSignificance: function BitModel_setNeighborsSignificance(row, column, index) { + var neighborsSignificance = this.neighborsSignificance; + var width = this.width, + height = this.height; + var left = column > 0; + var right = column + 1 < width; + var i; + if (row > 0) { + i = index - width; + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + neighborsSignificance[i] += 0x04; + } + if (row + 1 < height) { + i = index + width; + if (left) { + neighborsSignificance[i - 1] += 0x10; + } + if (right) { + neighborsSignificance[i + 1] += 0x10; + } + neighborsSignificance[i] += 0x04; + } + if (left) { + neighborsSignificance[index - 1] += 0x01; + } + if (right) { + neighborsSignificance[index + 1] += 0x01; + } + neighborsSignificance[index] |= 0x80; + }, + runSignificancePropagationPass: function BitModel_runSignificancePropagationPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var neighborsSignificance = this.neighborsSignificance; + var processingFlags = this.processingFlags; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processedInverseMask = ~1; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + for (var i0 = 0; i0 < height; i0 += 4) { + for (var j = 0; j < width; j++) { + var index = i0 * width + j; + for (var i1 = 0; i1 < 4; i1++, index += width) { + var i = i0 + i1; + if (i >= height) { + break; + } + processingFlags[index] &= processedInverseMask; + if (coefficentsMagnitude[index] || !neighborsSignificance[index]) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision) { + var sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + decodeSignBit: function BitModel_decodeSignBit(row, column, index) { + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contribution, sign0, sign1, significance1; + var contextLabel, decoded; + significance1 = column > 0 && coefficentsMagnitude[index - 1] !== 0; + if (column + 1 < width && coefficentsMagnitude[index + 1] !== 0) { + sign1 = coefficentsSign[index + 1]; + if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign1 - sign0; + } else { + contribution = 1 - sign1 - sign1; + } + } else if (significance1) { + sign0 = coefficentsSign[index - 1]; + contribution = 1 - sign0 - sign0; + } else { + contribution = 0; + } + var horizontalContribution = 3 * contribution; + significance1 = row > 0 && coefficentsMagnitude[index - width] !== 0; + if (row + 1 < height && coefficentsMagnitude[index + width] !== 0) { + sign1 = coefficentsSign[index + width]; + if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign1 - sign0 + horizontalContribution; + } else { + contribution = 1 - sign1 - sign1 + horizontalContribution; + } + } else if (significance1) { + sign0 = coefficentsSign[index - width]; + contribution = 1 - sign0 - sign0 + horizontalContribution; + } else { + contribution = horizontalContribution; + } + if (contribution >= 0) { + contextLabel = 9 + contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel); + } else { + contextLabel = 9 - contribution; + decoded = this.decoder.readBit(this.contexts, contextLabel) ^ 1; + } + return decoded; + }, + runMagnitudeRefinementPass: function BitModel_runMagnitudeRefinementPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var coefficentsMagnitude = this.coefficentsMagnitude; + var neighborsSignificance = this.neighborsSignificance; + var contexts = this.contexts; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var length = width * height; + var width4 = width * 4; + for (var index0 = 0, indexNext; index0 < length; index0 = indexNext) { + indexNext = Math.min(length, index0 + width4); + for (var j = 0; j < width; j++) { + for (var index = index0 + j; index < indexNext; index += width) { + if (!coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = 16; + if ((processingFlags[index] & firstMagnitudeBitMask) !== 0) { + processingFlags[index] ^= firstMagnitudeBitMask; + var significance = neighborsSignificance[index] & 127; + contextLabel = significance === 0 ? 15 : 14; + } + var bit = decoder.readBit(contexts, contextLabel); + coefficentsMagnitude[index] = coefficentsMagnitude[index] << 1 | bit; + bitsDecoded[index]++; + processingFlags[index] |= processedMask; + } + } + } + }, + runCleanupPass: function BitModel_runCleanupPass() { + var decoder = this.decoder; + var width = this.width, + height = this.height; + var neighborsSignificance = this.neighborsSignificance; + var coefficentsMagnitude = this.coefficentsMagnitude; + var coefficentsSign = this.coefficentsSign; + var contexts = this.contexts; + var labels = this.contextLabelTable; + var bitsDecoded = this.bitsDecoded; + var processingFlags = this.processingFlags; + var processedMask = 1; + var firstMagnitudeBitMask = 2; + var oneRowDown = width; + var twoRowsDown = width * 2; + var threeRowsDown = width * 3; + var iNext; + for (var i0 = 0; i0 < height; i0 = iNext) { + iNext = Math.min(i0 + 4, height); + var indexBase = i0 * width; + var checkAllEmpty = i0 + 3 < height; + for (var j = 0; j < width; j++) { + var index0 = indexBase + j; + var allEmpty = checkAllEmpty && processingFlags[index0] === 0 && processingFlags[index0 + oneRowDown] === 0 && processingFlags[index0 + twoRowsDown] === 0 && processingFlags[index0 + threeRowsDown] === 0 && neighborsSignificance[index0] === 0 && neighborsSignificance[index0 + oneRowDown] === 0 && neighborsSignificance[index0 + twoRowsDown] === 0 && neighborsSignificance[index0 + threeRowsDown] === 0; + var i1 = 0, + index = index0; + var i = i0, + sign; + if (allEmpty) { + var hasSignificantCoefficent = decoder.readBit(contexts, RUNLENGTH_CONTEXT); + if (!hasSignificantCoefficent) { + bitsDecoded[index0]++; + bitsDecoded[index0 + oneRowDown]++; + bitsDecoded[index0 + twoRowsDown]++; + bitsDecoded[index0 + threeRowsDown]++; + continue; + } + i1 = decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (i1 !== 0) { + i = i0 + i1; + index += i1 * width; + } + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + index = index0; + for (var i2 = i0; i2 <= i; i2++, index += width) { + bitsDecoded[index]++; + } + i1++; + } + for (i = i0 + i1; i < iNext; i++, index += width) { + if (coefficentsMagnitude[index] || (processingFlags[index] & processedMask) !== 0) { + continue; + } + var contextLabel = labels[neighborsSignificance[index]]; + var decision = decoder.readBit(contexts, contextLabel); + if (decision === 1) { + sign = this.decodeSignBit(i, j, index); + coefficentsSign[index] = sign; + coefficentsMagnitude[index] = 1; + this.setNeighborsSignificance(i, j, index); + processingFlags[index] |= firstMagnitudeBitMask; + } + bitsDecoded[index]++; + } + } + } + }, + checkSegmentationSymbol: function BitModel_checkSegmentationSymbol() { + var decoder = this.decoder; + var contexts = this.contexts; + var symbol = decoder.readBit(contexts, UNIFORM_CONTEXT) << 3 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 2 | decoder.readBit(contexts, UNIFORM_CONTEXT) << 1 | decoder.readBit(contexts, UNIFORM_CONTEXT); + if (symbol !== 0xA) { + error('JPX Error: Invalid segmentation symbol'); + } + } + }; + return BitModel; + }(); + var Transform = function TransformClosure() { + function Transform() {} + Transform.prototype.calculate = function transformCalculate(subbands, u0, v0) { + var ll = subbands[0]; + for (var i = 1, ii = subbands.length; i < ii; i++) { + ll = this.iterate(ll, subbands[i], u0, v0); + } + return ll; + }; + Transform.prototype.extend = function extend(buffer, offset, size) { + var i1 = offset - 1, + j1 = offset + 1; + var i2 = offset + size - 2, + j2 = offset + size; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1--] = buffer[j1++]; + buffer[j2++] = buffer[i2--]; + buffer[i1] = buffer[j1]; + buffer[j2] = buffer[i2]; + }; + Transform.prototype.iterate = function Transform_iterate(ll, hl_lh_hh, u0, v0) { + var llWidth = ll.width, + llHeight = ll.height, + llItems = ll.items; + var width = hl_lh_hh.width; + var height = hl_lh_hh.height; + var items = hl_lh_hh.items; + var i, j, k, l, u, v; + for (k = 0, i = 0; i < llHeight; i++) { + l = i * 2 * width; + for (j = 0; j < llWidth; j++, k++, l += 2) { + items[l] = llItems[k]; + } + } + llItems = ll.items = null; + var bufferPadding = 4; + var rowBuffer = new Float32Array(width + 2 * bufferPadding); + if (width === 1) { + if ((u0 & 1) !== 0) { + for (v = 0, k = 0; v < height; v++, k += width) { + items[k] *= 0.5; + } + } + } else { + for (v = 0, k = 0; v < height; v++, k += width) { + rowBuffer.set(items.subarray(k, k + width), bufferPadding); + this.extend(rowBuffer, bufferPadding, width); + this.filter(rowBuffer, bufferPadding, width); + items.set(rowBuffer.subarray(bufferPadding, bufferPadding + width), k); + } + } + var numBuffers = 16; + var colBuffers = []; + for (i = 0; i < numBuffers; i++) { + colBuffers.push(new Float32Array(height + 2 * bufferPadding)); + } + var b, + currentBuffer = 0; + ll = bufferPadding + height; + if (height === 1) { + if ((v0 & 1) !== 0) { + for (u = 0; u < width; u++) { + items[u] *= 0.5; + } + } + } else { + for (u = 0; u < width; u++) { + if (currentBuffer === 0) { + numBuffers = Math.min(width - u, numBuffers); + for (k = u, l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + colBuffers[b][l] = items[k + b]; + } + } + currentBuffer = numBuffers; + } + currentBuffer--; + var buffer = colBuffers[currentBuffer]; + this.extend(buffer, bufferPadding, height); + this.filter(buffer, bufferPadding, height); + if (currentBuffer === 0) { + k = u - numBuffers + 1; + for (l = bufferPadding; l < ll; k += width, l++) { + for (b = 0; b < numBuffers; b++) { + items[k + b] = colBuffers[b][l]; + } + } + } + } + } + return { + width: width, + height: height, + items: items + }; + }; + return Transform; + }(); + var IrreversibleTransform = function IrreversibleTransformClosure() { + function IrreversibleTransform() { + Transform.call(this); + } + IrreversibleTransform.prototype = Object.create(Transform.prototype); + IrreversibleTransform.prototype.filter = function irreversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n, current, next; + var alpha = -1.586134342059924; + var beta = -0.052980118572961; + var gamma = 0.882911075530934; + var delta = 0.443506852043971; + var K = 1.230174104914001; + var K_ = 1 / K; + j = offset - 3; + for (n = len + 4; n--; j += 2) { + x[j] *= K_; + } + j = offset - 2; + current = delta * x[j - 1]; + for (n = len + 3; n--; j += 2) { + next = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + if (n--) { + j += 2; + current = delta * x[j + 1]; + x[j] = K * x[j] - current - next; + } else { + break; + } + } + j = offset - 1; + current = gamma * x[j - 1]; + for (n = len + 2; n--; j += 2) { + next = gamma * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = gamma * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + j = offset; + current = beta * x[j - 1]; + for (n = len + 1; n--; j += 2) { + next = beta * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = beta * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + if (len !== 0) { + j = offset + 1; + current = alpha * x[j - 1]; + for (n = len; n--; j += 2) { + next = alpha * x[j + 1]; + x[j] -= current + next; + if (n--) { + j += 2; + current = alpha * x[j + 1]; + x[j] -= current + next; + } else { + break; + } + } + } + }; + return IrreversibleTransform; + }(); + var ReversibleTransform = function ReversibleTransformClosure() { + function ReversibleTransform() { + Transform.call(this); + } + ReversibleTransform.prototype = Object.create(Transform.prototype); + ReversibleTransform.prototype.filter = function reversibleTransformFilter(x, offset, length) { + var len = length >> 1; + offset = offset | 0; + var j, n; + for (j = offset, n = len + 1; n--; j += 2) { + x[j] -= x[j - 1] + x[j + 1] + 2 >> 2; + } + for (j = offset + 1, n = len; n--; j += 2) { + x[j] += x[j - 1] + x[j + 1] >> 1; + } + }; + return ReversibleTransform; + }(); + return JpxImage; +}(); + + + "use strict"; + + var Jbig2Image = function Jbig2ImageClosure() { + function ContextCache() {} + ContextCache.prototype = { + getContexts: function (id) { + if (id in this) { + return this[id]; + } + return this[id] = new Int8Array(1 << 16); + } + }; + function DecodingContext(data, start, end) { + this.data = data; + this.start = start; + this.end = end; + } + DecodingContext.prototype = { + get decoder() { + var decoder = new ArithmeticDecoder(this.data, this.start, this.end); + return shadow(this, 'decoder', decoder); + }, + get contextCache() { + var cache = new ContextCache(); + return shadow(this, 'contextCache', cache); + } + }; + function decodeInteger(contextCache, procedure, decoder) { + var contexts = contextCache.getContexts(procedure); + var prev = 1; + function readBits(length) { + var v = 0; + for (var i = 0; i < length; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev < 256 ? prev << 1 | bit : (prev << 1 | bit) & 511 | 256; + v = v << 1 | bit; + } + return v >>> 0; + } + var sign = readBits(1); + var value = readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(1) ? readBits(32) + 4436 : readBits(12) + 340 : readBits(8) + 84 : readBits(6) + 20 : readBits(4) + 4 : readBits(2); + return sign === 0 ? value : value > 0 ? -value : null; + } + function decodeIAID(contextCache, decoder, codeLength) { + var contexts = contextCache.getContexts('IAID'); + var prev = 1; + for (var i = 0; i < codeLength; i++) { + var bit = decoder.readBit(contexts, prev); + prev = prev << 1 | bit; + } + if (codeLength < 31) { + return prev & (1 << codeLength) - 1; + } + return prev & 0x7FFFFFFF; + } + var SegmentTypes = ['SymbolDictionary', null, null, null, 'IntermediateTextRegion', null, 'ImmediateTextRegion', 'ImmediateLosslessTextRegion', null, null, null, null, null, null, null, null, 'patternDictionary', null, null, null, 'IntermediateHalftoneRegion', null, 'ImmediateHalftoneRegion', 'ImmediateLosslessHalftoneRegion', null, null, null, null, null, null, null, null, null, null, null, null, 'IntermediateGenericRegion', null, 'ImmediateGenericRegion', 'ImmediateLosslessGenericRegion', 'IntermediateGenericRefinementRegion', null, 'ImmediateGenericRefinementRegion', 'ImmediateLosslessGenericRefinementRegion', null, null, null, null, 'PageInformation', 'EndOfPage', 'EndOfStripe', 'EndOfFile', 'Profiles', 'Tables', null, null, null, null, null, null, null, null, 'Extension']; + var CodingTemplates = [[{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: 2, + y: -1 + }, { + x: -4, + y: 0 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: 2, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: 2, + y: -1 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -1, + y: -2 + }, { + x: 0, + y: -2 + }, { + x: 1, + y: -2 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }], [{ + x: -3, + y: -1 + }, { + x: -2, + y: -1 + }, { + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -4, + y: 0 + }, { + x: -3, + y: 0 + }, { + x: -2, + y: 0 + }, { + x: -1, + y: 0 + }]]; + var RefinementTemplates = [{ + coding: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: -1, + y: 1 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] + }, { + coding: [{ + x: -1, + y: -1 + }, { + x: 0, + y: -1 + }, { + x: 1, + y: -1 + }, { + x: -1, + y: 0 + }], + reference: [{ + x: 0, + y: -1 + }, { + x: -1, + y: 0 + }, { + x: 0, + y: 0 + }, { + x: 1, + y: 0 + }, { + x: 0, + y: 1 + }, { + x: 1, + y: 1 + }] + }]; + var ReusedContexts = [0x9B25, 0x0795, 0x00E5, 0x0195]; + var RefinementReusedContexts = [0x0020, 0x0008]; + function decodeBitmapTemplate0(width, height, decodingContext) { + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var contextLabel, + i, + j, + pixel, + row, + row1, + row2, + bitmap = []; + var OLD_PIXEL_MASK = 0x7BF7; + for (i = 0; i < height; i++) { + row = bitmap[i] = new Uint8Array(width); + row1 = i < 1 ? row : bitmap[i - 1]; + row2 = i < 2 ? row : bitmap[i - 2]; + contextLabel = row2[0] << 13 | row2[1] << 12 | row2[2] << 11 | row1[0] << 7 | row1[1] << 6 | row1[2] << 5 | row1[3] << 4; + for (j = 0; j < width; j++) { + row[j] = pixel = decoder.readBit(contexts, contextLabel); + contextLabel = (contextLabel & OLD_PIXEL_MASK) << 1 | (j + 3 < width ? row2[j + 3] << 11 : 0) | (j + 4 < width ? row1[j + 4] << 4 : 0) | pixel; + } + } + return bitmap; + } + function decodeBitmap(mmr, width, height, templateIndex, prediction, skip, at, decodingContext) { + if (mmr) { + error('JBIG2 error: MMR encoding is not supported'); + } + if (templateIndex === 0 && !skip && !prediction && at.length === 4 && at[0].x === 3 && at[0].y === -1 && at[1].x === -3 && at[1].y === -1 && at[2].x === 2 && at[2].y === -2 && at[3].x === -2 && at[3].y === -2) { + return decodeBitmapTemplate0(width, height, decodingContext); + } + var useskip = !!skip; + var template = CodingTemplates[templateIndex].concat(at); + template.sort(function (a, b) { + return a.y - b.y || a.x - b.x; + }); + var templateLength = template.length; + var templateX = new Int8Array(templateLength); + var templateY = new Int8Array(templateLength); + var changingTemplateEntries = []; + var reuseMask = 0, + minX = 0, + maxX = 0, + minY = 0; + var c, k; + for (k = 0; k < templateLength; k++) { + templateX[k] = template[k].x; + templateY[k] = template[k].y; + minX = Math.min(minX, template[k].x); + maxX = Math.max(maxX, template[k].x); + minY = Math.min(minY, template[k].y); + if (k < templateLength - 1 && template[k].y === template[k + 1].y && template[k].x === template[k + 1].x - 1) { + reuseMask |= 1 << templateLength - 1 - k; + } else { + changingTemplateEntries.push(k); + } + } + var changingEntriesLength = changingTemplateEntries.length; + var changingTemplateX = new Int8Array(changingEntriesLength); + var changingTemplateY = new Int8Array(changingEntriesLength); + var changingTemplateBit = new Uint16Array(changingEntriesLength); + for (c = 0; c < changingEntriesLength; c++) { + k = changingTemplateEntries[c]; + changingTemplateX[c] = template[k].x; + changingTemplateY[c] = template[k].y; + changingTemplateBit[c] = 1 << templateLength - 1 - k; + } + var sbb_left = -minX; + var sbb_top = -minY; + var sbb_right = width - maxX; + var pseudoPixelContext = ReusedContexts[templateIndex]; + var row = new Uint8Array(width); + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GB'); + var ltp = 0, + j, + i0, + j0, + contextLabel = 0, + bit, + shift; + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + bitmap.push(row); + continue; + } + } + row = new Uint8Array(row); + bitmap.push(row); + for (j = 0; j < width; j++) { + if (useskip && skip[i][j]) { + row[j] = 0; + continue; + } + if (j >= sbb_left && j < sbb_right && i >= sbb_top) { + contextLabel = contextLabel << 1 & reuseMask; + for (k = 0; k < changingEntriesLength; k++) { + i0 = i + changingTemplateY[k]; + j0 = j + changingTemplateX[k]; + bit = bitmap[i0][j0]; + if (bit) { + bit = changingTemplateBit[k]; + contextLabel |= bit; + } + } + } else { + contextLabel = 0; + shift = templateLength - 1; + for (k = 0; k < templateLength; k++, shift--) { + j0 = j + templateX[k]; + if (j0 >= 0 && j0 < width) { + i0 = i + templateY[k]; + if (i0 >= 0) { + bit = bitmap[i0][j0]; + if (bit) { + contextLabel |= bit << shift; + } + } + } + } + } + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; + } + function decodeRefinement(width, height, templateIndex, referenceBitmap, offsetX, offsetY, prediction, at, decodingContext) { + var codingTemplate = RefinementTemplates[templateIndex].coding; + if (templateIndex === 0) { + codingTemplate = codingTemplate.concat([at[0]]); + } + var codingTemplateLength = codingTemplate.length; + var codingTemplateX = new Int32Array(codingTemplateLength); + var codingTemplateY = new Int32Array(codingTemplateLength); + var k; + for (k = 0; k < codingTemplateLength; k++) { + codingTemplateX[k] = codingTemplate[k].x; + codingTemplateY[k] = codingTemplate[k].y; + } + var referenceTemplate = RefinementTemplates[templateIndex].reference; + if (templateIndex === 0) { + referenceTemplate = referenceTemplate.concat([at[1]]); + } + var referenceTemplateLength = referenceTemplate.length; + var referenceTemplateX = new Int32Array(referenceTemplateLength); + var referenceTemplateY = new Int32Array(referenceTemplateLength); + for (k = 0; k < referenceTemplateLength; k++) { + referenceTemplateX[k] = referenceTemplate[k].x; + referenceTemplateY[k] = referenceTemplate[k].y; + } + var referenceWidth = referenceBitmap[0].length; + var referenceHeight = referenceBitmap.length; + var pseudoPixelContext = RefinementReusedContexts[templateIndex]; + var bitmap = []; + var decoder = decodingContext.decoder; + var contexts = decodingContext.contextCache.getContexts('GR'); + var ltp = 0; + for (var i = 0; i < height; i++) { + if (prediction) { + var sltp = decoder.readBit(contexts, pseudoPixelContext); + ltp ^= sltp; + if (ltp) { + error('JBIG2 error: prediction is not supported'); + } + } + var row = new Uint8Array(width); + bitmap.push(row); + for (var j = 0; j < width; j++) { + var i0, j0; + var contextLabel = 0; + for (k = 0; k < codingTemplateLength; k++) { + i0 = i + codingTemplateY[k]; + j0 = j + codingTemplateX[k]; + if (i0 < 0 || j0 < 0 || j0 >= width) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | bitmap[i0][j0]; + } + } + for (k = 0; k < referenceTemplateLength; k++) { + i0 = i + referenceTemplateY[k] + offsetY; + j0 = j + referenceTemplateX[k] + offsetX; + if (i0 < 0 || i0 >= referenceHeight || j0 < 0 || j0 >= referenceWidth) { + contextLabel <<= 1; + } else { + contextLabel = contextLabel << 1 | referenceBitmap[i0][j0]; + } + } + var pixel = decoder.readBit(contexts, contextLabel); + row[j] = pixel; + } + } + return bitmap; + } + function decodeSymbolDictionary(huffman, refinement, symbols, numberOfNewSymbols, numberOfExportedSymbols, huffmanTables, templateIndex, at, refinementTemplateIndex, refinementAt, decodingContext) { + if (huffman) { + error('JBIG2 error: huffman is not supported'); + } + var newSymbols = []; + var currentHeight = 0; + var symbolCodeLength = log2(symbols.length + numberOfNewSymbols); + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + while (newSymbols.length < numberOfNewSymbols) { + var deltaHeight = decodeInteger(contextCache, 'IADH', decoder); + currentHeight += deltaHeight; + var currentWidth = 0; + while (true) { + var deltaWidth = decodeInteger(contextCache, 'IADW', decoder); + if (deltaWidth === null) { + break; + } + currentWidth += deltaWidth; + var bitmap; + if (refinement) { + var numberOfInstances = decodeInteger(contextCache, 'IAAI', decoder); + if (numberOfInstances > 1) { + bitmap = decodeTextRegion(huffman, refinement, currentWidth, currentHeight, 0, numberOfInstances, 1, symbols.concat(newSymbols), symbolCodeLength, 0, 0, 1, 0, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext); + } else { + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + var symbol = symbolId < symbols.length ? symbols[symbolId] : newSymbols[symbolId - symbols.length]; + bitmap = decodeRefinement(currentWidth, currentHeight, refinementTemplateIndex, symbol, rdx, rdy, false, refinementAt, decodingContext); + } + } else { + bitmap = decodeBitmap(false, currentWidth, currentHeight, templateIndex, false, null, at, decodingContext); + } + newSymbols.push(bitmap); + } + } + var exportedSymbols = []; + var flags = [], + currentFlag = false; + var totalSymbolsLength = symbols.length + numberOfNewSymbols; + while (flags.length < totalSymbolsLength) { + var runLength = decodeInteger(contextCache, 'IAEX', decoder); + while (runLength--) { + flags.push(currentFlag); + } + currentFlag = !currentFlag; + } + for (var i = 0, ii = symbols.length; i < ii; i++) { + if (flags[i]) { + exportedSymbols.push(symbols[i]); + } + } + for (var j = 0; j < numberOfNewSymbols; i++, j++) { + if (flags[i]) { + exportedSymbols.push(newSymbols[j]); + } + } + return exportedSymbols; + } + function decodeTextRegion(huffman, refinement, width, height, defaultPixelValue, numberOfSymbolInstances, stripSize, inputSymbols, symbolCodeLength, transposed, dsOffset, referenceCorner, combinationOperator, huffmanTables, refinementTemplateIndex, refinementAt, decodingContext) { + if (huffman) { + error('JBIG2 error: huffman is not supported'); + } + var bitmap = []; + var i, row; + for (i = 0; i < height; i++) { + row = new Uint8Array(width); + if (defaultPixelValue) { + for (var j = 0; j < width; j++) { + row[j] = defaultPixelValue; + } + } + bitmap.push(row); + } + var decoder = decodingContext.decoder; + var contextCache = decodingContext.contextCache; + var stripT = -decodeInteger(contextCache, 'IADT', decoder); + var firstS = 0; + i = 0; + while (i < numberOfSymbolInstances) { + var deltaT = decodeInteger(contextCache, 'IADT', decoder); + stripT += deltaT; + var deltaFirstS = decodeInteger(contextCache, 'IAFS', decoder); + firstS += deltaFirstS; + var currentS = firstS; + do { + var currentT = stripSize === 1 ? 0 : decodeInteger(contextCache, 'IAIT', decoder); + var t = stripSize * stripT + currentT; + var symbolId = decodeIAID(contextCache, decoder, symbolCodeLength); + var applyRefinement = refinement && decodeInteger(contextCache, 'IARI', decoder); + var symbolBitmap = inputSymbols[symbolId]; + var symbolWidth = symbolBitmap[0].length; + var symbolHeight = symbolBitmap.length; + if (applyRefinement) { + var rdw = decodeInteger(contextCache, 'IARDW', decoder); + var rdh = decodeInteger(contextCache, 'IARDH', decoder); + var rdx = decodeInteger(contextCache, 'IARDX', decoder); + var rdy = decodeInteger(contextCache, 'IARDY', decoder); + symbolWidth += rdw; + symbolHeight += rdh; + symbolBitmap = decodeRefinement(symbolWidth, symbolHeight, refinementTemplateIndex, symbolBitmap, (rdw >> 1) + rdx, (rdh >> 1) + rdy, false, refinementAt, decodingContext); + } + var offsetT = t - (referenceCorner & 1 ? 0 : symbolHeight); + var offsetS = currentS - (referenceCorner & 2 ? symbolWidth : 0); + var s2, t2, symbolRow; + if (transposed) { + for (s2 = 0; s2 < symbolHeight; s2++) { + row = bitmap[offsetS + s2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[s2]; + var maxWidth = Math.min(width - offsetT, symbolWidth); + switch (combinationOperator) { + case 0: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] |= symbolRow[t2]; + } + break; + case 2: + for (t2 = 0; t2 < maxWidth; t2++) { + row[offsetT + t2] ^= symbolRow[t2]; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + } + currentS += symbolHeight - 1; + } else { + for (t2 = 0; t2 < symbolHeight; t2++) { + row = bitmap[offsetT + t2]; + if (!row) { + continue; + } + symbolRow = symbolBitmap[t2]; + switch (combinationOperator) { + case 0: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] |= symbolRow[s2]; + } + break; + case 2: + for (s2 = 0; s2 < symbolWidth; s2++) { + row[offsetS + s2] ^= symbolRow[s2]; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + } + currentS += symbolWidth - 1; + } + i++; + var deltaS = decodeInteger(contextCache, 'IADS', decoder); + if (deltaS === null) { + break; + } + currentS += deltaS + dsOffset; + } while (true); + } + return bitmap; + } + function readSegmentHeader(data, start) { + var segmentHeader = {}; + segmentHeader.number = readUint32(data, start); + var flags = data[start + 4]; + var segmentType = flags & 0x3F; + if (!SegmentTypes[segmentType]) { + error('JBIG2 error: invalid segment type: ' + segmentType); + } + segmentHeader.type = segmentType; + segmentHeader.typeName = SegmentTypes[segmentType]; + segmentHeader.deferredNonRetain = !!(flags & 0x80); + var pageAssociationFieldSize = !!(flags & 0x40); + var referredFlags = data[start + 5]; + var referredToCount = referredFlags >> 5 & 7; + var retainBits = [referredFlags & 31]; + var position = start + 6; + if (referredFlags === 7) { + referredToCount = readUint32(data, position - 1) & 0x1FFFFFFF; + position += 3; + var bytes = referredToCount + 7 >> 3; + retainBits[0] = data[position++]; + while (--bytes > 0) { + retainBits.push(data[position++]); + } + } else if (referredFlags === 5 || referredFlags === 6) { + error('JBIG2 error: invalid referred-to flags'); + } + segmentHeader.retainBits = retainBits; + var referredToSegmentNumberSize = segmentHeader.number <= 256 ? 1 : segmentHeader.number <= 65536 ? 2 : 4; + var referredTo = []; + var i, ii; + for (i = 0; i < referredToCount; i++) { + var number = referredToSegmentNumberSize === 1 ? data[position] : referredToSegmentNumberSize === 2 ? readUint16(data, position) : readUint32(data, position); + referredTo.push(number); + position += referredToSegmentNumberSize; + } + segmentHeader.referredTo = referredTo; + if (!pageAssociationFieldSize) { + segmentHeader.pageAssociation = data[position++]; + } else { + segmentHeader.pageAssociation = readUint32(data, position); + position += 4; + } + segmentHeader.length = readUint32(data, position); + position += 4; + if (segmentHeader.length === 0xFFFFFFFF) { + if (segmentType === 38) { + var genericRegionInfo = readRegionSegmentInformation(data, position); + var genericRegionSegmentFlags = data[position + RegionSegmentInformationFieldLength]; + var genericRegionMmr = !!(genericRegionSegmentFlags & 1); + var searchPatternLength = 6; + var searchPattern = new Uint8Array(searchPatternLength); + if (!genericRegionMmr) { + searchPattern[0] = 0xFF; + searchPattern[1] = 0xAC; + } + searchPattern[2] = genericRegionInfo.height >>> 24 & 0xFF; + searchPattern[3] = genericRegionInfo.height >> 16 & 0xFF; + searchPattern[4] = genericRegionInfo.height >> 8 & 0xFF; + searchPattern[5] = genericRegionInfo.height & 0xFF; + for (i = position, ii = data.length; i < ii; i++) { + var j = 0; + while (j < searchPatternLength && searchPattern[j] === data[i + j]) { + j++; + } + if (j === searchPatternLength) { + segmentHeader.length = i + searchPatternLength; + break; + } + } + if (segmentHeader.length === 0xFFFFFFFF) { + error('JBIG2 error: segment end was not found'); + } + } else { + error('JBIG2 error: invalid unknown segment length'); + } + } + segmentHeader.headerEnd = position; + return segmentHeader; + } + function readSegments(header, data, start, end) { + var segments = []; + var position = start; + while (position < end) { + var segmentHeader = readSegmentHeader(data, position); + position = segmentHeader.headerEnd; + var segment = { + header: segmentHeader, + data: data + }; + if (!header.randomAccess) { + segment.start = position; + position += segmentHeader.length; + segment.end = position; + } + segments.push(segment); + if (segmentHeader.type === 51) { + break; + } + } + if (header.randomAccess) { + for (var i = 0, ii = segments.length; i < ii; i++) { + segments[i].start = position; + position += segments[i].header.length; + segments[i].end = position; + } + } + return segments; + } + function readRegionSegmentInformation(data, start) { + return { + width: readUint32(data, start), + height: readUint32(data, start + 4), + x: readUint32(data, start + 8), + y: readUint32(data, start + 12), + combinationOperator: data[start + 16] & 7 + }; + } + var RegionSegmentInformationFieldLength = 17; + function processSegment(segment, visitor) { + var header = segment.header; + var data = segment.data, + position = segment.start, + end = segment.end; + var args, at, i, atLength; + switch (header.type) { + case 0: + var dictionary = {}; + var dictionaryFlags = readUint16(data, position); + dictionary.huffman = !!(dictionaryFlags & 1); + dictionary.refinement = !!(dictionaryFlags & 2); + dictionary.huffmanDHSelector = dictionaryFlags >> 2 & 3; + dictionary.huffmanDWSelector = dictionaryFlags >> 4 & 3; + dictionary.bitmapSizeSelector = dictionaryFlags >> 6 & 1; + dictionary.aggregationInstancesSelector = dictionaryFlags >> 7 & 1; + dictionary.bitmapCodingContextUsed = !!(dictionaryFlags & 256); + dictionary.bitmapCodingContextRetained = !!(dictionaryFlags & 512); + dictionary.template = dictionaryFlags >> 10 & 3; + dictionary.refinementTemplate = dictionaryFlags >> 12 & 1; + position += 2; + if (!dictionary.huffman) { + atLength = dictionary.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.at = at; + } + if (dictionary.refinement && !dictionary.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + dictionary.refinementAt = at; + } + dictionary.numberOfExportedSymbols = readUint32(data, position); + position += 4; + dictionary.numberOfNewSymbols = readUint32(data, position); + position += 4; + args = [dictionary, header.number, header.referredTo, data, position, end]; + break; + case 6: + case 7: + var textRegion = {}; + textRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var textRegionSegmentFlags = readUint16(data, position); + position += 2; + textRegion.huffman = !!(textRegionSegmentFlags & 1); + textRegion.refinement = !!(textRegionSegmentFlags & 2); + textRegion.stripSize = 1 << (textRegionSegmentFlags >> 2 & 3); + textRegion.referenceCorner = textRegionSegmentFlags >> 4 & 3; + textRegion.transposed = !!(textRegionSegmentFlags & 64); + textRegion.combinationOperator = textRegionSegmentFlags >> 7 & 3; + textRegion.defaultPixelValue = textRegionSegmentFlags >> 9 & 1; + textRegion.dsOffset = textRegionSegmentFlags << 17 >> 27; + textRegion.refinementTemplate = textRegionSegmentFlags >> 15 & 1; + if (textRegion.huffman) { + var textRegionHuffmanFlags = readUint16(data, position); + position += 2; + textRegion.huffmanFS = textRegionHuffmanFlags & 3; + textRegion.huffmanDS = textRegionHuffmanFlags >> 2 & 3; + textRegion.huffmanDT = textRegionHuffmanFlags >> 4 & 3; + textRegion.huffmanRefinementDW = textRegionHuffmanFlags >> 6 & 3; + textRegion.huffmanRefinementDH = textRegionHuffmanFlags >> 8 & 3; + textRegion.huffmanRefinementDX = textRegionHuffmanFlags >> 10 & 3; + textRegion.huffmanRefinementDY = textRegionHuffmanFlags >> 12 & 3; + textRegion.huffmanRefinementSizeSelector = !!(textRegionHuffmanFlags & 14); + } + if (textRegion.refinement && !textRegion.refinementTemplate) { + at = []; + for (i = 0; i < 2; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + textRegion.refinementAt = at; + } + textRegion.numberOfSymbolInstances = readUint32(data, position); + position += 4; + if (textRegion.huffman) { + error('JBIG2 error: huffman is not supported'); + } + args = [textRegion, header.referredTo, data, position, end]; + break; + case 38: + case 39: + var genericRegion = {}; + genericRegion.info = readRegionSegmentInformation(data, position); + position += RegionSegmentInformationFieldLength; + var genericRegionSegmentFlags = data[position++]; + genericRegion.mmr = !!(genericRegionSegmentFlags & 1); + genericRegion.template = genericRegionSegmentFlags >> 1 & 3; + genericRegion.prediction = !!(genericRegionSegmentFlags & 8); + if (!genericRegion.mmr) { + atLength = genericRegion.template === 0 ? 4 : 1; + at = []; + for (i = 0; i < atLength; i++) { + at.push({ + x: readInt8(data, position), + y: readInt8(data, position + 1) + }); + position += 2; + } + genericRegion.at = at; + } + args = [genericRegion, data, position, end]; + break; + case 48: + var pageInfo = { + width: readUint32(data, position), + height: readUint32(data, position + 4), + resolutionX: readUint32(data, position + 8), + resolutionY: readUint32(data, position + 12) + }; + if (pageInfo.height === 0xFFFFFFFF) { + delete pageInfo.height; + } + var pageSegmentFlags = data[position + 16]; + readUint16(data, position + 17); + pageInfo.lossless = !!(pageSegmentFlags & 1); + pageInfo.refinement = !!(pageSegmentFlags & 2); + pageInfo.defaultPixelValue = pageSegmentFlags >> 2 & 1; + pageInfo.combinationOperator = pageSegmentFlags >> 3 & 3; + pageInfo.requiresBuffer = !!(pageSegmentFlags & 32); + pageInfo.combinationOperatorOverride = !!(pageSegmentFlags & 64); + args = [pageInfo]; + break; + case 49: + break; + case 50: + break; + case 51: + break; + case 62: + break; + default: + error('JBIG2 error: segment type ' + header.typeName + '(' + header.type + ') is not implemented'); + } + var callbackName = 'on' + header.typeName; + if (callbackName in visitor) { + visitor[callbackName].apply(visitor, args); + } + } + function processSegments(segments, visitor) { + for (var i = 0, ii = segments.length; i < ii; i++) { + processSegment(segments[i], visitor); + } + } + function parseJbig2(data, start, end) { + var position = start; + if (data[position] !== 0x97 || data[position + 1] !== 0x4A || data[position + 2] !== 0x42 || data[position + 3] !== 0x32 || data[position + 4] !== 0x0D || data[position + 5] !== 0x0A || data[position + 6] !== 0x1A || data[position + 7] !== 0x0A) { + error('JBIG2 error: invalid header'); + } + var header = {}; + position += 8; + var flags = data[position++]; + header.randomAccess = !(flags & 1); + if (!(flags & 2)) { + header.numberOfPages = readUint32(data, position); + position += 4; + } + readSegments(header, data, position, end); + error('Not implemented'); + } + function parseJbig2Chunks(chunks) { + var visitor = new SimpleSegmentVisitor(); + for (var i = 0, ii = chunks.length; i < ii; i++) { + var chunk = chunks[i]; + var segments = readSegments({}, chunk.data, chunk.start, chunk.end); + processSegments(segments, visitor); + } + return visitor.buffer; + } + function SimpleSegmentVisitor() {} + SimpleSegmentVisitor.prototype = { + onPageInformation: function SimpleSegmentVisitor_onPageInformation(info) { + this.currentPageInfo = info; + var rowSize = info.width + 7 >> 3; + var buffer = new Uint8Array(rowSize * info.height); + if (info.defaultPixelValue) { + for (var i = 0, ii = buffer.length; i < ii; i++) { + buffer[i] = 0xFF; + } + } + this.buffer = buffer; + }, + drawBitmap: function SimpleSegmentVisitor_drawBitmap(regionInfo, bitmap) { + var pageInfo = this.currentPageInfo; + var width = regionInfo.width, + height = regionInfo.height; + var rowSize = pageInfo.width + 7 >> 3; + var combinationOperator = pageInfo.combinationOperatorOverride ? regionInfo.combinationOperator : pageInfo.combinationOperator; + var buffer = this.buffer; + var mask0 = 128 >> (regionInfo.x & 7); + var offset0 = regionInfo.y * rowSize + (regionInfo.x >> 3); + var i, j, mask, offset; + switch (combinationOperator) { + case 0: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] |= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + case 2: + for (i = 0; i < height; i++) { + mask = mask0; + offset = offset0; + for (j = 0; j < width; j++) { + if (bitmap[i][j]) { + buffer[offset] ^= mask; + } + mask >>= 1; + if (!mask) { + mask = 128; + offset++; + } + } + offset0 += rowSize; + } + break; + default: + error('JBIG2 error: operator ' + combinationOperator + ' is not supported'); + } + }, + onImmediateGenericRegion: function SimpleSegmentVisitor_onImmediateGenericRegion(region, data, start, end) { + var regionInfo = region.info; + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeBitmap(region.mmr, regionInfo.width, regionInfo.height, region.template, region.prediction, null, region.at, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessGenericRegion: function SimpleSegmentVisitor_onImmediateLosslessGenericRegion() { + this.onImmediateGenericRegion.apply(this, arguments); + }, + onSymbolDictionary: function SimpleSegmentVisitor_onSymbolDictionary(dictionary, currentSegment, referredSegments, data, start, end) { + var huffmanTables; + if (dictionary.huffman) { + error('JBIG2 error: huffman is not supported'); + } + var symbols = this.symbols; + if (!symbols) { + this.symbols = symbols = {}; + } + var inputSymbols = []; + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); + } + var decodingContext = new DecodingContext(data, start, end); + symbols[currentSegment] = decodeSymbolDictionary(dictionary.huffman, dictionary.refinement, inputSymbols, dictionary.numberOfNewSymbols, dictionary.numberOfExportedSymbols, huffmanTables, dictionary.template, dictionary.at, dictionary.refinementTemplate, dictionary.refinementAt, decodingContext); + }, + onImmediateTextRegion: function SimpleSegmentVisitor_onImmediateTextRegion(region, referredSegments, data, start, end) { + var regionInfo = region.info; + var huffmanTables; + var symbols = this.symbols; + var inputSymbols = []; + for (var i = 0, ii = referredSegments.length; i < ii; i++) { + inputSymbols = inputSymbols.concat(symbols[referredSegments[i]]); + } + var symbolCodeLength = log2(inputSymbols.length); + var decodingContext = new DecodingContext(data, start, end); + var bitmap = decodeTextRegion(region.huffman, region.refinement, regionInfo.width, regionInfo.height, region.defaultPixelValue, region.numberOfSymbolInstances, region.stripSize, inputSymbols, symbolCodeLength, region.transposed, region.dsOffset, region.referenceCorner, region.combinationOperator, huffmanTables, region.refinementTemplate, region.refinementAt, decodingContext); + this.drawBitmap(regionInfo, bitmap); + }, + onImmediateLosslessTextRegion: function SimpleSegmentVisitor_onImmediateLosslessTextRegion() { + this.onImmediateTextRegion.apply(this, arguments); + } + }; + function Jbig2Image() {} + Jbig2Image.prototype = { + parseChunks: function Jbig2Image_parseChunks(chunks) { + return parseJbig2Chunks(chunks); + } + }; + return Jbig2Image; +}(); + + + + + + function log2(x) { + var n = 1, i = 0; + while (x > n) { + n <<= 1; + i++; + } + return i; + } + function readInt8(data, start) { + return data[start] << 24 >> 24; + } + function readUint16(data, offset) { + return data[offset] << 8 | data[offset + 1]; + } + function readUint32(data, offset) { + return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; + } + function shadow(obj, prop, value) { + Object.defineProperty(obj, prop, { + value: value, + enumerable: true, + configurable: true, + writable: false + }); + return value; + } + var error = function() { + console.error.apply(console, arguments); + throw new Error("PDFJS error: " + arguments[0]); + }; + var warn = function() { + console.warn.apply(console, arguments); + }; + var info = function() { + console.info.apply(console, arguments); + }; + Jbig2Image.prototype.parse = function parseJbig2(data) { + var position = 0, end = data.length; + if (data[position] !== 151 || data[position + 1] !== 74 || data[position + 2] !== 66 || data[position + 3] !== 50 || data[position + 4] !== 13 || data[position + 5] !== 10 || data[position + 6] !== 26 || data[position + 7] !== 10) { + error("JBIG2 error: invalid header"); + } + var header = {}; + position += 8; + var flags = data[position++]; + header.randomAccess = !(flags & 1); + if (!(flags & 2)) { + header.numberOfPages = readUint32(data, position); + position += 4; + } + var visitor = this.parseChunks([ { + data: data, + start: position, + end: end + } ]); + var width = visitor.currentPageInfo.width; + var height = visitor.currentPageInfo.height; + var bitPacked = visitor.buffer; + var data = new Uint8Array(width * height); + var q = 0, k = 0; + for (var i = 0; i < height; i++) { + var mask = 0, buffer; + for (var j = 0; j < width; j++) { + if (!mask) { + mask = 128; + buffer = bitPacked[k++]; + } + data[q++] = buffer & mask ? 0 : 255; + mask >>= 1; + } + } + this.width = width; + this.height = height; + this.data = data; + }; + PDFJS.JpegImage = JpegImage; + PDFJS.JpxImage = JpxImage; + PDFJS.Jbig2Image = Jbig2Image; +})(PDFJS || (PDFJS = {})); +(function(r){"object"===typeof exports&&"undefined"!==typeof module?module.exports=r():"function"===typeof define&&define.amd?define([],r):("undefined"!==typeof window?window:"undefined"!==typeof global?global:"undefined"!==typeof self?self:this).acorn=r()})(function(){return function a(l,f,c){function g(d,n){if(!f[d]){if(!l[d]){var e="function"==typeof require&&require;if(!n&&e)return e(d,!0);if(b)return b(d,!0);e=Error("Cannot find module '"+d+"'");throw e.code="MODULE_NOT_FOUND",e;}e=f[d]={exports:{}}; +l[d][0].call(e.exports,function(b){var e=l[d][1][b];return g(e?e:b)},e,e.exports,a,l,f,c)}return f[d].exports}for(var b="function"==typeof require&&require,d=0;dn){var p=this.type===c.types.logicalOR||this.type===c.types.logicalAND,g=this.value;this.next();var k=this.start,q=this.startLoc,d=this.parseExprOp(this.parseMaybeUnary(null, +!1),k,q,d,e);b=this.buildBinary(a,h,b,d,g,p);return this.parseExprOp(b,a,h,n,e)}return b};a.buildBinary=function(b,c,a,n,e,m){b=this.startNodeAt(b,c);b.left=a;b.operator=e;b.right=n;return this.finishNode(b,m?"LogicalExpression":"BinaryExpression")};a.parseMaybeUnary=function(b,a){var d=this.start,n=this.startLoc;if(this.type.prefix){var e=this.startNode();var m=this.type===c.types.incDec;e.operator=this.value;e.prefix=!0;this.next();e.argument=this.parseMaybeUnary(null,!0);this.checkExpressionErrors(b, +!0);m?this.checkLVal(e.argument):this.strict&&"delete"===e.operator&&"Identifier"===e.argument.type?this.raiseRecoverable(e.start,"Deleting local variable in strict mode"):a=!0;m=this.finishNode(e,m?"UpdateExpression":"UnaryExpression")}else{m=this.parseExprSubscripts(b);if(this.checkExpressionErrors(b))return m;for(;this.type.postfix&&!this.canInsertSemicolon();)e=this.startNodeAt(d,n),e.operator=this.value,e.prefix=!1,e.argument=m,this.checkLVal(m),this.next(),m=this.finishNode(e,"UpdateExpression")}return!a&& +this.eat(c.types.starstar)?this.buildBinary(d,n,m,this.parseMaybeUnary(null,!1),"**",!1):m};a.parseExprSubscripts=function(b){var c=this.start,a=this.startLoc,n=this.parseExprAtom(b),e="ArrowFunctionExpression"===n.type&&")"!==this.input.slice(this.lastTokStart,this.lastTokEnd);return this.checkExpressionErrors(b)||e?n:this.parseSubscripts(n,c,a)};a.parseSubscripts=function(b,a,h,n){for(var e;;)if(this.eat(c.types.dot))e=this.startNodeAt(a,h),e.object=b,e.property=this.parseIdent(!0),e.computed=!1, +b=this.finishNode(e,"MemberExpression");else if(this.eat(c.types.bracketL))e=this.startNodeAt(a,h),e.object=b,e.property=this.parseExpression(),e.computed=!0,this.expect(c.types.bracketR),b=this.finishNode(e,"MemberExpression");else if(!n&&this.eat(c.types.parenL))e=this.startNodeAt(a,h),e.callee=b,e.arguments=this.parseExprList(c.types.parenR,!1),b=this.finishNode(e,"CallExpression");else if(this.type===c.types.backQuote)e=this.startNodeAt(a,h),e.tag=b,e.quasi=this.parseTemplate(),b=this.finishNode(e, +"TaggedTemplateExpression");else return b};a.parseExprAtom=function(b){var a=this.potentialArrowAt==this.start;switch(this.type){case c.types._super:this.inFunction||this.raise(this.start,"'super' outside of function or class");case c.types._this:return b=this.type===c.types._this?"ThisExpression":"Super",a=this.startNode(),this.next(),this.finishNode(a,b);case c.types.name:b=this.start;var h=this.startLoc,n=this.parseIdent(this.type!==c.types.name);return a&&!this.canInsertSemicolon()&&this.eat(c.types.arrow)? +this.parseArrowExpression(this.startNodeAt(b,h),[n]):n;case c.types.regexp:return b=this.value,a=this.parseLiteral(b.value),a.regex={pattern:b.pattern,flags:b.flags},a;case c.types.num:case c.types.string:return this.parseLiteral(this.value);case c.types._null:case c.types._true:case c.types._false:return a=this.startNode(),a.value=this.type===c.types._null?null:this.type===c.types._true,a.raw=this.type.keyword,this.next(),this.finishNode(a,"Literal");case c.types.parenL:return this.parseParenAndDistinguishExpression(a); +case c.types.bracketL:return a=this.startNode(),this.next(),a.elements=this.parseExprList(c.types.bracketR,!0,!0,b),this.finishNode(a,"ArrayExpression");case c.types.braceL:return this.parseObj(!1,b);case c.types._function:return a=this.startNode(),this.next(),this.parseFunction(a,!1);case c.types._class:return this.parseClass(this.startNode(),!1);case c.types._new:return this.parseNew();case c.types.backQuote:return this.parseTemplate();default:this.unexpected()}};a.parseLiteral=function(b){var a= +this.startNode();a.value=b;a.raw=this.input.slice(this.start,this.end);this.next();return this.finishNode(a,"Literal")};a.parseParenExpression=function(){this.expect(c.types.parenL);var b=this.parseExpression();this.expect(c.types.parenR);return b};a.parseParenAndDistinguishExpression=function(b){var a=this.start,h=this.startLoc;if(6<=this.options.ecmaVersion){this.next();for(var n=this.start,e=this.startLoc,m=[],p=!0,g={shorthandAssign:0,trailingComma:0},k=void 0,q=void 0;this.type!==c.types.parenR;)if(p? +p=!1:this.expect(c.types.comma),this.type===c.types.ellipsis){k=this.start;m.push(this.parseParenItem(this.parseRest()));break}else this.type!==c.types.parenL||q||(q=this.start),m.push(this.parseMaybeAssign(!1,g,this.parseParenItem));var p=this.start,f=this.startLoc;this.expect(c.types.parenR);if(b&&!this.canInsertSemicolon()&&this.eat(c.types.arrow))return this.checkPatternErrors(g,!0),q&&this.unexpected(q),this.parseParenArrowList(a,h,m);m.length||this.unexpected(this.lastTokStart);k&&this.unexpected(k); +this.checkExpressionErrors(g,!0);1b)return!1; +e+=a[c+1];if(e>=b)return!0}}f.__esModule=!0;f.isIdentifierStart=function(b,a){return 65>b?36===b:91>b?!0:97>b?95===b:123>b?!0:65535>=b?170<=b&&g.test(String.fromCharCode(b)):!1===a?!1:c(b,d)};f.isIdentifierChar=function(a,e){return 48>a?36===a:58>a?!0:65>a?!1:91>a?!0:97>a?95===a:123>a?!0:65535>=a?170<=a&&b.test(String.fromCharCode(a)):!1===e?!1:c(a,d)||c(a,h)};f.reservedWords={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile", +5:"class enum extends super const export import",6:"enum",7:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"};f.keywords={5:"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",6:"break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this const class extends export import super"}; +a="\u00aa\u00b5\u00ba\u00c0-\u00d6\u00d8-\u00f6\u00f8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0561-\u0587\u05d0-\u05ea\u05f0-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u08a0-\u08b4\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d05-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e87\u0e88\u0e8a\u0e8d\u0e94-\u0e97\u0e99-\u0e9f\u0ea1-\u0ea3\u0ea5\u0ea7\u0eaa\u0eab\u0ead-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1877\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1ce9-\u1cec\u1cee-\u1cf1\u1cf5\u1cf6\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312d\u3131-\u318e\u31a0-\u31ba\u31f0-\u31ff\u3400-\u4db5\u4e00-\u9fd5\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ad\ua7b0-\ua7b7\ua7f7-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab65\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; +var g=new RegExp("["+a+"]"),b=new RegExp("["+a+"\u200c\u200d\u00b7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c03\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d01-\u0d03\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d82\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf2-\u1cf4\u1cf8\u1cf9\u1dc0-\u1df5\u1dfc-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua880\ua881\ua8b4-\ua8c4\ua8d0-\ua8d9\ua8e0-\ua8f1\ua900-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f]"); +a=null;var d=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,17,26,6,37,11,29,3,35,5,7,2,4,43,157,99,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,26,45,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,785,52,76,44,33,24,27,35,42,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,287,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,86,25,391,63,32,0,449,56,1288, +921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,881,68,12,0,67,12,16481,1,3071,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,4149,196,1340,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42710,42,4148,12,221,3,5761,10591,541],h=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3, +41,2,5,0,166,1,1306,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,52,0,13,2,49,13,10,2,4,9,83,11,168,11,6,9,7,3,57,0,2,6,3,1,3,2,10,0,11,1,3,6,4,4,316,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,423,9,20855,9,135,4,60,6,26,9,1016,45,17,3,19723,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,3617,6,792618,239]},{}],3:[function(a,l,f){f.__esModule=!0;f.parse=function(a,b){return(new c.Parser(b,a)).parse()};f.parseExpressionAt=function(a,b,d){a=new c.Parser(d,a,b);a.nextToken(); +return a.parseExpression()};f.tokenizer=function(a,b){return new c.Parser(b,a)};var c=a("./state");a("./parseutil");a("./statement");a("./lval");a("./expression");a("./location");f.Parser=c.Parser;f.plugins=c.plugins;l=a("./options");f.defaultOptions=l.defaultOptions;l=a("./locutil");f.Position=l.Position;f.SourceLocation=l.SourceLocation;f.getLineInfo=l.getLineInfo;l=a("./node");f.Node=l.Node;l=a("./tokentype");f.TokenType=l.TokenType;f.tokTypes=l.types;l=a("./tokencontext");f.TokContext=l.TokContext; +f.tokContexts=l.types;l=a("./identifier");f.isIdentifierChar=l.isIdentifierChar;f.isIdentifierStart=l.isIdentifierStart;l=a("./tokenize");f.Token=l.Token;a=a("./whitespace");f.isNewLine=a.isNewLine;f.lineBreak=a.lineBreak;f.lineBreakG=a.lineBreakG;f.version="3.1.0"},{"./expression":1,"./identifier":2,"./location":4,"./locutil":5,"./lval":6,"./node":7,"./options":8,"./parseutil":9,"./state":10,"./statement":11,"./tokencontext":12,"./tokenize":13,"./tokentype":14,"./whitespace":16}],4:[function(a,l, +f){l=a("./state");var c=a("./locutil");a=l.Parser.prototype;a.raise=function(a,b){var d=c.getLineInfo(this.input,a);b+=" ("+d.line+":"+d.column+")";var h=new SyntaxError(b);h.pos=a;h.loc=d;h.raisedAt=this.pos;throw h;};a.raiseRecoverable=a.raise;a.curPosition=function(){if(this.options.locations)return new c.Position(this.curLine,this.pos-this.lineStart)}},{"./locutil":5,"./state":10}],5:[function(a,l,f){function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function"); +}f.__esModule=!0;f.getLineInfo=function(a,c){for(var d=1,e=0;;){g.lineBreakG.lastIndex=e;var m=g.lineBreakG.exec(a);if(m&&m.indexthis.options.ecmaVersion||"let"!=this.value)return!1;g.skipWhiteSpace.lastIndex=this.pos;var a=g.skipWhiteSpace.exec(this.input),a=this.pos+a[0].length,d=this.input.charCodeAt(a);if(91===d||123==d)return!0;if(b.isIdentifierStart(d,!0)){for(d=a+1;b.isIdentifierChar(this.input.charCodeAt(d,!0));++d);a=this.input.slice(a,d);if(!this.isKeyword(a))return!0}return!1}; +a.parseStatement=function(a,b){var e=this.type,d=this.startNode(),k=void 0;this.isLet()&&(e=c.types._var,k="let");switch(e){case c.types._break:case c.types._continue:return this.parseBreakContinueStatement(d,e.keyword);case c.types._debugger:return this.parseDebuggerStatement(d);case c.types._do:return this.parseDoStatement(d);case c.types._for:return this.parseForStatement(d);case c.types._function:return!a&&6<=this.options.ecmaVersion&&this.unexpected(),this.parseFunctionStatement(d);case c.types._class:return a|| +this.unexpected(),this.parseClass(d,!0);case c.types._if:return this.parseIfStatement(d);case c.types._return:return this.parseReturnStatement(d);case c.types._switch:return this.parseSwitchStatement(d);case c.types._throw:return this.parseThrowStatement(d);case c.types._try:return this.parseTryStatement(d);case c.types._const:case c.types._var:return k=k||this.value,a||"var"==k||this.unexpected(),this.parseVarStatement(d,k);case c.types._while:return this.parseWhileStatement(d);case c.types._with:return this.parseWithStatement(d); +case c.types.braceL:return this.parseBlock();case c.types.semi:return this.parseEmptyStatement(d);case c.types._export:case c.types._import:return this.options.allowImportExportEverywhere||(b||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),e===c.types._import?this.parseImport(d):this.parseExport(d);default:var k=this.value,m=this.parseExpression();return e===c.types.name&& +"Identifier"===m.type&&this.eat(c.types.colon)?this.parseLabeledStatement(d,k,m):this.parseExpressionStatement(d,m)}};a.parseBreakContinueStatement=function(a,b){var e="break"==b;this.next();this.eat(c.types.semi)||this.insertSemicolon()?a.label=null:this.type!==c.types.name?this.unexpected():(a.label=this.parseIdent(),this.semicolon());for(var d=0;d=a)return String.fromCharCode(a);a-=65536;return String.fromCharCode((a>>10)+55296,(a&1023)+56320)}f.__esModule=!0;var b=a("./identifier"),d=a("./tokentype");l=a("./state");var h=a("./locutil"),n=a("./whitespace"),e=function k(a){if(!(this instanceof k))throw new TypeError("Cannot call a class as a function");this.type=a.type;this.value=a.value;this.start=a.start;this.end=a.end;a.options.locations&&(this.loc= +new h.SourceLocation(a,a.startLoc,a.endLoc));a.options.ranges&&(this.range=[a.start,a.end])};f.Token=e;a=l.Parser.prototype;var m="object"==typeof Packages&&"[object JavaPackage]"==Object.prototype.toString.call(Packages);a.next=function(){if(this.options.onToken)this.options.onToken(new e(this));this.lastTokEnd=this.end;this.lastTokStart=this.start;this.lastTokEndLoc=this.endLoc;this.lastTokStartLoc=this.startLoc;this.nextToken()};a.getToken=function(){this.next();return new e(this)};"undefined"!== +typeof Symbol&&(a[Symbol.iterator]=function(){var a=this;return{next:function(){var b=a.getToken();return{done:b.type===d.types.eof,value:b}}}});a.setStrict=function(a){this.strict=a;if(this.type===d.types.num||this.type===d.types.string){this.pos=this.start;if(this.options.locations)for(;this.pos=this.input.length)return this.finishToken(d.types.eof);if(a.override)return a.override(this);this.readToken(this.fullCharCodeAtPos())};a.readToken=function(a){return b.isIdentifierStart(a,6<=this.options.ecmaVersion)||92===a?this.readWord():this.getTokenFromCode(a)};a.fullCharCodeAtPos=function(){var a=this.input.charCodeAt(this.pos);if(55295>=a||57344<= +a)return a;var b=this.input.charCodeAt(this.pos+1);return(a<<10)+b-56613888};a.skipBlockComment=function(){var a=this.options.onComment&&this.curPosition(),b=this.pos,c=this.input.indexOf("*/",this.pos+=2);-1===c&&this.raise(this.pos-2,"Unterminated comment");this.pos=c+2;if(this.options.locations){n.lineBreakG.lastIndex=b;for(var d=void 0;(d=n.lineBreakG.exec(this.input))&&d.indexa||5760<=a&&n.nonASCIIwhitespace.test(String.fromCharCode(a)))++this.pos;else break a}}};a.finishToken=function(a,b){this.end=this.pos;this.options.locations&& +(this.endLoc=this.curPosition());var c=this.type;this.type=a;this.value=b;this.updateContext(c)};a.readToken_dot=function(){var a=this.input.charCodeAt(this.pos+1);if(48<=a&&57>=a)return this.readNumber(!0);var b=this.input.charCodeAt(this.pos+2);if(6<=this.options.ecmaVersion&&46===a&&46===b)return this.pos+=3,this.finishToken(d.types.ellipsis);++this.pos;return this.finishToken(d.types.dot)};a.readToken_slash=function(){var a=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos, +this.readRegexp()):61===a?this.finishOp(d.types.assign,2):this.finishOp(d.types.slash,1)};a.readToken_mult_modulo_exp=function(a){var b=this.input.charCodeAt(this.pos+1),c=1;a=42===a?d.types.star:d.types.modulo;7<=this.options.ecmaVersion&&42===b&&(++c,a=d.types.starstar,b=this.input.charCodeAt(this.pos+2));return 61===b?this.finishOp(d.types.assign,c+1):this.finishOp(a,c)};a.readToken_pipe_amp=function(a){var b=this.input.charCodeAt(this.pos+1);return b===a?this.finishOp(124===a?d.types.logicalOR: +d.types.logicalAND,2):61===b?this.finishOp(d.types.assign,2):this.finishOp(124===a?d.types.bitwiseOR:d.types.bitwiseAND,1)};a.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(d.types.assign,2):this.finishOp(d.types.bitwiseXOR,1)};a.readToken_plus_min=function(a){var b=this.input.charCodeAt(this.pos+1);return b===a?45==b&&62==this.input.charCodeAt(this.pos+2)&&n.lineBreak.test(this.input.slice(this.lastTokEnd,this.pos))?(this.skipLineComment(3),this.skipSpace(), +this.nextToken()):this.finishOp(d.types.incDec,2):61===b?this.finishOp(d.types.assign,2):this.finishOp(d.types.plusMin,1)};a.readToken_lt_gt=function(a){var b=this.input.charCodeAt(this.pos+1),c=1;if(b===a)return c=62===a&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+c)?this.finishOp(d.types.assign,c+1):this.finishOp(d.types.bitShift,c);if(33==b&&60==a&&45==this.input.charCodeAt(this.pos+2)&&45==this.input.charCodeAt(this.pos+3))return this.inModule&&this.unexpected(), +this.skipLineComment(4),this.skipSpace(),this.nextToken();61===b&&(c=2);return this.finishOp(d.types.relational,c)};a.readToken_eq_excl=function(a){var b=this.input.charCodeAt(this.pos+1);return 61===b?this.finishOp(d.types.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===a&&62===b&&6<=this.options.ecmaVersion?(this.pos+=2,this.finishToken(d.types.arrow)):this.finishOp(61===a?d.types.eq:d.types.prefix,1)};a.getTokenFromCode=function(a){switch(a){case 46:return this.readToken_dot();case 40:return++this.pos, +this.finishToken(d.types.parenL);case 41:return++this.pos,this.finishToken(d.types.parenR);case 59:return++this.pos,this.finishToken(d.types.semi);case 44:return++this.pos,this.finishToken(d.types.comma);case 91:return++this.pos,this.finishToken(d.types.bracketL);case 93:return++this.pos,this.finishToken(d.types.bracketR);case 123:return++this.pos,this.finishToken(d.types.braceL);case 125:return++this.pos,this.finishToken(d.types.braceR);case 58:return++this.pos,this.finishToken(d.types.colon);case 63:return++this.pos, +this.finishToken(d.types.question);case 96:if(6>this.options.ecmaVersion)break;++this.pos;return this.finishToken(d.types.backQuote);case 48:a=this.input.charCodeAt(this.pos+1);if(120===a||88===a)return this.readRadixNumber(16);if(6<=this.options.ecmaVersion){if(111===a||79===a)return this.readRadixNumber(8);if(98===a||66===a)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(a);case 47:return this.readToken_slash(); +case 37:case 42:return this.readToken_mult_modulo_exp(a);case 124:case 38:return this.readToken_pipe_amp(a);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(a);case 60:case 62:return this.readToken_lt_gt(a);case 61:case 33:return this.readToken_eq_excl(a);case 126:return this.finishOp(d.types.prefix,1)}this.raise(this.pos,"Unexpected character '"+g(a)+"'")};a.finishOp=function(a,b){var c=this.input.slice(this.pos,this.pos+b);this.pos+=b;return this.finishToken(a, +c)};var p=!!c("\uffff","u");a.readRegexp=function(){for(var a=this,b=void 0,e=void 0,f=this.pos;;){this.pos>=this.input.length&&this.raise(f,"Unterminated regular expression");var g=this.input.charAt(this.pos);n.lineBreak.test(g)&&this.raise(f,"Unterminated regular expression");if(b)b=!1;else{if("["===g)e=!0;else if("]"===g&&e)e=!1;else if("/"===g&&!e)break;b="\\"===g}++this.pos}b=this.input.slice(f,this.pos);++this.pos;e=this.readWord1();g=b;if(e){var h=/^[gim]*$/;6<=this.options.ecmaVersion&&(h= +/^[gimuy]*$/);h.test(e)||this.raise(f,"Invalid regular expression flag");0<=e.indexOf("u")&&!p&&(g=g.replace(/\\u\{([0-9a-fA-F]+)\}/g,function(b,c,d){c=Number("0x"+c);1114111=k?k-48:Infinity;if(k>=a)break;++this.pos;d=d*a+k}return this.pos===c||null!=b&&this.pos-c!==b?null:d};a.readRadixNumber=function(a){this.pos+=2;var c=this.readInt(a);null==c&&this.raise(this.start+2,"Expected number in radix "+a);b.isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");return this.finishToken(d.types.num,c)};a.readNumber=function(a){var c=this.pos,e=!1,f=48===this.input.charCodeAt(this.pos);a|| +null!==this.readInt(10)||this.raise(c,"Invalid number");a=this.input.charCodeAt(this.pos);46===a&&(++this.pos,this.readInt(10),e=!0,a=this.input.charCodeAt(this.pos));if(69===a||101===a)a=this.input.charCodeAt(++this.pos),43!==a&&45!==a||++this.pos,null===this.readInt(10)&&this.raise(c,"Invalid number"),e=!0;b.isIdentifierStart(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");a=this.input.slice(c,this.pos);var k=void 0;e?k=parseFloat(a):f&&1!==a.length?/[89]/.test(a)|| +this.strict?this.raise(c,"Invalid number"):k=parseInt(a,8):k=parseInt(a,10);return this.finishToken(d.types.num,k)};a.readCodePoint=function(){if(123===this.input.charCodeAt(this.pos)){6>this.options.ecmaVersion&&this.unexpected();var a=++this.pos;var b=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos);++this.pos;1114111=this.input.length&&this.raise(this.start, +"Unterminated string constant");var e=this.input.charCodeAt(this.pos);if(e===a)break;92===e?(b+=this.input.slice(c,this.pos),b+=this.readEscapedChar(!1),c=this.pos):(n.isNewLine(e)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}b+=this.input.slice(c,this.pos++);return this.finishToken(d.types.string,b)};a.readTmplToken=function(){for(var a="",b=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var c=this.input.charCodeAt(this.pos);if(96=== +c||36===c&&123===this.input.charCodeAt(this.pos+1)){if(this.pos===this.start&&this.type===d.types.template){if(36===c)return this.pos+=2,this.finishToken(d.types.dollarBraceL);++this.pos;return this.finishToken(d.types.backQuote)}a+=this.input.slice(b,this.pos);return this.finishToken(d.types.template,a)}if(92===c)a+=this.input.slice(b,this.pos),a+=this.readEscapedChar(!0),b=this.pos;else if(n.isNewLine(c)){a+=this.input.slice(b,this.pos);++this.pos;switch(c){case 13:10===this.input.charCodeAt(this.pos)&& +++this.pos;case 10:a+="\n";break;default:a+=String.fromCharCode(c)}this.options.locations&&(++this.curLine,this.lineStart=this.pos);b=this.pos}else++this.pos}};a.readEscapedChar=function(a){var b=this.input.charCodeAt(++this.pos);++this.pos;switch(b){case 110:return"\n";case 114:return"\r";case 120:return String.fromCharCode(this.readHexChar(2));case 117:return g(this.readCodePoint());case 116:return"\t";case 98:return"\b";case 118:return"\x0B";case 102:return"\f";case 13:10===this.input.charCodeAt(this.pos)&& +++this.pos;case 10:return this.options.locations&&(this.lineStart=this.pos,++this.curLine),"";default:if(48<=b&&55>=b){var b=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],c=parseInt(b,8);255=f?1:2;else if(92===f)this.containsEsc=!0,a+=this.input.slice(d,this.pos),d=this.pos,117!=this.input.charCodeAt(++this.pos)&&this.raise(this.pos,"Expecting Unicode escape sequence \\uXXXX"),++this.pos,f=this.readCodePoint(),(c?b.isIdentifierStart:b.isIdentifierChar)(f,e)||this.raise(d, +"Invalid Unicode escape"),a+=g(f),d=this.pos;else break;c=!1}return a+this.input.slice(d,this.pos)};a.readWord=function(){var a=this.readWord1(),b=d.types.name;(6<=this.options.ecmaVersion||!this.containsEsc)&&this.keywords.test(a)&&(b=d.keywords[a]);return this.finishToken(b,a)}},{"./identifier":2,"./locutil":5,"./state":10,"./tokentype":14,"./whitespace":16}],14:[function(a,l,f){function c(a,c){return new b(a,{beforeExpr:!0,binop:c})}function g(a){var c=1>=arguments.length||void 0===arguments[1]? +{}:arguments[1];c.keyword=a;h[a]=d["_"+a]=new b(a,c)}f.__esModule=!0;var b=function e(a){var b=1>=arguments.length||void 0===arguments[1]?{}:arguments[1];if(!(this instanceof e))throw new TypeError("Cannot call a class as a function");this.label=a;this.keyword=b.keyword;this.beforeExpr=!!b.beforeExpr;this.startsExpr=!!b.startsExpr;this.isLoop=!!b.isLoop;this.isAssign=!!b.isAssign;this.prefix=!!b.prefix;this.postfix=!!b.postfix;this.binop=b.binop||null;this.updateContext=null};f.TokenType=b;a={beforeExpr:!0}; +l={startsExpr:!0};var d={num:new b("num",l),regexp:new b("regexp",l),string:new b("string",l),name:new b("name",l),eof:new b("eof"),bracketL:new b("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new b("]"),braceL:new b("{",{beforeExpr:!0,startsExpr:!0}),braceR:new b("}"),parenL:new b("(",{beforeExpr:!0,startsExpr:!0}),parenR:new b(")"),comma:new b(",",a),semi:new b(";",a),colon:new b(":",a),dot:new b("."),question:new b("?",a),arrow:new b("=>",a),template:new b("template"),ellipsis:new b("...",a),backQuote:new b("`", +l),dollarBraceL:new b("${",{beforeExpr:!0,startsExpr:!0}),eq:new b("=",{beforeExpr:!0,isAssign:!0}),assign:new b("_=",{beforeExpr:!0,isAssign:!0}),incDec:new b("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new b("prefix",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:c("||",1),logicalAND:c("&&",2),bitwiseOR:c("|",3),bitwiseXOR:c("^",4),bitwiseAND:c("&",5),equality:c("==/!=",6),relational:c("",7),bitShift:c("<>",8),plusMin:new b("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}), +modulo:c("%",10),star:c("*",10),slash:c("/",10),starstar:new b("**",{beforeExpr:!0})};f.types=d;var h={};f.keywords=h;g("break");g("case",a);g("catch");g("continue");g("debugger");g("default",a);g("do",{isLoop:!0,beforeExpr:!0});g("else",a);g("finally");g("for",{isLoop:!0});g("function",l);g("if");g("return",a);g("switch");g("throw",a);g("try");g("var");g("const");g("while",{isLoop:!0});g("with");g("new",{beforeExpr:!0,startsExpr:!0});g("this",l);g("super",l);g("class");g("extends",a);g("export"); +g("import");g("null",l);g("true",l);g("false",l);g("in",{beforeExpr:!0,binop:7});g("instanceof",{beforeExpr:!0,binop:7});g("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0});g("void",{beforeExpr:!0,prefix:!0,startsExpr:!0});g("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},{}],15:[function(a,l,f){f.__esModule=!0;f.isArray=function(a){return"[object Array]"===Object.prototype.toString.call(a)};f.has=function(a,f){return Object.prototype.hasOwnProperty.call(a,f)}},{}],16:[function(a,l,f){f.__esModule= +!0;f.isNewLine=function(a){return 10===a||13===a||8232===a||8233==a};a=/\r\n?|\n|\u2028|\u2029/;f.lineBreak=a;f.lineBreakG=new RegExp(a.source,"g");f.nonASCIIwhitespace=/[\u1680\u180e\u2000-\u200a\u202f\u205f\u3000\ufeff]/;f.skipWhiteSpace=/(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g},{}]},{},[3])(3)}); +var UPNG = {}; + + + +UPNG.toRGBA8 = function(out) +{ + var w = out.width, h = out.height; + if(out.tabs.acTL==null) return [UPNG.toRGBA8.decodeImage(out.data, w, h, out).buffer]; + + var frms = []; + if(out.frames[0].data==null) out.frames[0].data = out.data; + + var img, empty = new Uint8Array(w*h*4); + for(var i=0; i>3)]>>(7-((i&7)<<0)))& 1), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>2)]>>(6-((i&3)<<1)))& 3), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>1)]>>(4-((i&1)<<2)))&15), cj=3*j; bf[qi]=p[cj]; bf[qi+1]=p[cj+1]; bf[qi+2]=p[cj+2]; bf[qi+3]=(j>>3)]>>>(7 -((x&7) )))& 1), al=(gr==tr*255)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 2) for(var x=0; x>>2)]>>>(6 -((x&3)<<1)))& 3), al=(gr==tr* 85)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 4) for(var x=0; x>>1)]>>>(4 -((x&1)<<2)))&15), al=(gr==tr* 17)?0:255; bf32[to+x]=(al<<24)|(gr<<16)|(gr<<8)|gr; } + else if(depth== 8) for(var x=0; x>>2<<3);while(i==0){i=n(N,d,1);m=n(N,d+1,2);d+=3;if(m==0){if((d&7)!=0)d+=8-(d&7); +var D=(d>>>3)+4,q=N[D-4]|N[D-3]<<8;if(Z)W=H.H.W(W,w+q);W.set(new R(N.buffer,N.byteOffset+D,q),w);d=D+q<<3; +w+=q;continue}if(Z)W=H.H.W(W,w+(1<<17));if(m==1){v=b.J;C=b.h;X=(1<<9)-1;u=(1<<5)-1}if(m==2){J=A(N,d,5)+257; +h=A(N,d+5,5)+1;Q=A(N,d+10,4)+4;d+=14;var E=d,j=1;for(var c=0;c<38;c+=2){b.Q[c]=0;b.Q[c+1]=0}for(var c=0; +cj)j=K}d+=3*Q;M(b.Q,j);I(b.Q,j,b.u);v=b.w;C=b.d; +d=l(b.u,(1<>>4;if(p>>>8==0){W[w++]=p}else if(p==256){break}else{var z=w+p-254; +if(p>264){var _=b.q[p-257];z=w+(_>>>3)+A(N,d,_&7);d+=_&7}var $=C[e(N,d)&u];d+=$&15;var s=$>>>4,Y=b.c[s],a=(Y>>>4)+n(N,d,Y&15); +d+=Y&15;while(w>>4; +if(b<=15){A[I]=b;I++}else{var Z=0,m=0;if(b==16){m=3+l(V,n,2);n+=2;Z=A[I-1]}else if(b==17){m=3+l(V,n,3); +n+=3}else if(b==18){m=11+l(V,n,7);n+=7}var J=I+m;while(I>>1; +while(An)n=M;A++}while(A>1,I=N[l+1],e=M<<4|I,b=W-I,Z=N[l]<>>15-W;R[J]=e;Z++}}};H.H.l=function(N,W){var R=H.H.m.r,V=15-W;for(var n=0;n>>V}};H.H.M=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8}; +H.H.I=function(N,W,R){R=R<<(W&7);var V=W>>>3;N[V]|=R;N[V+1]|=R>>>8;N[V+2]|=R>>>16};H.H.e=function(N,W,R){return(N[W>>>3]|N[(W>>>3)+1]<<8)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)&(1<>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16)>>>(W&7)}; +H.H.i=function(N,W){return(N[W>>>3]|N[(W>>>3)+1]<<8|N[(W>>>3)+2]<<16|N[(W>>>3)+3]<<24)>>>(W&7)};H.H.m=function(){var N=Uint16Array,W=Uint32Array; +return{K:new N(16),j:new N(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new N(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new W(32),J:new N(512),_:[],h:new N(32),$:[],w:new N(32768),C:[],v:[],d:new N(32768),D:[],u:new N(512),Q:[],r:new N(1<<15),s:new W(286),Y:new W(30),a:new W(19),t:new W(15e3),k:new N(1<<16),g:new N(1<<15)}}(); +(function(){var N=H.H.m,W=1<<15;for(var R=0;R>>1|(V&1431655765)<<1; +V=(V&3435973836)>>>2|(V&858993459)<<2;V=(V&4042322160)>>>4|(V&252645135)<<4;V=(V&4278255360)>>>8|(V&16711935)<<8; +N.r[R]=(V>>>16|V<<16)>>>17}function n(A,l,M){while(l--!=0)A.push(0,M)}for(var R=0;R<32;R++){N.q[R]=N.S[R]<<3|N.T[R]; +N.c[R]=N.p[R]<<4|N.z[R]}n(N._,144,8);n(N._,255-143,9);n(N._,279-255,7);n(N._,287-279,8);H.H.n(N._,9); +H.H.A(N._,9,N.J);H.H.l(N._,9);n(N.$,32,5);H.H.n(N.$,5);H.H.A(N.$,5,N.h);H.H.l(N.$,5);n(N.Q,19,0);n(N.C,286,0); +n(N.D,30,0);n(N.v,320,0)}());return H.H.N}() + + +UPNG.decode._readInterlace = function(data, out) +{ + var w = out.width, h = out.height; + var bpp = UPNG.decode._getBPP(out), cbpp = bpp>>3, bpl = Math.ceil(w*bpp/8); + var img = new Uint8Array( h * bpl ); + var di = 0; + + var starting_row = [ 0, 0, 4, 0, 2, 0, 1 ]; + var starting_col = [ 0, 4, 0, 2, 0, 1, 0 ]; + var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ]; + var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ]; + + var pass=0; + while(pass<7) + { + var ri = row_increment[pass], ci = col_increment[pass]; + var sw = 0, sh = 0; + var cr = starting_row[pass]; while(cr>3]; val = (val>>(7-(cdi&7)))&1; + img[row*bpl + (col>>3)] |= (val << (7-((col&3)<<0))); + } + if(bpp==2) { + var val = data[cdi>>3]; val = (val>>(6-(cdi&7)))&3; + img[row*bpl + (col>>2)] |= (val << (6-((col&3)<<1))); + } + if(bpp==4) { + var val = data[cdi>>3]; val = (val>>(4-(cdi&7)))&15; + img[row*bpl + (col>>1)] |= (val << (4-((col&1)<<2))); + } + if(bpp>=8) { + var ii = row*bpl+col*cbpp; + for(var j=0; j>3)+j]; + } + cdi+=bpp; col+=ci; + } + y++; row += ri; + } + if(sw*sh!=0) di += sh * (1 + bpll); + pass = pass + 1; + } + return img; +} + +UPNG.decode._getBPP = function(out) { + var noc = [1,null,3,1,2,null,4][out.ctype]; + return noc * out.depth; +} + +UPNG.decode._filterZero = function(data, out, off, w, h) +{ + var bpp = UPNG.decode._getBPP(out), bpl = Math.ceil(w*bpp/8), paeth = UPNG.decode._paeth; + bpp = Math.ceil(bpp/8); + + var i=0, di=1, type=0, x=0; + + for(var y=0; y>>1) )&255; + else if(type==4) for(; x>>1))&255; + for(; x>>1) )&255; } + + else if(type==4) { for(; x>8)&255; buff[p+1] = n&255; }, + readUint : function(buff,p) { return (buff[p]*(256*256*256)) + ((buff[p+1]<<16) | (buff[p+2]<< 8) | buff[p+3]); }, + writeUint : function(buff,p,n){ buff[p]=(n>>24)&255; buff[p+1]=(n>>16)&255; buff[p+2]=(n>>8)&255; buff[p+3]=n&255; }, + readASCII : function(buff,p,l){ var s = ""; for(var i=0; i=0 && yoff>=0) { si = (y*sw+x)<<2; ti = (( yoff+y)*tw+xoff+x)<<2; } + else { si = ((-yoff+y)*sw-xoff+x)<<2; ti = (y*tw+x)<<2; } + + if (mode==0) { tb[ti] = sb[si]; tb[ti+1] = sb[si+1]; tb[ti+2] = sb[si+2]; tb[ti+3] = sb[si+3]; } + else if(mode==1) { + var fa = sb[si+3]*(1/255), fr=sb[si]*fa, fg=sb[si+1]*fa, fb=sb[si+2]*fa; + var ba = tb[ti+3]*(1/255), br=tb[ti]*ba, bg=tb[ti+1]*ba, bb=tb[ti+2]*ba; + + var ifa=1-fa, oa = fa+ba*ifa, ioa = (oa==0?0:1/oa); + tb[ti+3] = 255*oa; + tb[ti+0] = (fr+br*ifa)*ioa; + tb[ti+1] = (fg+bg*ifa)*ioa; + tb[ti+2] = (fb+bb*ifa)*ioa; + } + else if(mode==2){ // copy only differences, otherwise zero + var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; + var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; + if(fa==ba && fr==br && fg==bg && fb==bb) { tb[ti]=0; tb[ti+1]=0; tb[ti+2]=0; tb[ti+3]=0; } + else { tb[ti]=fr; tb[ti+1]=fg; tb[ti+2]=fb; tb[ti+3]=fa; } + } + else if(mode==3){ // check if can be blended + var fa = sb[si+3], fr=sb[si], fg=sb[si+1], fb=sb[si+2]; + var ba = tb[ti+3], br=tb[ti], bg=tb[ti+1], bb=tb[ti+2]; + if(fa==ba && fr==br && fg==bg && fb==bb) continue; + //if(fa!=255 && ba!=0) return false; + if(fa<220 && ba>20) return false; + } + } + return true; +} + + +UPNG.encode = function(bufs, w, h, ps, dels, tabs, forbidPlte) +{ + if(ps==null) ps=0; + if(forbidPlte==null) forbidPlte = false; + + var nimg = UPNG.encode.compress(bufs, w, h, ps, false, forbidPlte); + UPNG.encode.compressPNG(nimg, -1); + + return UPNG.encode._main(nimg, w, h, dels, tabs); +} + +UPNG.encodeLL = function(bufs, w, h, cc, ac, depth, dels, tabs) { + var nimg = { ctype: 0 + (cc==1 ? 0 : 2) + (ac==0 ? 0 : 4), depth: depth, frames: [] }; + + var bipp = (cc+ac)*depth, bipl = bipp * w; + for(var i=0; i1, pltAlpha = false; + + var leng = 8 + (16+5+4) /*+ (9+4)*/ + (anim ? 20 : 0); + if(tabs["sRGB"]!=null) leng += 8+1+4; + if(tabs["pHYs"]!=null) leng += 8+9+4; + if(nimg.ctype==3) { + var dl = nimg.plte.length; + for(var i=0; i>>24)!=255) pltAlpha = true; + leng += (8 + dl*3 + 4) + (pltAlpha ? (8 + dl*1 + 4) : 0); + } + for(var j=0; j>>8)&255, b=(c>>>16)&255; + data[offset+ti+0]=r; data[offset+ti+1]=g; data[offset+ti+2]=b; + } + offset+=dl*3; + wUi(data,offset,crc(data,offset-dl*3-4,dl*3+4)); offset+=4; // crc + + if(pltAlpha) { + wUi(data,offset, dl); offset+=4; + wAs(data,offset,"tRNS"); offset+=4; + for(var i=0; i>>24)&255; + offset+=dl; + wUi(data,offset,crc(data,offset-dl-4,dl+4)); offset+=4; // crc + } + } + + var fi = 0; + for(var j=0; j>2, bln>>2)); + for(var j=0; jnw && c==img32[i-nw]) ind[i]=ind[i-nw]; + else { + var cmc = cmap[c]; + if(cmc==null) { cmap[c]=cmc=plte.length; plte.push(c); if(plte.length>=300) break; } + ind[i]=cmc; + } + } + } + //console.log("make palette", Date.now()-time); time = Date.now(); + } + + var cc=plte.length; //console.log("colors:",cc); + if(cc<=256 && forbidPlte==false) { + if(cc<= 2) depth=1; else if(cc<= 4) depth=2; else if(cc<=16) depth=4; else depth=8; + if(forGIF) depth=8; + } + + for(var j=0; j>1)] |= (inj[ii+x]<<(4-(x&1)*4)); + else if(depth==2) for(var x=0; x>2)] |= (inj[ii+x]<<(6-(x&3)*2)); + else if(depth==1) for(var x=0; x>3)] |= (inj[ii+x]<<(7-(x&7)*1)); + } + cimg=nimg; ctype=3; bpp=1; + } + else if(gotAlpha==false && frms.length==1) { // some next "reduced" frames may contain alpha for blending + var nimg = new Uint8Array(nw*nh*3), area=nw*nh; + for(var i=0; i palette indices", Date.now()-time); time = Date.now(); + + return {ctype:ctype, depth:depth, plte:plte, frames:frms }; +} +UPNG.encode.framize = function(bufs,w,h,forGIF,brute) { + var frms = []; + for(var j=0; jmax) max=x; + if(ymay) may=y; + } + } + var sarea = (max==-1) ? 1 : (max-mix+1)*(may-miy+1); + if(sarea500000 && (t==2 || t==3 || t==4)) continue; + for(var y=0; y>1) +256)&255; + if(type==4) for(var x=bpp; x>1))&255; + for(var x=bpp; x>1))&255; } + if(type==4) { for(var x= 0; x>> 1); + else c = c >>> 1; + } + tab[n] = c; } + return tab; })(), + update : function(c, buf, off, len) { + for (var i=0; i>> 8); + return c; + }, + crc : function(b,o,l) { return UPNG.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; } +} + + +UPNG.quantize = function(abuf, ps) +{ + var oimg = new Uint8Array(abuf), nimg = oimg.slice(0), nimg32 = new Uint32Array(nimg.buffer); + + var KD = UPNG.quantize.getKDtree(nimg, ps); + var root = KD[0], leafs = KD[1]; + + var planeDst = UPNG.quantize.planeDst; + var sb = oimg, tb = nimg32, len=sb.length; + + var inds = new Uint8Array(oimg.length>>2); + for(var i=0; i>2] = nd.ind; + tb[i>>2] = nd.est.rgba; + } + return { abuf:nimg.buffer, inds:inds, plte:leafs }; +} + +UPNG.quantize.getKDtree = function(nimg, ps, err) { + if(err==null) err = 0.0001; + var nimg32 = new Uint32Array(nimg.buffer); + + var root = {i0:0, i1:nimg.length, bst:null, est:null, tdst:0, left:null, right:null }; // basic statistic, extra statistic + root.bst = UPNG.quantize.stats( nimg,root.i0, root.i1 ); root.est = UPNG.quantize.estats( root.bst ); + var leafs = [root]; + + while(leafs.length maxL) { maxL=leafs[i].est.L; mi=i; } + if(maxL=s0 || node.i1<=s0); + //console.log(maxL, leafs.length, mi); + if(s0wrong) { node.est.L=0; continue; } + + + var ln = {i0:node.i0, i1:s0, bst:null, est:null, tdst:0, left:null, right:null }; ln.bst = UPNG.quantize.stats( nimg, ln.i0, ln.i1 ); + ln.est = UPNG.quantize.estats( ln.bst ); + var rn = {i0:s0, i1:node.i1, bst:null, est:null, tdst:0, left:null, right:null }; rn.bst = {R:[], m:[], N:node.bst.N-ln.bst.N}; + for(var i=0; i<16; i++) rn.bst.R[i] = node.bst.R[i]-ln.bst.R[i]; + for(var i=0; i< 4; i++) rn.bst.m[i] = node.bst.m[i]-ln.bst.m[i]; + rn.est = UPNG.quantize.estats( rn.bst ); + + node.left = ln; node.right = rn; + leafs[mi]=ln; leafs.push(rn); + } + leafs.sort(function(a,b) { return b.bst.N-a.bst.N; }); + for(var i=0; i0) { node0=nd.right; node1=nd.left; } + + var ln = UPNG.quantize.getNearest(node0, r,g,b,a); + if(ln.tdst<=planeDst*planeDst) return ln; + var rn = UPNG.quantize.getNearest(node1, r,g,b,a); + return rn.tdst eMq) i1-=4; + if(i0>=i1) break; + + var t = nimg32[i0>>2]; nimg32[i0>>2] = nimg32[i1>>2]; nimg32[i1>>2]=t; + + i0+=4; i1-=4; + } + while(vecDot(nimg, i0, e)>eMq) i0-=4; + return i0+4; +} +UPNG.quantize.vecDot = function(nimg, i, e) +{ + return nimg[i]*e[0] + nimg[i+1]*e[1] + nimg[i+2]*e[2] + nimg[i+3]*e[3]; +} +UPNG.quantize.stats = function(nimg, i0, i1){ + var R = [0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0]; + var m = [0,0,0,0]; + var N = (i1-i0)>>2; + for(var i=i0; i>>0) }; +} +UPNG.M4 = { + multVec : function(m,v) { + return [ + m[ 0]*v[0] + m[ 1]*v[1] + m[ 2]*v[2] + m[ 3]*v[3], + m[ 4]*v[0] + m[ 5]*v[1] + m[ 6]*v[2] + m[ 7]*v[3], + m[ 8]*v[0] + m[ 9]*v[1] + m[10]*v[2] + m[11]*v[3], + m[12]*v[0] + m[13]*v[1] + m[14]*v[2] + m[15]*v[3] + ]; + }, + dot : function(x,y) { return x[0]*y[0]+x[1]*y[1]+x[2]*y[2]+x[3]*y[3]; }, + sml : function(a,y) { return [a*y[0],a*y[1],a*y[2],a*y[3]]; } +} + +UPNG.encode.concatRGBA = function(bufs, roundAlpha) { + var tlen = 0; + for(var i=0; i b ) al.push( + 6/7*a + 1/7*b, // bit code 010 + 5/7*a + 2/7*b, // bit code 011 + 4/7*a + 3/7*b, // bit code 100 + 3/7*a + 4/7*b, // bit code 101 + 2/7*a + 5/7*b, // bit code 110 + 1/7*a + 6/7*b ); + else + al.push( + 4/5*a + 1/5*b, // bit code 010 + 3/5*a + 2/5*b, // bit code 011 + 2/5*a + 3/5*b, // bit code 100 + 1/5*a + 4/5*b, // bit code 101 + 0, // bit code 110 + 255 ); + return al; + } + + UTEX.readBC3 = function(data, offset, img, w, h) + { + var pos = {boff:offset*8}; + var sqr = new Uint8Array(4*4*4); + + for(var y=0; y>8); data[offset+2]=(bits>>16); + offset+=3; + } + + UTEX.writeBCcolor(data, offset, sqr); + offset+=8; + } + return offset; + } + + UTEX._arr16 = new Uint8Array(16); + UTEX.readATCcolor = function(data, offset, sqr) + { + var c0 = (data[offset+1]<<8)|data[offset ]; + var c1 = (data[offset+3]<<8)|data[offset+2]; + + var c0b = (c0&31)*(255/31), c0g = ((c0>>>5)&31)*(255/31), c0r = (c0>>10)*(255/31); + var c1b = (c1&31)*(255/31), c1g = ((c1>>>5)&63)*(255/63), c1r = (c1>>11)*(255/31); + + var clr = UTEX._arr16; + clr[ 0] = ~~(c0r); clr[ 1] = ~~(c0g); clr[ 2] = ~~(c0b); clr[ 3] = 255; + clr[12] = ~~(c1r); clr[13] = ~~(c1g); clr[14] = ~~(c1b); clr[15] = 255; + var fr = 2/3, ifr = 1-fr; + clr[ 4] = ~~(fr*c0r + ifr*c1r); clr[ 5] = ~~(fr*c0g + ifr*c1g); clr[ 6] = ~~(fr*c0b + ifr*c1b); clr[ 7] = 255; + fr = 1/3; ifr=1-fr; + clr[ 8] = ~~(fr*c0r + ifr*c1r); clr[ 9] = ~~(fr*c0g + ifr*c1g); clr[10] = ~~(fr*c0b + ifr*c1b); clr[11] = 255; + + UTEX.toSquare(data, sqr, clr, offset); + } + UTEX.readBCcolor = function(data, offset, sqr) + { + var c0 = (data[offset+1]<<8)|data[offset ]; + var c1 = (data[offset+3]<<8)|data[offset+2]; + + var c0b = (c0&31)*(255/31), c0g = ((c0>>>5)&63)*(255/63), c0r = (c0>>11)*(255/31); + var c1b = (c1&31)*(255/31), c1g = ((c1>>>5)&63)*(255/63), c1r = (c1>>11)*(255/31); + + var clr = UTEX._arr16; + clr[0] = ~~(c0r); clr[1] = ~~(c0g); clr[2] = ~~(c0b); clr[3] = 255; + clr[4] = ~~(c1r); clr[5] = ~~(c1g); clr[6] = ~~(c1b); clr[7] = 255; + if(c1>8)] , c0g = sqr[(ends >>8)+1] , c0b = sqr[(ends >>8)+2] ; + var c1r = sqr[(ends&255)] , c1g = sqr[(ends&255)+1] , c1b = sqr[(ends&255)+2] ; + + var c0 = ( ( c0r >> 3 ) << 11 ) | ( ( c0g >> 2 ) << 5 ) | ( c0b >> 3 ); + var c1 = ( ( c1r >> 3 ) << 11 ) | ( ( c1g >> 2 ) << 5 ) | ( c1b >> 3 ); + if(c0>>5)&63)*(255/63)), c0r = Math.floor((c0>>11)*(255/31)); + var c1b = Math.floor((c1&31)*(255/31)), c1g = Math.floor(((c1>>>5)&63)*(255/63)), c1r = Math.floor((c1>>11)*(255/31)); + + data[offset+0]=(c0&255); data[offset+1] = (c0>>8); + data[offset+2]=(c1&255); data[offset+3] = (c1>>8); + + var fr = 2/3, ifr = 1-fr; + var c2r = Math.floor(fr*c0r + ifr*c1r), c2g = Math.floor(fr*c0g + ifr*c1g), c2b = Math.floor(fr*c0b + ifr*c1b); + fr = 1/3; ifr=1-fr; + var c3r = Math.floor(fr*c0r + ifr*c1r), c3g = Math.floor(fr*c0g + ifr*c1g), c3b = Math.floor(fr*c0b + ifr*c1b); + + + var boff = offset*8+32; + for(var i=0; i<64; i+=4) { + var r=sqr[i], g=sqr[i+1], b=sqr[i+2]; + + var ds0 = dist(r,g,b,c0r,c0g,c0b); + var ds1 = dist(r,g,b,c1r,c1g,c1b); + var ds2 = dist(r,g,b,c2r,c2g,c2b); + var ds3 = dist(r,g,b,c3r,c3g,c3b); + var dsm = Math.min(ds0, Math.min(ds1, Math.min(ds2, ds3))); + + var code=0; + if(dsm==ds1) code=1; + else if(dsm==ds2) code=2; + else if(dsm==ds3) code=3; + + data[boff>>3] |= (code<<(boff&7)); + boff+=2; + } + } + UTEX.toSquare = function(data, sqr, clr, offset) + { + var boff = (offset+4)<<3; + for(var i=0; i<64; i+=4) { + var code = ((data[boff>>3]>>((boff&7)))&3); boff+=2; + code = (code<<2); + sqr[i ] = clr[code ]; + sqr[i+1] = clr[code+1]; + sqr[i+2] = clr[code+2]; + sqr[i+3] = clr[code+3]; + } + } + + UTEX.read4x4 = function(a, w, h, sx,sy, b) // read from large + { + for(var y=0; y<4; y++) { + var si = ((sy+y)*w+sx)<<2, ti = y<<4; + b[ti+ 0] = a[si+ 0]; b[ti+ 1] = a[si+ 1]; b[ti+ 2] = a[si+ 2]; b[ti+ 3] = a[si+ 3]; + b[ti+ 4] = a[si+ 4]; b[ti+ 5] = a[si+ 5]; b[ti+ 6] = a[si+ 6]; b[ti+ 7] = a[si+ 7]; + b[ti+ 8] = a[si+ 8]; b[ti+ 9] = a[si+ 9]; b[ti+10] = a[si+10]; b[ti+11] = a[si+11]; + b[ti+12] = a[si+12]; b[ti+13] = a[si+13]; b[ti+14] = a[si+14]; b[ti+15] = a[si+15]; + } + } + UTEX.write4x4 = function(a, w, h, sx,sy, b) // write to large + { + for(var y=0; y<4; y++) { + var si = ((sy+y)*w+sx)<<2, ti = y<<4; + a[si+ 0] = b[ti+ 0]; a[si+ 1] = b[ti+ 1]; a[si+ 2] = b[ti+ 2]; a[si+ 3] = b[ti+ 3]; + a[si+ 4] = b[ti+ 4]; a[si+ 5] = b[ti+ 5]; a[si+ 6] = b[ti+ 6]; a[si+ 7] = b[ti+ 7]; + a[si+ 8] = b[ti+ 8]; a[si+ 9] = b[ti+ 9]; a[si+10] = b[ti+10]; a[si+11] = b[ti+11]; + a[si+12] = b[ti+12]; a[si+13] = b[ti+13]; a[si+14] = b[ti+14]; a[si+15] = b[ti+15]; + } + } + + UTEX._subs2 = ["0011001100110011","0001000100010001","0111011101110111","0001001100110111","0000000100010011","0011011101111111","0001001101111111","0000000100110111","0000000000010011","0011011111111111","0000000101111111","0000000000010111","0001011111111111","0000000011111111","0000111111111111","0000000000001111","0000100011101111","0111000100000000","0000000010001110","0111001100010000","0011000100000000","0000100011001110","0000000010001100","0111001100110001","0011000100010000","0000100010001100","0110011001100110","0011011001101100","0001011111101000","0000111111110000","0111000110001110","0011100110011100","0101010101010101","0000111100001111","0101101001011010","0011001111001100","0011110000111100","0101010110101010","0110100101101001","0101101010100101","0111001111001110","0001001111001000","0011001001001100","0011101111011100","0110100110010110","0011110011000011","0110011010011001","0000011001100000","0100111001000000","0010011100100000","0000001001110010","0000010011100100","0110110010010011","0011011011001001","0110001110011100","0011100111000110","0110110011001001","0110001100111001","0111111010000001","0001100011100111","0000111100110011","0011001111110000","0010001011101110","0100010001110111"]; + UTEX._subs3 = ["0011001102212222","0001001122112221","0000200122112211","0222002200110111","0000000011221122","0011001100220022","0022002211111111","0011001122112211","0000000011112222","0000111111112222","0000111122222222","0012001200120012","0112011201120112","0122012201220122","0011011211221222","0011200122002220","0001001101121122","0111001120012200","0000112211221122","0022002200221111","0111011102220222","0001000122212221","0000001101220122","0000110022102210","0122012200110000","0012001211222222","0110122112210110","0000011012211221","0022110211020022","0110011020022222","0011012201220011","0000200022112221","0000000211221222","0222002200120011","0011001200220222","0120012001200120","0000111122220000","0120120120120120","0120201212010120","0011220011220011","0011112222000011","0101010122222222","0000000021212121","0022112200221122","0022001100220011","0220122102201221","0101222222220101","0000212121212121","0101010101012222","0222011102220111","0002111200021112","0000211221122112","0222011101110222","0002111211120002","0110011001102222","0000000021122112","0110011022222222","0022001100110022","0022112211220022","0000000000002112","0002000100020001","0222122202221222","0101222222222222","0111201122012220"] + UTEX._anch2 = [[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,2,0],[0,8,0],[0,2,0],[0,2,0],[0,8,0],[0,8,0],[0,15,0],[0,2,0],[0,8,0],[0,2,0],[0,2,0],[0,8,0],[0,8,0],[0,2,0],[0,2,0],[0,15,0],[0,15,0],[0,6,0],[0,8,0],[0,2,0],[0,8,0],[0,15,0],[0,15,0],[0,2,0],[0,8,0],[0,2,0],[0,2,0],[0,2,0],[0,15,0],[0,15,0],[0,6,0],[0,6,0],[0,2,0],[0,6,0],[0,8,0],[0,15,0],[0,15,0],[0,2,0],[0,2,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,15,0],[0,2,0],[0,2,0],[0,15,0]]; + UTEX._anch3 = [[0,3,15],[0,3,8],[0,15,8],[0,15,3],[0,8,15],[0,3,15],[0,15,3],[0,15,8],[0,8,15],[0,8,15],[0,6,15],[0,6,15],[0,6,15],[0,5,15],[0,3,15],[0,3,8],[0,3,15],[0,3,8],[0,8,15],[0,15,3],[0,3,15],[0,3,8],[0,6,15],[0,10,8],[0,5,3],[0,8,15],[0,8,6],[0,6,10],[0,8,15],[0,5,15],[0,15,10],[0,15,8],[0,8,15],[0,15,3],[0,3,15],[0,5,10],[0,6,10],[0,10,8],[0,8,9],[0,15,10],[0,15,6],[0,3,15],[0,15,8],[0,5,15],[0,15,3],[0,15,6],[0,15,6],[0,15,8],[0,3,15],[0,15,3],[0,5,15],[0,5,15],[0,5,15],[0,8,15],[0,5,15],[0,10,15],[0,5,15],[0,10,15],[0,8,15],[0,13,15],[0,15,3],[0,12,15],[0,3,15],[0,3,8]]; + + UTEX.readBC7 = function(data, offset, img, w, h) + { + var rB = UTEX.readBits; + var pos = {boff:0}; + var sqr = new Uint8Array(4*4*4); + + var intp = [null,null, + [0,21,43,64], + [0,9,18,27,37,46,55,64], + [0,4,9,13,17,21,26,30,34,38,43,47,51,55,60,64] + ]; + + var subs = [ null, null, UTEX._subs2, UTEX._subs3 ]; + var ancs = [ null, null, UTEX._anch2, UTEX._anch3 ]; + + for(var y=0; y>mode)&1)!=1) mode++; + + pos.boff = (offset<<3)+mode+1; + + var rot = (mode==4 || mode==5) ? rB(data, pos, 2) : 0; + var indx = (mode==4) ? rB(data, pos, 1) : 0; + + var prtlen = [4,6,6,6, 0,0,0,6][mode]; + var parti = rB(data, pos, prtlen); + + var clen = [4,6,5,7, 5,7,7,5][mode]; + var alen = [0,0,0,0, 6,8,7,5][mode]; + var plen = [1,1,0,1, 0,0,1,1][mode]; + var pnts = [6,4,6,4, 2,2,2,4][mode]; + + var clr = []; + + for(var i=0; i<4; i++) { + var len = i==3?alen:clen; + for(var j=0; j>2)-48; + var first = anci[ss]==(i>>2) ? 1 : 0; + var code = rB(data, pos, cind-first); + + var f = cint[code]/64; + var r = (1-f)*clr[0*pnts + 2*ss + 0] + f*clr[0*pnts + 2*ss + 1]; + var g = (1-f)*clr[1*pnts + 2*ss + 0] + f*clr[1*pnts + 2*ss + 1]; + var b = (1-f)*clr[2*pnts + 2*ss + 0] + f*clr[2*pnts + 2*ss + 1]; + var a = (1-f)*clr[3*pnts + 2*ss + 0] + f*clr[3*pnts + 2*ss + 1]; + + sqr[i ] = r*255; + sqr[i+1] = g*255; + sqr[i+2] = b*255; + sqr[i+3] = a*255; + } + + cint = intp[aind]; + pos.boff = aoff; + + if(aind!=0) for(var i=0; i<64; i+=4) + { + var ss = smap.charCodeAt(i>>2)-48; + var first = anci[ss]==(i>>2) ? 1 : 0; + var code = rB(data, pos, aind-first); + + var f = cint[code]/64; + var a = (1-f)*clr[3*pnts + 2*ss + 0] + f*clr[3*pnts + 2*ss + 1]; + sqr[i+3] = a*255; + } + + + UTEX.rotate(sqr, rot); + UTEX.write4x4(img, w, h, x, y, sqr); + + offset += 16; + } + return offset; + } + UTEX.rotate = function(sqr, rot){ + if(rot==0) return; + for(var i=0; i<64; i+=4) + { + var r=sqr[i ]; + var g=sqr[i+1]; + var b=sqr[i+2]; + var a=sqr[i+3]; + + if(rot==1) { var t=a; a=r; r=t; } + if(rot==2) { var t=a; a=g; g=t; } + if(rot==3) { var t=a; a=b; b=t; } + + sqr[i ] = r; + sqr[i+1] = g; + sqr[i+2] = b; + sqr[i+3] = a; + } + } + + UTEX.readBits = function(data, pos, k) + { + var out = 0, ok=k; + while(k!=0) { out = (out) | (UTEX.readBit(data, pos)<<(ok-k)); k--; } + return out; + } + UTEX.readBit = function(data, pos) + { + var boff = pos.boff; pos.boff++; + return ((data[boff>>3]>>((boff&7)))&1); + } + UTEX.mipmapB = function(buff, w, h) + { + var nw = w>>1, nh = h>>1; + var nbuf = new Uint8Array(nw*nh*4); + for(var y=0; y>2, ia = (a==0) ? 0 : 0.25/a; + nbuf[ti ] = ~~(r*ia+0.5); + nbuf[ti+1] = ~~(g*ia+0.5); + nbuf[ti+2] = ~~(b*ia+0.5); + nbuf[ti+3] = a; + } + return nbuf; + } + UTEX.colorDist = function(r,g,b, r0,g0,b0) { return (r-r0)*(r-r0)+(g-g0)*(g-g0)+(b-b0)*(b-b0); } + + UTEX.mostDistant = function(sqr) + { + var dist = UTEX.colorDist; + var ends = 0, dd = 0; + for(var i=0; i<64; i+=4) { + var r = sqr[i], g = sqr[i+1], b = sqr[i+2]; + for(var j=i+4; j<64; j+=4) { + var dst = dist(r,g,b, sqr[j],sqr[j+1],sqr[j+2]); + if(dst>dd) { dd=dst; ends=(i<<8)|j; } + } + } + return ends; + } + UTEX.U = { + _int8: new Uint8Array(4), + readUintLE : function(buff, p) + { + UTEX.U._int8[0] = buff[p+0]; + UTEX.U._int8[1] = buff[p+1]; + UTEX.U._int8[2] = buff[p+2]; + UTEX.U._int8[3] = buff[p+3]; + return UTEX.U._int[0]; + }, + writeUintLE : function(buff, p, n) + { + UTEX.U._int[0] = n; + buff[p+0] = UTEX.U._int8[0]; + buff[p+1] = UTEX.U._int8[1]; + buff[p+2] = UTEX.U._int8[2]; + buff[p+3] = UTEX.U._int8[3]; + }, + readASCII : function(buff, p, l) // l : length in Characters (not Bytes) + { + var s = ""; + for(var i=0; i>1)+1]<<8) | data[offset+(i>>1)]; + img[i+0] = 255*(clr&pf.RMask)/pf.RMask; + img[i+1] = 255*(clr&pf.GMask)/pf.GMask; + img[i+2] = 255*(clr&pf.BMask)/pf.BMask; + img[i+3] = 255*(clr&pf.AMask)/pf.AMask; + } + offset+=(img.length>>1); + } + else throw ("unknown bit count "+bc); + } + else if((pf.flags&C.DDPF_ALPHA) || (pf.flags&C.DDPF_ALPHAPIXELS) || (pf.flags&C.DDPF_LUMINANCE)) { + if(bc==8) { + for(var i=0; i>2)]; + offset+=(img.length>>2) + } + else throw "unknown bit count "+bc; + } + else { + console.log("unknown texture format, head flags: ", head.flags.toString(2), "pixelFormat flags: ", pf.flags.toString(2)); + throw "e"; + } + out.push({width:w, height:h, image:img.buffer}); + w = (w>>1); h = (h>>1); + } + //console.log(Date.now()-time); throw "e"; + return out; //out.slice(0,1); + }, + + encode : function(img, w, h) + { + var img = new Uint8Array(img); + var aAnd = 255; + for(var i=3; i>1); h = (h>>1); + mcnt++; + } + data[28] = mcnt; + + return data.buffer.slice(0, offset); + }, + + readHeader : function(data, offset) + { + var hd = {}, rUi = UTEX.U.readUintLE; + offset+=4; // size = 124 + hd.flags = rUi(data, offset); offset+=4; + hd.height = rUi(data, offset); offset+=4; + hd.width = rUi(data, offset); offset+=4; + hd.pitch = rUi(data, offset); offset+=4; + hd.depth = rUi(data, offset); offset+=4; + hd.mmcount = rUi(data, offset); offset+=4; + offset+=11*4; // reserved, zeros + hd.pixFormat= UTEX.DDS.readPixFormat(data, offset); offset+=32; + hd.caps = rUi(data, offset); offset+=4; + hd.caps2 = rUi(data, offset); offset+=4; + hd.caps3 = rUi(data, offset); offset+=4; + hd.caps4 = rUi(data, offset); offset+=4; + offset+=4; // reserved, zeros + return hd; + }, + writeHeader : function(data, w,h, gotAlpha, offset) + { + var wUi = UTEX.U.writeUintLE, C = UTEX.DDS.C; + var flgs = C.DDSD_CAPS | C.DDSD_HEIGHT | C.DDSD_WIDTH | C.DDSD_PIXELFORMAT; + flgs |= C.DDSD_MIPMAPCOUNT | C.DDSD_LINEARSIZE; + + var caps = C.DDSCAPS_COMPLEX | C.DDSCAPS_MIPMAP | C.DDSCAPS_TEXTURE; + var pitch = ((w*h)>>1)*(gotAlpha?2:1), depth = gotAlpha ? 1 : 0; + + wUi(data, offset, 124); offset+=4; + wUi(data, offset, flgs); offset+=4; // flags + wUi(data, offset, h); offset+=4; + wUi(data, offset, w); offset+=4; + wUi(data, offset, pitch); offset+=4; + wUi(data, offset, depth); offset+=4; + wUi(data, offset, 10); offset+=4; + offset+=11*4; + UTEX.DDS.writePixFormat(data, gotAlpha, offset); offset+=32; + wUi(data, offset, caps); offset+=4; // caps + offset += 4*4; + }, + + readPixFormat : function(data, offset) + { + var pf = {}, rUi = UTEX.U.readUintLE; + offset+=4; // size = 32 + pf.flags = rUi(data, offset); offset+=4; + pf.fourCC = UTEX.U.readASCII(data, offset,4); offset+=4; + pf.bitCount = rUi(data, offset); offset+=4; + pf.RMask = rUi(data, offset); offset+=4; + pf.GMask = rUi(data, offset); offset+=4; + pf.BMask = rUi(data, offset); offset+=4; + pf.AMask = rUi(data, offset); offset+=4; + return pf; + }, + writePixFormat : function(data, gotAlpha, offset) + { + var wUi = UTEX.U.writeUintLE, C = UTEX.DDS.C; + var flgs = C.DDPF_FOURCC; + + wUi(data, offset, 32); offset+=4; + wUi(data, offset, flgs); offset+=4; + UTEX.U.writeASCII(data, offset, gotAlpha?"DXT5":"DXT1"); offset+=4; + offset+=5*4; + }, + + readHeader10 : function(data, offset) + { + var hd = {}, rUi = UTEX.U.readUintLE; + + hd.format = rUi(data, offset); offset+=4; + hd.dimension= rUi(data, offset); offset+=4; + hd.miscFlags= rUi(data, offset); offset+=4; + hd.arraySize= rUi(data, offset); offset+=4; + hd.miscFlags2=rUi(data, offset); offset+=4; + + return hd; + } + } + + UTEX.PVR = { + decode : function(buff) + { + var data = new Uint8Array(buff), offset = 0; + var head = UTEX.PVR.readHeader(data, offset); offset+=52; + //var ooff = offset; + //console.log(PUtils.readByteArray(data, offset, 10)) + offset += head.mdsize; + + console.log(head); + + var w = head.width, h = head.height; + var img = new Uint8Array(h*w*4); + + var pf = head.pf0; + if(pf==0) { + for(var y=0; y>3)]>>(bi&7))&3)*85; + img[qi+3]=255; + } + } + else console.log("Unknown pixel format: "+pf); + + return [{width:w, height:h, image:img.buffer}] + }, + readHeader : function(data, offset) + { + var hd = {}, rUi = UTEX.U.readUintLE; + hd.version = rUi(data, offset); offset+=4; + hd.flags = rUi(data, offset); offset+=4; + hd.pf0 = rUi(data, offset); offset+=4; + hd.pf1 = rUi(data, offset); offset+=4; + hd.cspace = rUi(data, offset); offset+=4; + hd.ctype = rUi(data, offset); offset+=4; + hd.height = rUi(data, offset); offset+=4; + hd.width = rUi(data, offset); offset+=4; + hd.sfnum = rUi(data, offset); offset+=4; + hd.fcnum = rUi(data, offset); offset+=4; + hd.mmcount = rUi(data, offset); offset+=4; + hd.mdsize = rUi(data, offset); offset+=4; + return hd; + } + } + + + +;(function(){ +var UTIF = {}; + +// Make available for import by `require()` +if (typeof module == "object") {module.exports = UTIF;} +else {self.UTIF = UTIF;} + +var pako; +if (typeof require == "function") {pako = require("pako");} +else {pako = self.pako;} + +function log() { if (typeof process=="undefined" || process.env.NODE_ENV=="development") console.log.apply(console, arguments); } + +(function(UTIF, pako){ + +// Following lines add a JPEG decoder to UTIF.JpegDecoder +(function(){var V="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(g){return typeof g}:function(g){return g&&"function"===typeof Symbol&&g.constructor===Symbol&&g!==Symbol.prototype?"symbol":typeof g},D=function(){function g(g){this.message="JPEG error: "+g}g.prototype=Error();g.prototype.name="JpegError";return g.constructor=g}(),P=function(){function g(g,D){this.message=g;this.g=D}g.prototype=Error();g.prototype.name="DNLMarkerError";return g.constructor=g}();(function(){function g(){this.M= +null;this.B=-1}function W(a,d){for(var f=0,e=[],b,B,k=16;0>x&1;z=a[d++];if(255=== +z){var c=a[d++];if(c){if(220===c&&g){d+=2;var b=a[d++]<<8|a[d++];if(0>>7}function q(a){for(;;){a=a[n()];if("number"===typeof a)return a;if("object"!==("undefined"===typeof a?"undefined":V(a)))throw new D("invalid huffman sequence");}}function h(a){for(var c=0;0= +1<d;){var h=q(a.o),k=h&15;h>>=4;if(0===k){if(15>h)break;d+=16}else d+=h,a.a[b+J[d]]=c(k),d++}}function w(a,d){var b=q(a.D);b=0===b?0:c(b)<>=4;if(0===f){if(15>e){A=h(e)+(1<a.a[f]? +-1:1;switch(E){case 0:e=q(a.o);f=e&15;e>>=4;if(0===f)15>e?(A=h(e)+(1<=y)throw new D("marker was not found"); +if(65488<=y&&65495>=y)d+=2;else break}(y=N(a,d))&&y.f&&((0,_util.warn)("decodeScan - unexpected Scan data, current marker is: "+y.f),d=y.offset);return d-v}function Y(a,d){for(var f=d.c,e=d.l,b=new Int16Array(64),B=0;Bh;h+=8){var c=q[l+h];var C=q[l+h+1];var w=q[l+h+2];var p=q[l+h+3];var m=q[l+h+4];var t=q[l+h+5];var g=q[l+h+6];var u=q[l+h+7];c*=n[h];if(0===(C| +w|p|m|t|g|u))c=5793*c+512>>10,r[h]=c,r[h+1]=c,r[h+2]=c,r[h+3]=c,r[h+4]=c,r[h+5]=c,r[h+6]=c,r[h+7]=c;else{C*=n[h+1];w*=n[h+2];p*=n[h+3];m*=n[h+4];t*=n[h+5];g*=n[h+6];u*=n[h+7];var v=5793*c+128>>8;var z=5793*m+128>>8;var x=w;var A=g;m=2896*(C-u)+128>>8;u=2896*(C+u)+128>>8;p<<=4;t<<=4;v=v+z+1>>1;z=v-z;c=3784*x+1567*A+128>>8;x=1567*x-3784*A+128>>8;A=c;m=m+t+1>>1;t=m-t;u=u+p+1>>1;p=u-p;v=v+A+1>>1;A=v-A;z=z+x+1>>1;x=z-x;c=2276*m+3406*u+2048>>12;m=3406*m-2276*u+2048>>12;u=c;c=799*p+4017*t+2048>>12;p=4017* +p-799*t+2048>>12;t=c;r[h]=v+u;r[h+7]=v-u;r[h+1]=z+t;r[h+6]=z-t;r[h+2]=x+p;r[h+5]=x-p;r[h+3]=A+m;r[h+4]=A-m}}for(n=0;8>n;++n)c=r[n],C=r[n+8],w=r[n+16],p=r[n+24],m=r[n+32],t=r[n+40],g=r[n+48],u=r[n+56],0===(C|w|p|m|t|g|u)?(c=5793*c+8192>>14,c=-2040>c?0:2024<=c?255:c+2056>>4,q[l+n]=c,q[l+n+8]=c,q[l+n+16]=c,q[l+n+24]=c,q[l+n+32]=c,q[l+n+40]=c,q[l+n+48]=c,q[l+n+56]=c):(v=5793*c+2048>>12,z=5793*m+2048>>12,x=w,A=g,m=2896*(C-u)+2048>>12,u=2896*(C+u)+2048>>12,v=(v+z+1>>1)+4112,z=v-z,c=3784*x+1567*A+2048>> +12,x=1567*x-3784*A+2048>>12,A=c,m=m+t+1>>1,t=m-t,u=u+p+1>>1,p=u-p,v=v+A+1>>1,A=v-A,z=z+x+1>>1,x=z-x,c=2276*m+3406*u+2048>>12,m=3406*m-2276*u+2048>>12,u=c,c=799*p+4017*t+2048>>12,p=4017*p-799*t+2048>>12,t=c,c=v+u,u=v-u,C=z+t,g=z-t,w=x+p,t=x-p,p=A+m,m=A-m,c=16>c?0:4080<=c?255:c>>4,C=16>C?0:4080<=C?255:C>>4,w=16>w?0:4080<=w?255:w>>4,p=16>p?0:4080<=p?255:p>>4,m=16>m?0:4080<=m?255:m>>4,t=16>t?0:4080<=t?255:t>>4,g=16>g?0:4080<=g?255:g>>4,u=16>u?0:4080<=u?255:u>>4,q[l+n]=c,q[l+n+8]=C,q[l+n+16]=w,q[l+n+24]= +p,q[l+n+32]=m,q[l+n+40]=t,q[l+n+48]=g,q[l+n+56]=u)}return d.a}function N(a,d){var f=2=e)return null;var b=a[d]<<8|a[d+1];if(65472<=b&&65534>=b)return{f:null,F:b,offset:d};for(var B=a[f]<<8|a[f+1];!(65472<=B&&65534>=B);){if(++f>=e)return null;B=a[f]<<8|a[f+1]}return{f:b.toString(16),F:B,offset:f}}var J=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56, +57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);g.prototype={parse:function(a){function d(){var d=a[k]<<8|a[k+1];k+=2;return d}function f(){var b=d();b=k+b-2;var c=N(a,b,k);c&&c.f&&((0,_util.warn)("readDataBlock - incorrect length, current marker is: "+c.f),b=c.offset);b=a.subarray(k,b);k+=b.length;return b}function e(a){for(var b=Math.ceil(a.v/8/a.s),c=Math.ceil(a.g/8/a.u),d=0;d>4)for(c=0;64>c;c++)g=J[c],p[g]=a[k++];else if(1===w>>4)for(c=0;64>c;c++)g=J[c],p[g]=d();else throw new D("DQT - invalid table spec");b[w&15]=p}break;case 65472:case 65473:case 65474:if(m)throw new D("Only single frame JPEGs supported");d();var m={};m.X=65473===h;m.S=65474===h;m.precision=a[k++];h=d();m.g= +B||h;m.v=d();m.b=[];m.C={};c=a[k++];for(h=p=w=0;h>4;var H=a[k+1]&15;wc;c++,k++)t+=p[c]=a[k];H=new Uint8Array(t);for(c=0;c>4?q:n)[w&15]=W(p,H)}break;case 65501:d();var u=d();break;case 65498:c=1===++r&&!B;d();w=a[k++];g=[];for(h=0;h>4];v.o=n[p&15];g.push(v)}h=a[k++];w=a[k++];p=a[k++];try{var z=X(a,k,m,g,u,h,w,p>>4,p&15,c);k+=z}catch(x){if(x instanceof P)return(0,_util.warn)('Attempting to re-parse JPEG image using "scanLines" parameter found in DNL marker (0xFFDC) segment.'),this.parse(a,{N:x.g});throw x;}break;case 65500:k+=4;break;case 65535:255!==a[k]&&k--;break;default:if(255===a[k-3]&&192<=a[k-2]&&254>=a[k-2])k-=3;else if((c=N(a,k-2))&&c.f)(0,_util.warn)("JpegImage.parse - unexpected data, current marker is: "+ +c.f),k=c.offset;else throw new D("unknown marker "+h.toString(16));}h=d()}this.width=m.v;this.height=m.g;this.A=l;this.b=[];for(h=0;h>8)+e[f+1];return r},w:function(){return this.A?!!this.A.W:3===this.i?0===this.B?!1:!0:1===this.B?!0:!1},I:function(a){for(var d,f,e,b=0,g=a.length;b>>3)]; if(bcnt==null) bcnt = img["t325"]; + var bytes = new Uint8Array(img.height*(bipl>>>3)), bilen = 0; + + if(img["t322"]!=null) // tiled + { + var tw = img["t322"][0], th = img["t323"][0]; + var tx = Math.floor((img.width + tw - 1) / tw); + var ty = Math.floor((img.height + th - 1) / th); + var tbuff = new Uint8Array(Math.ceil(tw*th*bipp/8)|0); + for(var y=0; y>>3, h = (img["t278"] ? img["t278"][0] : img.height), bpl = Math.ceil(bps*noc*img.width/8); + + // convert to Little Endian + if(bps==16 && !img.isLE && img["t33422"]==null) // not DNG + for(var y=0; y>>8)&255; + } + else if(noc==3) for(var j= 3; j> 4; + pos += len; + //pos += (len-shl); + //if(code[1]!=0) throw "e"; + UTIF.decode._putsF(tgt, tpos, Math.min(4095,shl*10)); tpos += 12; + area++; + } + } + console.log(area, (pos/8)-off, dlen, tgt.slice(0,20)); + //throw "e"; +} +UTIF.decode.rev = function(c) { return c; + var shift; + var result = 0; + for (shift = 0; shift < 8; shift++) { + if (c & (0x01 << shift)) + result |= (0x80 >> shift); + } + return result; +} + +UTIF.decode._putsF= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); dt[o+2]|=(val>>>16); } +UTIF.decode._bitsF= function(dt, pos, length) { var r=UTIF.decode.rev; return ((r(dt[pos>>>3]) | (r(dt[(pos>>>3)+1])<<8) | (r(dt[(pos>>>3)+2])<<16))>>>(pos&7))&((1<>>8); } + else if(bps==12) for(var i=0; i>>4); tgt[toff++] = ((out[i]<<4)|(out[i+1]>>>8))&255; tgt[toff++] = out[i+1]&255; } + else throw new Error("unsupported bit depth "+bps); + } + else + { + var parser = new UTIF.JpegDecoder(); parser.parse(buff); + var decoded = parser.getData(parser.width, parser.height); + for (var i=0; i 1); + } + + if(!isTiled) + { + if(data[off]==255 && data[off+1]==SOI) return { jpegOffset: off }; + if(jpgIchgFmt!=null) + { + if(data[off+jifoff]==255 && data[off+jifoff+1]==SOI) joff = off+jifoff; + else log("JPEGInterchangeFormat does not point to SOI"); + + if(jpgIchgFmtLen==null) log("JPEGInterchangeFormatLength field is missing"); + else if(jifoff >= soff || (jifoff+jiflen) <= soff) log("JPEGInterchangeFormatLength field value is invalid"); + + if(joff != null) return { jpegOffset: joff }; + } + } + + if(ycbcrss!=null) { ssx = ycbcrss[0]; ssy = ycbcrss[1]; } + + if(jpgIchgFmt!=null) + if(jpgIchgFmtLen!=null) + if(jiflen >= 2 && (jifoff+jiflen) <= soff) + { + if(data[off+jifoff+jiflen-2]==255 && data[off+jifoff+jiflen-1]==SOI) tables = new Uint8Array(jiflen-2); + else tables = new Uint8Array(jiflen); + + for(i=0; i offset to first strip or tile"); + + if(tables == null) + { + var ooff = 0, out = []; + out[ooff++] = 255; out[ooff++] = SOI; + + var qtables = img["t519"]; + if(qtables==null) throw new Error("JPEGQTables tag is missing"); + for(i=0; i>> 8); out[ooff++] = nc & 255; + out[ooff++] = (i | (k << 4)); + for(j=0; j<16; j++) out[ooff++] = data[off+htables[i]+j]; + for(j=0; j>> 8) & 255; out[ooff++] = img.height & 255; + out[ooff++] = (img.width >>> 8) & 255; out[ooff++] = img.width & 255; + out[ooff++] = spp; + if(spp==1) { out[ooff++] = 1; out[ooff++] = 17; out[ooff++] = 0; } + else for(i=0; i<3; i++) + { + out[ooff++] = i + 1; + out[ooff++] = (i != 0) ? 17 : (((ssx & 15) << 4) | (ssy & 15)); + out[ooff++] = i; + } + + if(jpgresint!=null && jpgresint[0]!=0) + { + out[ooff++] = 255; out[ooff++] = DRI; out[ooff++] = 0; out[ooff++] = 4; + out[ooff++] = (jpgresint[0] >>> 8) & 255; + out[ooff++] = jpgresint[0] & 255; + } + + tables = new Uint8Array(out); + } + + var sofpos = -1; + i = 0; + while(i < (tables.length - 1)) { + if(tables[i]==255 && tables[i+1]==SOF0) { sofpos = i; break; } + i++; + } + + if(sofpos == -1) + { + var tmptab = new Uint8Array(tables.length + 10 + 3*spp); + tmptab.set(tables); + var tmpoff = tables.length; + sofpos = tables.length; + tables = tmptab; + + tables[tmpoff++] = 255; tables[tmpoff++] = SOF0; + tables[tmpoff++] = 0; tables[tmpoff++] = 8 + 3*spp; tables[tmpoff++] = 8; + tables[tmpoff++] = (img.height >>> 8) & 255; tables[tmpoff++] = img.height & 255; + tables[tmpoff++] = (img.width >>> 8) & 255; tables[tmpoff++] = img.width & 255; + tables[tmpoff++] = spp; + if(spp==1) { tables[tmpoff++] = 1; tables[tmpoff++] = 17; tables[tmpoff++] = 0; } + else for(i=0; i<3; i++) + { + tables[tmpoff++] = i + 1; + tables[tmpoff++] = (i != 0) ? 17 : (((ssx & 15) << 4) | (ssy & 15)); + tables[tmpoff++] = i; + } + } + + if(data[soff]==255 && data[soff+1]==SOS) + { + var soslen = (data[soff+2]<<8) | data[soff+3]; + sosMarker = new Uint8Array(soslen+2); + sosMarker[0] = data[soff]; sosMarker[1] = data[soff+1]; sosMarker[2] = data[soff+2]; sosMarker[3] = data[soff+3]; + for(i=0; i<(soslen-2); i++) sosMarker[i+4] = data[soff+i+4]; + } + else + { + sosMarker = new Uint8Array(2 + 6 + 2*spp); + var sosoff = 0; + sosMarker[sosoff++] = 255; sosMarker[sosoff++] = SOS; + sosMarker[sosoff++] = 0; sosMarker[sosoff++] = 6 + 2*spp; sosMarker[sosoff++] = spp; + if(spp==1) { sosMarker[sosoff++] = 1; sosMarker[sosoff++] = 0; } + else for(i=0; i<3; i++) + { + sosMarker[sosoff++] = i+1; sosMarker[sosoff++] = (i << 4) | i; + } + sosMarker[sosoff++] = 0; sosMarker[sosoff++] = 63; sosMarker[sosoff++] = 0; + } + + return { jpegOffset: off, tables: tables, sosMarker: sosMarker, sofPosition: sofpos }; +} + +UTIF.decode._decodeOldJPEG = function(img, data, off, len, tgt, toff) +{ + var i, dlen, tlen, buff, buffoff; + var jpegData = UTIF.decode._decodeOldJPEGInit(img, data, off, len); + + if(jpegData.jpegOffset!=null) + { + dlen = off+len-jpegData.jpegOffset; + buff = new Uint8Array(dlen); + for(i=0; i>> 8) & 255; buff[jpegData.sofPosition+6] = img.height & 255; + buff[jpegData.sofPosition+7] = (img.width >>> 8) & 255; buff[jpegData.sofPosition+8] = img.width & 255; + + if(data[off]!=255 || data[off+1]!=SOS) + { + buff.set(jpegData.sosMarker, buffoff); + buffoff += sosMarker.length; + } + for(i=0; i=0 && n<128) for(var i=0; i< n+1; i++) { ta[toff]=sa[off]; toff++; off++; } + if(n>=-127 && n<0) { for(var i=0; i<-n+1; i++) { ta[toff]=sa[off]; toff++; } off++; } + } +} + +UTIF.decode._decodeThunder = function(data, off, len, tgt, toff) +{ + var d2 = [ 0, 1, 0, -1 ], d3 = [ 0, 1, 2, 3, 0, -3, -2, -1 ]; + var lim = off+len, qoff = toff*2, px = 0; + while(off>>6), n = (b&63); off++; + if(msk==3) { px=(n&15); tgt[qoff>>>1] |= (px<<(4*(1-qoff&1))); qoff++; } + if(msk==0) for(var i=0; i>>1] |= (px<<(4*(1-qoff&1))); qoff++; } + if(msk==2) for(var i=0; i<2; i++) { var d=(n>>>(3*(1-i)))&7; if(d!=4) { px+=d3[d]; tgt[qoff>>>1] |= (px<<(4*(1-qoff&1))); qoff++; } } + if(msk==1) for(var i=0; i<3; i++) { var d=(n>>>(2*(2-i)))&3; if(d!=2) { px+=d2[d]; tgt[qoff>>>1] |= (px<<(4*(1-qoff&1))); qoff++; } } + } +} + +UTIF.decode._dmap = { "1":0,"011":1,"000011":2,"0000011":3, "010":-1,"000010":-2,"0000010":-3 }; +UTIF.decode._lens = ( function() +{ + var addKeys = function(lens, arr, i0, inc) { for(var i=0; i>>3)>>3]>>>(7-(boff&7)))&1; + if(fo==2) bit = (data[boff>>>3]>>>( (boff&7)))&1; + boff++; wrd+=bit; + if(mode=="H") + { + if(U._lens[clr][wrd]!=null) + { + var dl=U._lens[clr][wrd]; wrd=""; len+=dl; + if(dl<64) { U._addNtimes(line,len,clr); a0+=len; clr=1-clr; len=0; toRead--; if(toRead==0) mode=""; } + } + } + else + { + if(wrd=="0001") { wrd=""; U._addNtimes(line,b2-a0,clr); a0=b2; } + if(wrd=="001" ) { wrd=""; mode="H"; toRead=2; } + if(U._dmap[wrd]!=null) { a1 = b1+U._dmap[wrd]; U._addNtimes(line, a1-a0, clr); a0=a1; wrd=""; clr=1-clr; } + } + if(line.length==w && mode=="") + { + U._writeBits(line, tgt, toff*8+y*bipl); + clr=0; y++; a0=0; + pline=U._makeDiff(line); line=[]; + } + //if(wrd.length>150) { log(wrd); break; throw "e"; } + } +} + +UTIF.decode._findDiff = function(line, x, clr) { for(var i=0; i=x && line[i+1]==clr) return line[i]; } + +UTIF.decode._makeDiff = function(line) +{ + var out = []; if(line[0]==1) out.push(0,1); + for(var i=1; i>>3)>>3]>>>(7-(boff&7)))&1; + if(fo==2) bit = (data[boff>>>3]>>>( (boff&7)))&1; + boff++; wrd+=bit; + + if(is1D) + { + if(U._lens[clr][wrd]!=null) + { + var dl=U._lens[clr][wrd]; wrd=""; len+=dl; + if(dl<64) { U._addNtimes(line,len,clr); clr=1-clr; len=0; } + } + } + else + { + if(mode=="H") + { + if(U._lens[clr][wrd]!=null) + { + var dl=U._lens[clr][wrd]; wrd=""; len+=dl; + if(dl<64) { U._addNtimes(line,len,clr); a0+=len; clr=1-clr; len=0; toRead--; if(toRead==0) mode=""; } + } + } + else + { + if(wrd=="0001") { wrd=""; U._addNtimes(line,b2-a0,clr); a0=b2; } + if(wrd=="001" ) { wrd=""; mode="H"; toRead=2; } + if(U._dmap[wrd]!=null) { a1 = b1+U._dmap[wrd]; U._addNtimes(line, a1-a0, clr); a0=a1; wrd=""; clr=1-clr; } + } + } + if(wrd.endsWith("000000000001")) // needed for some files + { + if(y>=0) U._writeBits(line, tgt, toff*8+y*bipl); + if(fo==1) is1D = ((data[boff>>>3]>>>(7-(boff&7)))&1)==1; + if(fo==2) is1D = ((data[boff>>>3]>>>( (boff&7)))&1)==1; + boff++; + if(U._decodeG3.allow2D==null) U._decodeG3.allow2D=is1D; + if(!U._decodeG3.allow2D) { is1D = true; boff--; } + //log("EOL",y, "next 1D:", is1D); + wrd=""; clr=0; y++; a0=0; + pline=U._makeDiff(line); line=[]; + } + } + if(line.length==w) U._writeBits(line, tgt, toff*8+y*bipl); +} + +UTIF.decode._addNtimes = function(arr, n, val) { for(var i=0; i>>3] |= (bits[i]<<(7-((boff+i)&7))); +} + +UTIF.decode._decodeLZW = function(data, off, tgt, toff) +{ + if(UTIF.decode._lzwTab==null) + { + var tb=new Uint32Array(0xffff), tn=new Uint16Array(0xffff), chr=new Uint8Array(2e6); + for(var i=0; i<256; i++) { chr[i<<2]=i; tb[i]=i<<2; tn[i]=1; } + UTIF.decode._lzwTab = [tb,tn,chr]; + } + var copy = UTIF.decode._copyData; + var tab = UTIF.decode._lzwTab[0], tln=UTIF.decode._lzwTab[1], chr=UTIF.decode._lzwTab[2], totl = 258, chrl = 258<<2; + var bits = 9, boff = off<<3; // offset in bits + + var ClearCode = 256, EoiCode = 257; + var v = 0, Code = 0, OldCode = 0; + while(true) + { + v = (data[boff>>>3]<<16) | (data[(boff+8)>>>3]<<8) | data[(boff+16)>>>3]; + Code = ( v>>(24-(boff&7)-bits) ) & ((1<>>3]<<16) | (data[(boff+8)>>>3]<<8) | data[(boff+16)>>>3]; + Code = ( v>>(24-(boff&7)-bits) ) & ((1<=totl) { tab[totl] = chrl; chr[tab[totl]] = cd[0]; tln[totl]=1; chrl=(chrl+1+3)&~0x03; totl++; } + else + { + tab[totl] = chrl; + var nit = tab[OldCode], nil = tln[OldCode]; + copy(chr,nit,chr,chrl,nil); + chr[chrl+nil]=chr[cd]; nil++; + tln[totl]=nil; totl++; + + chrl=(chrl+nil+3)&~0x03; + } + if(totl+1==(1<=totl) { tab[totl] = chrl; tln[totl]=0; totl++; } + else + { + tab[totl] = chrl; + var nit = tab[OldCode], nil = tln[OldCode]; + copy(chr,nit,chr,chrl,nil); + chr[chrl+nil]=chr[chrl]; nil++; + tln[totl]=nil; totl++; + + copy(chr,chrl,tgt,toff,nil); toff += nil; + chrl=(chrl+nil+3)&~0x03; + } + if(totl+1==(1<>>----------------"); + for(var i=0; i4) { bin.writeUint(data, offset, eoff); toff=eoff; } + + if(type==2) { bin.writeASCII(data, toff, val); } + if(type==3) { for(var i=0; i4) { dlen += (dlen&1); eoff += dlen; } + offset += 4; + } + return [offset, eoff]; +} + +UTIF.toRGBA8 = function(out) +{ + var w = out.width, h = out.height, area = w*h, qarea = area*4, data = out.data; + var img = new Uint8Array(area*4); + // 0: WhiteIsZero, 1: BlackIsZero, 2: RGB, 3: Palette color, 4: Transparency mask, 5: CMYK + var intp = out["t262"][0], bps = (out["t258"]?Math.min(32,out["t258"][0]):1); + //log("interpretation: ", intp, "bps", bps, out); + if(false) {} + else if(intp==0) + { + var bpl = Math.ceil(bps*w/8); + for(var y=0; y>3)])>>(7- (i&7)))& 1; img[qi]=img[qi+1]=img[qi+2]=( 1-px)*255; img[qi+3]=255; } + if(bps== 4) for(var i=0; i>1)])>>(4-4*(i&1)))&15; img[qi]=img[qi+1]=img[qi+2]=(15-px)* 17; img[qi+3]=255; } + if(bps== 8) for(var i=0; i>3)])>>(7- (i&7)))&1; img[qi]=img[qi+1]=img[qi+2]=(px)*255; img[qi+3]=255; } + if(bps== 2) for(var i=0; i>2)])>>(6-2*(i&3)))&3; img[qi]=img[qi+1]=img[qi+2]=(px)* 85; img[qi+3]=255; } + if(bps== 8) for(var i=0; i>8); img[qi+1]=(map[256+mi]>>8); img[qi+2]=(map[512+mi]>>8); img[qi+3]=255; } + } + else if(intp==5) + { + var smpls = out["t258"]?out["t258"].length : 4; + var gotAlpha = smpls>4 ? 1 : 0; + for(var i=0; i> 8)&255; buff[p+1] = n&255; }, + writeUint : function(buff, p, n) { buff[p] = (n>>24)&255; buff[p+1] = (n>>16)&255; buff[p+2] = (n>>8)&255; buff[p+3] = (n>>0)&255; }, + writeASCII : function(buff, p, s) { for(var i = 0; i < s.length; i++) buff[p+i] = s.charCodeAt(i); }, + writeDouble: function(buff, p, n) + { + UTIF._binBE.fl64[0] = n; + for (var i = 0; i < 8; i++) buff[p + i] = UTIF._binBE.ui8[7 - i]; + } +} +UTIF._binBE.ui8 = new Uint8Array (8); +UTIF._binBE.i16 = new Int16Array (UTIF._binBE.ui8.buffer); +UTIF._binBE.i32 = new Int32Array (UTIF._binBE.ui8.buffer); +UTIF._binBE.ui32 = new Uint32Array (UTIF._binBE.ui8.buffer); +UTIF._binBE.fl32 = new Float32Array(UTIF._binBE.ui8.buffer); +UTIF._binBE.fl64 = new Float64Array(UTIF._binBE.ui8.buffer); + +UTIF._binLE = +{ + nextZero : UTIF._binBE.nextZero, + readUshort : function(buff, p) { return (buff[p+1]<< 8) | buff[p]; }, + readShort : function(buff, p) { var a=UTIF._binBE.ui8; a[0]=buff[p+0]; a[1]=buff[p+1]; return UTIF._binBE. i16[0]; }, + readInt : function(buff, p) { var a=UTIF._binBE.ui8; a[0]=buff[p+0]; a[1]=buff[p+1]; a[2]=buff[p+2]; a[3]=buff[p+3]; return UTIF._binBE. i32[0]; }, + readUint : function(buff, p) { var a=UTIF._binBE.ui8; a[0]=buff[p+0]; a[1]=buff[p+1]; a[2]=buff[p+2]; a[3]=buff[p+3]; return UTIF._binBE.ui32[0]; }, + readASCII : UTIF._binBE.readASCII, + readFloat : function(buff, p) { var a=UTIF._binBE.ui8; for(var i=0;i<4;i++) a[i]=buff[p+ i]; return UTIF._binBE.fl32[0]; }, + readDouble : function(buff, p) { var a=UTIF._binBE.ui8; for(var i=0;i<8;i++) a[i]=buff[p+ i]; return UTIF._binBE.fl64[0]; } +} +UTIF._copyTile = function(tb, tw, th, b, w, h, xoff, yoff) +{ + //log("copyTile", tw, th, w, h, xoff, yoff); + var xlim = Math.min(tw, w-xoff); + var ylim = Math.min(th, h-yoff); + for(var y=0; y>>8); +this.O=8}return this.o>>>--this.O&1},i:function(i){var Y=this.O,F=this.o,D=Math.min(Y,i);i-=D;Y-=D;var m=F>>>Y&(1<0){F=this.V[this.w];this.w+=1+(F+1>>>8);D=Math.min(8,i);i-=D;Y=8-D;m<<=D;m|=F>>>Y&(1<>>8);c=8}m=C>>>--c&1;F=i[F+m];D=i[F+2];if(D!=-1){Y.O=c;Y.o=C;Y.w=t;return D}}return-1};function T(i){this.q=new h(i); +this.Z(this.q)}T.prototype={c:function(i,Y){this.f=i.R();this.r=i.T();this.G=i.T();var F=this.d=i.R(); +this.P=[];for(var D=0;D0)i-=this.C()},U:function(i,Y){var F=i.R(); +if(!this.j){this.j=[]}for(var D=0;D>>4]}this.n=i.R(); +i.h(i.w+Y-(2+F*2))},Z:function(i){var Y=!1,F=i.T();if(F!==T.k)return;do{var F=i.T(),D=i.T()-2;switch(F){case T.K:this.c(i,D); +break;case T.B:this.t(D);break;case T.W:this.U(i,D);Y=!0;break;default:i.h(i.w+D);break}}while(!Y)},X:function(i,Y){var F=R.m(Y,i); +if(F==16)return-32768;var D=i.i(F);if((D&1<>>1);i[k]=W+c(F,U[X&1])}K+=Y}}};T.K=65475;T.B=65476; +T.k=65496;T.W=65498;function H(i){var Y=new T(i),F=Y.f>8?Uint16Array:Uint8Array,D=new F(Y.G*Y.r*Y.d),m=Y.G*Y.d; +Y.m(D,m);return D}return H}()); + + +})(UTIF, pako); +})();// Copyright 2011 Google Inc. +// +// This code is licensed under the same terms as WebM: +// Software License Agreement: http://www.webmproject.org/license/software/ +// Additional IP Rights Grant: http://www.webmproject.org/license/additional/ +// ----------------------------------------------------------------------------- +// +// 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 HOLDER 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. +// +// ----------------------------------------------------------------------------- +// +// Copyright 2011-2013 Dominik Homberger +// Libwebp Javascript / libwebpjs - the libwebp implementation in javascript (v0.2.0) +// +// Author: Dominik Homberger (dominik.homberger@gmail.com) + +(function() { + +function memmove(destination, destination_off, source, source_off, num) { + //copy from last to start + var i; var temp=[]; + for(i=num-1;i>=0;--i) { + temp[i]=source[source_off+i]; + } + for(i=num-1;i>=0;--i) { + destination[destination_off+i]=temp[i]; + } +} + +var ca=void 0,p=null,s=0,x=0,la=s,E=s,bb=0,Mb=0,i=0,j=0,WebPApplyAlphaMultiply=null;function M(F){return JSON.parse(JSON.stringify(F))}function N(F,G,w,D,S){for(i=0;i>8),d=c<<8,e=s;a.Z>=d?(e=1,a.la-=c,a.Z-=d):(e=0,a.la=c);for(;128>a.la;)a.Z<<=1,a.la<<=1,8==++a.gc&&(a.gc=0,a.bc&&(a.Z+=a.qa[a.Ia++],a.bc--));return e}function D(a,b,c,d){d-=c;2<=d?(a.Z=b[c+0]<<8|b[c+1],a.qa=b,a.Ia=c+2,a.bc=d-2):(a.Z=0,a.qa=p,a.bc=0);a.la=255;a.gc=0}function S(a,b){for(var c=0,d=s,d=b-1;0<=d;d--)c|=w(a,128)<d);a.qa=b;a.Ia=c;a.ya=d;a.T=0;a.Q=0;a.g=0;a.L=0;for(e=a.fa=0;4>e&&e>>=8,a.T+=a.qa[a.Ia+a.Q]<<24>>>0,++a.Q,a.g-=8}function Da(a){8<=a.g&&Sb(a);a.Q==a.ya&&32==a.g&&(a.L=1)}function T(a,b){var c=0;$(0<=b);if(!a.L&&b>a.g&hf[b];a.g+=b;8<=a.g&&8<=a.g&&Sb(a)}else a.fa=1;return c} +function ma(a){return a.Pa==a.gb}function nd(a,b){$(a!=p);if(0==b)return 0;a.gb=2*b-1;a.Y=ld(a.gb,jf);if(a.Y==p)return 0;a.Y[0].s=-1;return a.Pa=1}function ja(a){a!=p&&(a.Y=p,a.Y=p,a.gb=0,a.Pa=0)}function jc(a,b,c,d){for(var e=a.Y,g=0,k=+a.gb;0=k)return 0;if(0>e[g].s){if(ma(a))return 0;var h=a,n=h.Y,l=+h.Pa;e[g].s=l-g;h.Pa+=2;n[l+0].s=-1;n[l+1].s=-1}else if(0==e[g].s)return 0;g+=e[g].s+(c>>d&1)}if(0>e[g].s)e[g].s=0;else if(0!=e[g].s)return 0;e[g].kc=b;return 1}function od(a,b,c){var d= +s,e=0,g=0;$(a!=p);$(b!=p);for(d=0;dg||g>=c?(ja(a),0):jc(a,g,0,0);e=0;g=U(c,s);if(g==p)return(e=e&&ma(a))||ja(a),e;var k=s,k=s,d=U(Tb+1,0),h=s,n=U(Tb+1,0),l=0;$(b!=p);$(0l&&(l=b[k]);if(l>Tb)d=0;else{for(k=0;kb||0>c||b+c>a.P.v))if(c=0==b){a:{var e=a.Ga,g=a.G,k=a.ub;c=a.P.l;var h=a.P.v,n=a.Xb,l=[p],m=p,f=h*c,q=p,r=p,r="WEBP_FILTER_TYPE",u=s,l=s,v=0,C=s;$(0=c);$(e!=p&&n!=p);if(k<=Ub)c=0;else if(C=e[g+0]>>0&3,r=e[g+0]>>2&3,u=e[g+0]>>4&3,l=e[g+0]>>6&3,Ckf||r>=lf||u>rd||0!=l)c=0;else{if(C==kc)v=k>=f,l=e,m=g+Ub;else{l=U(f,0);m=0;if(l== +p){c=0;break a}var v=g+Ub,k=k-Ub,g=l,q=M(Vb),A=0,z=sd();z==p?v=0:(z.l=c,z.v=h,z.N=q,td(na),q.put=ud,q.Mb=vd,q.Pb=wd,q.ka=p,q.ka=g,q.fd=0,q.width=c,q.height=h,z.a=L,Rb(z.o,e,v,k),z.Wa=Cb,Ka(c,h,1,z,p)&&xd(z,c)&&(z.Wa=Db,A=lc(z,z.V,z.Ha,z.l,z.v,mf)),z!=p&&sa(z),v=A)}if(v){e=nf[r];e!=p?(q=U(f,0),r=0,q==p&&(v=0,C!=kc&&(m=l=p)),e(l,m,c,h,1,c,q,r),f=q,C=r):(f=l,C=m);for(e=0;0=m||0>=c?0:1)}c=v}}c=!c}return c?p:0==b?a.Xb:+b*d}function of(a){var b=a.width,c=a.height, +d=a.J;if(0>=b||0>=c||!(d>=Qa&&d=Qa&&g=k*yd[g],d&=a.ma!=p):(a=a.c.Va,n=a.nb*parseInt((h+1)/2,10),l=a.rb*parseInt((h+1)/2,10),m=a.Fa*h,d&=a.F*h<=a.Wc,d&=n<=a.Rc,d&=l<=a.Uc,d&=m<=a.Wb,d&=a.F>=k,d&=a.nb>=parseInt((k+1)/2,10),d&=a.rb>=parseInt((k+1)/2,10),d&=a.y!=p,d&=a.c!=p,d&=a.S!=p,g==Ra&&(d&=a.Fa>=k,d&=m<=a.Wb,d&=a.p!=p)):d=0;return d?L:ta}function zd(a,b,c,d){if(d==p||0>=a||0>=b)return ta;if(c!=p){if(c.Ua){var e=c.wc,g=c.vc,k=c.t&-2,h=c.k&-2;if(0>k||0>h||0>=e||0>=g||k+e>a||h+g>b)return ta;a=e;b=g}if(c.I){if(0>=c.Ba|| +0>=c.Aa)return ta;a=c.Ba;b=c.Aa}}d.width=a;d.height=b;return of(d)}function mb(a){return!(a&-256)?a:0>a?0:255}function Ad(a,b,c,d){var e=U(16,0),g;g=0;var k;for(k=0;4>k;++k){var h=a[b+0]+a[b+8],n=a[b+0]-a[b+8],l=(a[b+4]*Wb>>16)-(a[b+12]*Xb>>16),m=(a[b+4]*Xb>>16)+(a[b+12]*Wb>>16);e[g+0]=h+m;e[g+1]=n+l;e[g+2]=n-l;e[g+3]=h-m;g+=4;b++}for(k=g=0;4>k;++k)a=e[g+0]+4,h=a+e[g+8],n=a-e[g+8],l=(e[g+4]*Wb>>16)-(e[g+12]*Xb>>16),m=(e[g+4]*Xb>>16)+(e[g+12]*Wb>>16),c[d+0+0*f]=mb(c[d+0+0*f]+(h+m>>3)),c[d+1+0*f]=mb(c[d+ +1+0*f]+(n+l>>3)),c[d+2+0*f]=mb(c[d+2+0*f]+(n-l>>3)),c[d+3+0*f]=mb(c[d+3+0*f]+(h-m>>3)),g++,d+=f}function pf(a,b,c,d,e){Ad(a,b,c,d);e&&Ad(a,b+16,c,d+4)}function qf(a,b,c,d){mc(a,b+0,c,d+0,1);mc(a,b+32,c,d+4*f,1)}function nc(a,b,c,d){a=a[b+0]+4;var e;for(e=0;4>e;++e)for(b=0;4>b;++b)c[d+b+e*f]=mb(c[d+b+e*f]+(a>>3))}function rf(a,b,c,d){a[b+0]&&nc(a,b+0,c,d+0);a[b+16]&&nc(a,b+16,c,d+4);a[b+32]&&nc(a,b+32,c,d+4*f);a[b+48]&&nc(a,b+48,c,d+4*f+4)}function Dc(a,b,c){var d=b-f,e=oa,g=255-a[d-1],k;for(k=0;k< +c;++k){var h=e,n=g+a[b-1],l;for(l=0;ld;++d)for(i=0;16>i;++i)b[c+d*f+i]=a}function y(a,b,c){return a+2*b+c+2>>2}function Zb(a,b,c){var d,e;for(d=0;8>d;++d)for(e=0;8>e;++e)b[c+e+d*f]=a}function nb(a,b,c){var d=a[b-c],e=a[b+0],g=3*(e-d)+sc[1020+a[b-2*c]-a[b+c]],k=oc[112+(g+4>>3)];a[b-c]=oa[255+d+oc[112+(g+3>>3)]];a[b+0]=oa[255+e-k]}function Bd(a,b,c,d){var e=a[b+0],g=a[b+c];return va[255+a[b-2*c]-a[b-c]]>d||va[255+g-e]>d}function Cd(a, +b,c,d,e){var g=a[b-3*c],k=a[b-2*c],h=a[b-c],n=a[b+0],l=a[b+c],m=a[b+2*c],f=a[b+3*c];return 2*va[255+h-n]+tc[255+k-l]>d?0:va[255+a[b-4*c]-g]<=e&&va[255+g-k]<=e&&va[255+k-h]<=e&&va[255+f-m]<=e&&va[255+m-l]<=e&&va[255+l-n]<=e}function Dd(a,b,c,d){var e;for(e=0;16>e;++e)2*va[255+a[b+e-c]-a[b+e+0]]+tc[255+a[b+e-2*c]-a[b+e+c]]<=d&&nb(a,b+e,c)}function Ed(a,b,c,d){var e;for(e=0;16>e;++e)2*va[255+a[b+e*c-1]-a[b+e*c+0]]+tc[255+a[b+e*c-2]-a[b+e*c+1]]<=d&&nb(a,b+e*c,1)}function sf(a,b,c,d){var e;for(e=3;0>7,z=18*C+63>>7,C=9*C+63>>7;n[l-3*m]=oa[255+n[l-3*m]+C];n[l-2*m]=oa[255+f+z];n[l-m]=oa[255+q+A];n[l+0]=oa[255+r-A];n[l+m]=oa[255+u-z];n[l+2*m]=oa[255+v-C]}b+=d}}function Ga(a,b,c,d,e,g,k,h){for(;0>3)],u=oc[112+(u+3>>3)],C=v+1>>1;n[l-2*m]=oa[255+n[l-2*m]+C];n[l-m]=oa[255+f+u];n[l+0]=oa[255+q-v];n[l+m]=oa[255+r-C]}b+=d}}function uf(a,b,c,d,e,g){Fa(a,b+0,c,1,16,d,e,g)}function vf(a,b,c,d,e,g){Fa(a,b+0,1,c,16,d,e,g)}function wf(a,b,c,d,e,g){var k;for(k=3;0i;++i)a[b+i]=c[d+i]}function wa(a,b){return 0>a?0:a>b?b:a}function Gd(a){a.a="VP8_STATUS_OK";a.xc="OK"}function td(a){a>>>8!=na>>>8&&alert("mismatch error")} +function Y(a,b,c){a.a==L&&(a.a=b,a.xc=c,a.za=0);alert(b+": "+c);return 0}function Hd(a,b){var c=[0],d=x,e=[Mb],g=M(Id),k=M(Jd),h=M(Fc),e="VP8StatusCode",g=M(Gc);if(a==p)return alert("(dec == null)"),0;Gd(a);if(b==p)return Y(a,"VP8_STATUS_INVALID_PARAM","null VP8Io passed to VP8GetHeaders()");g.data=b.data;g.b=b.b;g.e=b.e;g.b=[g.b];g.e=[g.e];g=[g];e=Kd(g);if(e!=L)return Y(a,e,"Incorrect/incomplete header.");g=g[0];g.b=g.b[0];g.e=g.e[0];if(g.ia)return Y(a,W,"Unexpected lossless format encountered."); +a.Ga==p&&($(0==a.ub),a.Ga=g.$,a.G=g.G,a.ub=g.pa);d=g.data;c=g.b+g.offset;e=g.e-g.offset;$(g.e>=g.offset);if(4>e[0])return Y(a,Z,"Truncated header.");h=d[c+0]|d[c+1]<<8|d[c+2]<<16;g=a.Ac;g.fb=!(h&1)+0;g.Jc=h>>1&7;g.Nc=h>>4&1;g.Ra=h>>5;if(3e)return Y(a,"VP8_STATUS_NOT_ENOUGH_DATA","cannot parse picture header");if(!(3<= +e&&157==d[c+0]&&1==d[c+1]&&42==d[c+2]))return Y(a,"VP8_STATUS_BITSTREAM_ERROR","Bad code word");k.l=(d[c+4]<<8|d[c+3])&16383;k.gd=d[c+4]>>6;k.v=(d[c+6]<<8|d[c+5])&16383;k.hd=d[c+6]>>6;c+=7;e-=7;a.Ma=k.l+15>>4;a.hb=k.v+15>>4;b.width=k.l;b.height=k.v;b.I=0;b.Ua=0;b.k=0;b.t=0;b.Ka=b.width;b.K=b.height;b.m=b.width;b.h=b.height;h=a.R;for(i=0;i +e)return Y(a,"VP8_STATUS_NOT_ENOUGH_DATA","bad partition length");h=a.o;D(h,d,c,c+g.Ra);c+=g.Ra;e-=g.Ra;g.fb&&(k.uc=G(h),k.$c=G(h));var k=h,n=a.Ca,l=a.R;$(k!=p);$(n!=p);n.pb=G(k);if(n.pb){n.ob=G(k);if(G(k)){var m;n.tb=G(k);for(m=0;me&&(f=k);D(a.ic[+r],l,m,u);l=f;m=u; +n+=3}D(a.ic[+q],l,m,e);e=m>16;8>v.sb[1]&& +(v.sb[1]=8);v.qc[0]=Ic[wa(u+m,117)];v.qc[1]=Jc[wa(u+q,127)]}if(g.fb)a.Zc=259;else return Y(a,Hf,"Not a key frame.");G(h);e=a.R;for(k=0;kg.Ra||1!=d[c+8-1])return Y(a,W,"RIFF: Inconsistent extra information.");h=d[c+0]<<0|d[c+1]<<8|d[c+2]<<16;a.fc=h;a.dd=p;a.cd=d[c+3]}return a.za=1}function Mc(a,b,c,d,e,g){var k=b[e][c];if(!w(a,k[0]))return 0; +for(;;){++e;if(w(a,k[1])){var h;if(w(a,k[2])){if(w(a,k[3]))if(w(a,k[6])){h=x;c=w(a,k[8]);k=w(a,k[9+c]);k=2*c+k;c=0;h=Jf[k];var n;for(n=0;n>b}function Mf(a,b){var c=0;if(a==p)return 0;if(b==p)return Y(a,"VP8_STATUS_INVALID_PARAM","NULL VP8Io parameter in VP8Decode().");if(!a.za&&!Hd(a,b))return 0;$(a.za);var d;if(b.Mb&&!b.Mb(b))Y(a,Nf,"Frame setup failed"),d=a.a;else{b.Za&&(a.A=0);var e=uc[a.A];2==a.A?(a.lb=0,a.mb=0):(a.lb=b.t-e>>4,a.mb=b.k-e>>4,0>a.lb&&(a.lb=0),0>a.mb&&(a.mb=0));a.Ya=b.K+15+e>>4;a.wb=b.Ka+15+e>>4;a.wb>a.Ma&&(a.wb=a.Ma);a.Ya>a.hb&&(a.Ya=a.hb);d=L}if(c=d==L){if(c){var g;b:{a.Ja=0;if(a.qb){var k=a.rc;if(!WebPWorkerReset(k)){g= +Y(a,cb,"thread initialization failed.");break b}k.Qd=a;k.Rd=a.oa.N;k.Ud=FinishRow;a.jb=0a.Gb){a.ib=0;a.Gb=0;if(a.ib==p){n=Y(a,"VP8_STATUS_OUT_OF_MEMORY","no memory during frame initialization.");break b}a.Gb=z}a.dc=205;a.Xc=rc(205,16*m);a.Sc=rc(205,8*m);a.Vc=rc(205,8*m);a.M= +u?ic(Oc,u):p;a.Sd=u?0:p;a.oa.ha=0;a.oa.M=a.M;$(0==(v&Pd));a.Ea=rc(205,1*v);a.z=-12851;a.H=16*m;a.r=8*m;var Ha=uc[a.A],G=Ha*a.H,y=Ha/2*a.r;a.ca=U(C,205);a.da=+G;a.aa=a.ca;a.ba=a.da+16*l*a.H+y;a.ra=a.aa;a.sa=a.ba+8*l*a.r+y;a.Xb=A?U(A,x):p;a.La=ic(Qd,r);a.dc=rc($b,t);n=1}}h=!n}if(h)c=0;else{b.width=a.P.l;b.height=a.P.v;b.w=0;b.y=a.ca;b.D=a.da;b.c=a.aa;b.B=a.ba;b.S=a.ra;b.C=a.sa;b.F=a.H;b.Da=a.r;b.p=p;b.q=p;if(!Rd){var B;for(B=-255;255>=B;++B)va[255+B]=0>B?-B:B,tc[255+B]=va[255+B]>>1;for(B=-1020;1020>= +B;++B)sc[1020+B]=-128>B?-128:127=B;++B)oc[112+B]=-16>B?-16:15=B;++B)oa[255+B]=0>B?0:255=db.mb&&db.d<=db.Ya)+0;for(a.i=0;a.iZ;++Z){var V=Sc[Z],R;for(R=0;4>R;++R){var ta=Rf[O[O[O.length-1]+R]][V],za=0;do za=Sf[2*za+w(ya,ta[za])];while(0za;++za)O[za+O[O.length-1]]=V;for(za=0;4>za;++za)Sc[za]=V}H.Tc=!w(ya,142)?ge:!w(ya,114)?fe: +w(ya,183)?de:ee;if(ya.Ab)D=0;else{if(J.Nb)S.X=J.X=0,H.wa||(S.ua=J.ua=0),H.ja=0,H.Oa=0;else{var ia=ca,ka=ca,sa=ca,wa=Tf,Aa=H.yb[H.Lb],aa=H.z,ma=H.La[0],ua=U(4,0),xa=U(4,0),ea=U(4,0),pb=U(4,0),na=0,Ba=0,pa=ca,qa=ca,Sa=ca,aa=rc(0,384);if(H.wa)sa=0,wa=H.R.z[3];else{var ab=U(16,0),Ca=J.ua+ma.ua;J.ua=ma.ua=(0X;++X){var Da=qb[0+X]+qb[12+X],Ea=qb[4+X]+qb[8+X],Fa=qb[4+X]-qb[8+X],Ga=qb[0+X]-qb[12+X];La[0+X]=Da+Ea;La[8+ +X]=Da-Ea;La[4+X]=Ga+Fa;La[12+X]=Ga-Fa}for(X=0;4>X;++X){var Oa=Ta[Ta.length-1],lb=La[0+4*X]+3,Da=lb+La[3+4*X],Ea=La[1+4*X]+La[2+4*X],Fa=La[1+4*X]-La[2+4*X],Ga=lb-La[3+4*X];Ta[Oa+0]=Da+Ea>>3;Ta[Oa+16]=Ga+Fa>>3;Ta[Oa+32]=Da-Ea>>3;Ta[Oa+48]=Ga-Fa>>3;Ta[Ta.length-1]+=64}aa[aa.length-1]=0}ea=Nb(vc[J.X&15]);pb=Nb(vc[ma.X&15]);for(qa=0;4>qa;++qa){for(var Eb=pb[qa],pa=0;4>pa;++pa){var Ca=Eb+ea[pa],Ka=Mc(T,wa,Ca,Aa.sc,sa,aa);ea[pa]=Eb=(0>4]);pb=Nb(vc[ma.X>>4]);for(Sa=0;4>Sa;Sa+=2){for(qa=0;2>qa;++qa){Eb=pb[Sa+qa];for(pa=0;2>pa;++pa)Ca=Eb+ea[Sa+pa],Ka=Mc(T,H.R.z[2],Ca,Aa.qc,0,aa),ea[Sa+pa]=Eb=(0ba;++ba)Ec(da,Ma+ba*f-4,da,Ma+ba*f+12);for(ba=-1;8>ba;++ba)Ec(Ua,Va+ba*f-4,Ua,Va+ba*f+4),Ec(Wa,Xa+ba*f-4,Wa,Xa+ba*f+4)}else{for(ba=0;16>ba;++ba)da[Ma+ba*f-1]=129;for(ba=0;8>ba;++ba)Ua[Va+ba*f-1]=129,Wa[Xa+ba*f-1]=129;0i;++i)da[Ma-f-1+i]=127;for(i=0;9>i;++i)Ua[Va-f-1+i]=127;for(i=0;9>i;++i)Wa[Xa-f-1+i]=127}if(P.wa){var Ya=Ma-f+16;0=P.Ma-1?da[Ya+0]=da[Ya+1]=da[Ya+2]=da[Ya+3]=Qa[Ra+15]:N(da,Ya+0,Qa,Ra+16,4));for(var Fb=0;4>Fb;++Fb)da[Fb+Ya+4*f]=da[Fb+Ya+4*f]=da[Fb+Ya+8*f]=da[Fb+Ya+12*f]=da[Fb+Ya+0];for(fa=0;16>fa;fa++){var ac=da,bc=Ma+ie[fa];Uf[P.Eb[fa]](ac,bc);P.Oa&1<fa;fa++)ac=da,bc=Ma+ie[fa],P.Oa&1<ha?0:63>2:ha>>1,ha>9-Q.ga.kb&&(ha=9-Q.ga.kb));kb.yc=1>ha?1:ha;kb.ab=(!Kb||Q.wa)+0}for(var Ia=ca,Bb=8*Q.Ja*Q.r,Qb=Q.ca,Ub=Q.da+16*Q.i+16*Q.Ja*Q.H,Wb=Q.aa,Xb=Q.ba+8*Q.i+Bb,Yb=Q.ra,Zb=Q.sa+8*Q.i+Bb,Ia=0;16>Ia;++Ia)N(Qb,Ub+Ia*Q.H,Q.Ea,+Tc+Ia*f,16);for(Ia=0;8>Ia;++Ia)N(Wb,Xb+Ia*Q.r,Q.Ea,+Uc+Ia*f,8),N(Yb,Zb+Ia*Q.r,Q.Ea,+he+Ia*f,8)}var K=a,I=b,cc=1,eb=K.oa;if(K.qb){var nb=K.rc,cc=cc&WebPWorkerSync(nb);$(nb.a==OK);if(cc){eb.N= +I;eb.ha=K.Ja;eb.d=K.d;eb.W=K.W;if(eb.W){var hc=eb.M;eb.M=K.M;K.M=hc}WebPWorkerLaunch(nb);++K.Ja==K.jb&&(K.Ja=0)}}else{eb.d=K.d;eb.W=K.W;b:{var Hb=1,rb=K.oa,ib=uc[K.A],yb=ib*K.H,dc=parseInt(ib/2)*K.r,Ib=16*rb.ha*K.H,jb=8*rb.ha*K.r,Jb=K.ca,Lb=K.da-yb+Ib,Ob=K.aa,Pb=K.ba-dc+jb,Rb=K.ra,Sb=K.sa-dc+jb,jc=0==rb.d,Tb=(rb.d>=K.hb-1)+0,ra=16*rb.d,fb=16*(rb.d+1);if(rb.W){var pc=K,wc=s,kc=pc.oa.d;$(pc.oa.W);for(wc=pc.lb;wcI.K&&(fb=I.K);if(K.Ga!=p&&ra>1);I.C+=K.r*(qc>>1);I.p!=p&&(I.q+=I.width*qc)}ra>1,I.C+=I.t>>1,I.p!=p&&(I.q+=I.t), +I.w=ra-I.k,I.m=I.Ka-I.t,I.h=fb-ra,Hb=I.put(I))}rb.ha+1==K.jb&&!Tb&&(N(K.ca,K.da-yb,Jb,Lb+16*K.H,yb),N(K.aa,K.ba-dc,Ob,Pb+8*K.r,dc),N(K.ra,K.sa-dc,Rb,Sb+8*K.r,dc));cc=Hb}}if(!cc){c=Y(a,"VP8_STATUS_USER_ABORT","Output aborted.");break a}}var Cb;if(!(Cb=a.qb&&!WebPWorkerSync(a.rc))){var Db;if(Db=0>b} +function hc(a,b,c,d,e){var g=vb[c]+wb[b]>>ea;b=xb[b];d[e+0]=ia[a+Za[c]-J];d[e+1]=ia[a+g-J];d[e+2]=ia[a+b-J]}function le(a,b,c,d,e){var g=vb[c]+wb[b]>>ea;b=xb[b];d[e+0]=ia[a+Za[c]-J]&248|ia[a+g-J]>>5;d[e+1]=ia[a+g-J]<<3&224|ia[a+b-J]>>3}function me(a,b,c,d,e){d[e+0]=255;hc(a,b,c,d,e+1)}function ne(a,b,c,d,e){var g=xb[b];d[e+0]=Hb[a+Za[c]-J]<<4|Hb[a+(vb[c]+wb[b]>>ea)-J];d[e+1]=15|Hb[a+g-J]<<4}function Vc(a,b,c,d,e){var g=Za[c];c=vb[c]+wb[b]>>ea;d[e+0]=ia[a+xb[b]-J];d[e+1]=ia[a+c-J];d[e+2]=ia[a+g-J]} +function oe(a,b,c,d,e){Vc(a,b,c,d,e);d[e+3]=255}function pe(a,b,c,d,e){hc(a,b,c,d,e);d[e+3]=255}function ib(a,b,c){a[b]=((((a[b]&4278255360)>>>0)+((c&4278255360)>>>0)&4278255360)>>>0|(a[b]&16711935)+(c&16711935)&16711935)>>>0}function ka(a,b){return(((a^b)&4278124286)>>>1)+((a&b)>>>0)>>>0}function $a(a){return 256>a&&0=a?0:~a>>24&255}function yb(a,b){return $a(a+parseInt((a-b)/2,10))}function Wc(){return qe}function Xc(a,b){a&=255;b&=255;127>>5}function re(a, +b,c,d,e,g,k){var h=s,n=8>>a.n,l=a.U,f=a.u;if(8>n){a=(1<>8&255),g[k++]=f[b&t],b>>=n}}else for(h=b;h>8&255]}function se(a,b,c,d,e){for(c=b+c;b>16&255;d[e++]=g>>8&255;d[e++]=g>>0&255;d[e++]=g>>24&255}}function te(a,b,c,d,e){for(c=b+c;b>16&240|g>>12&15;d[e++]=g>>0&240|g>>28&15}}function Ib(a,b,c,d,e){for(c=b+c;b>24&255;d[e++]=g>>16&255;d[e++]=g>>8&255;d[e++]=g>>0&255}}function ue(a,b,c,d){if(T(a,8)!=ve)return 0;b[0]=T(a,we)+1;c[0]=T(a,we)+1;d[0]=T(a,1);T(a,Wf);return 1}function xe(a,b){var c=s;if(4>a)return a+1;c=a-2>>1;return(2+(a&1)<b.ya){var c=a.Y,d=0;for($(c!=p);0!=c[d].s;){var e=c,g=b,k=g.T>>g.g&1;g.L?g.fa=1:(++g.g,8<=g.g&&Sb(g),g.Q==g.ya&&32==g.g&&(g.L=1));d=d+e[d].s+k}return c[d].kc}c=a.Y;d=0;for($(c!=p);0!=c[d].s;)e=c,g=b.T>>b.g&1,++b.g,d=d+ +e[d].s+g;return c[d].kc}function zb(a,b){if(a!=p)for(var c=s,d=s,c=0;c>a.eb)+(b>>a.eb)];$(b>8&255,u=(m[q]&16711935)>>>0,u=u+(r<<16|r),u=u&16711935;f[h++]=((m[q]&4278255360)>>> +0|u)>>>0;32==l&&t++}break;case Be:var v=b,C=l,t=m,q=f,r=h,u=v.U;if(0==C){var A=s;ib(q,r,qe);for(A=1;A>v.n)*Ha;C>8&15];for(A=1;A>8&15]);F=G(q[r+A-1],q,r+A-u);ib(q,r+A,F)}r+=u;++C;0==(C&z)&&(v+=Ha)}m!=b.Vb&&(b=b.U,N(f,h-b,f,h+(m-l-1)*b,b));break;case De:t=b.U;q=(1<>b.n)*r;l>0&255,v.Bc=w>>8&255,v.Kc=w>>16&255),w=f[h+Ha],v=w>>>8,y=w>>>16,B=w,y+=Xc(z.Cc,v),y&=255,B+=Xc(z.Bc,v),B+=Xc(z.Kc,y),B&=255,f[h+Ha]=(w&4278255360|y<<16|B)>>>0;h+=t;++l;0==(l&q)&&(b+=r)}break;case Ee:t==f&&0=e)){ze(a,e,c,d);var g=a.N,c=a.Xa,k=[a.vb];var d=a.O,e=b,h=k,f=g.width;$(dg.K&&(e=g.K);if(d=e?d=0:(h[0]+=g.t,g.w=d-g.k,g.m=g.Ka-g.t,g.h=e-d,d=1);if(d){k=k[0];d=a.Ib;e=g.width;if(d.J>16&255;C[A++]=z>>8&255;C[A++]=z>>0&255}break;case jb:se(r,u,v,C,A);break;case Ob:se(r,u,v,C,A);WebPApplyAlphaMultiply(C,0,v, +1,0);break;case Zc:for(v=u+v;u>0&255,C[A++]=z>>8&255,C[A++]=z>>16&255;break;case Pa:Ib(r,u,v,C,A);break;case Pb:Ib(r,u,v,C,A);WebPApplyAlphaMultiply(C,0,v,1,0);break;case Ab:Ib(r,u,v,C,A);break;case Bb:Ib(r,u,v,C,A);WebPApplyAlphaMultiply(C,1,v,1,0);break;case kb:te(r,u,v,C,A);break;case Qb:te(r,u,v,C,A);WebPApplyAlphaMultiply4444(C,v,1,0);break;case Fe:for(v=u+v;u>16&248|z>>13&7,C[A++]=z>>5&224|z>>3&31;break;default:$(0)}k+=e;t+=m}c=g}a.xa+=c}else a.xa= +g.I?EmitRescaledRowsYUVA(a,c,k,e,g.h):EmitRowsYUVA(a,c,k,e,g.m,g.h);$(a.xa<=d.height)}a.O=b;$(a.O<=a.v)}}function lc(a,b,c,d,e,g){var k=1,h=0,f=0,l=a.o,m=a.cb,t=m.Db,q=c,r=c;c+=d*e;e=Ba+Ge;var u=e+m.xb,v=0>>0)+(A<<16)+(k<<8)+w}A=!1;++q;++h;if(h>=d&&(h=0,++f,g!=p&&0==f% +$c&&g(a,f),v!=p))for(;r>>v.bb]=k}else if(zHe?w-=He:(z=dg[w-1],z=(z>>4)*d+(8-(z&15)),w=1<=z?z:1);z=s;for(z=0;z=d;)h-=d,++f,g!=p&&0==f%$c&&g(a,f);if(q>>v.bb]=k}else if(z>>v.bb]=z;z=b;w=q;y=v;$(A<=-1>>>y.bb);z[w]=y.ea[A];A=!0;continue a}(k=!l.fa)||End}g!=p&&g(a,f);l.fa||!k||l.L&&q>>q.n)>>>0,u=Array(t),u==p)m=0;else{var v=q.u[0],C=q.b;u[0]=q.u[0][q.b+0];for(r=1;r>>0)+((u[r-1]&4278255360)>>>0)&4278255360)>>>0|(v[C+r]&16711935)+(u[r-1]&16711935)&16711935)>>>0;for(;r>>8&65535,r[v]=A,A>=u&&(u=A+1)}if(C.fa)zb(t,u),g=0;else if($(65536>=u),t=ld(u,gg),t==p)g.a=cb,zb(t,u),g=0;else{for(v=0;vF[H]||F[H]>=y){(J=J&&ma(G))||ja(G);B=J;break c}if(!jc(G,F[H],D[H],L[H])){(J=J&&ma(G))||ja(G);B=J;break c}}(J=(J=1)&&ma(G))||ja(G);B=J}else B=0}}else{B=s;D=[];F=T(w,4)+4;if(F>Ke){A.a=W;A=0;break b}L=Array(y);if(L==p){A.a= +cb;A=0;break b}for(B=0;BD){B.a=W;ja(Z);B=J;break c}}else V=D;for(S=0;SD){B.a=W;ja(Z);B=J;break c}for(O=O?Y:0;0=c)){ze(a,c,d,e);for(var e=a.N.width,c=e*c,d=a.N.ka,e=a.N.fd+e*a.O,g=a.Xa,k=a.vb,h=s,h=0;h>>8&255;a.O=a.xa=b}}function ng(a,b){var c=[s],d=[s],e=[s];if(a==p)return 0;if(b==p)return a.a=ta,0;a.N=b;a.a=L;Rb(a.o,b.data,b.b,b.e);if(!ue(a.o,c,d,e))return a.a=W,sa(a),$(a.a!=L),0;a.Ob=cd;b.width=c[0];b.height=d[0];a.Wa=Cb;return!Ka(c[0],d[0],1,a,p)?(sa(a),$(a.a!=L),0):1} + +function og(a){ + var b=p,c=p; + if(a==p)return 0; + b=a.N; + $(b!=p); + c=b.ka; + $(c!=p); + a.Ib=c.j; + a.Hc=c.Hc; + $(a.Ib!=p); + if(!Ne(c.Qa,b,Pa))return a.a=ta,sa(a),$(a.a!=L),0; + if(!xd(a,b.width)||b.I&&!AllocateAndInitRescaler(a,b))return sa(a),$(a.a!=L),0; + a.Wa=Db;if(!lc(a,a.V,a.Ha,a.l,a.v,Yf))return sa(a),$(a.a!=L),0; + c.ec=a.xa; + sa(a);return 1 +} +//function wa(a,b){return 0>a?0:a>b?b:a} +function ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,C,w,z){ + var y,G=C-1>>1,F=e[g+0]|k[h+0]<<16,B=f[l+0]|m[t+0]<<16; + if(a){var D=3*F+B+131074>>2;w(a[b+0],D&255,D>>16,q,r)}c&&(D= +3*B+F+131074>>2, + + +w(c[d+0],D&255,D>>16,u,v));for(y=1;y<=G;++y){var J=e[g+y]|k[h+y]<<16,L=f[l+y]|m[t+y]<<16,D=F+J+B+L+524296,O=D+2*(J+B)>>3,H=D+2*(F+L)>>3;a&&(D=O+F>>1,F=H+J>>1,w(a[b+2*y-1],D&255,D>>16,q,r+(2*y-1)*z),w(a[b+2*y-0],F&255,F>>16,q,r+(2*y-0)*z));c&&(D=H+B>>1,F=O+L>>1,w(c[d+2*y-1],D&255,D>>16,u,v+(2*y-1)*z),w(c[d+2*y+0],F&255,F>>16,u,v+(2*y+0)*z));F=J;B=L}C&1||(a&&(D=3*F+B+131074>>2,w(a[b+C-1],D&255,D>>16,q,r+(C-1)*z)),c&&(D=3*B+F+131074>>2,w(c[d+C-1],D&255,D>>16,u,v+(C-1)*z)))}function pg(a, +b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w,hc,3)}function qg(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w,Vc,3)}function Oe(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w,pe,4)}function Pe(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w,oe,4)}function Qe(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w,me,4)}function Re(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h, +f,l,m,t,q,r,u,v,w,ne,2)}function rg(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w){ab(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u,v,w,le,2)}function Ca(a,b,c,d,e,g,k,h,f,l,m,t,q,r,u){var v;for(v=0;v>>23;q[r]=ca;q=k;r=f+4*m+1;k[f+4*m+1]*t>>>23;q[r]=ca;q=k;r=f+4*m+2;k[f+4*m+2]*t>>>23;q[r]=ca}}b+=g}}function tg(a,b){var c=b.j.c.Va,d=c.y,e=c.D+a.w*c.F, +g=c.c,k=c.B+(a.w>>1)*c.nb,f=c.S,n=c.C+(a.w>>1)*c.rb,l=a.m,m=a.h,t=parseInt((l+1)/2,10),q=parseInt((m+1)/2,10),r;for(r=0;r>4;l[m+2*q]=l[m+2*q]&240|r;t&=r}d+=a.width;m+=f.f}15!=t&&F(g)&&WebPApplyAlphaMultiply4444(l,n,e,h,f.f)}return 0}function vd(a){var b=a.ka,c=b.j.J,d=c< +ua,e=c==jb||c==Pa||c==Ab||c==kb||c==Ra||F(c);b.memory=p;b.$a=p;b.zb=p;b.ad=p;if(!Ne(b.Qa,a,e?ua:Ra))return 0;if(a.I){if(!(d?InitRGBRescaler(a,b):InitYUVRescaler(a,b)))return alert("memory error #1"),0}else{if(d){if(b.$a=ug,a.Bb){var g=a.m+1>>1,f=a.m+2*g,h,n=[];for(h=0;ha;++a)Za[a]=89858*(a-128)+Jb>>ea,wb[a]=-22014*(a-128)+Jb,vb[a]=-45773*(a-128),xb[a]=113618*(a-128)+Jb>>ea;for(a=J;a>ea,ia[a-J]=wa(b,255),Hb[a-J]=wa(b+8>>4,15);Xe=1}return 1}function ud(a){var b=a.ka,c=a.m,d=a.h;$(!(a.w&1));if(0>=c||0>=d)return 0;c=b.$a(a,b);b.ec+=c;b.zb&&b.zb(a,b);return 1}function wd(a){a=a.ka;a.memory="";a.memory=p}function ed(a, +b){return a[b+0]|a[b+1]<<8|a[b+2]<<16}function Kb(a,b){return(ed(a,b)|a[b+3]<<24)>>>0}function Ye(a,b,c,d,e,g,f){var h=0,n=[0],l="VP8StatusCode",m=M(Gc);if(a==p||c[0]=Lb&&!kd(a,b[0],"RIFF",O)){if(kd(a,b[0]+8,"WEBP",O)){l=W;break a}var t=Kb(a,b[0]+O);if(t=Ag){l=W;break a}t!=p&&(t[0]=u);d!=p&&(d[0]=q);e!=p&&(e[0]=r);b[0]+=l;c[0]-=l;n[0]=1}l=L}if(l!=L)return l;if(!h&&n[0])return W;g!=p&&(g[0]=!!(t[0]&Bg));if(n&&f==p)return L;if(cn){l=W;break a}if(u=q&&r>n-q){l=W;break a}h[0]=r;b[0]+=R;c[0]-=R;t[0]=l}else t[0]=1<=c&&a[b+0]==ve,h[0]=c[0];l=L}m.ta=m.ta[0];m.ia=m.ia[0];if(l!=L)return l;if(m.ta>Ze)return W;if(m.ia){if(c[0]<$e)return Z;n=b[0];h=c[0];d=d?d[0]:p;e=e?e[0]:p;t=g?g[0]:p;a==p||h<$e?a=0:(l=[s],q=[s],r=[s],u=M(af),Rb(u,a,n,h),ue(u,l,q,r)?(d!=p&&(d[0]=l[0]),e!=p&&(e[0]=q[0]),t!=p&&(t[0]=r[0]),a=1):a=0)}else{if(c>1&7)||!(h>>4&1)||h>>5>=m.ta?a=0:(d&&(d[0]=t),e&&(e[0]=a),a=1)):a=0}if(!a)return W;g!=p&&(g[0]|=m.$!=p);f!=p&&(f[0]=m,f[0].offset=b[0]-f[0].b,$(b[0]-f[0].bg||0>f||0>=h||0>=n||g+h>d||f+n>e))return 0;b.t=g;b.k=f;b.Ka=g+h;b.K=f+n;b.m=h;b.h=n;b.I=a!=p&&0=a.Ba||0>=a.Aa)return 0;b.Ba=a.Ba;b.Aa=a.Aa}b.Za=a&&a.Za;b.Bb=a==p||!a.ed;b.I&&(b.Za=b.Ba<3*d/4&&b.Aa<3*e/4,b.Bb=0);return 1}var na=512,Qa=0,jb=1,Zc=2,Pa=3,Ab=4,kb=5,Fe=6,Ob=7,Pb=8,Bb=9,Qb=10,ua=11,Ra=12,Cc=13;this.WEBP_CSP_MODE=this.Cd={nd:0,od:1,kd:2,ld:3,jd:4,pd:5, +qd:6,rd:7,sd:8,md:9};var gd={J:"WEBP_CSP_MODE",width:s,height:s,Fc:s,c:{RGBA:{ma:x,Sa:0,f:s,size:Mb},Va:{y:x,c:x,S:x,p:x,D:x,B:x,C:x,q:x,F:s,nb:s,rb:s,Fa:s,Wc:Mb,Rc:Mb,Uc:Mb,Wb:Mb}},Ic:U(4,E),Jb:p,jc:x},L=0,cb=1,ta=2,W=3,Hf=4,Ie=5,Nf=6,Z=7;this.VP8StatusCode=this.td={xd:0,yd:1,vd:2,ud:3,Ad:4,zd:5,Bd:6,wd:7};var ef={width:{value:s},height:{value:s},$b:{value:s},tc:s,Yd:s,rotate:s,be:s,Ic:U(3,E)};this.WebPGetFeatures=this.Md=function(a,b,c){var d="VP8StatusCode";na>>>8!=na>>>8||c==p?a=ta:(b=[b],d=hd(a, +[0],b,c),a=d==Z?W:d);return a};var ff={Za:s,ed:s,Ua:s,t:s,k:s,wc:s,vc:s,I:s,Ba:s,Aa:s,ae:s,Td:s,Xd:s,Ic:U(6,E)};this.WebPDecoderConfig=this.Kd={input:M(ef),j:M(gd),options:M(ff)};this.WebPInitDecoderConfig=this.Nd=function(a){na>>>8!=na>>>8||a==p?a=0:(a=a.input,$(a!=p),a.tc=0,a=1);return a};var Vb={width:s,height:s,w:s,m:s,h:s,y:x,c:x,S:x,D:0,B:0,C:0,F:s,Da:s,ka:0,put:0,Mb:0,Pb:0,Bb:s,e:Mb,data:x,b:0,Za:s,Ua:s,t:s,Ka:s,k:s,K:s,I:s,Ba:s,Aa:s,p:x,q:0},df={j:M(gd),Sb:x,Qb:x,lc:x,Tb:0,Rb:0,mc:0,ec:s, +Qa:M(ff),memory:0,$a:"(OutputFunc)",zb:"(OutputFunc)",ad:"(OutputRowFunc)"},Gc={data:x,b:x,e:Mb,offset:Mb,$:p,G:x,pa:Mb,ta:Mb,na:Mb,ia:s},Fc={qa:x,Ia:p,Pd:x,Ab:s,la:E,Z:E,gc:s},af={T:bb,qa:x,Ia:x,ya:Mb,Q:Mb,g:s,L:s,fa:s},gf=25,hf=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535,131071,262143,524287,1048575,2097151,4194303,8388607,16777215],bf=10,ve=47,we=14,Wf=3,$e=5,fg=11,Yc=5,qe=4278190080,jg=8,Tb=15,Ba=256,Ge=24,Je=4,Be=0,De=1,Ae=2,Ee=3,Ub=1,kc=0,kf=1,rd=1,O=4,R=8,Lb=12,fd=10, +Bg=16,Ag=1*Math.pow(2,32),Ze=-1-R-1>>>0,jf={kc:s,s:s},Le={Y:"HuffmanTreeNode*",gb:s,Pa:s},pd=-1,Dg={ea:E,bb:s},ad=506832829,$b=0,ge=$b,fe=2,ee=3,de=1,Ef=4,Df=5,Cf=6,Ld=3,xa=4,Hc=4,Gf=4,Md=4,Nd=8,Kc=3,Lc=11,f=32,Pf=17*f+9*f,Tc=1*f+8,Uc=Tc+16*f+f,he=Uc+16,Id={fb:x,Jc:x,Nc:x,Ra:E},Jd={l:0,v:0,gd:x,hd:x,uc:x,$c:x},Eg={pb:s,ob:s,tb:s,Kb:U(xa,0),Cb:U(xa,0)},Fg={Ta:U(Ld,x),z:md([Md,Nd,Kc,Lc],x)},Gg={Oc:s,Fb:s,kb:s,oc:s,Lc:U(Hc,s),Gc:U(Hc,s)},Oc={zc:s,yc:s,ab:s},Qd={X:s,ua:s,Nb:s},id=U(2,s),Hg={sc:M(id), +sb:M(id),qc:M(id)},Ig={ha:s,d:s,W:s,M:Oc,N:Vb},Cg={a:"VP8StatusCode",za:s,xc:0,o:M(Fc),Ac:M(Id),P:M(Jd),ga:M(Gg),Ca:M(Eg),rc:"WebPWorker",qb:s,Ja:s,jb:s,oa:Ig,Ma:s,hb:s,lb:s,mb:s,wb:s,Ya:s,Hb:s,ic:ld(8,Fc),Zc:E,yb:ld(xa,Hg),R:M(Fg),pc:s,Pc:x,dc:x,cc:U(4,x),Xc:x,Sc:x,Vc:x,La:M(Qd),M:M(Oc),Ea:x,z:0,ca:x,aa:x,ra:x,da:s,ba:s,sa:s,H:s,r:s,ib:0,Gb:Mb,i:s,d:s,wa:x,Eb:U(16,x),Vd:0,Tc:x,Lb:x,ja:E,Oa:E,A:s,W:s,Zb:U(xa,x),Ga:p,G:0,ub:Mb,Xb:x,Od:0,cd:s,dd:x,Wd:0,fc:Mb},Db=0,Cb=1,cd=2,Jg={Qc:"VP8LImageTransformType", +n:s,U:s,Vb:s,u:E,b:E},gg={va:ld(Yc,Le)},Kg={xb:s,Yb:M(Dg),Dc:s,eb:s,Ec:s,ac:E,bd:E,hc:s,Db:"HTreeGroup"},eg={a:"VP8StatusCode",Wa:"VP8LDecodeState",Ob:"VP8LDecodeState",N:"VP8Io",Ib:"WebPDecBuffer",Hc:"WebPDecBuffer",V:E,Ha:E,Xa:E,vb:E,o:M(af),l:s,v:s,O:s,xa:s,cb:M(Kg),Na:s,nc:ld(Je,Jg),Ub:E,Mc:x,$d:x,Zd:"*WebPRescaler"},lf=4,nf=[p,function(a,b,c,d,e,g,f,h){var n=s,l=h;$(a!=p);$(f!=p);$(0=c*e);for(n=0;n=c*e);N(k,h,a,b,e);Ea(a,b+e,k,l,k,h+e,e*(c-1));for(n=1;n=c*e);N(k,h,a,b,e);Ea(a,b+e,k,n,k,h+e,e*(c-1));for(l=1;lt?0:255d;++d)c+=a[b+d-f]+a[b-1+d*f];c>>=3;for(d=0;4>d;++d)jd(a,b+d*f,c,4)},function(a,b){Dc(a,b,4)},function(a,b){var c=b-f,d=[];d.push(y(a[c-1],a[c+0],a[c+1]));d.push(y(a[c+0],a[c+1],a[c+2]));d.push(y(a[c+1],a[c+2],a[c+3]));d.push(y(a[c+2],a[c+3],a[c+4]));for(c=0;4>c;++c)N(a,b+c*f,d,0,4)}, +function(a,b){var c=a[b-1],d=a[b-1+f],e=a[b-1+2*f],g=a[b-1+3*f];a[b+0+0*f]=a[b+1+0*f]=a[b+2+0*f]=a[b+3+0*f]=y(a[b-1-f],c,d);a[b+0+1*f]=a[b+1+1*f]=a[b+2+1*f]=a[b+3+1*f]=y(c,d,e);a[b+0+2*f]=a[b+1+2*f]=a[b+2+2*f]=a[b+3+2*f]=y(d,e,g);a[b+0+3*f]=a[b+1+3*f]=a[b+2+3*f]=a[b+3+3*f]=y(e,g,g)},function(a,b){var c=a[b-1+0*f],d=a[b-1+1*f],e=a[b-1+2*f],g=a[b-1-f],k=a[b+0-f],h=a[b+1-f],n=a[b+2-f],l=a[b+3-f];a[b+0+3*f]=y(d,e,a[b-1+3*f]);a[b+0+2*f]=a[b+1+3*f]=y(c,d,e);a[b+0+1*f]=a[b+1+2*f]=a[b+2+3*f]=y(g,c,d);a[b+ +0+0*f]=a[b+1+1*f]=a[b+2+2*f]=a[b+3+3*f]=y(k,g,c);a[b+1+0*f]=a[b+2+1*f]=a[b+3+2*f]=y(h,k,g);a[b+2+0*f]=a[b+3+1*f]=y(n,h,k);a[b+3+0*f]=y(l,n,h)},function(a,b){var c=a[b-1+0*f],d=a[b-1+1*f],e=a[b-1+2*f],g=a[b-1-f],k=a[b+0-f],h=a[b+1-f],n=a[b+2-f],l=a[b+3-f];a[b+0+0*f]=a[b+1+2*f]=g+k+1>>1;a[b+1+0*f]=a[b+2+2*f]=k+h+1>>1;a[b+2+0*f]=a[b+3+2*f]=h+n+1>>1;a[b+3+0*f]=n+l+1>>1;a[b+0+3*f]=y(e,d,c);a[b+0+2*f]=y(d,c,g);a[b+0+1*f]=a[b+1+3*f]=y(c,g,k);a[b+1+1*f]=a[b+2+3*f]=y(g,k,h);a[b+2+1*f]=a[b+3+3*f]=y(k,h,n); +a[b+3+1*f]=y(h,n,l)},function(a,b){var c=a[b+1-f],d=a[b+2-f],e=a[b+3-f],g=a[b+4-f],k=a[b+5-f],h=a[b+6-f],n=a[b+7-f];a[b+0+0*f]=y(a[b+0-f],c,d);a[b+1+0*f]=a[b+0+1*f]=y(c,d,e);a[b+2+0*f]=a[b+1+1*f]=a[b+0+2*f]=y(d,e,g);a[b+3+0*f]=a[b+2+1*f]=a[b+1+2*f]=a[b+0+3*f]=y(e,g,k);a[b+3+1*f]=a[b+2+2*f]=a[b+1+3*f]=y(g,k,h);a[b+3+2*f]=a[b+2+3*f]=y(k,h,n);a[b+3+3*f]=y(h,n,n)},function(a,b){var c=a[b+0-f],d=a[b+1-f],e=a[b+2-f],g=a[b+3-f],k=a[b+4-f],h=a[b+5-f],n=a[b+6-f],l=a[b+7-f];a[b+0+0*f]=c+d+1>>1;a[b+1+0*f]=a[b+ +0+2*f]=d+e+1>>1;a[b+2+0*f]=a[b+1+2*f]=e+g+1>>1;a[b+3+0*f]=a[b+2+2*f]=g+k+1>>1;a[b+0+1*f]=y(c,d,e);a[b+1+1*f]=a[b+0+3*f]=y(d,e,g);a[b+2+1*f]=a[b+1+3*f]=y(e,g,k);a[b+3+1*f]=a[b+2+3*f]=y(g,k,h);a[b+3+2*f]=y(k,h,n);a[b+3+3*f]=y(h,n,l)},function(a,b){var c=a[b-1+0*f],d=a[b-1+1*f],e=a[b-1+2*f],g=a[b-1+3*f],k=a[b-1-f],h=a[b+0-f],n=a[b+1-f],l=a[b+2-f];a[b+0+0*f]=a[b+2+1*f]=c+k+1>>1;a[b+0+1*f]=a[b+2+2*f]=d+c+1>>1;a[b+0+2*f]=a[b+2+3*f]=e+d+1>>1;a[b+0+3*f]=g+e+1>>1;a[b+3+0*f]=y(h,n,l);a[b+2+0*f]=y(k,h,n);a[b+ +1+0*f]=a[b+3+1*f]=y(c,k,h);a[b+1+1*f]=a[b+3+2*f]=y(d,c,k);a[b+1+2*f]=a[b+3+3*f]=y(e,d,c);a[b+1+3*f]=y(g,e,d)},function(a,b){var c=a[b-1+0*f],d=a[b-1+1*f],e=a[b-1+2*f],g=a[b-1+3*f];a[b+0+0*f]=c+d+1>>1;a[b+2+0*f]=a[b+0+1*f]=d+e+1>>1;a[b+2+1*f]=a[b+0+2*f]=e+g+1>>1;a[b+1+0*f]=y(c,d,e);a[b+3+0*f]=a[b+1+1*f]=y(d,e,g);a[b+3+1*f]=a[b+1+2*f]=y(e,g,g);a[b+3+2*f]=a[b+2+2*f]=a[b+0+3*f]=a[b+1+3*f]=a[b+2+3*f]=a[b+3+3*f]=g}],Vf=[function(a,b){var c=16,d;for(d=0;16>d;++d)c+=a[b-1+d*f]+a[b+d-f];Yb(c>>5,a,b)},function(a, +b){Dc(a,b,16)},function(a,b){var c;for(c=0;16>c;++c)N(a,b+c*f,a,b-f,16)},function(a,b){var c;for(c=16;0d;++d)c+=a[b-1+d*f];Yb(c>>4,a,b)},function(a,b){var c=8,d;for(d=0;16>d;++d)c+=a[b+d-f];Yb(c>>4,a,b)},function(a,b){Yb(128,a,b)}],je=[function(a,b){var c=8,d;for(d=0;8>d;++d)c+=a[b+d-f]+a[b-1+d*f];Zb(1*(c>>4),a,b)},function(a,b){Dc(a,b,8)},function(a,b){var c;for(c=0;8>c;++c)N(a,b+c*f,a,b-f,8)},function(a,b){var c;for(c=0;8>c;++c)jd(a, +b+0,a[b-1],8),b+=f},function(a,b){var c=4,d;for(d=0;8>d;++d)c+=a[b-1+d*f];Zb(1*(c>>3),a,b)},function(a,b){var c=4,d;for(d=0;8>d;++d)c+=a[b+d-f];Zb(1*(c>>3),a,b)},function(a,b){Zb(128,a,b)}],mc,Pc,Qc,Rc,Sd,Td,Ud,Vd,Wd,Xd,Yd,Zd,$d,ae,be,ce,Pd=31,uc=[0,2,8],Od=3,Of=1,ie=[0+0*f,4+0*f,8+0*f,12+0*f,0+4*f,4+4*f,8+4*f,12+4*f,0+8*f,4+8*f,8+8*f,12+8*f,0+12*f,4+12*f,8+12*f,12+12*f],Ic=[4,5,6,7,8,9,10,10,11,12,13,14,15,16,17,17,18,19,20,20,21,21,22,22,23,23,24,25,25,26,27,28,29,30,31,32,33,34,35,36,37,37,38, +39,40,41,42,43,44,45,46,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,76,77,78,79,80,81,82,83,84,85,86,87,88,89,91,93,95,96,98,100,101,102,104,106,108,110,112,114,116,118,122,124,126,128,130,132,134,136,138,140,143,145,148,151,154,157],Jc=[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,60,62,64,66,68,70,72,74,76,78,80,82,84,86,88,90,92,94,96, +98,100,102,104,106,108,110,112,114,116,119,122,125,128,131,134,137,140,143,146,149,152,155,158,161,164,167,170,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,234,239,245,249,254,259,264,269,274,279,284],Sf=[-$b,1,-1,2,-2,3,4,6,-3,5,-4,-5,-6,7,-7,8,-8,-9],Ff=[[[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128]],[[253,136,254,255,228,219,128,128,128,128,128],[189,129,242,255,227,213,255,219,128,128, +128],[106,126,227,252,214,209,255,255,128,128,128]],[[1,98,248,255,236,226,255,255,128,128,128],[181,133,238,254,221,234,255,154,128,128,128],[78,134,202,247,198,180,255,219,128,128,128]],[[1,185,249,255,243,255,128,128,128,128,128],[184,150,247,255,236,224,128,128,128,128,128],[77,110,216,255,236,230,128,128,128,128,128]],[[1,101,251,255,241,255,128,128,128,128,128],[170,139,241,252,236,209,255,255,128,128,128],[37,116,196,243,228,255,255,255,128,128,128]],[[1,204,254,255,245,255,128,128,128,128, +128],[207,160,250,255,238,128,128,128,128,128,128],[102,103,231,255,211,171,128,128,128,128,128]],[[1,152,252,255,240,255,128,128,128,128,128],[177,135,243,255,234,225,128,128,128,128,128],[80,129,211,255,194,224,128,128,128,128,128]],[[1,1,255,128,128,128,128,128,128,128,128],[246,1,255,128,128,128,128,128,128,128,128],[255,128,128,128,128,128,128,128,128,128,128]]],[[[198,35,237,223,193,187,162,160,145,155,62],[131,45,198,221,172,176,220,157,252,221,1],[68,47,146,208,149,167,221,162,255,223,128]], +[[1,149,241,255,221,224,255,255,128,128,128],[184,141,234,253,222,220,255,199,128,128,128],[81,99,181,242,176,190,249,202,255,255,128]],[[1,129,232,253,214,197,242,196,255,255,128],[99,121,210,250,201,198,255,202,128,128,128],[23,91,163,242,170,187,247,210,255,255,128]],[[1,200,246,255,234,255,128,128,128,128,128],[109,178,241,255,231,245,255,255,128,128,128],[44,130,201,253,205,192,255,255,128,128,128]],[[1,132,239,251,219,209,255,165,128,128,128],[94,136,225,251,218,190,255,255,128,128,128],[22, +100,174,245,186,161,255,199,128,128,128]],[[1,182,249,255,232,235,128,128,128,128,128],[124,143,241,255,227,234,128,128,128,128,128],[35,77,181,251,193,211,255,205,128,128,128]],[[1,157,247,255,236,231,255,255,128,128,128],[121,141,235,255,225,227,255,255,128,128,128],[45,99,188,251,195,217,255,224,128,128,128]],[[1,1,251,255,213,255,128,128,128,128,128],[203,1,248,255,255,128,128,128,128,128,128],[137,1,177,255,224,255,128,128,128,128,128]]],[[[253,9,248,251,207,208,255,192,128,128,128],[175,13, +224,243,193,185,249,198,255,255,128],[73,17,171,221,161,179,236,167,255,234,128]],[[1,95,247,253,212,183,255,255,128,128,128],[239,90,244,250,211,209,255,255,128,128,128],[155,77,195,248,188,195,255,255,128,128,128]],[[1,24,239,251,218,219,255,205,128,128,128],[201,51,219,255,196,186,128,128,128,128,128],[69,46,190,239,201,218,255,228,128,128,128]],[[1,191,251,255,255,128,128,128,128,128,128],[223,165,249,255,213,255,128,128,128,128,128],[141,124,248,255,255,128,128,128,128,128,128]],[[1,16,248,255, +255,128,128,128,128,128,128],[190,36,230,255,236,255,128,128,128,128,128],[149,1,255,128,128,128,128,128,128,128,128]],[[1,226,255,128,128,128,128,128,128,128,128],[247,192,255,128,128,128,128,128,128,128,128],[240,128,255,128,128,128,128,128,128,128,128]],[[1,134,252,255,255,128,128,128,128,128,128],[213,62,250,255,255,128,128,128,128,128,128],[55,93,255,128,128,128,128,128,128,128,128]],[[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128,128,128,128,128,128,128,128],[128,128,128,128, +128,128,128,128,128,128,128]]],[[[202,24,213,235,186,191,220,160,240,175,255],[126,38,182,232,169,184,228,174,255,187,128],[61,46,138,219,151,178,240,170,255,216,128]],[[1,112,230,250,199,191,247,159,255,255,128],[166,109,228,252,211,215,255,174,128,128,128],[39,77,162,232,172,180,245,178,255,255,128]],[[1,52,220,246,198,199,249,220,255,255,128],[124,74,191,243,183,193,250,221,255,255,128],[24,71,130,219,154,170,243,182,255,255,128]],[[1,182,225,249,219,240,255,224,128,128,128],[149,150,226,252,216, +205,255,171,128,128,128],[28,108,170,242,183,194,254,223,255,255,128]],[[1,81,230,252,204,203,255,192,128,128,128],[123,102,209,247,188,196,255,233,128,128,128],[20,95,153,243,164,173,255,203,128,128,128]],[[1,222,248,255,216,213,128,128,128,128,128],[168,175,246,252,235,205,255,255,128,128,128],[47,116,215,255,211,212,255,255,128,128,128]],[[1,121,236,253,212,214,255,255,128,128,128],[141,84,213,252,201,202,255,219,128,128,128],[42,80,160,240,162,185,255,205,128,128,128]],[[1,1,255,128,128,128,128, +128,128,128,128],[244,1,255,128,128,128,128,128,128,128,128],[238,1,255,128,128,128,128,128,128,128,128]]]],Rf=[[[231,120,48,89,115,113,120,152,112],[152,179,64,126,170,118,46,70,95],[175,69,143,80,85,82,72,155,103],[56,58,10,171,218,189,17,13,152],[114,26,17,163,44,195,21,10,173],[121,24,80,195,26,62,44,64,85],[144,71,10,38,171,213,144,34,26],[170,46,55,19,136,160,33,206,71],[63,20,8,114,114,208,12,9,226],[81,40,11,96,182,84,29,16,36]],[[134,183,89,137,98,101,106,165,148],[72,187,100,130,157,111, +32,75,80],[66,102,167,99,74,62,40,234,128],[41,53,9,178,241,141,26,8,107],[74,43,26,146,73,166,49,23,157],[65,38,105,160,51,52,31,115,128],[104,79,12,27,217,255,87,17,7],[87,68,71,44,114,51,15,186,23],[47,41,14,110,182,183,21,17,194],[66,45,25,102,197,189,23,18,22]],[[88,88,147,150,42,46,45,196,205],[43,97,183,117,85,38,35,179,61],[39,53,200,87,26,21,43,232,171],[56,34,51,104,114,102,29,93,77],[39,28,85,171,58,165,90,98,64],[34,22,116,206,23,34,43,166,73],[107,54,32,26,51,1,81,43,31],[68,25,106,22, +64,171,36,225,114],[34,19,21,102,132,188,16,76,124],[62,18,78,95,85,57,50,48,51]],[[193,101,35,159,215,111,89,46,111],[60,148,31,172,219,228,21,18,111],[112,113,77,85,179,255,38,120,114],[40,42,1,196,245,209,10,25,109],[88,43,29,140,166,213,37,43,154],[61,63,30,155,67,45,68,1,209],[100,80,8,43,154,1,51,26,71],[142,78,78,16,255,128,34,197,171],[41,40,5,102,211,183,4,1,221],[51,50,17,168,209,192,23,25,82]],[[138,31,36,171,27,166,38,44,229],[67,87,58,169,82,115,26,59,179],[63,59,90,180,59,166,93,73, +154],[40,40,21,116,143,209,34,39,175],[47,15,16,183,34,223,49,45,183],[46,17,33,183,6,98,15,32,183],[57,46,22,24,128,1,54,17,37],[65,32,73,115,28,128,23,128,205],[40,3,9,115,51,192,18,6,223],[87,37,9,115,59,77,64,21,47]],[[104,55,44,218,9,54,53,130,226],[64,90,70,205,40,41,23,26,57],[54,57,112,184,5,41,38,166,213],[30,34,26,133,152,116,10,32,134],[39,19,53,221,26,114,32,73,255],[31,9,65,234,2,15,1,118,73],[75,32,12,51,192,255,160,43,51],[88,31,35,67,102,85,55,186,85],[56,21,23,111,59,205,45,37,192], +[55,38,70,124,73,102,1,34,98]],[[125,98,42,88,104,85,117,175,82],[95,84,53,89,128,100,113,101,45],[75,79,123,47,51,128,81,171,1],[57,17,5,71,102,57,53,41,49],[38,33,13,121,57,73,26,1,85],[41,10,67,138,77,110,90,47,114],[115,21,2,10,102,255,166,23,6],[101,29,16,10,85,128,101,196,26],[57,18,10,102,102,213,34,20,43],[117,20,15,36,163,128,68,1,26]],[[102,61,71,37,34,53,31,243,192],[69,60,71,38,73,119,28,222,37],[68,45,128,34,1,47,11,245,171],[62,17,19,70,146,85,55,62,70],[37,43,37,154,100,163,85,160, +1],[63,9,92,136,28,64,32,201,85],[75,15,9,9,64,255,184,119,16],[86,6,28,5,64,255,25,248,1],[56,8,17,132,137,255,55,116,128],[58,15,20,82,135,57,26,121,40]],[[164,50,31,137,154,133,25,35,218],[51,103,44,131,131,123,31,6,158],[86,40,64,135,148,224,45,183,128],[22,26,17,131,240,154,14,1,209],[45,16,21,91,64,222,7,1,197],[56,21,39,155,60,138,23,102,213],[83,12,13,54,192,255,68,47,28],[85,26,85,85,128,128,32,146,171],[18,11,7,63,144,171,4,4,246],[35,27,10,146,174,171,12,26,128]],[[190,80,35,99,180,80, +126,54,45],[85,126,47,87,176,51,41,20,32],[101,75,128,139,118,146,116,128,85],[56,41,15,176,236,85,37,9,62],[71,30,17,119,118,255,17,18,138],[101,38,60,138,55,70,43,26,142],[146,36,19,30,171,255,97,27,20],[138,45,61,62,219,1,81,188,64],[32,41,20,117,151,142,20,21,163],[112,19,12,61,195,128,48,4,24]]],If=[[[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[176,246,255,255,255,255,255,255,255,255,255],[223,241, +252,255,255,255,255,255,255,255,255],[249,253,253,255,255,255,255,255,255,255,255]],[[255,244,252,255,255,255,255,255,255,255,255],[234,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255]],[[255,246,254,255,255,255,255,255,255,255,255],[239,253,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[251,255,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]], +[[255,253,254,255,255,255,255,255,255,255,255],[251,254,254,255,255,255,255,255,255,255,255],[254,255,254,255,255,255,255,255,255,255,255]],[[255,254,253,255,254,255,255,255,255,255,255],[250,255,254,255,254,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[217,255,255,255,255,255,255,255,255,255,255],[225,252,241,253,255,255,254,255, +255,255,255],[234,250,241,250,253,255,253,254,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255],[223,254,254,255,255,255,255,255,255,255,255],[238,253,254,254,255,255,255,255,255,255,255]],[[255,248,254,255,255,255,255,255,255,255,255],[249,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,255,255,255,255,255,255,255,255,255],[247,254,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,253,254,255,255, +255,255,255,255,255,255],[252,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[253,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,253,255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255, +255,255,255,255,255,255,255,255]]],[[[186,251,250,255,255,255,255,255,255,255,255],[234,251,244,254,255,255,255,255,255,255,255],[251,251,243,253,254,255,254,255,255,255,255]],[[255,253,254,255,255,255,255,255,255,255,255],[236,253,254,255,255,255,255,255,255,255,255],[251,253,253,254,254,255,255,255,255,255,255]],[[255,254,254,255,255,255,255,255,255,255,255],[254,254,254,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,254,255,255,255,255,255,255,255,255,255], +[254,254,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255, +255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]],[[[248,255,255,255,255,255,255,255,255,255,255],[250,254,252,254,255,255,255,255,255,255,255],[248,254,249,253,255,255,255,255,255,255,255]],[[255,253,253,255,255,255,255,255,255,255,255],[246,253,253,255,255,255,255,255,255,255,255],[252,254,251,254,254,255,255,255,255,255,255]],[[255,254,252,255,255,255,255,255,255,255,255],[248,254,253,255,255,255, +255,255,255,255,255],[253,255,254,254,255,255,255,255,255,255,255]],[[255,251,254,255,255,255,255,255,255,255,255],[245,251,254,255,255,255,255,255,255,255,255],[253,253,254,255,255,255,255,255,255,255,255]],[[255,251,253,255,255,255,255,255,255,255,255],[252,253,254,255,255,255,255,255,255,255,255],[255,254,255,255,255,255,255,255,255,255,255]],[[255,252,255,255,255,255,255,255,255,255,255],[249,255,254,255,255,255,255,255,255,255,255],[255,255,254,255,255,255,255,255,255,255,255]],[[255,255,253, +255,255,255,255,255,255,255,255],[250,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]],[[255,255,255,255,255,255,255,255,255,255,255],[254,255,255,255,255,255,255,255,255,255,255],[255,255,255,255,255,255,255,255,255,255,255]]]];this.WebPGetDecoderVersion=this.Ld=function(){return 512};var Nc=[0,1,2,3,6,4,5,6,6,6,6,6,6,6,6,7,0],Jf=[[173,148,140,0],[176,155,140,135,0],[180,157,141,134,130,0],[254,254,243,230,196,177,153,140,133,130,129,0]],Kf=[0,1,4,8,5,2,3,6, +9,12,13,10,7,11,14,15],Tf=md([Kc,Lc],"");U(4,x);var vc=[[0,0,0,0],[1,0,0,0],[0,1,0,0],[1,1,0,0],[0,0,1,0],[1,0,1,0],[0,1,1,0],[1,1,1,0],[0,0,0,1],[1,0,0,1],[0,1,0,1],[1,1,0,1],[0,0,1,1],[1,0,1,1],[0,1,1,1],[1,1,1,1]],Lf=134480385,ea=16,J=-227,dd=482,Ce=[Wc,function(a){return a},function(a,b,c){return b[c+0]},function(a,b,c){return b[c+1]},function(a,b,c){return b[c-1]},function(a,b,c){return ka(ka(a,b[c+1]),b[c+0])},function(a,b,c){return ka(a,b[c-1])},function(a,b,c){return ka(a,b[c+0])},function(a, +b,c){return ka(b[c-1],b[c+0])},function(a,b,c){return ka(b[c+0],b[c+1])},function(a,b,c){return ka(ka(a,b[c-1]),ka(b[c+0],b[c+1]))},function(a,b,c){return 0>=Math.abs((a>>24&255)-(b[c-1]>>24&255))-Math.abs((b[c+0]>>24&255)-(b[c-1]>>24&255))+(Math.abs((a>>16&255)-(b[c-1]>>16&255))-Math.abs((b[c+0]>>16&255)-(b[c-1]>>16&255)))+(Math.abs((a>>8&255)-(b[c-1]>>8&255))-Math.abs((b[c+0]>>8&255)-(b[c-1]>>8&255)))+(Math.abs((a&255)-(b[c-1]&255))-Math.abs((b[c+0]&255)-(b[c-1]&255)))?b[c+0]:a},function(a,b,c){return($a((a>> +24&255)+(b[c+0]>>24&255)-(b[c-1]>>24&255))<<24|$a((a>>16&255)+(b[c+0]>>16&255)-(b[c-1]>>16&255))<<16|$a((a>>8&255)+(b[c+0]>>8&255)-(b[c-1]>>8&255))<<8|$a((a&255)+(b[c+0]&255)-(b[c-1]&255)))>>>0},function(a,b,c){var d=b[c-1];a=ka(a,b[c+0]);return(yb(a>>24&255,d>>24&255)<<24|yb(a>>16&255,d>>16&255)<<16|yb(a>>8&255,d>>8&255)<<8|yb(a>>0&255,d>>0&255))>>>0},Wc,Wc],Xf={Cc:x,Bc:x,Kc:x},$c=16,Me=16,kg=16,mg=[2,3,7],lg=[3,3,11],Zf=0,$f=1,ag=2,bg=3,cg=4,hg=[Ba+Ge,Ba,Ba,Ba,40],Ke=19,ig=[17,18,0,1,2,3,4,5,16, +6,7,8,9,10,11,12,13,14,15],He=120,dg=[24,7,23,25,40,6,39,41,22,26,38,42,56,5,55,57,21,27,54,58,37,43,72,4,71,73,20,28,53,59,70,74,36,44,88,69,75,52,60,3,87,89,19,29,86,90,35,45,68,76,85,91,51,61,104,2,103,105,18,30,102,106,34,46,84,92,67,77,101,107,50,62,120,1,119,121,83,93,17,31,100,108,66,78,118,122,33,47,117,123,49,63,99,109,82,94,0,116,124,65,79,16,32,98,110,48,115,125,81,95,64,114,126,97,111,80,113,127,96,112],Jb=1<, 2013. +// +// https://github.com/deanm/omggif +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. +// +// omggif is a JavaScript implementation of a GIF 89a encoder and decoder, +// including animation and compression. It does not rely on any specific +// underlying system, so should run in the browser, Node, or Plask. + +function GifWriter(buf, width, height, gopts) { + var p = 0; + + var gopts = gopts === undefined ? { } : gopts; + var loop_count = gopts.loop === undefined ? null : gopts.loop; + var global_palette = gopts.palette === undefined ? null : gopts.palette; + + if (width <= 0 || height <= 0 || width > 65535 || height > 65535) + throw "Width/Height invalid." + + function check_palette_and_num_colors(palette) { + var num_colors = palette.length; + if (num_colors < 2 || num_colors > 256 || num_colors & (num_colors-1)) + throw "Invalid code/color length, must be power of 2 and 2 .. 256."; + return num_colors; + } + + // - Header. + buf[p++] = 0x47; buf[p++] = 0x49; buf[p++] = 0x46; // GIF + buf[p++] = 0x38; buf[p++] = 0x39; buf[p++] = 0x61; // 89a + + // Handling of Global Color Table (palette) and background index. + var gp_num_colors_pow2 = 0; + var background = 0; + if (global_palette !== null) { + var gp_num_colors = check_palette_and_num_colors(global_palette); + while (gp_num_colors >>= 1) ++gp_num_colors_pow2; + gp_num_colors = 1 << gp_num_colors_pow2; + --gp_num_colors_pow2; + if (gopts.background !== undefined) { + background = gopts.background; + if (background >= gp_num_colors) throw "Background index out of range."; + // The GIF spec states that a background index of 0 should be ignored, so + // this is probably a mistake and you really want to set it to another + // slot in the palette. But actually in the end most browsers, etc end + // up ignoring this almost completely (including for dispose background). + if (background === 0) + throw "Background index explicitly passed as 0."; + } + } + + // - Logical Screen Descriptor. + // NOTE(deanm): w/h apparently ignored by implementations, but set anyway. + buf[p++] = width & 0xff; buf[p++] = width >> 8 & 0xff; + buf[p++] = height & 0xff; buf[p++] = height >> 8 & 0xff; + // NOTE: Indicates 0-bpp original color resolution (unused?). + buf[p++] = (global_palette !== null ? 0x80 : 0) | // Global Color Table Flag. + gp_num_colors_pow2; // NOTE: No sort flag (unused?). + buf[p++] = background; // Background Color Index. + buf[p++] = 0; // Pixel aspect ratio (unused?). + + // - Global Color Table + if (global_palette !== null) { + for (var i = 0, il = global_palette.length; i < il; ++i) { + var rgb = global_palette[i]; + buf[p++] = rgb >> 16 & 0xff; + buf[p++] = rgb >> 8 & 0xff; + buf[p++] = rgb & 0xff; + } + } + + if (loop_count !== null) { // Netscape block for looping. + if (loop_count < 0 || loop_count > 65535) + throw "Loop count invalid." + // Extension code, label, and length. + buf[p++] = 0x21; buf[p++] = 0xff; buf[p++] = 0x0b; + // NETSCAPE2.0 + buf[p++] = 0x4e; buf[p++] = 0x45; buf[p++] = 0x54; buf[p++] = 0x53; + buf[p++] = 0x43; buf[p++] = 0x41; buf[p++] = 0x50; buf[p++] = 0x45; + buf[p++] = 0x32; buf[p++] = 0x2e; buf[p++] = 0x30; + // Sub-block + buf[p++] = 0x03; buf[p++] = 0x01; + buf[p++] = loop_count & 0xff; buf[p++] = loop_count >> 8 & 0xff; + buf[p++] = 0x00; // Terminator. + } + + + var ended = false; + + this.addFrame = function(x, y, w, h, indexed_pixels, opts) { + if (ended === true) { --p; ended = false; } // Un-end. + + opts = opts === undefined ? { } : opts; + + // TODO(deanm): Bounds check x, y. Do they need to be within the virtual + // canvas width/height, I imagine? + if (x < 0 || y < 0 || x > 65535 || y > 65535) + throw "x/y invalid." + + if (w <= 0 || h <= 0 || w > 65535 || h > 65535) + throw "Width/Height invalid." + + if (indexed_pixels.length < w * h) + throw "Not enough pixels for the frame size."; + + var using_local_palette = true; + var palette = opts.palette; + if (palette === undefined || palette === null) { + using_local_palette = false; + palette = global_palette; + } + + if (palette === undefined || palette === null) + throw "Must supply either a local or global palette."; + + var num_colors = check_palette_and_num_colors(palette); + + // Compute the min_code_size (power of 2), destroying num_colors. + var min_code_size = 0; + while (num_colors >>= 1) ++min_code_size; + num_colors = 1 << min_code_size; // Now we can easily get it back. + + var delay = opts.delay === undefined ? 0 : opts.delay; + + // From the spec: + // 0 - No disposal specified. The decoder is + // not required to take any action. + // 1 - Do not dispose. The graphic is to be left + // in place. + // 2 - Restore to background color. The area used by the + // graphic must be restored to the background color. + // 3 - Restore to previous. The decoder is required to + // restore the area overwritten by the graphic with + // what was there prior to rendering the graphic. + // 4-7 - To be defined. + // NOTE(deanm): Dispose background doesn't really work, apparently most + // browsers ignore the background palette index and clear to transparency. + var disposal = opts.disposal === undefined ? 0 : opts.disposal; + if (disposal < 0 || disposal > 3) // 4-7 is reserved. + throw "Disposal out of range."; + + var use_transparency = false; + var transparent_index = 0; + if (opts.transparent !== undefined && opts.transparent !== null) { + use_transparency = true; + transparent_index = opts.transparent; + if (transparent_index < 0 || transparent_index >= num_colors) + throw "Transparent color index."; + } + + if (disposal !== 0 || use_transparency || delay !== 0) { + // - Graphics Control Extension + buf[p++] = 0x21; buf[p++] = 0xf9; // Extension / Label. + buf[p++] = 4; // Byte size. + + buf[p++] = disposal << 2 | (use_transparency === true ? 1 : 0); + buf[p++] = delay & 0xff; buf[p++] = delay >> 8 & 0xff; + buf[p++] = transparent_index; // Transparent color index. + buf[p++] = 0; // Block Terminator. + } + + // - Image Descriptor + buf[p++] = 0x2c; // Image Seperator. + buf[p++] = x & 0xff; buf[p++] = x >> 8 & 0xff; // Left. + buf[p++] = y & 0xff; buf[p++] = y >> 8 & 0xff; // Top. + buf[p++] = w & 0xff; buf[p++] = w >> 8 & 0xff; + buf[p++] = h & 0xff; buf[p++] = h >> 8 & 0xff; + // NOTE: No sort flag (unused?). + // TODO(deanm): Support interlace. + buf[p++] = using_local_palette === true ? (0x80 | (min_code_size-1)) : 0; + + // - Local Color Table + if (using_local_palette === true) { + for (var i = 0, il = palette.length; i < il; ++i) { + var rgb = palette[i]; + buf[p++] = rgb >> 16 & 0xff; + buf[p++] = rgb >> 8 & 0xff; + buf[p++] = rgb & 0xff; + } + } + + p = GifWriterOutputLZWCodeStream( + buf, p, min_code_size < 2 ? 2 : min_code_size, indexed_pixels); + }; + + this.end = function() { + if (ended === false) { + buf[p++] = 0x3b; // Trailer. + ended = true; + } + return p; + }; +} + +// Main compression routine, palette indexes -> LZW code stream. +// |index_stream| must have at least one entry. +function GifWriterOutputLZWCodeStream(buf, p, min_code_size, index_stream) { + buf[p++] = min_code_size; + var cur_subblock = p++; // Pointing at the length field. + + var clear_code = 1 << min_code_size; + var code_mask = clear_code - 1; + var eoi_code = clear_code + 1; + var next_code = eoi_code + 1; + + var cur_code_size = min_code_size + 1; // Number of bits per code. + var cur_shift = 0; + // We have at most 12-bit codes, so we should have to hold a max of 19 + // bits here (and then we would write out). + var cur = 0; + + function emit_bytes_to_buffer(bit_block_size) { + while (cur_shift >= bit_block_size) { + buf[p++] = cur & 0xff; + cur >>= 8; cur_shift -= 8; + if (p === cur_subblock + 256) { // Finished a subblock. + buf[cur_subblock] = 255; + cur_subblock = p++; + } + } + } + + function emit_code(c) { + cur |= c << cur_shift; + cur_shift += cur_code_size; + emit_bytes_to_buffer(8); + } + + // I am not an expert on the topic, and I don't want to write a thesis. + // However, it is good to outline here the basic algorithm and the few data + // structures and optimizations here that make this implementation fast. + // The basic idea behind LZW is to build a table of previously seen runs + // addressed by a short id (herein called output code). All data is + // referenced by a code, which represents one or more values from the + // original input stream. All input bytes can be referenced as the same + // value as an output code. So if you didn't want any compression, you + // could more or less just output the original bytes as codes (there are + // some details to this, but it is the idea). In order to achieve + // compression, values greater then the input range (codes can be up to + // 12-bit while input only 8-bit) represent a sequence of previously seen + // inputs. The decompressor is able to build the same mapping while + // decoding, so there is always a shared common knowledge between the + // encoding and decoder, which is also important for "timing" aspects like + // how to handle variable bit width code encoding. + // + // One obvious but very important consequence of the table system is there + // is always a unique id (at most 12-bits) to map the runs. 'A' might be + // 4, then 'AA' might be 10, 'AAA' 11, 'AAAA' 12, etc. This relationship + // can be used for an effecient lookup strategy for the code mapping. We + // need to know if a run has been seen before, and be able to map that run + // to the output code. Since we start with known unique ids (input bytes), + // and then from those build more unique ids (table entries), we can + // continue this chain (almost like a linked list) to always have small + // integer values that represent the current byte chains in the encoder. + // This means instead of tracking the input bytes (AAAABCD) to know our + // current state, we can track the table entry for AAAABC (it is guaranteed + // to exist by the nature of the algorithm) and the next character D. + // Therefor the tuple of (table_entry, byte) is guaranteed to also be + // unique. This allows us to create a simple lookup key for mapping input + // sequences to codes (table indices) without having to store or search + // any of the code sequences. So if 'AAAA' has a table entry of 12, the + // tuple of ('AAAA', K) for any input byte K will be unique, and can be our + // key. This leads to a integer value at most 20-bits, which can always + // fit in an SMI value and be used as a fast sparse array / object key. + + // Output code for the current contents of the index buffer. + var ib_code = index_stream[0] & code_mask; // Load first input index. + var code_table = { }; // Key'd on our 20-bit "tuple". + + emit_code(clear_code); // Spec says first code should be a clear code. + + // First index already loaded, process the rest of the stream. + for (var i = 1, il = index_stream.length; i < il; ++i) { + var k = index_stream[i] & code_mask; + var cur_key = ib_code << 8 | k; // (prev, k) unique tuple. + var cur_code = code_table[cur_key]; // buffer + k. + + // Check if we have to create a new code table entry. + if (cur_code === undefined) { // We don't have buffer + k. + // Emit index buffer (without k). + // This is an inline version of emit_code, because this is the core + // writing routine of the compressor (and V8 cannot inline emit_code + // because it is a closure here in a different context). Additionally + // we can call emit_byte_to_buffer less often, because we can have + // 30-bits (from our 31-bit signed SMI), and we know our codes will only + // be 12-bits, so can safely have 18-bits there without overflow. + // emit_code(ib_code); + cur |= ib_code << cur_shift; + cur_shift += cur_code_size; + while (cur_shift >= 8) { + buf[p++] = cur & 0xff; + cur >>= 8; cur_shift -= 8; + if (p === cur_subblock + 256) { // Finished a subblock. + buf[cur_subblock] = 255; + cur_subblock = p++; + } + } + + if (next_code === 4096) { // Table full, need a clear. + emit_code(clear_code); + next_code = eoi_code + 1; + cur_code_size = min_code_size + 1; + code_table = { }; + } else { // Table not full, insert a new entry. + // Increase our variable bit code sizes if necessary. This is a bit + // tricky as it is based on "timing" between the encoding and + // decoder. From the encoders perspective this should happen after + // we've already emitted the index buffer and are about to create the + // first table entry that would overflow our current code bit size. + if (next_code >= (1 << cur_code_size)) ++cur_code_size; + code_table[cur_key] = next_code++; // Insert into code table. + } + + ib_code = k; // Index buffer to single input k. + } else { + ib_code = cur_code; // Index buffer to sequence in code table. + } + } + + emit_code(ib_code); // There will still be something in the index buffer. + emit_code(eoi_code); // End Of Information. + + // Flush / finalize the sub-blocks stream to the buffer. + emit_bytes_to_buffer(1); + + // Finish the sub-blocks, writing out any unfinished lengths and + // terminating with a sub-block of length 0. If we have already started + // but not yet used a sub-block it can just become the terminator. + if (cur_subblock + 1 === p) { // Started but unused. + buf[cur_subblock] = 0; + } else { // Started and used, write length and additional terminator block. + buf[cur_subblock] = p - cur_subblock - 1; + buf[p++] = 0; + } + return p; +} + +function GifReader(buf) { + var p = 0; + + // - Header (GIF87a or GIF89a). + if (buf[p++] !== 0x47 || buf[p++] !== 0x49 || buf[p++] !== 0x46 || + buf[p++] !== 0x38 || (buf[p++]+1 & 0xfd) !== 0x38 || buf[p++] !== 0x61) { + throw "Invalid GIF 87a/89a header."; + } + + // - Logical Screen Descriptor. + var width = buf[p++] | buf[p++] << 8; + var height = buf[p++] | buf[p++] << 8; + var pf0 = buf[p++]; // . + var global_palette_flag = pf0 >> 7; + var num_global_colors_pow2 = pf0 & 0x7; + var num_global_colors = 1 << (num_global_colors_pow2 + 1); + var background = buf[p++]; + buf[p++]; // Pixel aspect ratio (unused?). + + var global_palette_offset = null; + + if (global_palette_flag) { + global_palette_offset = p; + p += num_global_colors * 3; // Seek past palette. + } + + var no_eof = true; + + var frames = [ ]; + + var delay = 0; + var transparent_index = null; + var disposal = 0; // 0 - No disposal specified. + var loop_count = null; + + this.width = width; + this.height = height; + + while (no_eof && p < buf.length) { + switch (buf[p++]) { + case 0x21: // Graphics Control Extension Block + switch (buf[p++]) { + case 0xff: // Application specific block + // Try if it's a Netscape block (with animation loop counter). + if (buf[p ] !== 0x0b || // 21 FF already read, check block size. + // NETSCAPE2.0 + buf[p+1 ] == 0x4e && buf[p+2 ] == 0x45 && buf[p+3 ] == 0x54 && + buf[p+4 ] == 0x53 && buf[p+5 ] == 0x43 && buf[p+6 ] == 0x41 && + buf[p+7 ] == 0x50 && buf[p+8 ] == 0x45 && buf[p+9 ] == 0x32 && + buf[p+10] == 0x2e && buf[p+11] == 0x30 && + // Sub-block + buf[p+12] == 0x03 && buf[p+13] == 0x01 && buf[p+16] == 0) { + p += 14; + loop_count = buf[p++] | buf[p++] << 8; + p++; // Skip terminator. + } else { // We don't know what it is, just try to get past it. + p += 12; + while (true) { // Seek through subblocks. + var block_size = buf[p++]; + if (block_size === 0) break; + p += block_size; + } + } + break; + + case 0xf9: // Graphics Control Extension + if (buf[p++] !== 0x4 || buf[p+4] !== 0) + throw "Invalid graphics extension block."; + var pf1 = buf[p++]; + delay = buf[p++] | buf[p++] << 8; + transparent_index = buf[p++]; + if ((pf1 & 1) === 0) transparent_index = null; + disposal = pf1 >> 2 & 0x7; + p++; // Skip terminator. + break; + + case 0xfe: // Comment Extension. + while (true) { // Seek through subblocks. + var block_size = buf[p++]; + if (block_size === 0) break; + // console.log(buf.slice(p, p+block_size).toString('ascii')); + p += block_size; + } + break; + + default: + throw "Unknown graphic control label: 0x" + buf[p-1].toString(16); + } + break; + + case 0x2c: // Image Descriptor. + var x = buf[p++] | buf[p++] << 8; + var y = buf[p++] | buf[p++] << 8; + var w = buf[p++] | buf[p++] << 8; + var h = buf[p++] | buf[p++] << 8; + var pf2 = buf[p++]; + var local_palette_flag = pf2 >> 7; + var interlace_flag = pf2 >> 6 & 1; + var num_local_colors_pow2 = pf2 & 0x7; + var num_local_colors = 1 << (num_local_colors_pow2 + 1); + var palette_offset = global_palette_offset; + var has_local_palette = false; + if (local_palette_flag) { + var has_local_palette = true; + palette_offset = p; // Override with local palette. + p += num_local_colors * 3; // Seek past palette. + } + + var data_offset = p; + + p++; // codesize + while (true) { + var block_size = buf[p++]; + if (block_size === 0) break; + p += block_size; + } + + frames.push({x: x, y: y, width: w, height: h, + has_local_palette: has_local_palette, + palette_offset: palette_offset, + data_offset: data_offset, + data_length: p - data_offset, + transparent_index: transparent_index, + interlaced: !!interlace_flag, + delay: delay, + disposal: disposal}); + break; + + case 0x3b: // Trailer Marker (end of file). + no_eof = false; + break; + + default: + throw "Unknown gif block: 0x" + buf[p-1].toString(16); + break; + } + } + + this.numFrames = function() { + return frames.length; + }; + + this.loopCount = function() { + return loop_count; + }; + + this.frameInfo = function(frame_num) { + if (frame_num < 0 || frame_num >= frames.length) + throw "Frame index out of range."; + return frames[frame_num]; + } + + + // I will go to copy and paste hell one day... + this.decodeAndBlitFrameRGBA = function(frame_num, pixels) { + var frame = this.frameInfo(frame_num); + var num_pixels = frame.width * frame.height; + var index_stream = new Uint8Array(num_pixels); // At most 8-bit indices. + GifReaderLZWOutputIndexStream( + buf, frame.data_offset, index_stream, num_pixels); + var palette_offset = frame.palette_offset; + + // NOTE(deanm): It seems to be much faster to compare index to 256 than + // to === null. Not sure why, but CompareStub_EQ_STRICT shows up high in + // the profile, not sure if it's related to using a Uint8Array. + var trans = frame.transparent_index; + if (trans === null) trans = 256; + + // We are possibly just blitting to a portion of the entire frame. + // That is a subrect within the framerect, so the additional pixels + // must be skipped over after we finished a scanline. + var framewidth = frame.width; + var framestride = width - framewidth; + var xleft = framewidth; // Number of subrect pixels left in scanline. + + // Output indicies of the top left and bottom right corners of the subrect. + var opbeg = ((frame.y * width) + frame.x) * 4; + var opend = ((frame.y + frame.height) * width + frame.x) * 4; + var op = opbeg; + + var scanstride = framestride * 4; + + // Use scanstride to skip past the rows when interlacing. This is skipping + // 7 rows for the first two passes, then 3 then 1. + if (frame.interlaced === true) { + scanstride += width * 4 * 7; // Pass 1. + } + + var interlaceskip = 8; // Tracking the row interval in the current pass. + + for (var i = 0, il = index_stream.length; i < il; ++i) { + var index = index_stream[i]; + + if (xleft === 0) { // Beginning of new scan line + op += scanstride; + xleft = framewidth; + if (op >= opend) { // Catch the wrap to switch passes when interlacing. + scanstride = framestride * 4 + width * 4 * (interlaceskip-1); + // interlaceskip / 2 * 4 is interlaceskip << 1. + op = opbeg + (framewidth + framestride) * (interlaceskip << 1); + interlaceskip >>= 1; + } + } + + if (index === trans) { + op += 4; + } else { + var r = buf[palette_offset + index * 3]; + var g = buf[palette_offset + index * 3 + 1]; + var b = buf[palette_offset + index * 3 + 2]; + pixels[op++] = r; + pixels[op++] = g; + pixels[op++] = b; + pixels[op++] = 255; + } + --xleft; + } + }; +} + +function GifReaderLZWOutputIndexStream(code_stream, p, output, output_length) { + var min_code_size = code_stream[p++]; + + var clear_code = 1 << min_code_size; + var eoi_code = clear_code + 1; + var next_code = eoi_code + 1; + + var cur_code_size = min_code_size + 1; // Number of bits per code. + // NOTE: This shares the same name as the encoder, but has a different + // meaning here. Here this masks each code coming from the code stream. + var code_mask = (1 << cur_code_size) - 1; + var cur_shift = 0; + var cur = 0; + + var op = 0; // Output pointer. + + var subblock_size = code_stream[p++]; + + // TODO(deanm): Would using a TypedArray be any faster? At least it would + // solve the fast mode / backing store uncertainty. + // var code_table = Array(4096); + var code_table = new Int32Array(4096); // Can be signed, we only use 20 bits. + + var prev_code = null; // Track code-1. + + while (true) { + // Read up to two bytes, making sure we always 12-bits for max sized code. + while (cur_shift < 16) { + if (subblock_size === 0) break; // No more data to be read. + + cur |= code_stream[p++] << cur_shift; + cur_shift += 8; + + if (subblock_size === 1) { // Never let it get to 0 to hold logic above. + subblock_size = code_stream[p++]; // Next subblock. + } else { + --subblock_size; + } + } + + // TODO(deanm): We should never really get here, we should have received + // and EOI. + if (cur_shift < cur_code_size) + break; + + var code = cur & code_mask; + cur >>= cur_code_size; + cur_shift -= cur_code_size; + + // TODO(deanm): Maybe should check that the first code was a clear code, + // at least this is what you're supposed to do. But actually our encoder + // now doesn't emit a clear code first anyway. + if (code === clear_code) { + // We don't actually have to clear the table. This could be a good idea + // for greater error checking, but we don't really do any anyway. We + // will just track it with next_code and overwrite old entries. + + next_code = eoi_code + 1; + cur_code_size = min_code_size + 1; + code_mask = (1 << cur_code_size) - 1; + + // Don't update prev_code ? + prev_code = null; + continue; + } else if (code === eoi_code) { + break; + } + + // We have a similar situation as the decoder, where we want to store + // variable length entries (code table entries), but we want to do in a + // faster manner than an array of arrays. The code below stores sort of a + // linked list within the code table, and then "chases" through it to + // construct the dictionary entries. When a new entry is created, just the + // last byte is stored, and the rest (prefix) of the entry is only + // referenced by its table entry. Then the code chases through the + // prefixes until it reaches a single byte code. We have to chase twice, + // first to compute the length, and then to actually copy the data to the + // output (backwards, since we know the length). The alternative would be + // storing something in an intermediate stack, but that doesn't make any + // more sense. I implemented an approach where it also stored the length + // in the code table, although it's a bit tricky because you run out of + // bits (12 + 12 + 8), but I didn't measure much improvements (the table + // entries are generally not the long). Even when I created benchmarks for + // very long table entries the complexity did not seem worth it. + // The code table stores the prefix entry in 12 bits and then the suffix + // byte in 8 bits, so each entry is 20 bits. + + var chase_code = code < next_code ? code : prev_code; + + // Chase what we will output, either {CODE} or {CODE-1}. + var chase_length = 0; + var chase = chase_code; + while (chase > clear_code) { + chase = code_table[chase] >> 8; + ++chase_length; + } + + var k = chase; + + var op_end = op + chase_length + (chase_code !== code ? 1 : 0); + if (op_end > output_length) { + console.log("Warning, gif stream longer than expected."); + return; + } + + // Already have the first byte from the chase, might as well write it fast. + output[op++] = k; + + op += chase_length; + var b = op; // Track pointer, writing backwards. + + if (chase_code !== code) // The case of emitting {CODE-1} + k. + output[op++] = k; + + chase = chase_code; + while (chase_length--) { + chase = code_table[chase]; + output[--b] = chase & 0xff; // Write backwards. + chase >>= 8; // Pull down to the prefix code. + } + + if (prev_code !== null && next_code < 4096) { + code_table[next_code++] = prev_code << 8 | k; + // TODO(deanm): Figure out this clearing vs code growth logic better. I + // have an feeling that it should just happen somewhere else, for now it + // is awkward between when we grow past the max and then hit a clear code. + // For now just check if we hit the max 12-bits (then a clear code should + // follow, also of course encoded in 12-bits). + if (next_code >= code_mask+1 && cur_code_size < 12) { + ++cur_code_size; + code_mask = code_mask << 1 | 1; + } + } + + prev_code = code; + } + + if (op !== output_length) { + console.log("Warning, gif stream shorter than expected."); + } + + return output; +} + +try { exports.GifWriter = GifWriter; exports.GifReader = GifReader } catch(e) { } // CommonJS. +/* + * A speed-improved perlin and simplex noise algorithms for 2D. + * + * Based on example code by Stefan Gustavson (stegu@itn.liu.se). + * Optimisations by Peter Eastman (peastman@drizzle.stanford.edu). + * Better rank ordering method by Stefan Gustavson in 2012. + * Converted to Javascript by Joseph Gentle. + * + * Version 2012-03-09 + * + * This code was placed in the public domain by its original author, + * Stefan Gustavson. You may use it as you see fit, but + * attribution is appreciated. + * + */ + +(function(global){ + var module = global.noise = {}; + + function Grad(x, y, z) { + this.x = x; this.y = y; this.z = z; + } + + Grad.prototype.dot2 = function(x, y) { + return this.x*x + this.y*y; + }; + + Grad.prototype.dot3 = function(x, y, z) { + return this.x*x + this.y*y + this.z*z; + }; + + var grad3 = [new Grad(1,1,0),new Grad(-1,1,0),new Grad(1,-1,0),new Grad(-1,-1,0), + new Grad(1,0,1),new Grad(-1,0,1),new Grad(1,0,-1),new Grad(-1,0,-1), + new Grad(0,1,1),new Grad(0,-1,1),new Grad(0,1,-1),new Grad(0,-1,-1)]; + + var p = [151,160,137,91,90,15, + 131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23, + 190, 6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33, + 88,237,149,56,87,174,20,125,136,171,168, 68,175,74,165,71,134,139,48,27,166, + 77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244, + 102,143,54, 65,25,63,161, 1,216,80,73,209,76,132,187,208, 89,18,169,200,196, + 135,130,116,188,159,86,164,100,109,198,173,186, 3,64,52,217,226,250,124,123, + 5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42, + 223,183,170,213,119,248,152, 2,44,154,163, 70,221,153,101,155,167, 43,172,9, + 129,22,39,253, 19,98,108,110,79,113,224,232,178,185, 112,104,218,246,97,228, + 251,34,242,193,238,210,144,12,191,179,162,241, 81,51,145,235,249,14,239,107, + 49,192,214, 31,181,199,106,157,184, 84,204,176,115,121,50,45,127, 4,150,254, + 138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180]; + // To remove the need for index wrapping, double the permutation table length + var perm = new Array(512); + var gradP = new Array(512); + + // This isn't a very good seeding function, but it works ok. It supports 2^16 + // different seed values. Write something better if you need more seeds. + module.seed = function(seed) { + if(seed > 0 && seed < 1) { + // Scale the seed out + seed *= 65536; + } + + seed = Math.floor(seed); + if(seed < 256) { + seed |= seed << 8; + } + + for(var i = 0; i < 256; i++) { + var v; + if (i & 1) { + v = p[i] ^ (seed & 255); + } else { + v = p[i] ^ ((seed>>8) & 255); + } + + perm[i] = perm[i + 256] = v; + gradP[i] = gradP[i + 256] = grad3[v % 12]; + } + }; + + module.seed(0); + + /* + for(var i=0; i<256; i++) { + perm[i] = perm[i + 256] = p[i]; + gradP[i] = gradP[i + 256] = grad3[perm[i] % 12]; + }*/ + + // Skewing and unskewing factors for 2, 3, and 4 dimensions + var F2 = 0.5*(Math.sqrt(3)-1); + var G2 = (3-Math.sqrt(3))/6; + + var F3 = 1/3; + var G3 = 1/6; + + // 2D simplex noise + module.simplex2 = function(xin, yin) { + var n0, n1, n2; // Noise contributions from the three corners + // Skew the input space to determine which simplex cell we're in + var s = (xin+yin)*F2; // Hairy factor for 2D + var i = Math.floor(xin+s); + var j = Math.floor(yin+s); + var t = (i+j)*G2; + var x0 = xin-i+t; // The x,y distances from the cell origin, unskewed. + var y0 = yin-j+t; + // For the 2D case, the simplex shape is an equilateral triangle. + // Determine which simplex we are in. + var i1, j1; // Offsets for second (middle) corner of simplex in (i,j) coords + if(x0>y0) { // lower triangle, XY order: (0,0)->(1,0)->(1,1) + i1=1; j1=0; + } else { // upper triangle, YX order: (0,0)->(0,1)->(1,1) + i1=0; j1=1; + } + // A step of (1,0) in (i,j) means a step of (1-c,-c) in (x,y), and + // a step of (0,1) in (i,j) means a step of (-c,1-c) in (x,y), where + // c = (3-sqrt(3))/6 + var x1 = x0 - i1 + G2; // Offsets for middle corner in (x,y) unskewed coords + var y1 = y0 - j1 + G2; + var x2 = x0 - 1 + 2 * G2; // Offsets for last corner in (x,y) unskewed coords + var y2 = y0 - 1 + 2 * G2; + // Work out the hashed gradient indices of the three simplex corners + i &= 255; + j &= 255; + var gi0 = gradP[i+perm[j]]; + var gi1 = gradP[i+i1+perm[j+j1]]; + var gi2 = gradP[i+1+perm[j+1]]; + // Calculate the contribution from the three corners + var t0 = 0.5 - x0*x0-y0*y0; + if(t0<0) { + n0 = 0; + } else { + t0 *= t0; + n0 = t0 * t0 * gi0.dot2(x0, y0); // (x,y) of grad3 used for 2D gradient + } + var t1 = 0.5 - x1*x1-y1*y1; + if(t1<0) { + n1 = 0; + } else { + t1 *= t1; + n1 = t1 * t1 * gi1.dot2(x1, y1); + } + var t2 = 0.5 - x2*x2-y2*y2; + if(t2<0) { + n2 = 0; + } else { + t2 *= t2; + n2 = t2 * t2 * gi2.dot2(x2, y2); + } + // Add contributions from each corner to get the final noise value. + // The result is scaled to return values in the interval [-1,1]. + return 70 * (n0 + n1 + n2); + }; + + // 3D simplex noise + module.simplex3 = function(xin, yin, zin) { + var n0, n1, n2, n3; // Noise contributions from the four corners + + // Skew the input space to determine which simplex cell we're in + var s = (xin+yin+zin)*F3; // Hairy factor for 2D + var i = Math.floor(xin+s); + var j = Math.floor(yin+s); + var k = Math.floor(zin+s); + + var t = (i+j+k)*G3; + var x0 = xin-i+t; // The x,y distances from the cell origin, unskewed. + var y0 = yin-j+t; + var z0 = zin-k+t; + + // For the 3D case, the simplex shape is a slightly irregular tetrahedron. + // Determine which simplex we are in. + var i1, j1, k1; // Offsets for second corner of simplex in (i,j,k) coords + var i2, j2, k2; // Offsets for third corner of simplex in (i,j,k) coords + if(x0 >= y0) { + if(y0 >= z0) { i1=1; j1=0; k1=0; i2=1; j2=1; k2=0; } + else if(x0 >= z0) { i1=1; j1=0; k1=0; i2=1; j2=0; k2=1; } + else { i1=0; j1=0; k1=1; i2=1; j2=0; k2=1; } + } else { + if(y0 < z0) { i1=0; j1=0; k1=1; i2=0; j2=1; k2=1; } + else if(x0 < z0) { i1=0; j1=1; k1=0; i2=0; j2=1; k2=1; } + else { i1=0; j1=1; k1=0; i2=1; j2=1; k2=0; } + } + // A step of (1,0,0) in (i,j,k) means a step of (1-c,-c,-c) in (x,y,z), + // a step of (0,1,0) in (i,j,k) means a step of (-c,1-c,-c) in (x,y,z), and + // a step of (0,0,1) in (i,j,k) means a step of (-c,-c,1-c) in (x,y,z), where + // c = 1/6. + var x1 = x0 - i1 + G3; // Offsets for second corner + var y1 = y0 - j1 + G3; + var z1 = z0 - k1 + G3; + + var x2 = x0 - i2 + 2 * G3; // Offsets for third corner + var y2 = y0 - j2 + 2 * G3; + var z2 = z0 - k2 + 2 * G3; + + var x3 = x0 - 1 + 3 * G3; // Offsets for fourth corner + var y3 = y0 - 1 + 3 * G3; + var z3 = z0 - 1 + 3 * G3; + + // Work out the hashed gradient indices of the four simplex corners + i &= 255; + j &= 255; + k &= 255; + var gi0 = gradP[i+ perm[j+ perm[k ]]]; + var gi1 = gradP[i+i1+perm[j+j1+perm[k+k1]]]; + var gi2 = gradP[i+i2+perm[j+j2+perm[k+k2]]]; + var gi3 = gradP[i+ 1+perm[j+ 1+perm[k+ 1]]]; + + // Calculate the contribution from the four corners + var t0 = 0.6 - x0*x0 - y0*y0 - z0*z0; + if(t0<0) { + n0 = 0; + } else { + t0 *= t0; + n0 = t0 * t0 * gi0.dot3(x0, y0, z0); // (x,y) of grad3 used for 2D gradient + } + var t1 = 0.6 - x1*x1 - y1*y1 - z1*z1; + if(t1<0) { + n1 = 0; + } else { + t1 *= t1; + n1 = t1 * t1 * gi1.dot3(x1, y1, z1); + } + var t2 = 0.6 - x2*x2 - y2*y2 - z2*z2; + if(t2<0) { + n2 = 0; + } else { + t2 *= t2; + n2 = t2 * t2 * gi2.dot3(x2, y2, z2); + } + var t3 = 0.6 - x3*x3 - y3*y3 - z3*z3; + if(t3<0) { + n3 = 0; + } else { + t3 *= t3; + n3 = t3 * t3 * gi3.dot3(x3, y3, z3); + } + // Add contributions from each corner to get the final noise value. + // The result is scaled to return values in the interval [-1,1]. + return 32 * (n0 + n1 + n2 + n3); + + }; + + // ##### Perlin noise stuff + + function fade(t) { + return t*t*t*(t*(t*6-15)+10); + } + + function lerp(a, b, t) { + return (1-t)*a + t*b; + } + + // 2D Perlin Noise + module.perlin2 = function(x, y) { + // Find unit grid cell containing point + var X = Math.floor(x), Y = Math.floor(y); + // Get relative xy coordinates of point within that cell + x = x - X; y = y - Y; + // Wrap the integer cells at 255 (smaller integer period can be introduced here) + X = X & 255; Y = Y & 255; + + // Calculate noise contributions from each of the four corners + var n00 = gradP[X+perm[Y]].dot2(x, y); + var n01 = gradP[X+perm[Y+1]].dot2(x, y-1); + var n10 = gradP[X+1+perm[Y]].dot2(x-1, y); + var n11 = gradP[X+1+perm[Y+1]].dot2(x-1, y-1); + + // Compute the fade curve value for x + var u = fade(x); + + // Interpolate the four results + return lerp( + lerp(n00, n10, u), + lerp(n01, n11, u), + fade(y)); + }; + + // 3D Perlin Noise + module.perlin3 = function(x, y, z) { + // Find unit grid cell containing point + var X = Math.floor(x), Y = Math.floor(y), Z = Math.floor(z); + // Get relative xyz coordinates of point within that cell + x = x - X; y = y - Y; z = z - Z; + // Wrap the integer cells at 255 (smaller integer period can be introduced here) + X = X & 255; Y = Y & 255; Z = Z & 255; + + // Calculate noise contributions from each of the eight corners + var n000 = gradP[X+ perm[Y+ perm[Z ]]].dot3(x, y, z); + var n001 = gradP[X+ perm[Y+ perm[Z+1]]].dot3(x, y, z-1); + var n010 = gradP[X+ perm[Y+1+perm[Z ]]].dot3(x, y-1, z); + var n011 = gradP[X+ perm[Y+1+perm[Z+1]]].dot3(x, y-1, z-1); + var n100 = gradP[X+1+perm[Y+ perm[Z ]]].dot3(x-1, y, z); + var n101 = gradP[X+1+perm[Y+ perm[Z+1]]].dot3(x-1, y, z-1); + var n110 = gradP[X+1+perm[Y+1+perm[Z ]]].dot3(x-1, y-1, z); + var n111 = gradP[X+1+perm[Y+1+perm[Z+1]]].dot3(x-1, y-1, z-1); + + // Compute the fade curve value for x, y, z + var u = fade(x); + var v = fade(y); + var w = fade(z); + + // Interpolate + return lerp( + lerp( + lerp(n000, n100, u), + lerp(n001, n101, u), w), + lerp( + lerp(n010, n110, u), + lerp(n011, n111, u), w), + v); + }; + +})(this); + + +var Typr = {}; + +Typr.parse = function(buff) +{ + var bin = Typr._bin; + var data = new Uint8Array(buff); + + var tag = bin.readASCII(data, 0, 4); + if(tag=="ttcf") { + var offset = 4; + var majV = bin.readUshort(data, offset); offset+=2; + var minV = bin.readUshort(data, offset); offset+=2; + var numF = bin.readUint (data, offset); offset+=4; + var fnts = []; + for(var i=0; i=buff.length) throw "error"; + var a = Typr._bin.t.uint8; + a[0] = buff[p+3]; + a[1] = buff[p+2]; + a[2] = buff[p+1]; + a[3] = buff[p]; + return Typr._bin.t.int32[0]; + }, + + readInt8 : function(buff, p) + { + //if(p>=buff.length) throw "error"; + var a = Typr._bin.t.uint8; + a[0] = buff[p]; + return Typr._bin.t.int8[0]; + }, + readShort : function(buff, p) + { + //if(p>=buff.length) throw "error"; + var a = Typr._bin.t.uint8; + a[1] = buff[p]; a[0] = buff[p+1]; + return Typr._bin.t.int16[0]; + }, + readUshort : function(buff, p) + { + //if(p>=buff.length) throw "error"; + return (buff[p]<<8) | buff[p+1]; + }, + readUshorts : function(buff, p, len) + { + var arr = []; + for(var i=0; i=buff.length) throw "error"; + var a = Typr._bin.t.uint8; + a[3] = buff[p]; a[2] = buff[p+1]; a[1] = buff[p+2]; a[0] = buff[p+3]; + return Typr._bin.t.uint32[0]; + }, + readUint64 : function(buff, p) + { + //if(p>=buff.length) throw "error"; + return (Typr._bin.readUint(buff, p)*(0xffffffff+1)) + Typr._bin.readUint(buff, p+4); + }, + readASCII : function(buff, p, l) // l : length in Characters (not Bytes) + { + //if(p>=buff.length) throw "error"; + var s = ""; + for(var i = 0; i < l; i++) s += String.fromCharCode(buff[p+i]); + return s; + }, + readUnicode : function(buff, p, l) + { + //if(p>=buff.length) throw "error"; + var s = ""; + for(var i = 0; i < l; i++) + { + var c = (buff[p++]<<8) | buff[p++]; + s += String.fromCharCode(c); + } + return s; + }, + _tdec : window["TextDecoder"] ? new window["TextDecoder"]() : null, + readUTF8 : function(buff, p, l) { + var tdec = Typr._bin._tdec; + if(tdec && p==0 && l==buff.length) return tdec["decode"](buff); + return Typr._bin.readASCII(buff,p,l); + }, + readBytes : function(buff, p, l) + { + //if(p>=buff.length) throw "error"; + var arr = []; + for(var i=0; i=buff.length) throw "error"; + var s = []; + for(var i = 0; i < l; i++) + s.push(String.fromCharCode(buff[p+i])); + return s; + } +}; + +Typr._bin.t = { + buff: new ArrayBuffer(8), +}; +Typr._bin.t.int8 = new Int8Array (Typr._bin.t.buff); +Typr._bin.t.uint8 = new Uint8Array (Typr._bin.t.buff); +Typr._bin.t.int16 = new Int16Array (Typr._bin.t.buff); +Typr._bin.t.uint16 = new Uint16Array(Typr._bin.t.buff); +Typr._bin.t.int32 = new Int32Array (Typr._bin.t.buff); +Typr._bin.t.uint32 = new Uint32Array(Typr._bin.t.buff); + + + + + +// OpenType Layout Common Table Formats + +Typr._lctf = {}; + +Typr._lctf.parse = function(data, offset, length, font, subt) +{ + var bin = Typr._bin; + var obj = {}; + var offset0 = offset; + var tableVersion = bin.readFixed(data, offset); offset += 4; + + var offScriptList = bin.readUshort(data, offset); offset += 2; + var offFeatureList = bin.readUshort(data, offset); offset += 2; + var offLookupList = bin.readUshort(data, offset); offset += 2; + + + obj.scriptList = Typr._lctf.readScriptList (data, offset0 + offScriptList); + obj.featureList = Typr._lctf.readFeatureList(data, offset0 + offFeatureList); + obj.lookupList = Typr._lctf.readLookupList (data, offset0 + offLookupList, subt); + + return obj; +} + +Typr._lctf.readLookupList = function(data, offset, subt) +{ + var bin = Typr._bin; + var offset0 = offset; + var obj = []; + var count = bin.readUshort(data, offset); offset+=2; + for(var i=0; i>>i)&1) != 0) num++; + return num; +} + +Typr._lctf.readClassDef = function(data, offset) +{ + var bin = Typr._bin; + var obj = []; + var format = bin.readUshort(data, offset); offset+=2; + if(format==1) + { + var startGlyph = bin.readUshort(data, offset); offset+=2; + var glyphCount = bin.readUshort(data, offset); offset+=2; + for(var i=0; i 255 ) return -1; + return Typr.CFF.glyphByUnicode(cff, Typr.CFF.tableSE[charcode]); + } + + Typr.CFF.readEncoding = function(data, offset, num) + { + var bin = Typr._bin; + + var array = ['.notdef']; + var format = data[offset]; offset++; + //console.log("Encoding"); + //console.log(format); + + if(format==0) + { + var nCodes = data[offset]; offset++; + for(var i=0; i>4, nib1 = b&0xf; + if(nib0 != 0xf) nibs.push(nib0); if(nib1!=0xf) nibs.push(nib1); + if(nib1==0xf) break; + } + var s = ""; + var chars = [0,1,2,3,4,5,6,7,8,9,".","e","e-","reserved","-","endOfNumber"]; + for(var i=0; i=gl.xMax || gl.yMin>=gl.yMax) return null; + + if(gl.noc>0) + { + gl.endPts = []; + for(var i=0; i>>8; + /* I have seen format 128 once, that's why I do */ format &= 0xf; + if(format==0) offset = Typr.kern.readFormat0(data, offset, map); + else throw "unknown kern table format: "+format; + } + return map; +} + +Typr.kern.parseV1 = function(data, offset, length, font) +{ + var bin = Typr._bin; + + var version = bin.readFixed(data, offset); offset+=4; + var nTables = bin.readUint(data, offset); offset+=4; + + var map = {glyph1: [], rval:[]}; + for(var i=0; i>>8; + /* I have seen format 128 once, that's why I do */ format &= 0xf; + if(format==0) offset = Typr.kern.readFormat0(data, offset, map); + else throw "unknown kern table format: "+format; + } + return map; +} + +Typr.kern.readFormat0 = function(data, offset, map) +{ + var bin = Typr._bin; + var pleft = -1; + var nPairs = bin.readUshort(data, offset); offset+=2; + var searchRange = bin.readUshort(data, offset); offset+=2; + var entrySelector = bin.readUshort(data, offset); offset+=2; + var rangeShift = bin.readUshort(data, offset); offset+=2; + for(var j=0; j=tab.map.length) gid = 0; + else gid = tab.map[code]; + } + else if(tab.format==4) + { + var sind = -1; + for(var i=0; icode) gid = 0; + else { + var gli = 0; + if(tab.idRangeOffset[sind]!=0) gli = tab.glyphIdArray[(code-tab.startCount[sind]) + (tab.idRangeOffset[sind]>>1) - (tab.idRangeOffset.length-sind)]; + else gli = code + tab.idDelta[sind]; + gid = (gli & 0xFFFF); + } + } + else if(tab.format==12) + { + if(code>tab.groups[tab.groups.length-1][1]) gid = 0; + else { + for(var i=0; i-1) Typr.U._simpleGlyph(gl, path); + else Typr.U._compoGlyph (gl, font, path); + } +} +Typr.U._simpleGlyph = function(gl, p) +{ + for(var c=0; c=g) return cd.class[i]; + //return 0; +} + +Typr.U.getPairAdjustment = function(font, g1, g2) +{ + //return 0; + if(font.GPOS) { + var gpos = font["GPOS"]; + var llist = gpos.lookupList, flist = gpos.featureList; + var tused = []; + for(var i=0; i0xffff) i++; + gls.push(Typr.U.codeToGlyph(font, cc)); + } + for(var i=0; i0xffff) i++; + } + //console.log(gls.slice(0)); + + //console.log(gls); return gls; + + var gsub = font["GSUB"]; if(gsub==null) return gls; + var llist = gsub.lookupList, flist = gsub.featureList; + + var cligs = ["rlig", "liga", "mset", "isol","init","fina","medi", "half", "pres", + "blws" /* Tibetan fonts like Himalaya.ttf */ ]; + + //console.log(gls.slice(0)); + var tused = []; + for(var fi=0; firlim) continue; + var good = true, em1 = 0; + for(var l=0; lrlim) continue; + var good = true; + for(var l=0; l> 1; + stack.length = 0; + haveWidth = true; + } + else if(v=="o3" || v=="o23") // vstem || vstemhm + { + var hasWidthArg; + + // The number of stem operators on the stack is always even. + // If the value is uneven, that means a width is specified. + hasWidthArg = stack.length % 2 !== 0; + if (hasWidthArg && !haveWidth) { + width = stack.shift() + pdct.nominalWidthX; + } + + nStems += stack.length >> 1; + stack.length = 0; + haveWidth = true; + } + else if(v=="o4") + { + if (stack.length > 1 && !haveWidth) { + width = stack.shift() + pdct.nominalWidthX; + haveWidth = true; + } + if(open) Typr.U.P.closePath(p); + + y += stack.pop(); + Typr.U.P.moveTo(p,x,y); open=true; + } + else if(v=="o5") + { + while (stack.length > 0) { + x += stack.shift(); + y += stack.shift(); + Typr.U.P.lineTo(p, x, y); + } + } + else if(v=="o6" || v=="o7") // hlineto || vlineto + { + var count = stack.length; + var isX = (v == "o6"); + + for(var j=0; j Math.abs(c4y - y)) { + x = c4x + stack.shift(); + } else { + y = c4y + stack.shift(); + } + Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, jpx, jpy); + Typr.U.P.curveTo(p, c3x, c3y, c4x, c4y, x, y); + } + } + else if(v=="o14") + { + if (stack.length > 0 && !haveWidth) { + width = stack.shift() + font.nominalWidthX; + haveWidth = true; + } + if(stack.length==4) // seac = standard encoding accented character + { + + var asb = 0; + var adx = stack.shift(); + var ady = stack.shift(); + var bchar = stack.shift(); + var achar = stack.shift(); + + + var bind = Typr.CFF.glyphBySE(font, bchar); + var aind = Typr.CFF.glyphBySE(font, achar); + + //console.log(bchar, bind); + //console.log(achar, aind); + //state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open; + + Typr.U._drawCFF(font.CharStrings[bind], state,font,pdct,p); + state.x = adx; state.y = ady; + Typr.U._drawCFF(font.CharStrings[aind], state,font,pdct,p); + + //x=state.x; y=state.y; nStems=state.nStems; haveWidth=state.haveWidth; width=state.width; open=state.open; + } + if(open) { Typr.U.P.closePath(p); open=false; } + } + else if(v=="o19" || v=="o20") + { + var hasWidthArg; + + // The number of stem operators on the stack is always even. + // If the value is uneven, that means a width is specified. + hasWidthArg = stack.length % 2 !== 0; + if (hasWidthArg && !haveWidth) { + width = stack.shift() + pdct.nominalWidthX; + } + + nStems += stack.length >> 1; + stack.length = 0; + haveWidth = true; + + i += (nStems + 7) >> 3; + } + + else if(v=="o21") { + if (stack.length > 2 && !haveWidth) { + width = stack.shift() + pdct.nominalWidthX; + haveWidth = true; + } + + y += stack.pop(); + x += stack.pop(); + + if(open) Typr.U.P.closePath(p); + Typr.U.P.moveTo(p,x,y); open=true; + } + else if(v=="o22") + { + if (stack.length > 1 && !haveWidth) { + width = stack.shift() + pdct.nominalWidthX; + haveWidth = true; + } + + x += stack.pop(); + + if(open) Typr.U.P.closePath(p); + Typr.U.P.moveTo(p,x,y); open=true; + } + else if(v=="o25") + { + while (stack.length > 6) { + x += stack.shift(); + y += stack.shift(); + Typr.U.P.lineTo(p, x, y); + } + + c1x = x + stack.shift(); + c1y = y + stack.shift(); + c2x = c1x + stack.shift(); + c2y = c1y + stack.shift(); + x = c2x + stack.shift(); + y = c2y + stack.shift(); + Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); + } + else if(v=="o26") + { + if (stack.length % 2) { + x += stack.shift(); + } + + while (stack.length > 0) { + c1x = x; + c1y = y + stack.shift(); + c2x = c1x + stack.shift(); + c2y = c1y + stack.shift(); + x = c2x; + y = c2y + stack.shift(); + Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); + } + + } + else if(v=="o27") + { + if (stack.length % 2) { + y += stack.shift(); + } + + while (stack.length > 0) { + c1x = x + stack.shift(); + c1y = y; + c2x = c1x + stack.shift(); + c2y = c1y + stack.shift(); + x = c2x + stack.shift(); + y = c2y; + Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); + } + } + else if(v=="o10" || v=="o29") // callsubr || callgsubr + { + var obj = (v=="o10" ? pdct : font); + if(stack.length==0) { console.log("error: empty stack"); } + else { + var ind = stack.pop(); + var subr = obj.Subrs[ ind + obj.Bias ]; + state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open; + Typr.U._drawCFF(subr, state,font,pdct,p); + x=state.x; y=state.y; nStems=state.nStems; haveWidth=state.haveWidth; width=state.width; open=state.open; + } + } + else if(v=="o30" || v=="o31") // vhcurveto || hvcurveto + { + var count, count1 = stack.length; + var index = 0; + var alternate = v == "o31"; + + count = count1 & ~2; + index += count1 - count; + + while ( index < count ) + { + if(alternate) + { + c1x = x + stack.shift(); + c1y = y; + c2x = c1x + stack.shift(); + c2y = c1y + stack.shift(); + y = c2y + stack.shift(); + if(count-index == 5) { x = c2x + stack.shift(); index++; } + else x = c2x; + alternate = false; + } + else + { + c1x = x; + c1y = y + stack.shift(); + c2x = c1x + stack.shift(); + c2y = c1y + stack.shift(); + x = c2x + stack.shift(); + if(count-index == 5) { y = c2y + stack.shift(); index++; } + else y = c2y; + alternate = true; + } + Typr.U.P.curveTo(p, c1x, c1y, c2x, c2y, x, y); + index += 4; + } + } + + else if((v+"").charAt(0)=="o") { console.log("Unknown operation: "+v, cmds); throw v; } + else stack.push(v); + } + //console.log(cmds); + state.x=x; state.y=y; state.nStems=nStems; state.haveWidth=haveWidth; state.width=width; state.open=open; +} + +var UZIP = {}; + + +UZIP["parse"] = function(buf, onlyNames) // ArrayBuffer +{ + var rUs = UZIP.bin.readUshort, rUi = UZIP.bin.readUint, o = 0, out = {}; + var data = new Uint8Array(buf); + var eocd = data.length-4; + + while(rUi(data, eocd)!=0x06054b50) eocd--; + + var o = eocd; + o+=4; // sign = 0x06054b50 + o+=4; // disks = 0; + var cnu = rUs(data, o); o+=2; + var cnt = rUs(data, o); o+=2; + + var csize = rUi(data, o); o+=4; + var coffs = rUi(data, o); o+=4; + + o = coffs; + for(var i=0; i8514000) { + //console.log(PUtils.readASCII(buf , 8514500, 500)); + //console.log(PUtils.readASCII(nbuf, 8514500, 500)); + } + for(var i=0; i>>4); + //console.log(CM, CINFO,CMF,FLG); + return UZIP.inflateRaw(new Uint8Array(file.buffer, file.byteOffset+2, file.length-6), buf); +} +UZIP.deflate = function(data, opts/*, buf, off*/) { + if(opts==null) opts={level:6}; + var off=0, buf=new Uint8Array(50+Math.floor(data.length*1.1)); + buf[off]=120; buf[off+1]=156; off+=2; + off = UZIP.F.deflateRaw(data, buf, off, opts.level); + var crc = UZIP.adler(data, 0, data.length); + buf[off+0]=((crc>>>24)&255); + buf[off+1]=((crc>>>16)&255); + buf[off+2]=((crc>>> 8)&255); + buf[off+3]=((crc>>> 0)&255); + return new Uint8Array(buf.buffer, 0, off+4); +} +UZIP.deflateRaw = function(data, opts) { + if(opts==null) opts={level:6}; + var buf=new Uint8Array(50+Math.floor(data.length*1.1)); + var off = UZIP.F.deflateRaw(data, buf, off, opts.level); + return new Uint8Array(buf.buffer, 0, off); +} + + +UZIP.encode = function(obj) { + var tot = 0, wUi = UZIP.bin.writeUint, wUs = UZIP.bin.writeUshort; + var zpd = {}; + for(var p in obj) { var cpr = !UZIP._noNeed(p), buf = obj[p], crc = UZIP.crc.crc(buf,0,buf.length); + zpd[p] = { cpr:cpr, usize:buf.length, crc:crc, file: (cpr ? UZIP.deflateRaw(buf) : buf) }; } + + for(var p in zpd) tot += zpd[p].file.length + 30 + 46 + 2*UZIP.bin.sizeUTF8(p); + tot += 22; + + var data = new Uint8Array(tot), o = 0; + var fof = [] + + for(var p in zpd) { + var file = zpd[p]; fof.push(o); + o = UZIP._writeHeader(data, o, p, file, 0); + } + var i=0, ioff = o; + for(var p in zpd) { + var file = zpd[p]; fof.push(o); + o = UZIP._writeHeader(data, o, p, file, 1, fof[i++]); + } + var csize = o-ioff; + + wUi(data, o, 0x06054b50); o+=4; + o += 4; // disks + wUs(data, o, i); o += 2; + wUs(data, o, i); o += 2; // number of c d records + wUi(data, o, csize); o += 4; + wUi(data, o, ioff ); o += 4; + o += 2; + return data.buffer; +} +// no need to compress .PNG, .ZIP, .JPEG .... +UZIP._noNeed = function(fn) { var ext = fn.split(".").pop().toLowerCase(); return "png,jpg,jpeg,zip".indexOf(ext)!=-1; } + +UZIP._writeHeader = function(data, o, p, obj, t, roff) +{ + var wUi = UZIP.bin.writeUint, wUs = UZIP.bin.writeUshort; + var file = obj.file; + + wUi(data, o, t==0 ? 0x04034b50 : 0x02014b50); o+=4; // sign + if(t==1) o+=2; // ver made by + wUs(data, o, 20); o+=2; // ver + wUs(data, o, 0); o+=2; // gflip + wUs(data, o, obj.cpr?8:0); o+=2; // cmpr + + wUi(data, o, 0); o+=4; // time + wUi(data, o, obj.crc); o+=4; // crc32 + wUi(data, o, file.length); o+=4; // csize + wUi(data, o, obj.usize); o+=4; // usize + + wUs(data, o, UZIP.bin.sizeUTF8(p)); o+=2; // nlen + wUs(data, o, 0); o+=2; // elen + + if(t==1) { + o += 2; // comment length + o += 2; // disk number + o += 6; // attributes + wUi(data, o, roff); o+=4; // usize + } + var nlen = UZIP.bin.writeUTF8(data, o, p); o+= nlen; + if(t==0) { data.set(file, o); o += file.length; } + return o; +} + + + + + +UZIP.crc = { + table : ( function() { + var tab = new Uint32Array(256); + for (var n=0; n<256; n++) { + var c = n; + for (var k=0; k<8; k++) { + if (c & 1) c = 0xedb88320 ^ (c >>> 1); + else c = c >>> 1; + } + tab[n] = c; } + return tab; })(), + update : function(c, buf, off, len) { + for (var i=0; i>> 8); + return c; + }, + crc : function(b,o,l) { return UZIP.crc.update(0xffffffff,b,o,l) ^ 0xffffffff; } +} +UZIP.adler = function(data,o,len) { + var a = 1, b = 0; + var off = o, end=o+len; + while(off>8)&255; }, + readUint : function(buff,p) { return (buff[p+3]*(256*256*256)) + ((buff[p+2]<<16) | (buff[p+1]<< 8) | buff[p]); }, + writeUint : function(buff,p,n){ buff[p]=n&255; buff[p+1]=(n>>8)&255; buff[p+2]=(n>>16)&255; buff[p+3]=(n>>24)&255; }, + readASCII : function(buff,p,l){ var s = ""; for(var i=0; i> 6)); buff[p+i+1] = (128|((code>> 0)&63)); i+=2; } + else if((code&(0xffffffff-(1<<16)+1))==0) { buff[p+i] = (224|(code>>12)); buff[p+i+1] = (128|((code>> 6)&63)); buff[p+i+2] = (128|((code>>0)&63)); i+=3; } + else if((code&(0xffffffff-(1<<21)+1))==0) { buff[p+i] = (240|(code>>18)); buff[p+i+1] = (128|((code>>12)&63)); buff[p+i+2] = (128|((code>>6)&63)); buff[p+i+3] = (128|((code>>0)&63)); i+=4; } + else throw "e"; + } + return i; + }, + sizeUTF8 : function(str) { + var strl = str.length, i=0; + for(var ci=0; ci>>3; + } + + var lits = U.lits, strt=U.strt, prev=U.prev, li=0, lc=0, bs=0, ebits=0, c=0, nc=0; // last_item, literal_count, block_start + if(dlen>2) { nc=UZIP.F._hash(data,0); strt[nc]=0; } + var nmch=0,nmci=0; + + for(i=0; i14000 || lc>26697) { + if(cvrd>>16)>>16)>(mch>>>16)) mch=0; + }//*/ + var len = mch>>>16, dst = mch&0xffff; //if(i-dst<0) throw "e"; + if(mch!=0) { + var len = mch>>>16, dst = mch&0xffff; //if(i-dst<0) throw "e"; + var lgi = goodIndex(len, U.of0); U.lhst[257+lgi]++; + var dgi = goodIndex(dst, U.df0); U.dhst[ dgi]++; ebits += U.exb[lgi] + U.dxb[dgi]; + lits[li] = (len<<23)|(i-cvrd); lits[li+1] = (dst<<16)|(lgi<<8)|dgi; li+=2; + cvrd = i + len; + } + else { U.lhst[data[i]]++; } + lc++; + } + } + if(bs!=i || data.length==0) { + if(cvrd>>3; +} +UZIP.F._bestMatch = function(data, i, prev, c, nice, chain) { + var ci = (i&0x7fff), pi=prev[ci]; + //console.log("----", i); + var dif = ((ci-pi + (1<<15)) & 0x7fff); if(pi==ci || c!=UZIP.F._hash(data,i-dif)) return 0; + var tl=0, td=0; // top length, top distance + var dlim = Math.min(0x7fff, i); + while(dif<=dlim && --chain!=0 && pi!=ci /*&& c==UZIP.F._hash(data,i-dif)*/) { + if(tl==0 || (data[i+tl]==data[i+tl-dif])) { + var cl = UZIP.F._howLong(data, i, dif); + if(cl>tl) { + tl=cl; td=dif; if(tl>=nice) break; //* + if(dif+2maxd) { maxd=curd; pi = ei; } + } //*/ + } + } + + ci=pi; pi = prev[ci]; + dif += ((ci-pi + (1<<15)) & 0x7fff); + } + return (tl<<16)|td; +} +UZIP.F._howLong = function(data, i, dif) { + if(data[i]!=data[i-dif] || data[i+1]!=data[i+1-dif] || data[i+2]!=data[i+2-dif]) return 0; + var oi=i, l = Math.min(data.length, i+258); i+=3; + //while(i+4>>23), end = off+(qb&((1<<23)-1)); + while(off>16), lgi=(qc>>8)&255, dgi=(qc&255); + pos = UZIP.F._writeLit(257+lgi, ltree, out, pos); + putsE(out, pos, len-U.of0[lgi]); pos+=U.exb[lgi]; + + pos = UZIP.F._writeLit(dgi, dtree, out, pos); + putsF(out, pos, dst-U.df0[dgi]); pos+=U.dxb[dgi]; off+=len; + } + } + pos = UZIP.F._writeLit(256, ltree, out, pos); + } + //console.log(pos-opos, fxdSize, dynSize, cstSize); + return pos; +} +UZIP.F._copyExact = function(data,off,len,out,pos) { + var p8 = (pos>>>3); + out[p8]=(len); out[p8+1]=(len>>>8); out[p8+2]=255-out[p8]; out[p8+3]=255-out[p8+1]; p8+=4; + out.set(new Uint8Array(data.buffer, off, len), p8); + //for(var i=0; i4 && U.itree[(U.ordr[numh-1]<<1)+1]==0) numh--; + return [ML, MD, MH, numl, numd, numh, lset, dset]; +} +UZIP.F.getSecond= function(a) { var b=[]; for(var i=0; i>1)+","; return b; } +UZIP.F.contSize = function(tree, hst) { var s=0; for(var i=0; i15) { UZIP.F._putsE(out, pos, rst, rsl); pos+=rsl; } + } + return pos; +} +UZIP.F._lenCodes = function(tree, set) { + var len=tree.length; while(len!=2 && tree[len-1]==0) len-=2; // when no distances, keep one code with length 0 + for(var i=0; i>>1, 138); + if(zc<11) set.push(17, zc-3); + else set.push(18, zc-11); + i += zc*2-2; + } + else if(l==prv && nxt==l && nnxt==l) { + var lz = i+5; + while(lz+2>>1, 6); + set.push(16, zc-3); + i += zc*2-2; + } + else set.push(l, 0); + } + return len>>>1; +} +UZIP.F._hufTree = function(hst, tree, MAXL) { + var list=[], hl = hst.length, tl=tree.length, i=0; + for(i=0; iMAXL) { UZIP.F.restrictDepth(l2, MAXL, maxl); maxl = MAXL; } + for(i=0; iMD) { var od=dps[i].d; dps[i].d=MD; dbt+=bCost-(1<<(maxl-od)); } else break; + dbt = dbt>>>(maxl-MD); + while(dbt>0) { var od=dps[i].d; if(od=0; i--) if(dps[i].d==MD && dbt<0) { dps[i].d--; dbt++; } if(dbt!=0) console.log("debt left"); +} + +UZIP.F._goodIndex = function(v, arr) { + var i=0; if(arr[i|16]<=v) i|=16; if(arr[i|8]<=v) i|=8; if(arr[i|4]<=v) i|=4; if(arr[i|2]<=v) i|=2; if(arr[i|1]<=v) i|=1; return i; +} +UZIP.F._writeLit = function(ch, ltree, out, pos) { + UZIP.F._putsF(out, pos, ltree[ch<<1]); + return pos+ltree[(ch<<1)+1]; +} + + + + + + + + +UZIP.F.inflate = function(data, buf) { + var u8=Uint8Array; + if(data[0]==3 && data[1]==0) return (buf ? buf : new u8(0)); + var F=UZIP.F, bitsF = F._bitsF, bitsE = F._bitsE, decodeTiny = F._decodeTiny, makeCodes = F.makeCodes, codes2map=F.codes2map, get17 = F._get17; + var U = F.U; + + var noBuf = (buf==null); + if(noBuf) buf = new u8((data.length>>>2)<<3); + + var BFINAL=0, BTYPE=0, HLIT=0, HDIST=0, HCLEN=0, ML=0, MD=0; + var off = 0, pos = 0; + var lmap, dmap; + + while(BFINAL==0) { + BFINAL = bitsF(data, pos , 1); + BTYPE = bitsF(data, pos+1, 2); pos+=3; + //console.log(BFINAL, BTYPE); + + if(BTYPE==0) { + if((pos&7)!=0) pos+=8-(pos&7); + var p8 = (pos>>>3)+4, len = data[p8-4]|(data[p8-3]<<8); //console.log(len);//bitsF(data, pos, 16), + if(noBuf) buf=UZIP.F._check(buf, off+len); + buf.set(new u8(data.buffer, data.byteOffset+p8, len), off); + //for(var i=0; itl)tl=l; } pos+=3*HCLEN; //console.log(itree); + makeCodes(U.itree, tl); + codes2map(U.itree, tl, U.imap); + + lmap = U.lmap; dmap = U.dmap; + + pos = decodeTiny(U.imap, (1<>>24))-1; pos+=(ml&0xffffff); + makeCodes(U.ltree, mx0); + codes2map(U.ltree, mx0, lmap); + + //var md = decodeTiny(U.imap, (1<>>24))-1; pos+=(md&0xffffff); + makeCodes(U.dtree, mx1); + codes2map(U.dtree, mx1, dmap); + } + //var ooff=off, opos=pos; + while(true) { + var code = lmap[get17(data, pos) & ML]; pos += code&15; + var lit = code>>>4; //U.lhst[lit]++; + if((lit>>>8)==0) { buf[off++] = lit; } + else if(lit==256) { break; } + else { + var end = off+lit-254; + if(lit>264) { var ebs = U.ldef[lit-257]; end = off + (ebs>>>3) + bitsE(data, pos, ebs&7); pos += ebs&7; } + //UZIP.F.dst[end-off]++; + + var dcode = dmap[get17(data, pos) & MD]; pos += dcode&15; + var dlit = dcode>>>4; + var dbs = U.ddef[dlit], dst = (dbs>>>4) + bitsF(data, pos, dbs&15); pos += dbs&15; + + //var o0 = off-dst, stp = Math.min(end-off, dst); + //if(stp>20) while(off>>3); + } + //console.log(UZIP.F.dst); + //console.log(tlen, dlen, off-tlen+tcnt); + return buf.length==off ? buf : buf.slice(0,off); +} +UZIP.F._check=function(buf, len) { + var bl=buf.length; if(len<=bl) return buf; + var nbuf = new Uint8Array(bl<<1); nbuf.set(buf,0); + //for(var i=0; i>>4; + if(lit<=15) { tree[i]=lit; i++; } + else { + var ll = 0, n = 0; + if(lit==16) { + n = (3 + bitsE(data, pos, 2)); pos += 2; ll = tree[i-1]; + } + else if(lit==17) { + n = (3 + bitsE(data, pos, 3)); pos += 3; + } + else if(lit==18) { + n = (11 + bitsE(data, pos, 7)); pos += 7; + } + var ni = i+n; + while(i>>1; + while(imx)mx=v; i++; } + while(i>1; + var cl = tree[i+1], val = (lit<<4)|cl; // : (0x8000 | (U.of0[lit-257]<<7) | (U.exb[lit-257]<<4) | cl); + var rest = (MAX_BITS-cl), i0 = tree[i]<>>(15-MAX_BITS); + while(i0!=i1) { + var p0 = r15[i0]>>>(15-MAX_BITS); + map[p0]=val; i0++; + } + } +} +UZIP.F.revCodes = function(tree, MAX_BITS) { + var r15 = UZIP.F.U.rev15, imb = 15-MAX_BITS; + for(var i=0; i>>imb; } +} + +UZIP.F._putsE= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); } +UZIP.F._putsF= function(dt, pos, val ) { val = val<<(pos&7); var o=(pos>>>3); dt[o]|=val; dt[o+1]|=(val>>>8); dt[o+2]|=(val>>>16); } + +UZIP.F._bitsE= function(dt, pos, length) { return ((dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) )>>>(pos&7))&((1<>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16))>>>(pos&7))&((1<>>3] | (dt[(pos>>>3)+1]<<8))>>>(pos&7))&511; +} */ +UZIP.F._get17= function(dt, pos) { // return at least 17 meaningful bytes + return (dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16) )>>>(pos&7); +} +UZIP.F._get25= function(dt, pos) { // return at least 17 meaningful bytes + return (dt[pos>>>3] | (dt[(pos>>>3)+1]<<8) | (dt[(pos>>>3)+2]<<16) | (dt[(pos>>>3)+3]<<24) )>>>(pos&7); +} +UZIP.F.U = function(){ + var u16=Uint16Array, u32=Uint32Array; + return { + next_code : new u16(16), + bl_count : new u16(16), + ordr : [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ], + of0 : [3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999], + exb : [0,0,0,0,0,0,0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 0, 0, 0], + ldef : new u16(32), + df0 : [1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577, 65535, 65535], + dxb : [0,0,0,0,1,1,2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 0, 0], + ddef : new u32(32), + flmap: new u16( 512), fltree: [], + fdmap: new u16( 32), fdtree: [], + lmap : new u16(32768), ltree : [], ttree:[], + dmap : new u16(32768), dtree : [], + imap : new u16( 512), itree : [], + //rev9 : new u16( 512) + rev15: new u16(1<<15), + lhst : new u32(286), dhst : new u32( 30), ihst : new u32(19), + lits : new u32(15000), + strt : new u16(1<<16), + prev : new u16(1<<15) + }; +} (); + +(function(){ + var U = UZIP.F.U; + var len = 1<<15; + for(var i=0; i>> 1) | ((x & 0x55555555) << 1)); + x = (((x & 0xcccccccc) >>> 2) | ((x & 0x33333333) << 2)); + x = (((x & 0xf0f0f0f0) >>> 4) | ((x & 0x0f0f0f0f) << 4)); + x = (((x & 0xff00ff00) >>> 8) | ((x & 0x00ff00ff) << 8)); + U.rev15[i] = (((x >>> 16) | (x << 16)))>>>17; + } + + function pushV(tgt, n, sv) { while(n--!=0) tgt.push(0,sv); } + + for(var i=0; i<32; i++) { U.ldef[i]=(U.of0[i]<<3)|U.exb[i]; U.ddef[i]=(U.df0[i]<<4)|U.dxb[i]; } + + pushV(U.fltree, 144, 8); pushV(U.fltree, 255-143, 9); pushV(U.fltree, 279-255, 7); pushV(U.fltree,287-279,8); + /* + var i = 0; + for(; i<=143; i++) U.fltree.push(0,8); + for(; i<=255; i++) U.fltree.push(0,9); + for(; i<=279; i++) U.fltree.push(0,7); + for(; i<=287; i++) U.fltree.push(0,8); + */ + UZIP.F.makeCodes(U.fltree, 9); + UZIP.F.codes2map(U.fltree, 9, U.flmap); + UZIP.F.revCodes (U.fltree, 9) + + pushV(U.fdtree,32,5); + //for(i=0;i<32; i++) U.fdtree.push(0,5); + UZIP.F.makeCodes(U.fdtree, 5); + UZIP.F.codes2map(U.fdtree, 5, U.fdmap); + UZIP.F.revCodes (U.fdtree, 5) + + pushV(U.itree,19,0); pushV(U.ltree,286,0); pushV(U.dtree,30,0); pushV(U.ttree,320,0); + /* + for(var i=0; i< 19; i++) U.itree.push(0,0); + for(var i=0; i<286; i++) U.ltree.push(0,0); + for(var i=0; i< 30; i++) U.dtree.push(0,0); + for(var i=0; i<320; i++) U.ttree.push(0,0); + */ +})() + + +var paper=function(t,e){var i=(t=t||require("./node/self.js")).window,n=t.document,r=new function(){function t(t,e,r,s,a){function u(n,u){"string"==typeof(u=u||(u=o(e,n))&&(u.get?u:u.value))&&"#"===u[0]&&(u=t[u.substring(1)]||u);var c,f="function"==typeof u,d=u,_=a||f&&!u.base?u&&u.get?n in t:t[n]:null;a&&_||(f&&_&&(u.base=_),f&&!1!==s&&(c=n.match(/^([gs]et|is)(([A-Z])(.*))$/))&&(l[c[3].toLowerCase()+c[4]]=c[2]),d&&!f&&d.get&&"function"==typeof d.get&&i.isPlainObject(d)||(d={value:d,writable:!0}),(o(t,n)||{configurable:!0}).configurable&&(d.configurable=!0,d.enumerable=null!=r?r:!c),h(t,n,d))}var l={};if(e){for(var c in e)e.hasOwnProperty(c)&&!n.test(c)&&u(c);for(var c in l){var f=l[c],d=t["set"+f],_=t["get"+f]||d&&t["is"+f];!_||!0!==s&&0!==_.length||u(c,{get:_,set:d})}}return t}function i(){for(var t=0,e=arguments.length;t0||u+s0?[["dictionary",n.definitions],s]:s},deserialize:function(t,e,i,n,s){var a=t,o=!i,h=o&&t&&t.length&&"dictionary"===t[0][0];if(i=i||{},Array.isArray(t)){var u=t[0],l="dictionary"===u;if(1==t.length&&/^#/.test(u))return i.dictionary[u];a=[];for(var c=(u=r.exports[u])?1:0,f=t.length;ct.length&&(n=t.length);for(u=0;u0){var s=e[r],a=s&&s[n];a&&a.call(this,r)}},statics:{inject:function t(e){var i=e._events;if(i){var n={};r.each(i,function(t,i){var s="string"==typeof t,a=s?t:i,o=r.capitalize(a),h=a.substring(2).toLowerCase();n[h]=s?{}:t,a="_"+a,e["get"+o]=function(){return this[a]},e["set"+o]=function(t){var e=this[a];e&&this.off(h,e),t&&this.on(h,t),this[a]=t}}),e._eventTypes=n}return t.base.apply(this,arguments)}}},a=r.extend({_class:"PaperScope",initialize:function e(){paper=this,this.settings=new r({applyMatrix:!0,insertItems:!0,handleSize:4,hitTolerance:0}),this.project=null,this.projects=[],this.tools=[],this._id=e._id++,e._scopes[this._id]=this;var i=e.prototype;if(!this.support){var n=Q.getContext(1,1)||{};i.support={nativeDash:"setLineDash"in n||"mozDash"in n,nativeBlendModes:tt.nativeModes},Q.release(n)}if(!this.agent){var s=t.navigator.userAgent.toLowerCase(),a=(/(darwin|win|mac|linux|freebsd|sunos)/.exec(s)||[])[0],o="darwin"===a?"mac":a,h=i.agent=i.browser={platform:o};o&&(h[o]=!0),s.replace(/(opera|chrome|safari|webkit|firefox|msie|trident|atom|node)\/?\s*([.\d]+)(?:.*version\/([.\d]+))?(?:.*rv\:v?([.\d]+))?/g,function(t,e,i,n,r){if(!h.chrome){var s="opera"===e?n:/^(node|trident)$/.test(e)?r:i;h.version=s,h.versionNumber=parseFloat(s),e="trident"===e?"msie":e,h.name=e,h[e]=!0}}),h.chrome&&delete h.webkit,h.atom&&delete h.chrome}},version:"0.11.5",getView:function(){var t=this.project;return t&&t._view},getPaper:function(){return this},execute:function(t,e){paper.PaperScript.execute(t,this,e),U.updateFocus()},install:function(t){var e=this;r.each(["project","view","tool"],function(i){r.define(t,i,{configurable:!0,get:function(){return e[i]}})});for(var i in this)!/^_/.test(i)&&this[i]&&(t[i]=this[i])},setup:function(t){return paper=this,this.project=new y(t),this},createCanvas:function(t,e){return Q.getCanvas(t,e)},activate:function(){paper=this},clear:function(){for(var t=this.projects,e=this.tools,i=t.length-1;i>=0;i--)t[i].remove();for(i=e.length-1;i>=0;i--)e[i].remove()},remove:function(){this.clear(),delete a._scopes[this._id]},statics:new function(){function t(t){return t+="Attribute",function(e,i){return e[t](i)||e[t]("data-paper-"+i)}}return{_scopes:{},_id:0,get:function(t){return this._scopes[t]||null},getAttribute:t("get"),hasAttribute:t("has")}}}),o=r.extend(s,{initialize:function(t){this._scope=paper,this._index=this._scope[this._list].push(this)-1,!t&&this._scope[this._reference]||this.activate()},activate:function(){if(!this._scope)return!1;var t=this._scope[this._reference];return t&&t!==this&&t.emit("deactivate"),this._scope[this._reference]=this,this.emit("activate",t),!0},isActive:function(){return this._scope[this._reference]===this},remove:function(){return null!=this._index&&(r.splice(this._scope[this._list],null,this._index,1),this._scope[this._reference]==this&&(this._scope[this._reference]=null),this._scope=null,!0)},getView:function(){return this._scope.getView()}}),h=r.extend({initialize:function(t){this.precision=r.pick(t,5),this.multiplier=Math.pow(10,this.precision)},number:function(t){return this.precision<16?Math.round(t*this.multiplier)/this.multiplier:t},pair:function(t,e,i){return this.number(t)+(i||",")+this.number(e)},point:function(t,e){return this.number(t.x)+(e||",")+this.number(t.y)},size:function(t,e){return this.number(t.width)+(e||",")+this.number(t.height)},rectangle:function(t,e){return this.point(t,e)+(e||",")+this.size(t,e)}});h.instance=new h;var u=new function(){function t(t,e,i){return ti?i:t}function e(t,e,i){function n(t){var e=134217729*t,i=t-e+e;return[i,t-i]}var r=e*e-t*i,a=e*e+t*i;if(3*s(r)1e8)?o(2,-Math.round(h(t))):0}var n=[[.5773502691896257],[0,.7745966692414834],[.33998104358485626,.8611363115940526],[0,.5384693101056831,.906179845938664],[.2386191860831969,.6612093864662645,.932469514203152],[0,.4058451513773972,.7415311855993945,.9491079123427585],[.1834346424956498,.525532409916329,.7966664774136267,.9602898564975363],[0,.3242534234038089,.6133714327005904,.8360311073266358,.9681602395076261],[.14887433898163122,.4333953941292472,.6794095682990244,.8650633666889845,.9739065285171717],[0,.26954315595234496,.5190961292068118,.7301520055740494,.8870625997680953,.978228658146057],[.1252334085114689,.3678314989981802,.5873179542866175,.7699026741943047,.9041172563704749,.9815606342467192],[0,.2304583159551348,.44849275103644687,.6423493394403402,.8015780907333099,.9175983992229779,.9841830547185881],[.10805494870734367,.31911236892788974,.5152486363581541,.6872929048116855,.827201315069765,.9284348836635735,.9862838086968123],[0,.20119409399743451,.3941513470775634,.5709721726085388,.7244177313601701,.8482065834104272,.937273392400706,.9879925180204854],[.09501250983763744,.2816035507792589,.45801677765722737,.6178762444026438,.755404408355003,.8656312023878318,.9445750230732326,.9894009349916499]],r=[[1],[.8888888888888888,.5555555555555556],[.6521451548625461,.34785484513745385],[.5688888888888889,.47862867049936647,.23692688505618908],[.46791393457269104,.3607615730481386,.17132449237917036],[.4179591836734694,.3818300505051189,.27970539148927664,.1294849661688697],[.362683783378362,.31370664587788727,.22238103445337448,.10122853629037626],[.3302393550012598,.31234707704000286,.26061069640293544,.1806481606948574,.08127438836157441],[.29552422471475287,.26926671930999635,.21908636251598204,.1494513491505806,.06667134430868814],[.2729250867779006,.26280454451024665,.23319376459199048,.18629021092773426,.1255803694649046,.05566856711617366],[.24914704581340277,.2334925365383548,.20316742672306592,.16007832854334622,.10693932599531843,.04717533638651183],[.2325515532308739,.22628318026289723,.2078160475368885,.17814598076194574,.13887351021978725,.09212149983772845,.04048400476531588],[.2152638534631578,.2051984637212956,.18553839747793782,.15720316715819355,.12151857068790319,.08015808715976021,.03511946033175186],[.2025782419255613,.19843148532711158,.1861610000155622,.16626920581699392,.13957067792615432,.10715922046717194,.07036604748810812,.03075324199611727],[.1894506104550685,.18260341504492358,.16915651939500254,.14959598881657674,.12462897125553388,.09515851168249279,.062253523938647894,.027152459411754096]],s=Math.abs,a=Math.sqrt,o=Math.pow,h=Math.log2||function(t){return Math.log(t)*Math.LOG2E};return{EPSILON:1e-12,MACHINE_EPSILON:1.12e-16,CURVETIME_EPSILON:1e-8,GEOMETRIC_EPSILON:1e-7,TRIGONOMETRIC_EPSILON:1e-8,KAPPA:4*(a(2)-1)/3,isZero:function(t){return t>=-1e-12&&t<=1e-12},clamp:t,integrate:function(t,e,i,s){for(var a=n[s-2],o=r[s-2],h=.5*(i-e),u=h+e,l=0,c=s+1>>1,f=1&s?o[l++]*t(u):0;l0?(a=n,n=f<=r?.5*(r+a):f):(r=n,n=f>=a?.5*(r+a):f)}return t(n,r,a)},solveQuadratic:function(n,r,o,h,u,l){var c,f=1/0;if(s(n)<1e-12){if(s(r)<1e-12)return s(o)<1e-12?-1:0;c=-o/r}else{var d=e(n,r*=-.5,o);if(d&&s(d)<1.12e-16){var _=i(s(n),s(r),s(o));_&&(d=e(n*=_,r*=_,o*=_))}if(d>=-1.12e-16){var g=d<0?0:a(d),v=r+(r<0?-g:g);0===v?f=-(c=o/n):(c=v/n,f=o/v)}}var p=0,m=null==u,y=u-1e-12,w=l+1e-12;return isFinite(c)&&(m||c>y&&cy&&f0?1.324717957244746*Math.max(x,a(C)):x,P=_-b*S;if(P!==_){do{d(P),P=0===p?_:_-m/p/(1+1.12e-16)}while(b*P>b*_);s(e)*_*_>s(h/_)&&(g=((v=-h/_)-r)/_)}}var I=u.solveQuadratic(e,g,v,l,c,f),M=null==c;return isFinite(_)&&(0===I||I>0&&_!==l[0]&&_!==l[1])&&(M||_>c-1e-12&&_1?a[1]:a[0])):"x"in a?this._set(a.x||0,a.y||0):"width"in a?this._set(a.width||0,a.height||0):"angle"in a?(this._set(a.length||0,0),this.setAngle(a.angle||0)):(this._set(0,0),r=0)}return n&&(this.__read=r),this},set:"#initialize",_set:function(t,e){return this.x=t,this.y=e,this},equals:function(t){return this===t||t&&(this.x===t.x&&this.y===t.y||Array.isArray(t)&&this.x===t[0]&&this.y===t[1])||!1},clone:function(){return new c(this.x,this.y)},toString:function(){var t=h.instance;return"{ x: "+t.number(this.x)+", y: "+t.number(this.y)+" }"},_serialize:function(t){var e=t.formatter;return[e.number(this.x),e.number(this.y)]},getLength:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},setLength:function(t){if(this.isZero()){var e=this._angle||0;this._set(Math.cos(e)*t,Math.sin(e)*t)}else{var i=t/this.getLength();u.isZero(i)&&this.getAngle(),this._set(this.x*i,this.y*i)}},getAngle:function(){return 180*this.getAngleInRadians.apply(this,arguments)/Math.PI},setAngle:function(t){this.setAngleInRadians.call(this,t*Math.PI/180)},getAngleInDegrees:"#getAngle",setAngleInDegrees:"#setAngle",getAngleInRadians:function(){if(arguments.length){var t=c.read(arguments),e=this.getLength()*t.getLength();if(u.isZero(e))return NaN;var i=this.dot(t)/e;return Math.acos(i<-1?-1:i>1?1:i)}return this.isZero()?this._angle||0:this._angle=Math.atan2(this.y,this.x)},setAngleInRadians:function(t){if(this._angle=t,!this.isZero()){var e=this.getLength();this._set(Math.cos(t)*e,Math.sin(t)*e)}},getQuadrant:function(){return this.x>=0?this.y>=0?1:4:this.y>=0?2:3}},{beans:!1,getDirectedAngle:function(){var t=c.read(arguments);return 180*Math.atan2(this.cross(t),this.dot(t))/Math.PI},getDistance:function(){var t=c.read(arguments),e=t.x-this.x,i=t.y-this.y,n=e*e+i*i;return r.read(arguments)?n:Math.sqrt(n)},normalize:function(t){t===e&&(t=1);var i=this.getLength(),n=0!==i?t/i:0,r=new c(this.x*n,this.y*n);return n>=0&&(r._angle=this._angle),r},rotate:function(t,e){if(0===t)return this.clone();t=t*Math.PI/180;var i=e?this.subtract(e):this,n=Math.sin(t),r=Math.cos(t);return i=new c(i.x*r-i.y*n,i.x*n+i.y*r),e?i.add(e):i},transform:function(t){return t?t._transformPoint(this):this},add:function(){var t=c.read(arguments);return new c(this.x+t.x,this.y+t.y)},subtract:function(){var t=c.read(arguments);return new c(this.x-t.x,this.y-t.y)},multiply:function(){var t=c.read(arguments);return new c(this.x*t.x,this.y*t.y)},divide:function(){var t=c.read(arguments);return new c(this.x/t.x,this.y/t.y)},modulo:function(){var t=c.read(arguments);return new c(this.x%t.x,this.y%t.y)},negate:function(){return new c(-this.x,-this.y)},isInside:function(){return g.read(arguments).contains(this)},isClose:function(){var t=c.read(arguments),e=r.read(arguments);return this.getDistance(t)<=e},isCollinear:function(){var t=c.read(arguments);return c.isCollinear(this.x,this.y,t.x,t.y)},isColinear:"#isCollinear",isOrthogonal:function(){var t=c.read(arguments);return c.isOrthogonal(this.x,this.y,t.x,t.y)},isZero:function(){var t=u.isZero;return t(this.x)&&t(this.y)},isNaN:function(){return isNaN(this.x)||isNaN(this.y)},isInQuadrant:function(t){return this.x*(t>1&&t<4?-1:1)>=0&&this.y*(t>2?-1:1)>=0},dot:function(){var t=c.read(arguments);return this.x*t.x+this.y*t.y},cross:function(){var t=c.read(arguments);return this.x*t.y-this.y*t.x},project:function(){var t=c.read(arguments),e=t.isZero()?0:this.dot(t)/t.dot(t);return new c(t.x*e,t.y*e)},statics:{min:function(){var t=c.read(arguments),e=c.read(arguments);return new c(Math.min(t.x,e.x),Math.min(t.y,e.y))},max:function(){var t=c.read(arguments),e=c.read(arguments);return new c(Math.max(t.x,e.x),Math.max(t.y,e.y))},random:function(){return new c(Math.random(),Math.random())},isCollinear:function(t,e,i,n){return Math.abs(t*n-e*i)<=1e-8*Math.sqrt((t*t+e*e)*(i*i+n*n))},isOrthogonal:function(t,e,i,n){return Math.abs(t*i+e*n)<=1e-8*Math.sqrt((t*t+e*e)*(i*i+n*n))}}},r.each(["round","ceil","floor","abs"],function(t){var e=Math[t];this[t]=function(){return new c(e(this.x),e(this.y))}},{})),f=c.extend({initialize:function(t,e,i,n){this._x=t,this._y=e,this._owner=i,this._setter=n},_set:function(t,e,i){return this._x=t,this._y=e,i||this._owner[this._setter](this),this},getX:function(){return this._x},setX:function(t){this._x=t,this._owner[this._setter](this)},getY:function(){return this._y},setY:function(t){this._y=t,this._owner[this._setter](this)},isSelected:function(){return!!(this._owner._selection&this._getSelection())},setSelected:function(t){this._owner._changeSelection(this._getSelection(),t)},_getSelection:function(){return"setPosition"===this._setter?4:0}}),d=r.extend({_class:"Size",_readIndex:!0,initialize:function(t,e){var i=typeof t,n=this.__read,r=0;if("number"===i){var s="number"==typeof e;this._set(t,s?e:t),n&&(r=s?2:1)}else if("undefined"===i||null===t)this._set(0,0),n&&(r=null===t?1:0);else{var a="string"===i?t.split(/[\s,]+/)||[]:t;r=1,Array.isArray(a)?this._set(+a[0],+(a.length>1?a[1]:a[0])):"width"in a?this._set(a.width||0,a.height||0):"x"in a?this._set(a.x||0,a.y||0):(this._set(0,0),r=0)}return n&&(this.__read=r),this},set:"#initialize",_set:function(t,e){return this.width=t,this.height=e,this},equals:function(t){return t===this||t&&(this.width===t.width&&this.height===t.height||Array.isArray(t)&&this.width===t[0]&&this.height===t[1])||!1},clone:function(){return new d(this.width,this.height)},toString:function(){var t=h.instance;return"{ width: "+t.number(this.width)+", height: "+t.number(this.height)+" }"},_serialize:function(t){var e=t.formatter;return[e.number(this.width),e.number(this.height)]},add:function(){var t=d.read(arguments);return new d(this.width+t.width,this.height+t.height)},subtract:function(){var t=d.read(arguments);return new d(this.width-t.width,this.height-t.height)},multiply:function(){var t=d.read(arguments);return new d(this.width*t.width,this.height*t.height)},divide:function(){var t=d.read(arguments);return new d(this.width/t.width,this.height/t.height)},modulo:function(){var t=d.read(arguments);return new d(this.width%t.width,this.height%t.height)},negate:function(){return new d(-this.width,-this.height)},isZero:function(){var t=u.isZero;return t(this.width)&&t(this.height)},isNaN:function(){return isNaN(this.width)||isNaN(this.height)},statics:{min:function(t,e){return new d(Math.min(t.width,e.width),Math.min(t.height,e.height))},max:function(t,e){return new d(Math.max(t.width,e.width),Math.max(t.height,e.height))},random:function(){return new d(Math.random(),Math.random())}}},r.each(["round","ceil","floor","abs"],function(t){var e=Math[t];this[t]=function(){return new d(e(this.width),e(this.height))}},{})),_=d.extend({initialize:function(t,e,i,n){this._width=t,this._height=e,this._owner=i,this._setter=n},_set:function(t,e,i){return this._width=t,this._height=e,i||this._owner[this._setter](this),this},getWidth:function(){return this._width},setWidth:function(t){this._width=t,this._owner[this._setter](this)},getHeight:function(){return this._height},setHeight:function(t){this._height=t,this._owner[this._setter](this)}}),g=r.extend({_class:"Rectangle",_readIndex:!0,beans:!0,initialize:function(t,i,n,s){var a,o=typeof t;if("number"===o?(this._set(t,i,n,s),a=4):"undefined"===o||null===t?(this._set(0,0,0,0),a=null===t?1:0):1===arguments.length&&(Array.isArray(t)?(this._set.apply(this,t),a=1):t.x!==e||t.width!==e?(this._set(t.x||0,t.y||0,t.width||0,t.height||0),a=1):t.from===e&&t.to===e&&(this._set(0,0,0,0),r.filter(this,t),a=1)),a===e){var h,u,l=c.readNamed(arguments,"from"),f=r.peek(arguments),_=l.x,g=l.y;if(f&&f.x!==e||r.hasNamed(arguments,"to")){var v=c.readNamed(arguments,"to");h=v.x-_,u=v.y-g,h<0&&(_=v.x,h=-h),u<0&&(g=v.y,u=-u)}else{var p=d.read(arguments);h=p.width,u=p.height}this._set(_,g,h,u),a=arguments.__index;var m=arguments.__filtered;m&&(this.__filtered=m)}return this.__read&&(this.__read=a),this},set:"#initialize",_set:function(t,e,i,n){return this.x=t,this.y=e,this.width=i,this.height=n,this},clone:function(){return new g(this.x,this.y,this.width,this.height)},equals:function(t){var e=r.isPlainValue(t)?g.read(arguments):t;return e===this||e&&this.x===e.x&&this.y===e.y&&this.width===e.width&&this.height===e.height||!1},toString:function(){var t=h.instance;return"{ x: "+t.number(this.x)+", y: "+t.number(this.y)+", width: "+t.number(this.width)+", height: "+t.number(this.height)+" }"},_serialize:function(t){var e=t.formatter;return[e.number(this.x),e.number(this.y),e.number(this.width),e.number(this.height)]},getPoint:function(t){return new(t?c:f)(this.x,this.y,this,"setPoint")},setPoint:function(){var t=c.read(arguments);this.x=t.x,this.y=t.y},getSize:function(t){return new(t?d:_)(this.width,this.height,this,"setSize")},_fw:1,_fh:1,setSize:function(){var t=d.read(arguments),e=this._sx,i=this._sy,n=t.width,r=t.height;e&&(this.x+=(this.width-n)*e),i&&(this.y+=(this.height-r)*i),this.width=n,this.height=r,this._fw=this._fh=1},getLeft:function(){return this.x},setLeft:function(t){if(!this._fw){var e=t-this.x;this.width-=.5===this._sx?2*e:e}this.x=t,this._sx=this._fw=0},getTop:function(){return this.y},setTop:function(t){if(!this._fh){var e=t-this.y;this.height-=.5===this._sy?2*e:e}this.y=t,this._sy=this._fh=0},getRight:function(){return this.x+this.width},setRight:function(t){if(!this._fw){var e=t-this.x;this.width=.5===this._sx?2*e:e}this.x=t-this.width,this._sx=1,this._fw=0},getBottom:function(){return this.y+this.height},setBottom:function(t){if(!this._fh){var e=t-this.y;this.height=.5===this._sy?2*e:e}this.y=t-this.height,this._sy=1,this._fh=0},getCenterX:function(){return this.x+this.width/2},setCenterX:function(t){this._fw||.5===this._sx?this.x=t-this.width/2:(this._sx&&(this.x+=2*(t-this.x)*this._sx),this.width=2*(t-this.x)),this._sx=.5,this._fw=0},getCenterY:function(){return this.y+this.height/2},setCenterY:function(t){this._fh||.5===this._sy?this.y=t-this.height/2:(this._sy&&(this.y+=2*(t-this.y)*this._sy),this.height=2*(t-this.y)),this._sy=.5,this._fh=0},getCenter:function(t){return new(t?c:f)(this.getCenterX(),this.getCenterY(),this,"setCenter")},setCenter:function(){var t=c.read(arguments);return this.setCenterX(t.x),this.setCenterY(t.y),this},getArea:function(){return this.width*this.height},isEmpty:function(){return 0===this.width||0===this.height},contains:function(t){return t&&t.width!==e||4===(Array.isArray(t)?t:arguments).length?this._containsRectangle(g.read(arguments)):this._containsPoint(c.read(arguments))},_containsPoint:function(t){var e=t.x,i=t.y;return e>=this.x&&i>=this.y&&e<=this.x+this.width&&i<=this.y+this.height},_containsRectangle:function(t){var e=t.x,i=t.y;return e>=this.x&&i>=this.y&&e+t.width<=this.x+this.width&&i+t.height<=this.y+this.height},intersects:function(){var t=g.read(arguments),e=r.read(arguments)||0;return t.x+t.width>this.x-e&&t.y+t.height>this.y-e&&t.x=4&&(t[1]+=n?"Y":"X");var r=t[n?0:1],s=t[n?1:0],a="get"+r,o="get"+s,h="set"+r,u="set"+s,l="set"+i;this["get"+i]=function(t){return new(t?c:f)(this[a](),this[o](),this,l)},this[l]=function(){var t=c.read(arguments);this[h](t.x),this[u](t.y)}},{beans:!0})),v=g.extend({initialize:function(t,e,i,n,r,s){this._set(t,e,i,n,!0),this._owner=r,this._setter=s},_set:function(t,e,i,n,r){return this._x=t,this._y=e,this._width=i,this._height=n,r||this._owner[this._setter](this),this}},new function(){var t=g.prototype;return r.each(["x","y","width","height"],function(t){var e=r.capitalize(t),i="_"+t;this["get"+e]=function(){return this[i]},this["set"+e]=function(t){this[i]=t,this._dontNotify||this._owner[this._setter](this)}},r.each(["Point","Size","Center","Left","Top","Right","Bottom","CenterX","CenterY","TopLeft","TopRight","BottomLeft","BottomRight","LeftCenter","TopCenter","RightCenter","BottomCenter"],function(e){var i="set"+e;this[i]=function(){this._dontNotify=!0,t[i].apply(this,arguments),this._dontNotify=!1,this._owner[this._setter](this)}},{isSelected:function(){return!!(2&this._owner._selection)},setSelected:function(t){var e=this._owner;e._changeSelection&&e._changeSelection(2,t)}}))}),p=r.extend({_class:"Matrix",initialize:function t(e,i){var n=arguments.length,r=!0;if(n>=6?this._set.apply(this,arguments):1===n||2===n?e instanceof t?this._set(e._a,e._b,e._c,e._d,e._tx,e._ty,i):Array.isArray(e)?this._set.apply(this,i?e.concat([i]):e):r=!1:n?r=!1:this.reset(),!r)throw new Error("Unsupported matrix parameters");return this},set:"#initialize",_set:function(t,e,i,n,r,s,a){return this._a=t,this._b=e,this._c=i,this._d=n,this._tx=r,this._ty=s,a||this._changed(),this},_serialize:function(t,e){return r.serialize(this.getValues(),t,!0,e)},_changed:function(){var t=this._owner;t&&(t._applyMatrix?t.transform(null,!0):t._changed(9))},clone:function(){return new p(this._a,this._b,this._c,this._d,this._tx,this._ty)},equals:function(t){return t===this||t&&this._a===t._a&&this._b===t._b&&this._c===t._c&&this._d===t._d&&this._tx===t._tx&&this._ty===t._ty},toString:function(){var t=h.instance;return"[["+[t.number(this._a),t.number(this._c),t.number(this._tx)].join(", ")+"], ["+[t.number(this._b),t.number(this._d),t.number(this._ty)].join(", ")+"]]"},reset:function(t){return this._a=this._d=1,this._b=this._c=this._tx=this._ty=0,t||this._changed(),this},apply:function(t,e){var i=this._owner;return!!i&&(i.transform(null,!0,r.pick(t,!0),e),this.isIdentity())},translate:function(){var t=c.read(arguments),e=t.x,i=t.y;return this._tx+=e*this._a+i*this._c,this._ty+=e*this._b+i*this._d,this._changed(),this},scale:function(){var t=c.read(arguments),e=c.read(arguments,0,{readNull:!0});return e&&this.translate(e),this._a*=t.x,this._b*=t.x,this._c*=t.y,this._d*=t.y,e&&this.translate(e.negate()),this._changed(),this},rotate:function(t){t*=Math.PI/180;var e=c.read(arguments,1),i=e.x,n=e.y,r=Math.cos(t),s=Math.sin(t),a=i-i*r+n*s,o=n-i*s-n*r,h=this._a,u=this._b,l=this._c,f=this._d;return this._a=r*h+s*l,this._b=r*u+s*f,this._c=-s*h+r*l,this._d=-s*u+r*f,this._tx+=a*h+o*l,this._ty+=a*u+o*f,this._changed(),this},shear:function(){var t=c.read(arguments),e=c.read(arguments,0,{readNull:!0});e&&this.translate(e);var i=this._a,n=this._b;return this._a+=t.y*this._c,this._b+=t.y*this._d,this._c+=t.x*i,this._d+=t.x*n,e&&this.translate(e.negate()),this._changed(),this},skew:function(){var t=c.read(arguments),e=c.read(arguments,0,{readNull:!0}),i=Math.PI/180,n=new c(Math.tan(t.x*i),Math.tan(t.y*i));return this.shear(n,e)},append:function(t,e){if(t){var i=this._a,n=this._b,r=this._c,s=this._d,a=t._a,o=t._c,h=t._b,u=t._d,l=t._tx,c=t._ty;this._a=a*i+h*r,this._c=o*i+u*r,this._b=a*n+h*s,this._d=o*n+u*s,this._tx+=l*i+c*r,this._ty+=l*n+c*s,e||this._changed()}return this},prepend:function(t,e){if(t){var i=this._a,n=this._b,r=this._c,s=this._d,a=this._tx,o=this._ty,h=t._a,u=t._c,l=t._b,c=t._d,f=t._tx,d=t._ty;this._a=h*i+u*n,this._c=h*r+u*s,this._b=l*i+c*n,this._d=l*r+c*s,this._tx=h*a+u*o+f,this._ty=l*a+c*o+d,e||this._changed()}return this},appended:function(t){return this.clone().append(t)},prepended:function(t){return this.clone().prepend(t)},invert:function(){var t=this._a,e=this._b,i=this._c,n=this._d,r=this._tx,s=this._ty,a=t*n-e*i,o=null;return a&&!isNaN(a)&&isFinite(r)&&isFinite(s)&&(this._a=n/a,this._b=-e/a,this._c=-i/a,this._d=t/a,this._tx=(i*s-n*r)/a,this._ty=(e*r-t*s)/a,o=this),o},inverted:function(){return this.clone().invert()},concatenate:"#append",preConcatenate:"#prepend",chain:"#appended",_shiftless:function(){return new p(this._a,this._b,this._c,this._d,0,0)},_orNullIfIdentity:function(){return this.isIdentity()?null:this},isIdentity:function(){return 1===this._a&&0===this._b&&0===this._c&&1===this._d&&0===this._tx&&0===this._ty},isInvertible:function(){var t=this._a*this._d-this._c*this._b;return t&&!isNaN(t)&&isFinite(this._tx)&&isFinite(this._ty)},isSingular:function(){return!this.isInvertible()},transform:function(t,e,i){return arguments.length<3?this._transformPoint(c.read(arguments)):this._transformCoordinates(t,e,i)},_transformPoint:function(t,e,i){var n=t.x,r=t.y;return e||(e=new c),e._set(n*this._a+r*this._c+this._tx,n*this._b+r*this._d+this._ty,i)},_transformCoordinates:function(t,e,i){for(var n=0,r=2*i;ns[h]&&(s[h]=o)}return e||(e=new g),e._set(r[0],r[1],s[0]-r[0],s[1]-r[1],i)},inverseTransform:function(){return this._inverseTransform(c.read(arguments))},_inverseTransform:function(t,e,i){var n=this._a,r=this._b,s=this._c,a=this._d,o=this._tx,h=this._ty,u=n*a-r*s,l=null;if(u&&!isNaN(u)&&isFinite(o)&&isFinite(h)){var f=t.x-this._tx,d=t.y-this._ty;e||(e=new c),l=e._set((f*a-d*s)/u,(d*n-f*r)/u,i)}return l},decompose:function(){var t,e,i,n=this._a,r=this._b,s=this._c,a=this._d,o=n*a-r*s,h=Math.sqrt,u=Math.atan2,l=180/Math.PI;if(0!==n||0!==r){var f=h(n*n+r*r);t=Math.acos(n/f)*(r>0?1:-1),e=[f,o/f],i=[u(n*s+r*a,f*f),0]}else if(0!==s||0!==a){var d=h(s*s+a*a);t=Math.asin(s/d)*(a>0?1:-1),e=[o/d,d],i=[0,u(n*s+r*a,d*d)]}else t=0,i=e=[0,0];return{translation:this.getTranslation(),rotation:t*l,scaling:new c(e),skewing:new c(i[0]*l,i[1]*l)}},getValues:function(){return[this._a,this._b,this._c,this._d,this._tx,this._ty]},getTranslation:function(){return new c(this._tx,this._ty)},getScaling:function(){return(this.decompose()||{}).scaling},getRotation:function(){return(this.decompose()||{}).rotation},applyToContext:function(t){this.isIdentity()||t.transform(this._a,this._b,this._c,this._d,this._tx,this._ty)}},r.each(["a","b","c","d","tx","ty"],function(t){var e=r.capitalize(t),i="_"+t;this["get"+e]=function(){return this[i]},this["set"+e]=function(t){this[i]=t,this._changed()}},{})),m=r.extend({_class:"Line",initialize:function(t,e,i,n,r){var s=!1;arguments.length>=4?(this._px=t,this._py=e,this._vx=i,this._vy=n,s=r):(this._px=t.x,this._py=t.y,this._vx=e.x,this._vy=e.y,s=i),s||(this._vx-=this._px,this._vy-=this._py)},getPoint:function(){return new c(this._px,this._py)},getVector:function(){return new c(this._vx,this._vy)},getLength:function(){return this.getVector().getLength()},intersect:function(t,e){return m.intersect(this._px,this._py,this._vx,this._vy,t._px,t._py,t._vx,t._vy,!0,e)},getSide:function(t,e){return m.getSide(this._px,this._py,this._vx,this._vy,t.x,t.y,!0,e)},getDistance:function(t){return Math.abs(this.getSignedDistance(t))},getSignedDistance:function(t){return m.getSignedDistance(this._px,this._py,this._vx,this._vy,t.x,t.y,!0)},isCollinear:function(t){return c.isCollinear(this._vx,this._vy,t._vx,t._vy)},isOrthogonal:function(t){return c.isOrthogonal(this._vx,this._vy,t._vx,t._vy)},statics:{intersect:function(t,e,i,n,r,s,a,o,h,l){h||(i-=t,n-=e,a-=r,o-=s);var f=i*o-n*a;if(!u.isZero(f)){var d=t-r,_=e-s,g=(a*_-o*d)/f,v=(i*_-n*d)/f;if(l||-1e-12=1?1:g),new c(t+g*i,e+g*n)}},getSide:function(t,e,i,n,r,s,a,o){a||(i-=t,n-=e);var h=r-t,l=h*n-(s-e)*i;return!o&&u.isZero(l)&&(l=(h*i+h*i)/(i*i+n*n))>=0&&l<=1&&(l=0),l<0?-1:l>0?1:0},getSignedDistance:function(t,e,i,n,r,s,a){return a||(i-=t,n-=e),0===i?n>0?r-t:t-r:0===n?i<0?s-e:e-s:((r-t)*n-(s-e)*i)/Math.sqrt(i*i+n*n)},getDistance:function(t,e,i,n,r,s,a){return Math.abs(m.getSignedDistance(t,e,i,n,r,s,a))}}}),y=o.extend({_class:"Project",_list:"projects",_reference:"project",_compactSerialize:!0,initialize:function(t){o.call(this,!0),this._children=[],this._namedChildren={},this._activeLayer=null,this._currentStyle=new V(null,null,this),this._view=U.create(this,t||Q.getCanvas(1,1)),this._selectionItems={},this._selectionCount=0,this._updateVersion=0},_serialize:function(t,e){return r.serialize(this._children,t,!0,e)},_changed:function(t,e){if(1&t){var i=this._view;i&&(i._needsUpdate=!0,!i._requested&&i._autoUpdate&&i.requestUpdate())}var n=this._changes;if(n&&e){var r=this._changesById,s=e._id,a=r[s];a?a.flags|=t:n.push(r[s]={item:e,flags:t})}},clear:function(){for(var t=this._children,e=t.length-1;e>=0;e--)t[e].remove()},isEmpty:function(){return!this._children.length},remove:function t(){return!!t.base.call(this)&&(this._view&&this._view.remove(),!0)},getView:function(){return this._view},getCurrentStyle:function(){return this._currentStyle},setCurrentStyle:function(t){this._currentStyle.set(t)},getIndex:function(){return this._index},getOptions:function(){return this._scope.settings},getLayers:function(){return this._children},getActiveLayer:function(){return this._activeLayer||new b({project:this,insert:!0})},getSymbolDefinitions:function(){var t=[],e={};return this.getItems({class:P,match:function(i){var n=i._definition,r=n._id;return e[r]||(e[r]=!0,t.push(n)),!1}}),t},getSymbols:"getSymbolDefinitions",getSelectedItems:function(){var t=this._selectionItems,e=[];for(var i in t){var n=t[i],r=n._selection;1&r&&n.isInserted()?e.push(n):r||this._updateSelection(n)}return e},_updateSelection:function(t){var e=t._id,i=this._selectionItems;t._selection?i[e]!==t&&(this._selectionCount++,i[e]=t):i[e]===t&&(this._selectionCount--,delete i[e])},selectAll:function(){for(var t=this._children,e=0,i=t.length;e0){t.save(),t.strokeWidth=1;var h=this._selectionItems,u=this._scope.settings.handleSize,l=this._updateVersion;for(var f in h)h[f]._drawSelection(t,e,u,h,l);t.restore()}}}),w=r.extend(s,{statics:{extend:function t(e){return e._serializeFields&&(e._serializeFields=r.set({},this.prototype._serializeFields,e._serializeFields)),t.base.apply(this,arguments)},NO_INSERT:{insert:!1}},_class:"Item",_name:null,_applyMatrix:!0,_canApplyMatrix:!0,_canScaleStroke:!1,_pivot:null,_visible:!0,_blendMode:"normal",_opacity:1,_locked:!1,_guide:!1,_clipMask:!1,_selection:0,_selectBounds:!0,_selectChildren:!1,_serializeFields:{name:null,applyMatrix:null,matrix:new p,pivot:null,visible:!0,blendMode:"normal",opacity:1,locked:!1,guide:!1,clipMask:!1,selected:!1,data:{}},_prioritize:["applyMatrix"]},new function(){var t=["onMouseDown","onMouseUp","onMouseDrag","onClick","onDoubleClick","onMouseMove","onMouseEnter","onMouseLeave"];return r.each(t,function(t){this._events[t]={install:function(t){this.getView()._countItemEvent(t,1)},uninstall:function(t){this.getView()._countItemEvent(t,-1)}}},{_events:{onFrame:{install:function(){this.getView()._animateItem(this,!0)},uninstall:function(){this.getView()._animateItem(this,!1)}},onLoad:{},onError:{}},statics:{_itemHandlers:t}})},{initialize:function(){},_initialize:function(t,i){var n=t&&r.isPlainObject(t),s=n&&!0===t.internal,a=this._matrix=new p,o=n&&t.project||paper.project,h=paper.settings;return this._id=s?null:l.get(),this._parent=this._index=null,this._applyMatrix=this._canApplyMatrix&&h.applyMatrix,i&&a.translate(i),a._owner=this,this._style=new V(o._currentStyle,this,o),s||n&&0==t.insert||!h.insertItems&&(!n||!0!==t.insert)?this._setProject(o):(n&&t.parent||o)._insertItem(e,this,!0),n&&t!==w.NO_INSERT&&this.set(t,{internal:!0,insert:!0,project:!0,parent:!0}),n},_serialize:function(t,e){function i(i){for(var a in i){var o=s[a];r.equals(o,"leading"===a?1.2*i.fontSize:i[a])||(n[a]=r.serialize(o,t,"data"!==a,e))}}var n={},s=this;return i(this._serializeFields),this instanceof x||i(this._style._defaults),[this._class,n]},_changed:function(t){var i=this._symbol,n=this._parent||i,r=this._project;8&t&&(this._bounds=this._position=this._decomposed=this._globalMatrix=e),n&&40&t&&w._clearBoundsCache(n),2&t&&w._clearBoundsCache(this),r&&r._changed(t,this),i&&i._changed(t)},getId:function(){return this._id},getName:function(){return this._name},setName:function(t){if(this._name&&this._removeNamed(),t===+t+"")throw new Error("Names consisting only of numbers are not supported.");var i=this._getOwner();if(t&&i){var n=i._children,r=i._namedChildren;(r[t]=r[t]||[]).push(this),t in n||(n[t]=this)}this._name=t||e,this._changed(128)},getStyle:function(){return this._style},setStyle:function(t){this.getStyle().set(t)}},r.each(["locked","visible","blendMode","opacity","guide"],function(t){var e=r.capitalize(t),i="_"+t,n={locked:128,visible:137};this["get"+e]=function(){return this[i]},this["set"+e]=function(e){e!=this[i]&&(this[i]=e,this._changed(n[t]||129))}},{}),{beans:!0,getSelection:function(){return this._selection},setSelection:function(t){if(t!==this._selection){this._selection=t;var e=this._project;e&&(e._updateSelection(this),this._changed(129))}},_changeSelection:function(t,e){var i=this._selection;this.setSelection(e?i|t:i&~t)},isSelected:function(){if(this._selectChildren)for(var t=this._children,e=0,i=t.length;e=0;i--)if(e[i].contains(t))return!0;return!1}return t.isInside(this.getInternalBounds())},isInside:function(){return g.read(arguments).contains(this.getBounds())},_asPathItem:function(){return new L.Rectangle({rectangle:this.getInternalBounds(),matrix:this._matrix,insert:!1})},intersects:function(t,e){return t instanceof w&&this._asPathItem().getIntersections(t._asPathItem(),null,e,!0).length>0}},new function(){function t(){return this._hitTest(c.read(arguments),M.getOptions(arguments))}function e(){var t=c.read(arguments),e=M.getOptions(arguments),i=[];return this._hitTest(t,r.set({all:i},e)),i}function i(t,e,i,n){var r=this._children;if(r)for(var s=r.length-1;s>=0;s--){var a=r[s],o=a!==n&&a._hitTest(t,e,i);if(o&&!e.all)return o}return null}return y.inject({hitTest:t,hitTestAll:e,_hitTest:i}),{hitTest:t,hitTestAll:e,_hitTestChildren:i}},{_hitTest:function(t,e,i){function n(t){return t&&_&&!_(t)&&(t=null),t&&e.all&&e.all.push(t),t}function s(e,i){var n=i?l["get"+i]():g.getPosition();if(t.subtract(n).divide(u).length<=1)return new M(e,g,{name:i?r.hyphenate(i):e,point:n})}if(this._locked||!this._visible||this._guide&&!e.guides||this.isEmpty())return null;var a=this._matrix,o=i?i.appended(a):this.getGlobalMatrix().prepend(this.getView()._matrix),h=Math.max(e.tolerance,1e-12),u=e._tolerancePadding=new d(L._getStrokePadding(h,a._shiftless().invert()));if(!(t=a._inverseTransform(t))||!this._children&&!this.getBounds({internal:!0,stroke:!0,handle:!0}).expand(u.multiply(2))._containsPoint(t))return null;var l,c,f=!(e.guides&&!this._guide||e.selected&&!this.isSelected()||e.type&&e.type!==r.hyphenate(this._class)||e.class&&!(this instanceof e.class)),_=e.match,g=this,v=e.position,p=e.center,m=e.bounds;if(f&&this._parent&&(v||p||m)){if((p||m)&&(l=this.getInternalBounds()),!(c=v&&s("position")||p&&s("center","Center"))&&m)for(var y=["TopLeft","TopRight","BottomLeft","BottomRight","LeftCenter","TopCenter","RightCenter","BottomCenter"],w=0;w<8&&!c;w++)c=s("bounds",y[w]);c=n(c)}return c||(c=this._hitTestChildren(t,e,o)||f&&n(this._hitTestSelf(t,e,o,this.getStrokeScaling()?null:o._shiftless().invert()))||null),c&&c.point&&(c.point=a.transform(c.point)),c},_hitTestSelf:function(t,e){if(e.fill&&this.hasFill()&&this._contains(t))return new M("fill",this)},matches:function(t,e){function i(t,e){for(var n in t)if(t.hasOwnProperty(n)){var s=t[n],a=e[n];if(r.isPlainObject(s)&&r.isPlainObject(a)){if(!i(s,a))return!1}else if(!r.equals(s,a))return!1}return!0}var n=typeof t;if("object"===n){for(var s in t)if(t.hasOwnProperty(s)&&!this.matches(s,t[s]))return!1;return!0}if("function"===n)return t(this);if("match"===t)return e(this);var a=/^(empty|editable)$/.test(t)?this["is"+r.capitalize(t)]():"type"===t?r.hyphenate(this._class):this[t];if("class"===t){if("function"==typeof e)return this instanceof e;a=this._class}if("function"==typeof e)return!!e(a);if(e){if(e.test)return e.test(a);if(r.isPlainObject(e))return i(e,a)}return r.equals(a,e)},getItems:function(t){return w._getItems(this,t,this._matrix)},getItem:function(t){return w._getItems(this,t,this._matrix,null,!0)[0]||null},statics:{_getItems:function t(e,i,n,s,a){if(!s){var o="object"==typeof i&&i,h=o&&o.overlapping,u=o&&o.inside,l=(w=h||u)&&g.read([w]);s={items:[],recursive:o&&!1!==o.recursive,inside:!!u,overlapping:!!h,rect:l,path:h&&new L.Rectangle({rectangle:l,insert:!1})},o&&(i=r.filter({},i,{recursive:!0,inside:!0,overlapping:!0}))}var c=e._children,f=s.items;n=(l=s.rect)&&(n||new p);for(var d=0,_=c&&c.length;d<_;d++){var v=c[d],m=n&&n.appended(v._matrix),y=!0;if(l){var w=v.getBounds(m);if(!l.intersects(w))continue;l.contains(w)||s.overlapping&&(w.contains(l)||s.path.intersects(v,m))||(y=!1)}if(y&&v.matches(i)&&(f.push(v),a))break;if(!1!==s.recursive&&t(v,i,m,s,a),a&&f.length>0)break}return f}}},{importJSON:function(t){var e=r.importJSON(t,this);return e!==this?this.addChild(e):e},addChild:function(t){return this.insertChild(e,t)},insertChild:function(t,e){var i=e?this.insertChildren(t,[e]):null;return i&&i[0]},addChildren:function(t){return this.insertChildren(this._children.length,t)},insertChildren:function(t,e){var i=this._children;if(i&&e&&e.length>0){for(var n={},s=(e=r.slice(e)).length-1;s>=0;s--){var a=(l=e[s])&&l._id;!l||n[a]?e.splice(s,1):(l._remove(!1,!0),n[a]=!0)}r.splice(i,e,t,0);for(var o=this._project,h=o._changes,s=0,u=e.length;s=0;n--)i[n]._remove(!0,!1);return i.length>0&&this._changed(11),i},clear:"#removeChildren",reverseChildren:function(){if(this._children){this._children.reverse();for(var t=0,e=this._children.length;t0},isInserted:function(){return!!this._parent&&this._parent.isInserted()},isAbove:function(t){return-1===this._getOrder(t)},isBelow:function(t){return 1===this._getOrder(t)},isParent:function(t){return this._parent===t},isChild:function(t){return t&&t._parent===this},isDescendant:function(t){for(var e=this;e=e._parent;)if(e===t)return!0;return!1},isAncestor:function(t){return!!t&&t.isDescendant(this)},isSibling:function(t){return this._parent===t._parent},isGroupedWith:function(t){for(var e=this._parent;e;){if(e._parent&&/^(Group|Layer|CompoundPath)$/.test(e._class)&&t.isDescendant(e))return!0;e=e._parent}return!1}},r.each(["rotate","scale","shear","skew"],function(t){var e="rotate"===t;this[t]=function(){var i=(e?r:c).read(arguments),n=c.read(arguments,0,{readNull:!0});return this.transform((new p)[t](i,n||this.getPosition(!0)))}},{translate:function(){var t=new p;return this.transform(t.translate.apply(t,arguments))},transform:function(t,e,i,n){var r=this._matrix,s=t&&!t.isIdentity(),a=(e||this._applyMatrix)&&(!r.isIdentity()||s||e&&i&&this._children);if(!s&&!a)return this;if(s){!t.isInvertible()&&r.isInvertible()&&(r._backup=r.getValues()),r.prepend(t,!0);var o=this._style,h=o.getFillColor(!0),u=o.getStrokeColor(!0);h&&h.transform(t),u&&u.transform(t)}if(a&&(a=this._transformContent(r,i,n))){var l=this._pivot;l&&r._transformPoint(l,l,!0),r.reset(!0),n&&this._canApplyMatrix&&(this._applyMatrix=!0)}var c=this._bounds,f=this._position;(s||a)&&this._changed(9);var d=s&&c&&t.decompose();if(d&&d.skewing.isZero()&&d.rotation%90==0){for(var _ in c){var g=c[_];if(g.nonscaling)delete c[_];else if(a||!g.internal){var v=g.rect;t._transformBounds(v,v)}}this._bounds=c;var p=c[this._getBoundsCacheKey(this._boundsOptions||{})];p&&(this._position=p.rect.getCenter(!0))}else s&&f&&this._pivot&&(this._position=t._transformPoint(f,f));return this},_transformContent:function(t,e,i){var n=this._children;if(n){for(var r=0,s=n.length;rr:n1&&s<4?-1:1,s>2?-1:1),o=a.multiply(r),h=o.subtract(a.multiply(n));if(new g(i?o.add(a.multiply(i)):o,h).contains(e))return{point:h,quadrant:s}}}function e(t,e,i,n){var r=t.divide(e);return(!n||r.isInQuadrant(n))&&r.subtract(r.normalize()).multiply(e).divide(i).length<=1}return{_contains:function e(i){if("rectangle"===this._type){var n=t(this,i);return n?i.subtract(n.point).divide(this._radius).getLength()<=1:e.base.call(this,i)}return i.divide(this.size).getLength()<=.5},_hitTestSelf:function i(n,r,s,a){var o=!1,h=this._style,u=r.stroke&&h.hasStroke(),l=r.fill&&h.hasFill();if(u||l){var c=this._type,f=this._radius,d=u?h.getStrokeWidth()/2:0,_=r._tolerancePadding.add(L._getStrokePadding(d,!h.getStrokeScaling()&&a));if("rectangle"===c){var v=_.multiply(2),p=t(this,n,v);if(p)o=e(n.subtract(p.point),f,_,p.quadrant);else{var m=new g(this._size).setCenter(0,0),y=m.expand(v),w=m.expand(v.negate());o=y._containsPoint(n)&&!w._containsPoint(n)}}else o=e(n,f,_)}return o?new M(u?"stroke":"fill",this):i.base.apply(this,arguments)}}},{statics:new function(){function t(t,e,i,n,s){var a=new C(r.getNamed(s),e);return a._type=t,a._size=i,a._radius=n,a}return{Circle:function(){var e=c.readNamed(arguments,"center"),i=r.readNamed(arguments,"radius");return t("circle",e,new d(2*i),i,arguments)},Rectangle:function(){var e=g.readNamed(arguments,"rectangle"),i=d.min(d.readNamed(arguments,"radius"),e.getSize(!0).divide(2));return t("rectangle",e.getCenter(!0),e.getSize(!0),i,arguments)},Ellipse:function(){var e=C._readEllipse(arguments),i=e.radius;return t("ellipse",e.center,i.multiply(2),i,arguments)},_readEllipse:function(t){var e,i;if(r.hasNamed(t,"radius"))e=c.readNamed(t,"center"),i=d.readNamed(t,"radius");else{var n=g.readNamed(t,"rectangle");e=n.getCenter(!0),i=n.getSize(!0).divide(2)}return{center:e,radius:i}}}}}),S=w.extend({_class:"Raster",_applyMatrix:!1,_canApplyMatrix:!1,_boundsOptions:{stroke:!1,handle:!1},_serializeFields:{crossOrigin:null,source:null},_prioritize:["crossOrigin"],initialize:function(t,i){if(!this._initialize(t,i!==e&&c.read(arguments,1))){var r="string"==typeof t?n.getElementById(t):t;r?this.setImage(r):this.setSource(t)}this._size||(this._size=new d,this._loaded=!1)},_equals:function(t){return this.getSource()===t.getSource()},copyContent:function(t){var e=t._image,i=t._canvas;if(e)this._setImage(e);else if(i){var n=Q.getCanvas(t._size);n.getContext("2d").drawImage(i,0,0),this._setImage(n)}this._crossOrigin=t._crossOrigin},getSize:function(){var t=this._size;return new _(t?t.width:0,t?t.height:0,this,"setSize")},setSize:function(){var t=d.read(arguments);if(!t.equals(this._size))if(t.width>0&&t.height>0){var e=this.getElement();this._setImage(Q.getCanvas(t)),e&&this.getContext(!0).drawImage(e,0,0,t.width,t.height)}else this._canvas&&Q.release(this._canvas),this._size=t.clone()},getWidth:function(){return this._size?this._size.width:0},setWidth:function(t){this.setSize(t,this.getHeight())},getHeight:function(){return this._size?this._size.height:0},setHeight:function(t){this.setSize(this.getWidth(),t)},getLoaded:function(){return this._loaded},isEmpty:function(){var t=this._size;return!t||0===t.width&&0===t.height},getResolution:function(){var t=this._matrix,e=new c(0,0).transform(t),i=new c(1,0).transform(t).subtract(e),n=new c(0,1).transform(t).subtract(e);return new d(72/i.getLength(),72/n.getLength())},getPpi:"#getResolution",getImage:function(){return this._image},setImage:function(t){function e(t){var e=i.getView(),n=t&&t.type||"load";e&&i.responds(n)&&(paper=e._scope,i.emit(n,new G(t)))}var i=this;this._setImage(t),this._loaded?setTimeout(e,0):t&&Z.add(t,{load:function(n){i._setImage(t),e(n)},error:e})},_setImage:function(t){this._canvas&&Q.release(this._canvas),t&&t.getContext?(this._image=null,this._canvas=t,this._loaded=!0):(this._image=t,this._canvas=null,this._loaded=!!(t&&t.src&&t.complete)),this._size=new d(t?t.naturalWidth||t.width:0,t?t.naturalHeight||t.height:0),this._context=null,this._changed(521)},getCanvas:function(){if(!this._canvas){var t=Q.getContext(this._size);try{this._image&&t.drawImage(this._image,0,0),this._canvas=t.canvas}catch(e){Q.release(t)}}return this._canvas},setCanvas:"#setImage",getContext:function(t){return this._context||(this._context=this.getCanvas().getContext("2d")),t&&(this._image=null,this._changed(513)),this._context},setContext:function(t){this._context=t},getSource:function(){var t=this._image;return t&&t.src||this.toDataURL()},setSource:function(e){var i=new t.Image,n=this._crossOrigin;n&&(i.crossOrigin=n),i.src=e,this.setImage(i)},getCrossOrigin:function(){var t=this._image;return t&&t.crossOrigin||this._crossOrigin||""},setCrossOrigin:function(t){this._crossOrigin=t;var e=this._image;e&&(e.crossOrigin=t)},getElement:function(){return this._canvas||this._loaded&&this._image}},{beans:!1,getSubCanvas:function(){var t=g.read(arguments),e=Q.getContext(t.getSize());return e.drawImage(this.getCanvas(),t.x,t.y,t.width,t.height,0,0,t.width,t.height),e.canvas},getSubRaster:function(){var t=g.read(arguments),e=new S(w.NO_INSERT);return e._setImage(this.getSubCanvas(t)),e.translate(t.getCenter().subtract(this.getSize().divide(2))),e._matrix.prepend(this._matrix),e.insertAbove(this),e},toDataURL:function(){var t=this._image,e=t&&t.src;if(/^data:/.test(e))return e;var i=this.getCanvas();return i?i.toDataURL.apply(i,arguments):null},drawImage:function(t){var e=c.read(arguments,1);this.getContext(!0).drawImage(t,e.x,e.y)},getAverageColor:function(t){var e,i;if(t?t instanceof A?(i=t,e=t.getBounds()):"object"==typeof t&&("width"in t?e=new g(t):"x"in t&&(e=new g(t.x-.5,t.y-.5,1,1))):e=this.getBounds(),!e)return null;var n=Math.min(e.width,32),s=Math.min(e.height,32),a=S._sampleContext;a?a.clearRect(0,0,33,33):a=S._sampleContext=Q.getContext(new d(32)),a.save();var o=(new p).scale(n/e.width,s/e.height).translate(-e.x,-e.y);o.applyToContext(a),i&&i.draw(a,new r({clip:!0,matrices:[o]})),this._matrix.applyToContext(a);var h=this.getElement(),u=this._size;h&&a.drawImage(h,-u.width/2,-u.height/2),a.restore();for(var l=a.getImageData(.5,.5,Math.ceil(n),Math.ceil(s)).data,c=[0,0,0],f=0,_=0,v=l.length;_0&&(null==t||"object"==typeof t?1===c&&t&&"point"in t?(o=t.point,h=t.handleIn,u=t.handleOut,l=t.selection):(o=t,h=i,u=n,l=r):(o=[t,i],h=n!==e?[n,r]:null,u=s!==e?[s,a]:null)),new z(o,this,"_point"),new z(h,this,"_handleIn"),new z(u,this,"_handleOut"),l&&this.setSelection(l)},_serialize:function(t,e){var i=this._point,n=this._selection,s=n||this.hasHandles()?[i,this._handleIn,this._handleOut]:i;return n&&s.push(n),r.serialize(s,t,!0,e)},_changed:function(t){var e=this._path;if(e){var i,n=e._curves,r=this._index;n&&(t&&t!==this._point&&t!==this._handleIn||!(i=r>0?n[r-1]:e._closed?n[n.length-1]:null)||i._changed(),t&&t!==this._point&&t!==this._handleOut||!(i=n[r])||i._changed()),e._changed(25)}},getPoint:function(){return this._point},setPoint:function(){this._point.set(c.read(arguments))},getHandleIn:function(){return this._handleIn},setHandleIn:function(){this._handleIn.set(c.read(arguments))},getHandleOut:function(){return this._handleOut},setHandleOut:function(){this._handleOut.set(c.read(arguments))},hasHandles:function(){return!this._handleIn.isZero()||!this._handleOut.isZero()},isSmooth:function(){var t=this._handleIn,e=this._handleOut;return!t.isZero()&&!e.isZero()&&t.isCollinear(e)},clearHandles:function(){this._handleIn._set(0,0),this._handleOut._set(0,0)},getSelection:function(){return this._selection},setSelection:function(t){var e=this._selection,i=this._path;this._selection=t=t||0,i&&t!==e&&(i._updateSelection(this,e,t),i._changed(129))},_changeSelection:function(t,e){var i=this._selection;this.setSelection(e?i|t:i&~t)},isSelected:function(){return!!(7&this._selection)},setSelected:function(t){this._changeSelection(7,t)},getIndex:function(){return this._index!==e?this._index:null},getPath:function(){return this._path||null},getCurve:function(){var t=this._path,e=this._index;return t?(e>0&&!t._closed&&e===t._segments.length-1&&e--,t.getCurves()[e]||null):null},getLocation:function(){var t=this.getCurve();return t?new O(t,this===t._segment1?0:1):null},getNext:function(){var t=this._path&&this._path._segments;return t&&(t[this._index+1]||this._path._closed&&t[0])||null},smooth:function(t,i,n){var r=t||{},s=r.type,a=r.factor,o=this.getPrevious(),h=this.getNext(),u=(o||this)._point,l=this._point,f=(h||this)._point,d=u.getDistance(l),_=l.getDistance(f);if(s&&"catmull-rom"!==s){if("geometric"!==s)throw new Error("Smoothing method '"+s+"' not supported.");if(o&&h){var g=u.subtract(f),v=a===e?.4:a,p=v*d/(d+_);i||this.setHandleIn(g.multiply(p)),n||this.setHandleOut(g.multiply(p-v))}}else{var m=a===e?.5:a,y=Math.pow(d,m),w=y*y,x=Math.pow(_,m),b=x*x;if(!i&&o){var C=2*b+3*x*y+w,S=3*x*(x+y);this.setHandleIn(0!==S?new c((b*u._x+C*l._x-w*f._x)/S-l._x,(b*u._y+C*l._y-w*f._y)/S-l._y):new c)}if(!n&&h){var C=2*w+3*y*x+b,S=3*y*(y+x);this.setHandleOut(0!==S?new c((w*f._x+C*l._x-b*u._x)/S-l._x,(w*f._y+C*l._y-b*u._y)/S-l._y):new c)}}},getPrevious:function(){var t=this._path&&this._path._segments;return t&&(t[this._index-1]||this._path._closed&&t[t.length-1])||null},isFirst:function(){return!this._index},isLast:function(){var t=this._path;return t&&this._index===t._segments.length-1||!1},reverse:function(){var t=this._handleIn,e=this._handleOut,i=t.clone();t.set(e),e.set(i)},reversed:function(){return new T(this._point,this._handleOut,this._handleIn)},remove:function(){return!!this._path&&!!this._path.removeSegment(this._index)},clone:function(){return new T(this._point,this._handleIn,this._handleOut)},equals:function(t){return t===this||t&&this._class===t._class&&this._point.equals(t._point)&&this._handleIn.equals(t._handleIn)&&this._handleOut.equals(t._handleOut)||!1},toString:function(){var t=["point: "+this._point];return this._handleIn.isZero()||t.push("handleIn: "+this._handleIn),this._handleOut.isZero()||t.push("handleOut: "+this._handleOut),"{ "+t.join(", ")+" }"},transform:function(t){this._transformCoordinates(t,new Array(6),!0),this._changed()},interpolate:function(t,e,i){var n=1-i,r=i,s=t._point,a=e._point,o=t._handleIn,h=e._handleIn,u=e._handleOut,l=t._handleOut;this._point._set(n*s._x+r*a._x,n*s._y+r*a._y,!0),this._handleIn._set(n*o._x+r*h._x,n*o._y+r*h._y,!0),this._handleOut._set(n*l._x+r*u._x,n*l._y+r*u._y,!0),this._changed()},_transformCoordinates:function(t,e,i){var n=this._point,r=i&&this._handleIn.isZero()?null:this._handleIn,s=i&&this._handleOut.isZero()?null:this._handleOut,a=n._x,o=n._y,h=2;return e[0]=a,e[1]=o,r&&(e[h++]=r._x+a,e[h++]=r._y+o),s&&(e[h++]=s._x+a,e[h++]=s._y+o),t&&(t._transformCoordinates(e,e,h/2),a=e[0],o=e[1],i?(n._x=a,n._y=o,h=2,r&&(r._x=e[h++]-a,r._y=e[h++]-o),s&&(s._x=e[h++]-a,s._y=e[h++]-o)):(r||(e[h++]=a,e[h++]=o),s||(e[h++]=a,e[h++]=o))),e}}),z=c.extend({initialize:function(t,i,n){var r,s,a;if(t)if((r=t[0])!==e)s=t[1];else{var o=t;(r=o.x)===e&&(r=(o=c.read(arguments)).x),s=o.y,a=o.selected}else r=s=0;this._x=r,this._y=s,this._owner=i,i[n]=this,a&&this.setSelected(!0)},_set:function(t,e){return this._x=t,this._y=e,this._owner._changed(this),this},getX:function(){return this._x},setX:function(t){this._x=t,this._owner._changed(this)},getY:function(){return this._y},setY:function(t){this._y=t,this._owner._changed(this)},isZero:function(){var t=u.isZero;return t(this._x)&&t(this._y)},isSelected:function(){return!!(this._owner._selection&this._getSelection())},setSelected:function(t){this._owner._changeSelection(this._getSelection(),t)},_getSelection:function(){var t=this._owner;return this===t._point?1:this===t._handleIn?2:this===t._handleOut?4:0}}),k=r.extend({_class:"Curve",beans:!0,initialize:function(t,e,i,n,r,s,a,o){var h,u,l,c,f,d,_=arguments.length;3===_?(this._path=t,h=e,u=i):_?1===_?"segment1"in t?(h=new T(t.segment1),u=new T(t.segment2)):"point1"in t?(l=t.point1,f=t.handle1,d=t.handle2,c=t.point2):Array.isArray(t)&&(l=[t[0],t[1]],c=[t[6],t[7]],f=[t[2]-t[0],t[3]-t[1]],d=[t[4]-t[6],t[5]-t[7]]):2===_?(h=new T(t),u=new T(e)):4===_?(l=t,f=e,d=i,c=n):8===_&&(l=[t,e],c=[a,o],f=[i-t,n-e],d=[r-a,s-o]):(h=new T,u=new T),this._segment1=h||new T(l,null,f),this._segment2=u||new T(c,d,null)},_serialize:function(t,e){return r.serialize(this.hasHandles()?[this.getPoint1(),this.getHandle1(),this.getHandle2(),this.getPoint2()]:[this.getPoint1(),this.getPoint2()],t,!0,e)},_changed:function(){this._length=this._bounds=e},clone:function(){return new k(this._segment1,this._segment2)},toString:function(){var t=["point1: "+this._segment1._point];return this._segment1._handleOut.isZero()||t.push("handle1: "+this._segment1._handleOut),this._segment2._handleIn.isZero()||t.push("handle2: "+this._segment2._handleIn),t.push("point2: "+this._segment2._point),"{ "+t.join(", ")+" }"},classify:function(){return k.classify(this.getValues())},remove:function(){var t=!1;if(this._path){var e=this._segment2,i=e._handleOut;(t=e.remove())&&this._segment1._handleOut.set(i)}return t},getPoint1:function(){return this._segment1._point},setPoint1:function(){this._segment1._point.set(c.read(arguments))},getPoint2:function(){return this._segment2._point},setPoint2:function(){this._segment2._point.set(c.read(arguments))},getHandle1:function(){return this._segment1._handleOut},setHandle1:function(){this._segment1._handleOut.set(c.read(arguments))},getHandle2:function(){return this._segment2._handleIn},setHandle2:function(){this._segment2._handleIn.set(c.read(arguments))},getSegment1:function(){return this._segment1},getSegment2:function(){return this._segment2},getPath:function(){return this._path},getIndex:function(){return this._segment1._index},getNext:function(){var t=this._path&&this._path._curves;return t&&(t[this._segment1._index+1]||this._path._closed&&t[0])||null},getPrevious:function(){var t=this._path&&this._path._curves;return t&&(t[this._segment1._index-1]||this._path._closed&&t[t.length-1])||null},isFirst:function(){return!this._segment1._index},isLast:function(){var t=this._path;return t&&this._segment1._index===t._curves.length-1||!1},isSelected:function(){return this.getPoint1().isSelected()&&this.getHandle1().isSelected()&&this.getHandle2().isSelected()&&this.getPoint2().isSelected()},setSelected:function(t){this.getPoint1().setSelected(t),this.getHandle1().setSelected(t),this.getHandle2().setSelected(t),this.getPoint2().setSelected(t)},getValues:function(t){return k.getValues(this._segment1,this._segment2,t)},getPoints:function(){for(var t=this.getValues(),e=[],i=0;i<8;i+=2)e.push(new c(t[i],t[i+1]));return e}},{getLength:function(){return null==this._length&&(this._length=k.getLength(this.getValues(),0,1)),this._length},getArea:function(){return k.getArea(this.getValues())},getLine:function(){return new m(this._segment1._point,this._segment2._point)},getPart:function(t,e){return new k(k.getPart(this.getValues(),t,e))},getPartLength:function(t,e){return k.getLength(this.getValues(),t,e)},divideAt:function(t){return this.divideAtTime(t&&t.curve===this?t.time:this.getTimeAt(t))},divideAtTime:function(t,e){var i=null;if(t>=1e-8&&t<=1-1e-8){var n=k.subdivide(this.getValues(),t),r=n[0],s=n[1],a=e||this.hasHandles(),o=this._segment1,h=this._segment2,u=this._path;a&&(o._handleOut._set(r[2]-r[0],r[3]-r[1]),h._handleIn._set(s[4]-s[6],s[5]-s[7]));var l=r[6],f=r[7],d=new T(new c(l,f),a&&new c(r[4]-l,r[5]-f),a&&new c(s[2]-l,s[3]-f));u?(u.insert(o._index+1,d),i=this.getNext()):(this._segment2=d,this._changed(),i=new k(d,h))}return i},splitAt:function(t){var e=this._path;return e?e.splitAt(t):null},splitAtTime:function(t){return this.splitAt(this.getLocationAtTime(t))},divide:function(t,i){return this.divideAtTime(t===e?.5:i?t:this.getTimeAt(t))},split:function(t,i){return this.splitAtTime(t===e?.5:i?t:this.getTimeAt(t))},reversed:function(){return new k(this._segment2.reversed(),this._segment1.reversed())},clearHandles:function(){this._segment1._handleOut._set(0,0),this._segment2._handleIn._set(0,0)},statics:{getValues:function(t,e,i,n){var r=t._point,s=t._handleOut,a=e._handleIn,o=e._point,h=r.x,u=r.y,l=o.x,c=o.y,f=n?[h,u,h,u,l,c,l,c]:[h,u,h+s._x,u+s._y,l+a._x,c+a._y,l,c];return i&&i._transformCoordinates(f,f,4),f},subdivide:function(t,i){var n=t[0],r=t[1],s=t[2],a=t[3],o=t[4],h=t[5],u=t[6],l=t[7];i===e&&(i=.5);var c=1-i,f=c*n+i*s,d=c*r+i*a,_=c*s+i*o,g=c*a+i*h,v=c*o+i*u,p=c*h+i*l,m=c*f+i*_,y=c*d+i*g,w=c*_+i*v,x=c*g+i*p,b=c*m+i*w,C=c*y+i*x;return[[n,r,f,d,m,y,b,C],[b,C,w,x,v,p,u,l]]},getMonoCurves:function(t,e){var i=[],n=e?0:1,r=t[n+0],s=t[n+2],a=t[n+4],o=t[n+6];if(r>=s==s>=a&&s>=a==a>=o||k.isStraight(t))i.push(t);else{var h=3*(s-a)-r+o,l=2*(r+a)-4*s,c=s-r,f=[],d=u.solveQuadratic(h,l,c,f,1e-8,1-1e-8);if(d){f.sort();var _=f[0],g=k.subdivide(t,_);i.push(g[0]),d>1&&(_=(f[1]-_)/(1-_),g=k.subdivide(g[1],_),i.push(g[0])),i.push(g[1])}else i.push(t)}return i},solveCubic:function(t,e,i,n,r,s){var a=t[e],o=t[e+2],h=t[e+4],l=t[e+6],c=0;if(!(ai&&l>i&&o>i&&h>i)){var f=3*(o-a),d=3*(h-o)-f,_=l-a-f-d;c=u.solveCubic(_,d,f,a-i,n,r,s)}return c},getTimeOf:function(t,e){var i=new c(t[0],t[1]),n=new c(t[6],t[7]);if(null===(e.isClose(i,1e-12)?0:e.isClose(n,1e-12)?1:null))for(var r=[e.x,e.y],s=[],a=0;a<2;a++)for(var o=k.solveCubic(t,a,r[a],s,0,1),h=0;h=0&&i<=1){var n=e.getDistance(k.getPoint(t,i),!0);if(n.999999999999?1:k.getTimeOf(t,new c(n+h*s,r+h*a))}for(var u=1/0,l=0,f=0;f<=100;f++)i(f/100);for(var d=.005;d>1e-8;)i(l-d)||i(l+d)||(d/=2);return l},getPart:function(t,e,i){var n=e>i;if(n){var r=e;e=i,i=r}return e>0&&(t=k.subdivide(t,e)[1]),i<1&&(t=k.subdivide(t,(i-e)/(1-e))[0]),n?[t[6],t[7],t[4],t[5],t[2],t[3],t[0],t[1]]:t},isFlatEnough:function(t,e){var i=t[0],n=t[1],r=t[2],s=t[3],a=t[4],o=t[5],h=t[6],u=t[7],l=3*r-2*i-h,c=3*s-2*n-u,f=3*a-2*h-i,d=3*o-2*u-n;return Math.max(l*l,f*f)+Math.max(c*c,d*d)<=16*e*e},getArea:function(t){var e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],a=t[5],o=t[6],h=t[7];return 3*((h-i)*(n+s)-(o-e)*(r+a)+r*(e-s)-n*(i-a)+h*(s+e/3)-o*(a+i/3))/20},getBounds:function(t){for(var e=t.slice(0,2),i=e.slice(),n=[0,0],r=0;r<2;r++)k._addBounds(t[r],t[r+2],t[r+4],t[r+6],r,0,e,i,n);return new g(e[0],e[1],i[0]-e[0],i[1]-e[1])},_addBounds:function(t,e,i,n,r,s,a,o,h){function l(t,e){var i=t-e,n=t+e;io[r]&&(o[r]=n)}s/=2;var c=a[r]-s,f=o[r]+s;if(tf||e>f||i>f||n>f)if(e=0&&o<=1&&h<=0&&h>=-1}}return!1},isLinear:function(t,e,i,n){var r=n.subtract(t).divide(3);return e.equals(r)&&i.negate().equals(r)}},function(t,e){this[e]=function(e){var i=this._segment1,n=this._segment2;return t(i._point,i._handleOut,n._handleIn,n._point,e)},this.statics[e]=function(e,i){var n=e[0],r=e[1],s=e[6],a=e[7];return t(new c(n,r),new c(e[2]-n,e[3]-r),new c(e[4]-s,e[5]-a),new c(s,a),i)}},{statics:{},hasHandles:function(){return!this._segment1._handleOut.isZero()||!this._segment2._handleIn.isZero()},hasLength:function(t){return(!this.getPoint1().equals(this.getPoint2())||this.hasHandles())&&this.getLength()>(t||0)},isCollinear:function(t){return t&&this.isStraight()&&t.isStraight()&&this.getLine().isCollinear(t.getLine())},isHorizontal:function(){return this.isStraight()&&Math.abs(this.getTangentAtTime(.5).y)<1e-8},isVertical:function(){return this.isStraight()&&Math.abs(this.getTangentAtTime(.5).x)<1e-8}}),{beans:!1,getLocationAt:function(t,e){return this.getLocationAtTime(e?t:this.getTimeAt(t))},getLocationAtTime:function(t){return null!=t&&t>=0&&t<=1?new O(this,t):null},getTimeAt:function(t,e){return k.getTimeAt(this.getValues(),t,e)},getParameterAt:"#getTimeAt",getOffsetAtTime:function(t){return this.getPartLength(0,t)},getLocationOf:function(){return this.getLocationAtTime(this.getTimeOf(c.read(arguments)))},getOffsetOf:function(){var t=this.getLocationOf.apply(this,arguments);return t?t.getOffset():null},getTimeOf:function(){return k.getTimeOf(this.getValues(),c.read(arguments))},getParameterOf:"#getTimeOf",getNearestLocation:function(){var t=c.read(arguments),e=this.getValues(),i=k.getNearestTime(e,t),n=k.getPoint(e,i);return new O(this,i,n,null,t.getDistance(n))},getNearestPoint:function(){var t=this.getNearestLocation.apply(this,arguments);return t?t.getPoint():t}},new function(){var t=["getPoint","getTangent","getNormal","getWeightedTangent","getWeightedNormal","getCurvature"];return r.each(t,function(t){this[t+"At"]=function(e,i){var n=this.getValues();return k[t](n,i?e:k.getTimeAt(n,e))},this[t+"AtTime"]=function(e){return k[t](this.getValues(),e)}},{statics:{_evaluateMethods:t}})},new function(){function t(t){var e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],a=t[5],o=9*(n-s)+3*(t[6]-e),h=6*(e+s)-12*n,u=3*(n-e),l=9*(r-a)+3*(t[7]-i),c=6*(i+a)-12*r,f=3*(r-i);return function(t){var e=(o*t+h)*t+u,i=(l*t+c)*t+f;return Math.sqrt(e*e+i*i)}}function i(t,e){return Math.max(2,Math.min(16,Math.ceil(32*Math.abs(e-t))))}function n(t,e,i,n){if(null==e||e<0||e>1)return null;var r=t[0],s=t[1],a=t[2],o=t[3],h=t[4],l=t[5],f=t[6],d=t[7],_=u.isZero;_(a-r)&&_(o-s)&&(a=r,o=s),_(h-f)&&_(l-d)&&(h=f,l=d);var g,v,p=3*(a-r),m=3*(h-a)-p,y=f-r-p-m,w=3*(o-s),x=3*(l-o)-w,b=d-s-w-x;if(0===i)g=0===e?r:1===e?f:((y*e+m)*e+p)*e+r,v=0===e?s:1===e?d:((b*e+x)*e+w)*e+s;else{if(e<1e-8?(g=p,v=w):e>1-1e-8?(g=3*(f-h),v=3*(d-l)):(g=(3*y*e+2*m)*e+p,v=(3*b*e+2*x)*e+w),n){0===g&&0===v&&(e<1e-8||e>1-1e-8)&&(g=h-a,v=l-o);var C=Math.sqrt(g*g+v*v);C&&(g/=C,v/=C)}if(3===i){var h=6*y*e+2*m,l=6*b*e+2*x,S=Math.pow(g*g+v*v,1.5);g=0!==S?(g*l-v*h)/S:0,v=0}}return 2===i?new c(v,-g):new c(g,v)}return{statics:{classify:function(t){function i(t,i,n){var r=i!==e,s=r&&i>0&&i<1,a=r&&n>0&&n<1;return!r||(s||a)&&("loop"!==t||s&&a)||(t="arch",s=a=!1),{type:t,roots:s||a?s&&a?i0?Math.sqrt(y/3):Math.sqrt(-y),x=2*g;return i(y>0?"serpentine":"loop",(_+w)/x,(_-w)/x)},getLength:function(n,r,s,a){if(r===e&&(r=0),s===e&&(s=1),k.isStraight(n)){var o=n;s<1&&(o=k.subdivide(o,s)[0],r/=s),r>0&&(o=k.subdivide(o,r)[1]);var h=o[6]-o[0],l=o[7]-o[1];return Math.sqrt(h*h+l*l)}return u.integrate(a||t(n),r,s,i(r,s))},getTimeAt:function(n,r,s){if(s===e&&(s=r<0?1:0),0===r)return s;var a=Math.abs,o=r>0,h=o?s:0,l=o?1:s,c=t(n),f=k.getLength(n,h,l,c),d=a(r)-f;if(a(d)<1e-12)return o?l:h;if(d>1e-12)return null;var _=r/f,g=0;return u.findRoot(function(t){return g+=u.integrate(c,s,t,i(s,t)),s=t,g-r},c,s+_,h,l,32,1e-12)},getPoint:function(t,e){return n(t,e,0,!1)},getTangent:function(t,e){return n(t,e,1,!0)},getWeightedTangent:function(t,e){return n(t,e,1,!1)},getNormal:function(t,e){return n(t,e,2,!0)},getWeightedNormal:function(t,e){return n(t,e,2,!1)},getCurvature:function(t,e){return n(t,e,3,!1).x},getPeaks:function(t){var e=t[0],i=t[1],n=t[2],r=t[3],s=t[4],a=t[5],o=3*n-e-3*s+t[6],h=3*e-6*n+3*s,l=-3*e+3*n,c=3*r-i-3*a+t[7],f=3*i-6*r+3*a,d=-3*i+3*r,_=[];return u.solveCubic(9*(o*o+c*c),9*(o*h+f*c),2*(h*h+f*f)+3*(l*o+d*c),l*h+f*d,_,1e-8,1-1e-8),_.sort()}}}},new function(){function t(t,e,i,n,r,s,a){var o=!a&&i.getPrevious()===r,h=!a&&i!==r&&i.getNext()===r;if(null!==n&&n>=(o?1e-8:0)&&n<=(h?1-1e-8:1)&&null!==s&&s>=(h?1e-8:0)&&s<=(o?1-1e-8:1)){var u=new O(i,n,null,a),l=new O(r,s,null,a);u._intersection=l,l._intersection=u,e&&!e(u)||O.insert(t,u,!0)}}function e(r,s,a,o,h,u,l,c,f,d,_,g,v){if(++f>=4096||++c>=40)return f;var p,y,w=s[0],x=s[1],b=s[6],C=s[7],S=m.getSignedDistance,P=S(w,x,b,C,s[2],s[3]),I=S(w,x,b,C,s[4],s[5]),M=P*I>0?.75:4/9,T=M*Math.min(0,P,I),z=M*Math.max(0,P,I),O=S(w,x,b,C,r[0],r[1]),A=S(w,x,b,C,r[2],r[3]),L=S(w,x,b,C,r[4],r[5]),N=S(w,x,b,C,r[6],r[7]),B=i(O,A,L,N),D=B[0],j=B[1];if(0===P&&0===I&&0===O&&0===A&&0===L&&0===N||null==(p=n(D,j,T,z))||null==(y=n(D.reverse(),j.reverse(),T,z)))return f;var E=d+(_-d)*p,F=d+(_-d)*y;if(Math.max(v-g,F-E)<1e-9){var R=(E+F)/2,q=(g+v)/2;t(h,u,l?o:a,l?q:R,l?a:o,l?R:q)}else if(r=k.getPart(r,p,y),y-p>.8)if(F-E>v-g){R=(E+F)/2;f=e(s,(V=k.subdivide(r,.5))[0],o,a,h,u,!l,c,f,g,v,E,R),f=e(s,V[1],o,a,h,u,!l,c,f,g,v,R,F)}else{var V=k.subdivide(s,.5),q=(g+v)/2;f=e(V[0],r,o,a,h,u,!l,c,f,g,q,E,F),f=e(V[1],r,o,a,h,u,!l,c,f,q,v,E,F)}else f=v-g>=1e-9?e(s,r,o,a,h,u,!l,c,f,g,v,E,F):e(r,s,a,o,h,u,l,c,f,E,F,g,v);return f}function i(t,e,i,n){var r,s=[0,t],a=[1/3,e],o=[2/3,i],h=[1,n],u=e-(2*t+n)/3,l=i-(t+2*n)/3;if(u*l<0)r=[[s,a,h],[s,o,h]];else{var c=u/l;r=[c>=2?[s,a,h]:c<=.5?[s,o,h]:[s,a,o,h],[s,h]]}return(u||l)<0?r.reverse():r}function n(t,e,i,n){return t[0][1]n?r(e,!1,n):t[0][0]}function r(t,e,i){for(var n=t[0][0],r=t[0][1],s=1,a=t.length;s=i:h<=i)return h===i?o:n+(i-r)*(o-n)/(h-r);n=o,r=h}return null}function s(t,e,i,n,r){var s=u.isZero;if(s(n)&&s(r)){var a=k.getTimeOf(t,new c(e,i));return null===a?[]:[a]}for(var o=Math.atan2(-r,n),h=Math.sin(o),l=Math.cos(o),f=[],d=[],_=0;_<8;_+=2){var g=t[_]-e,v=t[_+1]-i;f.push(g*l-v*h,g*h+v*l)}return k.solveCubic(f,1,0,d,0,1),d}function a(e,i,n,r,a,o,h){for(var u=i[0],l=i[1],c=s(e,u,l,i[6]-u,i[7]-l),f=0,d=c.length;fl(n[0],n[2],n[4],n[6])&&l(i[0],i[2],i[4],i[6])-1e-12l(n[1],n[3],n[5],n[7])&&l(i[1],i[3],i[5],i[7])-1e-12>1,C=1&x,S=6*b,P=6*C,I=new c(i[S],i[S+1]),M=new c(n[P],n[P+1]);I.isClose(M,1e-12)&&t(h,u,r,b,s,C)}}}return h}function l(e,i,n,r){var s=k.classify(e);if("loop"===s.type){var a=s.roots;t(n,r,i,a[0],i,a[1])}return n}function f(t,e){function i(t){var e=t[6]-t[0],i=t[7]-t[1];return e*e+i*i}var n=Math.abs,r=m.getDistance,s=k.isStraight(t),a=k.isStraight(e),o=s&&a,h=i(t)>1,C=k.getTimeOf(v[w],new c(v[x][b?6:0],v[x][b?7:1]));if(null!=C){var S=w?[b,C]:[C,b];(!p.length||n(S[0]-p[0][0])>1e-8&&n(S[1]-p[0][1])>1e-8)&&p.push(S)}if(y>2&&!p.length)break}if(2!==p.length)p=null;else if(!o){var P=k.getPart(t,p[0][0],p[1][0]),I=k.getPart(e,p[0][1],p[1][1]);(n(I[2]-P[2])>1e-7||n(I[3]-P[3])>1e-7||n(I[4]-P[4])>1e-7||n(I[5]-P[5])>1e-7)&&(p=null)}return p}return{getIntersections:function(t){var e=this.getValues(),i=t&&t!==this&&t.getValues();return i?h(e,i,this,t,[]):l(e,this,[])},statics:{getOverlaps:f,getIntersections:function(t,e,i,n,r,s){var a=!e;a&&(e=t);for(var o,u,c=t.length,f=e.length,d=[],_=[],g=0;g=.99999999){var s=t.getNext();s&&(e=0,t=s)}this._setCurve(t),this._time=e,this._point=i||t.getPointAtTime(e),this._overlap=n,this._distance=r,this._intersection=this._next=this._previous=null},_setCurve:function(t){var e=t._path;this._path=e,this._version=e?e._version:0,this._curve=t,this._segment=null,this._segment1=t._segment1,this._segment2=t._segment2},_setSegment:function(t){this._setCurve(t.getCurve()),this._segment=t,this._time=t===this._segment1?0:1,this._point=t._point.clone()},getSegment:function(){var t=this._segment;if(!t){var e=this.getCurve(),i=this.getTime();0===i?t=e._segment1:1===i?t=e._segment2:null!=i&&(t=e.getPartLength(0,i)1?n[r-1]:r>0?n[0]:.5;c.push(k.getLength(i,e?s:0,e?1:s)/2)}function e(t,e,i){return ee&&te||t=1e-8&&n<=1-1e-8,a=r>=1e-8&&r<=1-1e-8;if(s&&a)return!this.isTouching();var o=this.getCurve(),h=n<1e-8?o.getPrevious():o,u=i.getCurve(),l=r<1e-8?u.getPrevious():u;if(n>1-1e-8&&(o=o.getNext()),r>1-1e-8&&(u=u.getNext()),!(h&&o&&l&&u))return!1;var c=[];s||(t(h,!0),t(o,!1)),a||(t(l,!0),t(u,!1));var f=this.getPoint(),d=Math.min.apply(Math,c),_=s?o.getTangentAtTime(n):o.getPointAt(d).subtract(f),g=s?_.negate():h.getPointAt(-d).subtract(f),v=a?u.getTangentAtTime(r):u.getPointAt(d).subtract(f),p=a?v.negate():l.getPointAt(-d).subtract(f),m=g.getAngle(),y=_.getAngle(),w=p.getAngle(),x=v.getAngle();return!!(s?e(m,w,x)^e(y,w,x)&&e(m,x,w)^e(y,x,w):e(w,m,y)^e(x,m,y)&&e(w,y,m)^e(x,y,m))},hasOverlap:function(){return!!this._overlap}},r.each(k._evaluateMethods,function(t){var e=t+"At";this[t]=function(){var t=this.getCurve(),i=this.getTime();return null!=i&&t&&t[e](i,!0)}},{preserve:!0}),new function(){function t(t,e,i){function n(i,n){for(var s=i+n;s>=-1&&s<=r;s+=n){var a=t[(s%r+r)%r];if(!e.getPoint().isClose(a.getPoint(),1e-7))break;if(e.equals(a))return a}return null}for(var r=t.length,s=0,a=r-1;s<=a;){var o,h=s+a>>>1,u=t[h];if(i&&(o=e.equals(u)?u:n(h,-1)||n(h,1)))return e._overlap&&(o._overlap=o._intersection._overlap=!0),o;var l=e.getPath(),c=u.getPath();(l!==c?l._id-c._id:e.getIndex()+e.getTime()-(u.getIndex()+u.getTime()))<0?a=h-1:s=h+1}return t.splice(s,0,e),e}return{statics:{insert:t,expand:function(e){for(var i=e.slice(),n=e.length-1;n>=0;n--)t(i,e[n]._intersection,!1);return i}}}}),A=w.extend({_class:"PathItem",_selectBounds:!1,_canScaleStroke:!0,beans:!0,initialize:function(){},statics:{create:function(t){var e,i,n;if(r.isPlainObject(t)?(i=t.segments,e=t.pathData):Array.isArray(t)?i=t:"string"==typeof t&&(e=t),i){var s=i[0];n=s&&Array.isArray(s[0])}else e&&(n=(e.match(/m/gi)||[]).length>1||/z\s*\S+/i.test(e));return new(n?N:L)(t)}},_asPathItem:function(){return this},isClockwise:function(){return this.getArea()>=0},setClockwise:function(t){this.isClockwise()!=(t=!!t)&&this.reverse()},setPathData:function(t){function e(t,e){var i=+n[t];return o&&(i+=h[e]),i}function i(t){return new c(e(t,"x"),e(t+1,"y"))}var n,r,s,a=t&&t.match(/[mlhvcsqtaz][^mlhvcsqtaz]*/gi),o=!1,h=new c,u=new c;this.clear();for(var l=0,f=a&&a.length;lu&&this[n?"removeSegments":"removeChildren"](u,h);for(c=0;c=0&&e;h--){var u=i[h];e=!1;for(var l=s-1;l>=0&&!e;l--)u.compare(n[l])&&(a[l]||(a[l]=!0,o++),e=!0)}e=e&&o===s}return e}}),L=A.extend({_class:"Path",_serializeFields:{segments:[],closed:!1},initialize:function(t){this._closed=!1,this._segments=[],this._version=0;var i=Array.isArray(t)?"object"==typeof t[0]?t:arguments:!t||t.size!==e||t.x===e&&t.point===e?null:arguments;i&&i.length>0?this.setSegments(i):(this._curves=e,this._segmentSelection=0,i||"string"!=typeof t||(this.setPathData(t),t=null)),this._initialize(!i&&t)},_equals:function(t){return this._closed===t._closed&&r.equals(this._segments,t._segments)},copyContent:function(t){this.setSegments(t._segments),this._closed=t._closed},_changed:function t(i){if(t.base.call(this,i),8&i){if(this._length=this._area=e,16&i)this._version++;else if(this._curves)for(var n=0,r=this._curves.length;n0&&(i(f[0],!0),p.push("z")),p.join("")},isEmpty:function(){return!this._segments.length},_transformContent:function(t){for(var e=this._segments,i=new Array(6),n=0,r=e.length;n0&&e+r-1===u?e-1:e,c=l,f=Math.min(l+r,u);t._curves&&(n.splice.apply(n,[l,0].concat(t._curves)),c+=t._curves.length);for(a=c;a0?t-1:t},add:function(t){return arguments.length>1&&"number"!=typeof t?this._add(T.readList(arguments)):this._add([T.read(arguments)])[0]},insert:function(t,e){return arguments.length>2&&"number"!=typeof e?this._add(T.readList(arguments,1),t):this._add([T.read(arguments,1)],t)[0]},addSegment:function(){return this._add([T.read(arguments)])[0]},insertSegment:function(t){return this._add([T.read(arguments,1)],t)[0]},addSegments:function(t){return this._add(T.readList(t))},insertSegments:function(t,e){return this._add(T.readList(e),t)},removeSegment:function(t){return this.removeSegments(t,t+1)[0]||null},removeSegments:function(t,e,i){t=t||0,e=r.pick(e,this._segments.length);var n=this._segments,s=this._curves,a=n.length,o=n.splice(t,e-t),h=o.length;if(!h)return o;for(l=0;l0&&e===a+(this._closed?1:0)?t-1:t,l=(s=s.splice(f,h)).length-1;l>=0;l--)s[l]._path=null;i&&(o._curves=s.slice(1)),this._adjustCurves(f,f)}return this._changed(25),o},clear:"#removeSegments",hasHandles:function(){for(var t=this._segments,e=0,i=t.length;e0&&this._segmentSelection===7*t},setFullySelected:function(t){t&&this._selectSegments(!0),this.setSelected(t)},setSelection:function t(e){1&e||this._selectSegments(!1),t.base.call(this,e)},_selectSegments:function(t){var e=this._segments,i=e.length,n=t?7:0;this._segmentSelection=n*i;for(var r=0;r0&&this.setSelected(!0)},divideAt:function(t){var e,i=this.getLocationAt(t);return i&&(e=i.getCurve().divideAt(i.getCurveOffset()))?e._segment1:null},splitAt:function(t){var e=this.getLocationAt(t),i=e&&e.index,n=e&&e.time;n>1-1e-8&&(i++,n=0);var r=this.getCurves();if(i>=0&&i=1e-8&&r[i++].divideAtTime(n);var s,a=this.removeSegments(i,this._segments.length,!0);return this._closed?(this.setClosed(!1),s=this):((s=new L(w.NO_INSERT)).insertAbove(this),s.copyAttributes(this)),s._add(a,0),this.addSegment(a[0]),s}return null},split:function(t,i){var n,r=i===e?t:(n=this.getCurves()[t])&&n.getLocationAtTime(i);return null!=r?this.splitAt(r):null},join:function(t,e){var i=e||0;if(t&&t!==this){var n=t._segments,r=this.getLastSegment(),s=t.getLastSegment();if(!s)return this;r&&r._point.isClose(s._point,i)&&t.reverse();var a=t.getFirstSegment();if(r&&r._point.isClose(a._point,i))r.setHandleOut(a._handleOut),this._add(n.slice(1));else{var o=this.getFirstSegment();o&&o._point.isClose(a._point,i)&&t.reverse(),s=t.getLastSegment(),o&&o._point.isClose(s._point,i)?(o.setHandleIn(s._handleIn),this._add(n.slice(0,n.length-1),0)):this._add(n.slice())}t._closed&&this._add([n[0]]),t.remove()}var h=this.getFirstSegment(),u=this.getLastSegment();return h!==u&&h._point.isClose(u._point,i)&&(h.setHandleIn(u._handleIn),u.remove(),this.setClosed(!0)),this},reduce:function(t){for(var e=this.getCurves(),i=t&&t.simplify,n=i?1e-7:0,r=e.length-1;r>=0;r--){var s=e[r];!s.hasHandles()&&(!s.hasLength(n)||i&&s.isCollinear(s.getNext()))&&s.remove()}return this},reverse:function(){this._segments.reverse();for(var t=0,e=this._segments.length;t0&&n.push(new T(e[i-1].curve.slice(6))),this.setSegments(n)},simplify:function(t){var e=new D(this).fit(t||2.5);return e&&this.setSegments(e),!!e},smooth:function(t){function i(t,e){var i=t&&t.index;if(null!=i){var r=t.path;if(r&&r!==n)throw new Error(t._class+" "+i+" of "+r+" is not part of "+n);e&&t instanceof k&&i++}else i="number"==typeof t?t:e;return Math.min(i<0&&h?i%o:i<0?i+o:i,o-1)}var n=this,r=t||{},s=r.type||"asymmetric",a=this._segments,o=a.length,h=this._closed,u=h&&r.from===e&&r.to===e,l=i(r.from,0),c=i(r.to,o-1);if(l>c)if(h)l-=o;else{var f=l;l=c,c=f}if(/^(?:asymmetric|continuous)$/.test(s)){var d="asymmetric"===s,_=Math.min,g=c-l+1,v=g-1,p=u?_(g,4):1,m=p,y=p,w=[];if(h||(m=_(1,l),y=_(1,o-c-1)),(v+=m+y)<=1)return;for(var x=0,b=l-m;x<=v;x++,b++)w[x]=a[(b<0?b+o:b)%o]._point;for(var C=w[0]._x+2*w[1]._x,S=w[0]._y+2*w[1]._y,P=2,I=v-1,M=[C],T=[S],z=[P],O=[],A=[],x=1;x=0;x--)O[x]=(M[x]-O[x+1])/z[x],A[x]=(T[x]-A[x+1])/z[x];O[v]=(3*w[v]._x-O[I])/2,A[v]=(3*w[v]._y-A[I])/2;for(var x=m,F=v-y,b=l;x<=F;x++,b++){var R=a[b<0?b+o:b],q=R._point,V=O[x]-q._x,H=A[x]-q._y;(u||xm)&&R.setHandleIn(-V,-H)}}else for(x=l;x<=c;x++)a[x<0?x+o:x].smooth(r,!u&&x===l,!u&&x===c)},toShape:function(t){function i(t,e){var i=l[t],n=i.getNext(),r=l[e],s=r.getNext();return i._handleOut.isZero()&&n._handleIn.isZero()&&r._handleOut.isZero()&&s._handleIn.isZero()&&n._point.subtract(i._point).isCollinear(s._point.subtract(r._point))}function n(t){var e=l[t],i=e.getNext(),n=e._handleOut,r=i._handleIn;if(n.isOrthogonal(r)){var s=e._point,a=i._point,o=new m(s,n,!0).intersect(new m(a,r,!0),!0);return o&&u.isZero(n.getLength()/o.subtract(s).getLength()-.5522847498307936)&&u.isZero(r.getLength()/o.subtract(a).getLength()-.5522847498307936)}return!1}function r(t,e){return l[t]._point.getDistance(l[e]._point)}if(!this._closed)return null;var s,a,o,h,l=this._segments;if(!this.hasHandles()&&4===l.length&&i(0,2)&&i(1,3)&&function(t){var e=l[t],i=e.getPrevious(),n=e.getNext();return i._handleOut.isZero()&&e._handleIn.isZero()&&e._handleOut.isZero()&&n._handleIn.isZero()&&e._point.subtract(i._point).isOrthogonal(n._point.subtract(e._point))}(1)?(s=C.Rectangle,a=new d(r(0,3),r(0,1)),h=l[1]._point.add(l[2]._point).divide(2)):8===l.length&&n(0)&&n(2)&&n(4)&&n(6)&&i(1,5)&&i(3,7)?(s=C.Rectangle,o=(a=new d(r(1,6),r(0,3))).subtract(new d(r(0,7),r(1,2))).divide(2),h=l[3]._point.add(l[4]._point).divide(2)):4===l.length&&n(0)&&n(1)&&n(2)&&n(3)&&(u.isZero(r(0,2)-r(1,3))?(s=C.Circle,o=r(0,2)/2):(s=C.Ellipse,o=new d(r(2,0)/2,r(3,1)/2)),h=l[1]._point),s){var c=this.getPosition(!0),f=new s({center:c,size:a,radius:o,insert:!1});return f.copyAttributes(this,!0),f._matrix.prepend(this._matrix),f.rotate(h.subtract(c).getAngle()+90),(t===e||t)&&f.insertAbove(this),f}return null},toPath:"#clone",compare:function t(e){if(!e||e instanceof N)return t.base.call(this,e);var i=this.getCurves(),n=e.getCurves(),r=i.length,s=n.length;if(!r||!s)return r==s;for(var a,o,h=i[0].getValues(),u=[],l=0,c=0,f=0;f0?s-1:f,o=v[0][1];break}}for(var d,_=Math.abs,g=u[a];h&&g;){var v=k.getOverlaps(h,g);if(v&&_(v[0][0]-c)<1e-8){1===(c=v[1][0])&&(h=++l=s&&(a=0),g=u[a]||n[a].getValues(),o=0),!h)return d[0]===a&&d[1]===o;continue}}break}return!1},_hitTestSelf:function(t,e,i,n){function r(e,i){return t.subtract(e).divide(i).length<=1}function s(t,i,n){if(!e.selected||i.isSelected()){var s=t._point;if(i!==s&&(i=i.add(s)),r(i,x))return new M(n,g,{segment:t,point:i})}}function a(t,i){return(i||e.segments)&&s(t,t._point,"segment")||!i&&e.handles&&(s(t,t._handleIn,"handle-in")||s(t,t._handleOut,"handle-out"))}function o(t){f.add(t)}function h(e){var i=y||e._index>0&&e._index0||S?0:null;if(null!==P&&(P>0?(u=v.getStrokeJoin(),l=v.getStrokeCap(),c=v.getMiterLimit(),x=x.add(L._getStrokePadding(P,n))):u=l="round"),!e.ends||e.segments||y){if(e.segments||e.handles)for(T=0;T1?h(d.getSegment())||(d=null):r(d.getPoint(),x)||(d=null)}if(!d&&"miter"===u&&m>1)for(var T=0;Tt)return a.getLocationAt(t-s)}if(e.length>0&&t<=this.getLength())return new O(e[e.length-1],1)}else if(t&&t.getPath&&t.getPath()===this)return t;return null}}),new function(){function t(t,e,i,n){function r(e){var i=h[e],n=h[e+1];s==i&&a==n||(t.beginPath(),t.moveTo(s,a),t.lineTo(i,n),t.stroke(),t.beginPath(),t.arc(i,n,o,0,2*Math.PI,!0),t.fill())}for(var s,a,o=n/2,h=new Array(6),u=0,l=e.length;u0&&n(f[0])}return{_draw:function(t,i,n,r){function s(t){return c[(t%f+f)%f]}var a=i.dontStart,o=i.dontFinish||i.clip,h=this.getStyle(),u=h.hasFill(),l=h.hasStroke(),c=h.getDashArray(),f=!paper.support.nativeDash&&l&&c&&c.length;if(a||t.beginPath(),(u||l&&!f||o)&&(e(t,this,r),this._closed&&t.closePath()),!o&&(u||l)&&(this._setStyles(t,i,n),u&&(t.fill(h.getFillRule()),t.shadowColor="rgba(0,0,0,0)"),l)){if(f){a||t.beginPath();var d,_=new B(this,.25,32,!1,r),g=_.length,v=-h.getDashOffset(),p=0;for(v%=g;v>0;)v-=s(p--)+s(p--);for(;v0||d>0)&&_.drawPart(t,Math.max(v,0),Math.max(d,0)),v=d+s(p++)}t.stroke()}},_drawSelected:function(i,n){i.beginPath(),e(i,this,n),i.stroke(),t(i,this._segments,n,paper.settings.handleSize)}}},new function(){function t(t){var e=t._segments;if(!e.length)throw new Error("Use a moveTo() command first");return e[e.length-1]}return{moveTo:function(){var t=this._segments;1===t.length&&this.removeSegment(0),t.length||this._add([new T(c.read(arguments))])},moveBy:function(){throw new Error("moveBy() is unsupported on Path items.")},lineTo:function(){this._add([new T(c.read(arguments))])},cubicCurveTo:function(){var e=c.read(arguments),i=c.read(arguments),n=c.read(arguments),r=t(this);r.setHandleOut(e.subtract(r._point)),this._add([new T(n,i.subtract(n))])},quadraticCurveTo:function(){var e=c.read(arguments),i=c.read(arguments),n=t(this)._point;this.cubicCurveTo(e.add(n.subtract(e).multiply(1/3)),e.add(i.subtract(e).multiply(1/3)),i)},curveTo:function(){var e=c.read(arguments),i=c.read(arguments),n=r.pick(r.read(arguments),.5),s=1-n,a=t(this)._point,o=e.subtract(a.multiply(s*s)).subtract(i.multiply(n*n)).divide(2*n*s);if(o.isNaN())throw new Error("Cannot put a curve through points with parameter = "+n);this.quadraticCurveTo(o,i)},arcTo:function(){var e,i,n,s,a=Math.abs,o=Math.sqrt,h=t(this),l=h._point,f=c.read(arguments),_=r.peek(arguments);if("boolean"==typeof(x=r.pick(_,!0)))var g=(C=l.add(f).divide(2)).add(C.subtract(l).rotate(x?-90:90));else if(r.remain(arguments)<=2)g=f,f=c.read(arguments);else{var v=d.read(arguments),y=u.isZero;if(y(v.width)||y(v.height))return this.lineTo(f);var w=r.read(arguments),x=!!r.read(arguments),b=!!r.read(arguments),C=l.add(f).divide(2),S=(W=l.subtract(C).rotate(-w)).x,P=W.y,I=a(v.width),M=a(v.height),z=I*I,k=M*M,O=S*S,A=P*P,L=o(O/z+A/k);if(L>1&&(z=(I*=L)*I,k=(M*=L)*M),L=(z*k-z*A-k*O)/(z*A+k*O),a(L)<1e-12&&(L=0),L<0)throw new Error("Cannot create an arc with the given arguments");e=new c(I*P/M,-M*S/I).multiply((b===x?-1:1)*o(L)).rotate(w).add(C),i=(n=(s=(new p).translate(e).rotate(w).scale(I,M))._inverseTransform(l)).getDirectedAngle(s._inverseTransform(f)),!x&&i>0?i-=360:x&&i<0&&(i+=360)}if(g){var N=new m(l.add(g).divide(2),g.subtract(l).rotate(90),!0),B=new m(g.add(f).divide(2),f.subtract(g).rotate(90),!0),D=new m(l,f),j=D.getSide(g);if(!(e=N.intersect(B,!0))){if(!j)return this.lineTo(f);throw new Error("Cannot create an arc with the given arguments")}i=(n=l.subtract(e)).getDirectedAngle(f.subtract(e));var E=D.getSide(e);0===E?i=j*a(i):j===E&&(i+=i<0?360:-360)}for(var F=a(i),R=F>=360?4:Math.ceil((F-1e-7)/90),q=i/R,V=q*Math.PI/360,H=4/3*Math.sin(V)/(1+Math.cos(V)),Z=[],U=0;U<=R;U++){var W=f,G=null;if(U0&&(h(t[0],y),h(t[t.length-1],y)),v},_getStrokePadding:function(t,e){if(!e)return[t,t];var i=new c(t,0).transform(e),n=new c(0,t).transform(e),r=i.getAngleInRadians(),s=i.getLength(),a=n.getLength(),o=Math.sin(r),h=Math.cos(r),u=Math.tan(r),l=Math.atan2(a*u,s),f=Math.atan2(a,u*s);return[Math.abs(s*Math.cos(l)*h+a*Math.sin(l)*o),Math.abs(a*Math.sin(f)*h+s*Math.cos(f)*o)]},_addBevelJoin:function(t,e,i,n,r,s,a,o){var h=t.getCurve(),u=h.getPrevious(),l=h.getPoint1().transform(r),f=u.getNormalAtTime(1).multiply(i).transform(s),d=h.getNormalAtTime(0).multiply(i).transform(s);if(f.getDirectedAngle(d)<0&&(f=f.negate(),d=d.negate()),o&&a(l),a(l.add(f)),"miter"===e){var _=new m(l.add(f),new c(-f.y,f.x),!0).intersect(new m(l.add(d),new c(-d.y,d.x),!0),!0);_&&l.getDistance(_)<=n*i&&a(_)}a(l.add(d))},_addSquareCap:function(t,e,i,n,r,s,a){var o=t._point.transform(n),h=t.getLocation(),u=h.getNormal().multiply(0===h.getTime()?i:-i).transform(r);"square"===e&&(a&&(s(o.subtract(u)),s(o.add(u))),o=o.add(u.rotate(-90))),s(o.add(u)),s(o.subtract(u))},getHandleBounds:function(t,e,i,n,r){var s,a,o=i.getStyle();if(r.stroke&&o.hasStroke()){var h=i._getStrokeMatrix(n,r),u=o.getStrokeWidth()/2,l=u;"miter"===o.getStrokeJoin()&&(l=u*o.getMiterLimit()),"square"===o.getStrokeCap()&&(l=Math.max(l,u*Math.SQRT2)),s=L._getStrokePadding(u,h),a=L._getStrokePadding(l,h)}for(var c=new Array(6),f=1/0,d=-f,_=f,v=d,p=0,m=t.length;pd&&(d=I),M<_&&(_=M),T>v&&(v=T)}}return new g(f,_,d-f,v-_)}}});L.inject({statics:new function(){function t(t,e,i){var n=r.getNamed(i),s=new L(n&&0==n.insert&&w.NO_INSERT);return s._add(t),s._closed=e,s.set(n,{insert:!0})}function e(e,i,r){for(var s=new Array(4),a=0;a<4;a++){var o=n[a];s[a]=new T(o._point.multiply(i).add(e),o._handleIn.multiply(i),o._handleOut.multiply(i))}return t(s,!0,r)}var i=.5522847498307936,n=[new T([-1,0],[0,i],[0,-i]),new T([0,-1],[-i,0],[i,0]),new T([1,0],[0,-i],[0,i]),new T([0,1],[i,0],[-i,0])];return{Line:function(){return t([new T(c.readNamed(arguments,"from")),new T(c.readNamed(arguments,"to"))],!1,arguments)},Circle:function(){var t=c.readNamed(arguments,"center"),i=r.readNamed(arguments,"radius");return e(t,new d(i),arguments)},Rectangle:function(){var e,n=g.readNamed(arguments,"rectangle"),r=d.readNamed(arguments,"radius",0,{readNull:!0}),s=n.getBottomLeft(!0),a=n.getTopLeft(!0),o=n.getTopRight(!0),h=n.getBottomRight(!0);if(!r||r.isZero())e=[new T(s),new T(a),new T(o),new T(h)];else{var u=(r=d.min(r,n.getSize(!0).divide(2))).width,l=r.height,c=u*i,f=l*i;e=[new T(s.add(u,0),null,[-c,0]),new T(s.subtract(0,l),[0,f]),new T(a.add(0,l),null,[0,-f]),new T(a.add(u,0),[-c,0],null),new T(o.subtract(u,0),null,[c,0]),new T(o.add(0,l),[0,-f],null),new T(h.subtract(0,l),null,[0,f]),new T(h.subtract(u,0),[c,0])]}return t(e,!0,arguments)},RoundRectangle:"#Rectangle",Ellipse:function(){var t=C._readEllipse(arguments);return e(t.center,t.radius,arguments)},Oval:"#Ellipse",Arc:function(){var t=c.readNamed(arguments,"from"),e=c.readNamed(arguments,"through"),i=c.readNamed(arguments,"to"),n=r.getNamed(arguments),s=new L(n&&0==n.insert&&w.NO_INSERT);return s.moveTo(t),s.arcTo(e,i),s.set(n)},RegularPolygon:function(){for(var e=c.readNamed(arguments,"center"),i=r.readNamed(arguments,"sides"),n=r.readNamed(arguments,"radius"),s=360/i,a=i%3==0,o=new c(0,a?-n:n),h=a?-1:.5,u=new Array(i),l=0;l=0;a--){var o=n[a];n!==i||o instanceof L||(n=r.slice(n)),Array.isArray(o)?n[a]=new L({segments:o,insert:!1}):o instanceof N&&(n.splice.apply(n,[a,1].concat(o.removeChildren())),o.remove())}return t.base.call(this,e,n)},reduce:function t(e){for(var i=this._children,n=i.length-1;n>=0;n--)(r=i[n].reduce(e)).isEmpty()&&r.remove();if(!i.length){var r=new L(w.NO_INSERT);return r.copyAttributes(this),r.insertAbove(this),this.remove(),r}return t.base.call(this)},isClosed:function(){for(var t=this._children,e=0,i=t.length;e=0;d--){var _=h[d].split();_&&(s(_)&&_.getFirstSegment().setHandleIn(0,0),a.getLastSegment().setHandleOut(0,0))}return s(a),i(f,!1,e,n)}function a(t,e){for(var i=t;i;){if(i===e)return;i=i._previous}for(;t._next&&t._next!==e;)t=t._next;if(!t._next){for(;e._previous;)e=e._previous;t._next=e,e._previous=t}}function o(t){for(var e=t.length-1;e>=0;e--)t[e].clearHandles()}function h(t,e,i){var n=t&&t.length;if(n){var s=r.each(t,function(t,e){this[t._id]={container:null,winding:t.isClockwise()?1:-1,index:e}},{}),a=t.slice().sort(function(t,e){return v(e.getArea())-v(t.getArea())}),o=a[0];null==i&&(i=o.isClockwise());for(var h=0;h=0;d--){var _=a[d];if(_.contains(c)){var g=s[_._id];f=g.winding,l.winding+=f,l.container=g.exclude?g.container:_;break}}if(e(l.winding)===e(f))l.exclude=!0,t[l.index]=null;else{var p=l.container;u.setClockwise(p?!p.isClockwise():i)}}}return t}function l(t,e,i){function n(t){return t._path._id+"."+t._segment1._index}for(var r,s,h,u=e&&[],l=!1,c=i||[],f=i&&{},d=(i&&i.length)-1;d>=0;d--)(y=i[d])._path&&(f[n(y)]=!0);for(d=t.length-1;d>=0;d--){var _,g=t[d],v=g._time,p=v,m=e&&!e(g),y=g._curve;if(y&&(y!==s?(l=!y.hasHandles()||f&&f[n(y)],r=[],h=null,s=y):h>=1e-8&&(v/=h)),m)r&&r.push(g);else{if(e&&u.unshift(g),h=p,v<1e-8)_=y._segment1;else if(v>1-1e-8)_=y._segment2;else{var w=y.divideAtTime(v,!0);l&&c.push(y,w),_=w._segment1;for(var x=r.length-1;x>=0;x--){var b=r[x];b._time=(b._time-v)/(1-v)}}g._setSegment(_);var C=_._intersection,S=g._intersection;if(C){a(C,S);for(var P=C;P;)a(P._intersection,C),P=P._next}else _._intersection=S}}return i||o(c),u||t}function c(t,e,i,n,r){function s(s){var a=s[l+0],h=s[l+6];if(!(p<_(a,h)||p>g(a,h))){var f=s[u+0],v=s[u+2],x=s[u+4],b=s[u+6];if(a!==h){var I=p===a?0:p===h?1:y>g(f,v,x,b)||w<_(f,v,x,b)?1:k.solveCubic(s,l,p,T,0,1)>0?T[0]:1,z=0===I?f:1===I?b:k.getPoint(s,I)[i?"y":"x"],O=a>h?1:-1,A=o[l]>o[l+6]?1:-1,L=o[u+6];return p!==a?(zw?S+=O:P=!0,z>d-m&&zw&&(S+=O):f!=L&&(Lw?(S+=O,P=!0):L>y&&zy&&zy||by)&&(P=!0)}}function a(t){var e=t[l+0],n=t[l+2],r=t[l+4],a=t[l+6];if(p<=g(e,n,r,a)&&p>=_(e,n,r,a))for(var o,h=t[u+0],c=t[u+2],f=t[u+4],d=t[u+6],v=y>g(h,c,f,d)||w<_(h,c,f,d)?[t]:k.getMonoCurves(t,i),m=0,x=v.length;ml.quality&&(l=I);break}d-=m}for(_=s.length-1;_>=0;_--)s[_].segment._winding=l}function d(t,e){function i(t){var i;return!(!t||t._visited||e&&(!e[(i=t._winding||{}).winding]||e.unite&&2===i.winding&&i.windingL&&i.windingR))}function n(t){if(t)for(var e=0,i=s.length;e=0;c--){var f=u[c],_=f._path,g=f._segment,v=g.getPrevious(),p=g.getNext();t(v,_)&&t(p,_)&&(g.remove(),v._handleOut._set(0,0),p._handleIn._set(0,0),v===g||v.getCurve().hasLength()||(p._handleIn.set(v._handleIn),v.remove()))}s&&(l(a,n&&function(t){var e=t.getCurve(),i=t.getSegment(),n=t._intersection,r=n._curve,s=n._segment;if(e&&r&&e._path&&r._path)return!0;i&&(i._intersection=null),s&&(s._intersection=null)},h),h&&o(h),i=d(r.each(i,function(t){this.push.apply(this,t._segments)},[])));var m,y=i.length;return y>1&&e?(i!==e&&this.setChildren(i),m=this):1!==y||e||(i[0]!==this&&this.setSegments(i[0].removeSegments()),m=this),m||((m=new N(w.NO_INSERT)).addChildren(i),(m=m.reduce()).copyAttributes(this),this.replaceWith(m)),m},reorient:function(t,i){var n=this._children;return n&&n.length?this.setChildren(h(this.removeChildren(),function(e){return!!(t?e:1&e)},i)):i!==e&&this.setClockwise(i),this},getInteriorPoint:function(){var t=this.getBounds().getCenter(!0);if(!this.contains(t)){for(var e=this.getCurves(),i=t.y,n=[],r=[],s=0,a=e.length;s=_(h,u,l,c)&&i<=g(h,u,l,c))for(var f=k.getMonoCurves(o),d=0,v=f.length;d=m&&i<=y||i>=y&&i<=m)){var w=i===m?p[0]:i===y?p[6]:1===k.solveCubic(p,1,i,r,0,1)?k.getPoint(p,r[0]).x:(p[0]+p[6])/2;n.push(w)}}}n.length>1&&(n.sort(function(t,e){return t-e}),t.x=(n[0]+n[1])/2)}return t}}});var B=r.extend({_class:"PathFlattener",initialize:function(t,e,i,n,r){function s(t,e){var i=k.getValues(t,e,r);h.push(i),a(i,t._index,0,1)}function a(t,i,r,s){if(!(s-r>c)||n&&k.isStraight(t)||k.isFlatEnough(t,e||.25)){var o=t[6]-t[0],h=t[7]-t[1],f=Math.sqrt(o*o+h*h);f>0&&(l+=f,u.push({offset:l,curve:t,index:i,time:s}))}else{var d=k.subdivide(t,.5),_=(r+s)/2;a(d[0],i,r,_),a(d[1],i,_,s)}}for(var o,h=[],u=[],l=0,c=1/(i||32),f=t._segments,d=f[0],_=1,g=f.length;_=t){this.index=e;var a=i[e-1],o=a&&a.index===s.index?a.time:0,h=a?a.offset:0;return{index:s.index,time:o+(s.time-o)*(t-h)/(s.offset-h)}}}return{index:i[n-1].index,time:1}},drawPart:function(t,e,i){for(var n=this._get(e),r=this._get(i),s=n.index,a=r.index;s<=a;s++){var o=k.getPart(this.curves[s],s===n.index?n.time:0,s===r.index?r.time:1);s===n.index&&t.moveTo(o[0],o[1]),t.bezierCurveTo.apply(t,o.slice(2))}}},r.each(k._evaluateMethods,function(t){this[t+"At"]=function(e){var i=this._get(e);return k[t](this.curves[i.index],i.time)}},{})),D=r.extend({initialize:function(t){for(var e,i=this.points=[],n=t._segments,r=t._closed,s=0,a=n.length;s0&&(n=[new T(e[0])],i>1&&(this.fitCubic(n,t,0,i-1,e[1].subtract(e[0]),e[i-2].subtract(e[i-1])),this.closed&&(n.shift(),n.pop()))),n},fitCubic:function(t,e,i,n,r,s){var a=this.points;if(n-i!=1){for(var o,h=this.chordLengthParameterize(i,n),u=Math.max(e,e*e),l=!0,c=0;c<=4;c++){var f=this.generateBezier(i,n,h,r,s),d=this.findMaxError(i,n,f,h);if(d.error=u)break;l=this.reparameterize(i,n,h,f),u=d.error}var _=a[o-1].subtract(a[o+1]);this.fitCubic(t,e,i,o,r,_),this.fitCubic(t,e,o,n,_.negate(),s)}else{var g=a[i],v=a[n],p=g.getDistance(v)/3;this.addCurve(t,[g,g.add(r.normalize(p)),v.add(s.normalize(p)),v])}},addCurve:function(t,e){t[t.length-1].setHandleOut(e[1].subtract(e[0])),t.push(new T(e[3],e[2].subtract(e[3])))},generateBezier:function(t,e,i,n,r){for(var s=Math.abs,a=this.points,o=a[t],h=a[e],u=[[0,0],[0,0]],l=[0,0],c=0,f=e-t+1;c1e-12){var I=u[0][0]*l[1]-u[1][0]*l[0];C=(l[0]*u[1][1]-l[1]*u[0][1])/P,S=I/P}else{var M=u[0][0]+u[0][1],T=u[1][0]+u[1][1];C=S=s(M)>1e-12?l[0]/M:s(T)>1e-12?l[1]/T:0}var z,k,O=h.getDistance(o),A=1e-12*O;if(CO*O&&(C=S=O/3,z=k=null)}return[o,o.add(z||n.normalize(C)),h.add(k||r.normalize(S)),h]},reparameterize:function(t,e,i,n){for(r=t;r<=e;r++)i[r-t]=this.findRoot(n,this.points[r],i[r-t]);for(var r=1,s=i.length;r=s&&(s=h,r=a)}return{error:s,index:r}}}),j=w.extend({_class:"TextItem",_applyMatrix:!1,_canApplyMatrix:!1,_serializeFields:{content:null},_boundsOptions:{stroke:!1,handle:!1},initialize:function(t){this._content="",this._lines=[];var i=t&&r.isPlainObject(t)&&t.x===e&&t.y===e;this._initialize(i&&t,!i&&c.read(arguments))},_equals:function(t){return this._content===t._content},copyContent:function(t){this.setContent(t._content)},getContent:function(){return this._content},setContent:function(t){this._content=""+t,this._lines=this._content.split(/\r\n|\n|\r/gm),this._changed(265)},isEmpty:function(){return!this._content},getCharacterStyle:"#getStyle",setCharacterStyle:"#setStyle",getParagraphStyle:"#getStyle",setParagraphStyle:"#setStyle"}),E=j.extend({_class:"PointText",initialize:function(){j.apply(this,arguments)},getPoint:function(){var t=this._matrix.getTranslation();return new f(t.x,t.y,this,"setPoint")},setPoint:function(){var t=c.read(arguments);this.translate(t.subtract(this._matrix.getTranslation()))},_draw:function(t,e,i){if(this._content){this._setStyles(t,e,i);var n=this._lines,r=this._style,s=r.hasFill(),a=r.hasStroke(),o=r.getLeading(),h=t.shadowColor;t.font=r.getFontStyle(),t.textAlign=r.getJustification();for(var u=0,l=n.length;u1&&(h-=1),a[o]=6*h<1?s+6*(r-s)*h:2*h<1?r:3*h<2?s+(r-s)*(2/3-h)*6:s}return a},"rgb-gray":function(t,e,i){return[.2989*t+.587*e+.114*i]},"gray-rgb":function(t){return[t,t,t]},"gray-hsb":function(t){return[0,0,t]},"gray-hsl":function(t){return[0,0,t]},"gradient-rgb":function(){return[]},"rgb-gradient":function(){return[]}};return r.each(n,function(t,e){s[e]=[],r.each(t,function(t,i){var a=r.capitalize(t),o=/^(hue|saturation)$/.test(t),h=s[e][i]="gradient"===t?function(t){var e=this._components[0];return t=R.read(Array.isArray(t)?t:arguments,0,{readNull:!0}),e!==t&&(e&&e._removeOwner(this),t&&t._addOwner(this)),t}:"gradient"===e?function(){return c.read(arguments,0,{readNull:"highlight"===t,clone:!0})}:function(t){return null==t||isNaN(t)?0:t};this["get"+a]=function(){return this._type===e||o&&/^hs[bl]$/.test(this._type)?this._components[i]:this._convert(e)[i]},this["set"+a]=function(t){this._type===e||o&&/^hs[bl]$/.test(this._type)||(this._components=this._convert(e),this._properties=n[e],this._type=e),this._components[i]=h.call(this,t),this._changed()}},this)},{_class:"Color",_readIndex:!0,initialize:function e(i){var a,o,h,u,l=arguments,c=this.__read,f=0;Array.isArray(i)&&(i=(l=i)[0]);var d=null!=i&&typeof i;if("string"===d&&i in n&&(a=i,i=l[1],Array.isArray(i)?(o=i,h=l[2]):(c&&(f=1),l=r.slice(l,1),d=typeof i)),!o){if(u="number"===d?l:"object"===d&&null!=i.length?i:null){a||(a=u.length>=3?"rgb":"gray");var _=n[a].length;h=u[_],c&&(f+=u===arguments?_+(null!=h?1:0):1),u.length>_&&(u=r.slice(u,0,_))}else if("string"===d)a="rgb",4===(o=t(i)).length&&(h=o[3],o.length--);else if("object"===d)if(i.constructor===e){if(a=i._type,o=i._components.slice(),h=i._alpha,"gradient"===a)for(var g=1,v=o.length;g1?1:t))}var i=this._convert("rgb"),n=t||null==this._alpha?1:this._alpha;return i=[e(i[0]),e(i[1]),e(i[2])],n<1&&i.push(n<0?0:n),t?"#"+((1<<24)+(i[0]<<16)+(i[1]<<8)+i[2]).toString(16).slice(1):(4==i.length?"rgba(":"rgb(")+i.join(",")+")"},toCanvasStyle:function(t,e){if(this._canvasStyle)return this._canvasStyle;if("gradient"!==this._type)return this._canvasStyle=this.toCSS();var i,n=this._components,r=n[0],s=r._stops,a=n[1],o=n[2],h=n[3],u=e&&e.inverted();if(u&&(a=u._transformPoint(a),o=u._transformPoint(o),h&&(h=u._transformPoint(h))),r._radial){var l=o.getDistance(a);if(h){var c=h.subtract(a);c.getLength()>l&&(h=a.add(c.normalize(l-.1)))}var f=h||a;i=t.createRadialGradient(f.x,f.y,0,a.x,a.y,l)}else i=t.createLinearGradient(a.x,a.y,o.x,o.y);for(var d=0,_=s.length;d<_;d++){var g=s[d],v=g._offset;i.addColorStop(null==v?d/(_-1):v,g._color.toCanvasStyle())}return this._canvasStyle=i},transform:function(t){if("gradient"===this._type){for(var e=this._components,i=1,n=e.length;i0&&!(r instanceof N))for(var a=0,o=s.length;a0},hasStroke:function(){var t=this.getStrokeColor();return!!t&&t.alpha>0&&this.getStrokeWidth()>0},hasShadow:function(){var t=this.getShadowColor();return!!t&&t.alpha>0&&(this.getShadowBlur()>0||!this.getShadowOffset().isZero())},getView:function(){return this._project._view},getFontStyle:function(){var t=this.getFontSize();return this.getFontWeight()+" "+t+(/[a-z]/i.test(t+"")?" ":"px ")+this.getFontFamily()},getFont:"#getFontFamily",setFont:"#setFontFamily",getLeading:function t(){var e=t.base.call(this),i=this.getFontSize();return/pt|em|%|px/.test(i)&&(i=this.getView().getPixelSize(i)),null!=e?e:1.2*i}}),H=new function(){function t(t,e,i,n){for(var r=["","webkit","moz","Moz","ms","o"],s=e[0].toUpperCase()+e.substring(1),a=0;a<6;a++){var o=r[a],h=o?o+s:e;if(h in t){if(!i)return t[h];t[h]=n;break}}}return{getStyles:function(t){var e=t&&9!==t.nodeType?t.ownerDocument:t,i=e&&e.defaultView;return i&&i.getComputedStyle(t,"")},getBounds:function(t,e){var i,n=t.ownerDocument,r=n.body,s=n.documentElement;try{i=t.getBoundingClientRect()}catch(t){i={left:0,top:0,width:0,height:0}}var a=i.left-(s.clientLeft||r.clientLeft||0),o=i.top-(s.clientTop||r.clientTop||0);if(!e){var h=n.defaultView;a+=h.pageXOffset||s.scrollLeft||r.scrollLeft,o+=h.pageYOffset||s.scrollTop||r.scrollTop}return new g(a,o,i.width,i.height)},getViewportBounds:function(t){var e=t.ownerDocument,i=e.defaultView,n=e.documentElement;return new g(0,0,i.innerWidth||n.clientWidth,i.innerHeight||n.clientHeight)},getOffset:function(t,e){return H.getBounds(t,e).getPoint()},getSize:function(t){return H.getBounds(t,!0).getSize()},isInvisible:function(t){return H.getSize(t).equals(new d(0,0))},isInView:function(t){return!H.isInvisible(t)&&H.getViewportBounds(t).intersects(H.getBounds(t,!0))},isInserted:function(t){return n.body.contains(t)},getPrefixed:function(e,i){return e&&t(e,i)},setPrefixed:function(e,i,n){if("object"==typeof i)for(var r in i)t(e,r,!0,i[r]);else t(e,i,!0,n)}}},Z={add:function(t,e){if(t)for(var i in e)for(var n=e[i],r=i.split(/[\s,]+/g),s=0,a=r.length;s1?r.hyphenate(i):i.toLowerCase())}function s(t,e,i,n){var o,h=U._focused;if(l[e]=t,t?c[e]=i:delete c[e],e.length>1&&(o=r.camelize(e))in f){f[o]=t;var u=paper&&paper.agent;if("meta"===o&&u&&u.mac)if(t)a={};else{for(var d in a)d in c&&s(!1,d,a[d],n);a=null}}else t&&a&&(a[e]=i);h&&h._handleKeyEvent(t?"keydown":"keyup",n,e,i)}var a,o,h={"\t":"tab"," ":"space","\b":"backspace","":"delete",Spacebar:"space",Del:"delete",Win:"meta",Esc:"escape"},u={tab:"\t",space:" ",enter:"\r"},l={},c={},f=new r({shift:!1,control:!1,alt:!1,meta:!1,capsLock:!1,space:!1}).inject({option:{get:function(){return this.alt}},command:{get:function(){var t=paper&&paper.agent;return t&&t.mac?this.meta:this.control}}});return Z.add(n,{keydown:function(e){var i=t(e),n=paper&&paper.agent;i.length>1||n&&n.chrome&&(e.altKey||n.mac&&e.metaKey||!n.mac&&e.ctrlKey)?s(!0,i,u[i]||(i.length>1?"":i),e):o=i},keypress:function(e){if(o){var i=t(e),n=e.charCode,r=n>=32?String.fromCharCode(n):i.length>1?"":i;i!==o&&(i=r.toLowerCase()),s(!0,i,r,e),o=null}},keyup:function(e){var i=t(e);i in c&&s(!1,i,c[i],e)}}),Z.add(i,{blur:function(t){for(var e in c)s(!1,e,c[e],t)}}),{modifiers:f,isDown:function(t){return!!l[t]}}},X=G.extend({_class:"MouseEvent",initialize:function(t,e,i,n,r){this.type=t,this.event=e,this.point=i,this.target=n,this.delta=r},toString:function(){return"{ type: '"+this.type+"', point: "+this.point+", target: "+this.target+(this.delta?", delta: "+this.delta:"")+", modifiers: "+this.getModifiers()+" }"}}),Y=G.extend({_class:"ToolEvent",_item:null,initialize:function(t,e,i){this.tool=t,this.type=e,this.event=i},_choosePoint:function(t,e){return t||(e?e.clone():null)},getPoint:function(){return this._choosePoint(this._point,this.tool._point)},setPoint:function(t){this._point=t},getLastPoint:function(){return this._choosePoint(this._lastPoint,this.tool._lastPoint)},setLastPoint:function(t){this._lastPoint=t},getDownPoint:function(){return this._choosePoint(this._downPoint,this.tool._downPoint)},setDownPoint:function(t){this._downPoint=t},getMiddlePoint:function(){return!this._middlePoint&&this.tool._lastPoint?this.tool._point.add(this.tool._lastPoint).divide(2):this._middlePoint},setMiddlePoint:function(t){this._middlePoint=t},getDelta:function(){return!this._delta&&this.tool._lastPoint?this.tool._point.subtract(this.tool._lastPoint):this._delta},setDelta:function(t){this._delta=t},getCount:function(){return this.tool[/^mouse(down|up)$/.test(this.type)?"_downCount":"_moveCount"]},setCount:function(t){this.tool[/^mouse(down|up)$/.test(this.type)?"downCount":"count"]=t},getItem:function(){if(!this._item){var t=this.tool._scope.project.hitTest(this.getPoint());if(t){for(var e=t.item,i=e._parent;/^(Group|CompoundPath)$/.test(i._class);)e=i,i=i._parent;this._item=e}}return this._item},setItem:function(t){this._item=t},toString:function(){return"{ type: "+this.type+", point: "+this.getPoint()+", count: "+this.getCount()+", modifiers: "+this.getModifiers()+" }"}}),K=(o.extend({_class:"Tool",_list:"tools",_reference:"tool",_events:["onMouseDown","onMouseUp","onMouseDrag","onMouseMove","onActivate","onDeactivate","onEditOptions","onKeyDown","onKeyUp"],initialize:function(t){o.call(this),this._moveCount=-1,this._downCount=-1,this.set(t)},getMinDistance:function(){return this._minDistance},setMinDistance:function(t){this._minDistance=t,null!=t&&null!=this._maxDistance&&t>this._maxDistance&&(this._maxDistance=t)},getMaxDistance:function(){return this._maxDistance},setMaxDistance:function(t){this._maxDistance=t,null!=this._minDistance&&null!=t&&t255){var u=255-r,l=o-r;d=r+(d-r)*u/l,_=r+(_-r)*u/l,g=r+(g-r)*u/l}}function i(t,e,i){return p(t,e,i)-v(t,e,i)}function n(t,e,i,n){var r,s=[t,e,i],a=p(t,e,i),o=v(t,e,i);r=0===v(o=o===t?0:o===e?1:2,a=a===t?0:a===e?1:2)?1===p(o,a)?2:1:0,s[a]>s[o]?(s[r]=(s[r]-s[o])*n/(s[a]-s[o]),s[a]=n):s[r]=s[a]=0,s[o]=0,d=s[0],_=s[1],g=s[2]}var s,a,o,h,u,l,c,f,d,_,g,v=Math.min,p=Math.max,m=Math.abs,y={multiply:function(){d=u*s/255,_=l*a/255,g=c*o/255},screen:function(){d=u+s-u*s/255,_=l+a-l*a/255,g=c+o-c*o/255},overlay:function(){d=u<128?2*u*s/255:255-2*(255-u)*(255-s)/255,_=l<128?2*l*a/255:255-2*(255-l)*(255-a)/255,g=c<128?2*c*o/255:255-2*(255-c)*(255-o)/255},"soft-light":function(){var t=s*u/255;d=t+u*(255-(255-u)*(255-s)/255-t)/255,_=(t=a*l/255)+l*(255-(255-l)*(255-a)/255-t)/255,g=(t=o*c/255)+c*(255-(255-c)*(255-o)/255-t)/255},"hard-light":function(){d=s<128?2*s*u/255:255-2*(255-s)*(255-u)/255,_=a<128?2*a*l/255:255-2*(255-a)*(255-l)/255,g=o<128?2*o*c/255:255-2*(255-o)*(255-c)/255},"color-dodge":function(){d=0===u?0:255===s?255:v(255,255*u/(255-s)),_=0===l?0:255===a?255:v(255,255*l/(255-a)),g=0===c?0:255===o?255:v(255,255*c/(255-o))},"color-burn":function(){d=255===u?255:0===s?0:p(0,255-255*(255-u)/s),_=255===l?255:0===a?0:p(0,255-255*(255-l)/a),g=255===c?255:0===o?0:p(0,255-255*(255-c)/o)},darken:function(){d=us?u:s,_=l>a?l:a,g=c>o?c:o},difference:function(){(d=u-s)<0&&(d=-d),(_=l-a)<0&&(_=-_),(g=c-o)<0&&(g=-g)},exclusion:function(){d=u+s*(255-u-u)/255,_=l+a*(255-l-l)/255,g=c+o*(255-c-c)/255},hue:function(){n(s,a,o,i(u,l,c)),e(d,_,g,t(u,l,c))},saturation:function(){n(u,l,c,i(s,a,o)),e(d,_,g,t(u,l,c))},luminosity:function(){e(u,l,c,t(s,a,o))},color:function(){e(s,a,o,t(u,l,c))},add:function(){d=v(u+s,255),_=v(l+a,255),g=v(c+o,255)},subtract:function(){d=p(u-s,0),_=p(l-a,0),g=p(c-o,0)},average:function(){d=(u+s)/2,_=(l+a)/2,g=(c+o)/2},negation:function(){d=255-m(255-s-u),_=255-m(255-a-l),g=255-m(255-o-c)}},w=this.nativeModes=r.each(["source-over","source-in","source-out","source-atop","destination-over","destination-in","destination-out","destination-atop","lighter","darker","copy","xor"],function(t){this[t]=!0},{}),x=Q.getContext(1,1);x&&(r.each(y,function(t,e){var i="darken"===e,n=!1;x.save();try{x.fillStyle=i?"#300":"#a00",x.fillRect(0,0,1,1),x.globalCompositeOperation=e,x.globalCompositeOperation===e&&(x.fillStyle=i?"#a00":"#300",x.fillRect(0,0,1,1),n=x.getImageData(0,0,1,1).data[0]!==i?170:51)}catch(t){}x.restore(),w[e]=n}),Q.release(x)),this.process=function(t,e,i,n,r){var v=e.canvas,p="normal"===t;if(p||w[t])i.save(),i.setTransform(1,0,0,1,0,0),i.globalAlpha=n,p||(i.globalCompositeOperation=t),i.drawImage(v,r.x,r.y),i.restore();else{var m=y[t];if(!m)return;for(var x=i.getImageData(r.x,r.y,v.width,v.height),b=x.data,C=e.getImageData(0,0,v.width,v.height).data,S=0,P=b.length;S=2&&!t.hasHandles())if(h>2){a=t._closed?"polygon":"polyline";for(var l=[],c=0;c>>0;if(""+u!==e||4294967295===u)return NaN;e=u}return e<0?p(t)+e:e}function _(){return!0}function v(t,e,u){return(0===t||void 0!==u&&t<=-u)&&(void 0===e||void 0!==u&&e>=u)}function F(t,e){return C(t,e,0)}function E(t,e){return C(t,e,e)}function C(t,e,u){return void 0===t?u:t<0?Math.max(0,e+t):void 0===e?t:Math.min(e,t)}function A(t){this.next=t}function y(t,e,u,r){var n=0===t?e:1===t?u:[e,u];return r?r.value=n:r={value:n,done:!1},r}function B(){return{value:void 0,done:!0}}function g(t){return!!w(t)}function m(t){return t&&"function"==typeof t.next}function S(t){var e=w(t);return e&&e.call(t)}function w(t){var e=t&&(Au&&t[Au]||t[yu]);if("function"==typeof e)return e}function b(t){return t&&"number"==typeof t.length}function I(t){return null===t||void 0===t?P():i(t)?t.toSeq():N(t)}function x(t){return null===t||void 0===t?P().toKeyedSeq():i(t)?o(t)?t.toSeq():t.fromEntrySeq():T(t)}function L(t){return null===t||void 0===t?P():i(t)?o(t)?t.entrySeq():t.toIndexedSeq():q(t)}function O(t){return(null===t||void 0===t?P():i(t)?o(t)?t.entrySeq():t:q(t)).toSetSeq()}function z(t){this._array=t,this.size=t.length}function M(t){var e=Object.keys(t);this._object=t,this._keys=e,this.size=e.length}function R(t){this._iterable=t,this.size=t.length||t.size}function k(t){this._iterator=t,this._iteratorCache=[]}function j(t){return!(!t||!t[gu])}function P(){return mu||(mu=new z([]))}function T(t){var e=Array.isArray(t)?new z(t).fromEntrySeq():m(t)?new k(t).fromEntrySeq():g(t)?new R(t).fromEntrySeq():"object"==typeof t?new M(t):void 0;if(!e)throw new TypeError("Expected Array or iterable object of [k, v] entries, or keyed object: "+t);return e}function q(t){var e=U(t);if(!e)throw new TypeError("Expected Array or iterable object of values: "+t);return e}function N(t){var e=U(t)||"object"==typeof t&&new M(t);if(!e)throw new TypeError("Expected Array or iterable object of values, or keyed object: "+t);return e}function U(t){return b(t)?new z(t):m(t)?new k(t):g(t)?new R(t):void 0}function W(t,e,u,r){var n=t._cache;if(n){for(var i=n.length-1,o=0;o<=i;o++){var a=n[u?i-o:o];if(!1===e(a[1],r?a[0]:o,t))return o+1}return o}return t.__iterateUncached(e,u)}function K(t,e,u,r){var n=t._cache;if(n){var i=n.length-1,o=0;return new A(function(){var t=n[u?i-o:o];return o++>i?B():y(e,r?t[0]:o-1,t[1])})}return t.__iteratorUncached(e,u)}function J(t,e){return e?H(e,t,"",{"":t}):X(t)}function H(t,e,u,r){return Array.isArray(e)?t.call(r,u,L(e).map(function(u,r){return H(t,u,r,e)})):G(e)?t.call(r,u,x(e).map(function(u,r){return H(t,u,r,e)})):e}function X(t){return Array.isArray(t)?L(t).map(X).toList():G(t)?x(t).map(X).toMap():t}function G(t){return t&&(t.constructor===Object||void 0===t.constructor)}function V(t,e){if(t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1;if("function"==typeof t.valueOf&&"function"==typeof e.valueOf){if(t=t.valueOf(),e=e.valueOf(),t===e||t!==t&&e!==e)return!0;if(!t||!e)return!1}return!("function"!=typeof t.equals||"function"!=typeof e.equals||!t.equals(e))}function Y(t,e){if(t===e)return!0;if(!i(e)||void 0!==t.size&&void 0!==e.size&&t.size!==e.size||void 0!==t.__hash&&void 0!==e.__hash&&t.__hash!==e.__hash||o(t)!==o(e)||a(t)!==a(e)||f(t)!==f(e))return!1;if(0===t.size&&0===e.size)return!0;var u=!s(t);if(f(t)){var r=t.entries();return e.every(function(t,e){var n=r.next().value;return n&&V(n[1],t)&&(u||V(n[0],e))})&&r.next().done}var n=!1;if(void 0===t.size)if(void 0===e.size)"function"==typeof t.cacheResult&&t.cacheResult();else{n=!0;var c=t;t=e,e=c}var D=!0,l=e.__iterate(function(e,r){if(u?!t.has(e):n?!V(e,t.get(r,du)):!V(t.get(r,du),e))return D=!1,!1});return D&&t.size===l}function Q(t,e){if(!(this instanceof Q))return new Q(t,e);if(this._value=t,this.size=void 0===e?1/0:Math.max(0,e),0===this.size){if(Su)return Su;Su=this}}function $(t,e){if(!t)throw new Error(e)}function Z(t,e,u){if(!(this instanceof Z))return new Z(t,e,u);if($(0!==u,"Cannot step a Range by 0"),t=t||0,void 0===e&&(e=1/0),u=void 0===u?1:Math.abs(u),e>>1&1073741824|3221225471&t}function it(t){if(!1===t||null===t||void 0===t)return 0;if("function"==typeof t.valueOf&&(!1===(t=t.valueOf())||null===t||void 0===t))return 0;if(!0===t)return 1;var e=typeof t;if("number"===e){if(t!==t||t===1/0)return 0;var u=0|t;for(u!==t&&(u^=4294967295*t);t>4294967295;)u^=t/=4294967295;return nt(u)}if("string"===e)return t.length>Ru?ot(t):at(t);if("function"==typeof t.hashCode)return t.hashCode();if("object"===e)return st(t);if("function"==typeof t.toString)return at(t.toString());throw new Error("Value type "+e+" cannot be hashed.")}function ot(t){var e=Pu[t];return void 0===e&&(e=at(t),ju===ku&&(ju=0,Pu={}),ju++,Pu[t]=e),e}function at(t){for(var e=0,u=0;u0)switch(t.nodeType){case 1:return t.uniqueID;case 9:return t.documentElement&&t.documentElement.uniqueID}}function ct(t){$(t!==1/0,"Cannot perform this action with an infinite size.")}function Dt(t){return null===t||void 0===t?yt():lt(t)&&!f(t)?t:yt().withMutations(function(e){var r=u(t);ct(r.size),r.forEach(function(t,u){return e.set(u,t)})})}function lt(t){return!(!t||!t[Tu])}function ht(t,e){this.ownerID=t,this.entries=e}function pt(t,e,u){this.ownerID=t,this.bitmap=e,this.nodes=u}function dt(t,e,u){this.ownerID=t,this.count=e,this.nodes=u}function _t(t,e,u){this.ownerID=t,this.keyHash=e,this.entries=u}function vt(t,e,u){this.ownerID=t,this.keyHash=e,this.entry=u}function Ft(t,e,u){this._type=e,this._reverse=u,this._stack=t._root&&Ct(t._root)}function Et(t,e){return y(t,e[0],e[1])}function Ct(t,e){return{node:t,index:0,__prev:e}}function At(t,e,u,r){var n=Object.create(qu);return n.size=t,n._root=e,n.__ownerID=u,n.__hash=r,n.__altered=!1,n}function yt(){return Nu||(Nu=At(0))}function Bt(t,e,u){var r,n;if(t._root){var i=c(_u),o=c(vu);if(r=gt(t._root,t.__ownerID,0,void 0,e,u,i,o),!o.value)return t;n=t.size+(i.value?u===du?-1:1:0)}else{if(u===du)return t;n=1,r=new ht(t.__ownerID,[[e,u]])}return t.__ownerID?(t.size=n,t._root=r,t.__hash=void 0,t.__altered=!0,t):r?At(n,r):yt()}function gt(t,e,u,r,n,i,o,a){return t?t.update(e,u,r,n,i,o,a):i===du?t:(D(a),D(o),new vt(e,r,[n,i]))}function mt(t){return t.constructor===vt||t.constructor===_t}function St(t,e,u,r,n){if(t.keyHash===r)return new _t(e,r,[t.entry,n]);var i,o=(0===u?t.keyHash:t.keyHash>>>u)&pu,a=(0===u?r:r>>>u)&pu;return new pt(e,1<>>=1)o[a]=1&u?e[i++]:void 0;return o[r]=n,new dt(t,i+1,o)}function xt(t,e,r){for(var n=[],o=0;o>1&1431655765,t=(858993459&t)+(t>>2&858993459),t=t+(t>>4)&252645135,t+=t>>8,127&(t+=t>>16)}function kt(t,e,u,r){var n=r?t:h(t);return n[e]=u,n}function jt(t,e,u,r){var n=t.length+1;if(r&&e+1===n)return t[e]=u,t;for(var i=new Array(n),o=0,a=0;a0&&ni?0:i-u,f=o-u;return f>hu&&(f=hu),function(){if(n===f)return Gu;var t=e?--f:n++;return r&&r[t]}}function n(t,r,n){var a,s=t&&t.array,f=n>i?0:i-n>>r,c=1+(o-n>>r);return c>hu&&(c=hu),function(){for(;;){if(a){var t=a();if(t!==Gu)return t;a=null}if(f===c)return Gu;var i=e?--c:f++;a=u(s&&s[i],r-lu,n+(i<=t.size||e<0)return t.withMutations(function(t){e<0?Vt(t,e).set(0,u):Vt(t,0,e+1).set(e,u)});e+=t._origin;var r=t._tail,n=t._root,i=c(vu);return e>=Qt(t._capacity)?r=Ht(r,t.__ownerID,0,e,u,i):n=Ht(n,t.__ownerID,t._level,e,u,i),i.value?t.__ownerID?(t._root=n,t._tail=r,t.__hash=void 0,t.__altered=!0,t):Wt(t._origin,t._capacity,t._level,n,r):t}function Ht(t,e,u,r,n,i){var o=r>>>u&pu,a=t&&o0){var f=t&&t.array[o],c=Ht(f,e,u-lu,r,n,i);return c===f?t:(s=Xt(t,e),s.array[o]=c,s)}return a&&t.array[o]===n?t:(D(i),s=Xt(t,e),void 0===n&&o===s.array.length-1?s.array.pop():s.array[o]=n,s)}function Xt(t,e){return e&&t&&e===t.ownerID?t:new Nt(t?t.array.slice():[],e)}function Gt(t,e){if(e>=Qt(t._capacity))return t._tail;if(e<1<0;)u=u.array[e>>>r&pu],r-=lu;return u}}function Vt(t,e,u){void 0!==e&&(e|=0),void 0!==u&&(u|=0);var r=t.__ownerID||new l,n=t._origin,i=t._capacity,o=n+e,a=void 0===u?i:u<0?i+u:n+u;if(o===n&&a===i)return t;if(o>=a)return t.clear();for(var s=t._level,f=t._root,c=0;o+c<0;)f=new Nt(f&&f.array.length?[void 0,f]:[],r),c+=1<<(s+=lu);c&&(o+=c,n+=c,a+=c,i+=c);for(var D=Qt(i),h=Qt(a);h>=1<D?new Nt([],r):p;if(p&&h>D&&olu;v-=lu){var F=D>>>v&pu;_=_.array[F]=Xt(_.array[F],r)}_.array[D>>>lu&pu]=p}if(a=h)o-=h,a-=h,s=lu,f=null,d=d&&d.removeBefore(r,0,o);else if(o>n||h>>s&pu;if(E!==h>>>s&pu)break;E&&(c+=(1<n&&(f=f.removeBefore(r,s,o-c)),f&&ho&&(o=f.size),i(s)||(f=f.map(function(t){return J(t)})),n.push(f)}return o>t.size&&(t=t.setSize(o)),zt(t,e,n)}function Qt(t){return t>>lu<=hu&&o.size>=2*i.size?(r=(n=o.filter(function(t,e){return void 0!==t&&a!==e})).toKeyedSeq().map(function(t){return t[0]}).flip().toMap(),t.__ownerID&&(r.__ownerID=n.__ownerID=t.__ownerID)):(r=i.remove(e),n=a===o.size-1?o.pop():o.set(a,void 0))}else if(s){if(u===o.get(a)[1])return t;r=i,n=o.set(a,[e,u])}else r=i.set(e,o.size),n=o.set(o.size,[e,u]);return t.__ownerID?(t.size=r.size,t._map=r,t._list=n,t.__hash=void 0,t):te(r,n)}function re(t,e){this._iter=t,this._useKeys=e,this.size=t.size}function ne(t){this._iter=t,this.size=t.size}function ie(t){this._iter=t,this.size=t.size}function oe(t){this._iter=t,this.size=t.size}function ae(t){var e=be(t);return e._iter=t,e.size=t.size,e.flip=function(){return t},e.reverse=function(){var e=t.reverse.apply(this);return e.flip=function(){return t.reverse()},e},e.has=function(e){return t.includes(e)},e.includes=function(e){return t.has(e)},e.cacheResult=Ie,e.__iterateUncached=function(e,u){var r=this;return t.__iterate(function(t,u){return!1!==e(u,t,r)},u)},e.__iteratorUncached=function(e,u){if(e===Cu){var r=t.__iterator(e,u);return new A(function(){var t=r.next();if(!t.done){var e=t.value[0];t.value[0]=t.value[1],t.value[1]=e}return t})}return t.__iterator(e===Eu?Fu:Eu,u)},e}function se(t,e,u){var r=be(t);return r.size=t.size,r.has=function(e){return t.has(e)},r.get=function(r,n){var i=t.get(r,du);return i===du?n:e.call(u,i,r,t)},r.__iterateUncached=function(r,n){var i=this;return t.__iterate(function(t,n,o){return!1!==r(e.call(u,t,n,o),n,i)},n)},r.__iteratorUncached=function(r,n){var i=t.__iterator(Cu,n);return new A(function(){var n=i.next();if(n.done)return n;var o=n.value,a=o[0];return y(r,a,e.call(u,o[1],a,t),n)})},r}function fe(t,e){var u=be(t);return u._iter=t,u.size=t.size,u.reverse=function(){return t},t.flip&&(u.flip=function(){var e=ae(t);return e.reverse=function(){return t.flip()},e}),u.get=function(u,r){return t.get(e?u:-1-u,r)},u.has=function(u){return t.has(e?u:-1-u)},u.includes=function(e){return t.includes(e)},u.cacheResult=Ie,u.__iterate=function(e,u){var r=this;return t.__iterate(function(t,u){return e(t,u,r)},!u)},u.__iterator=function(e,u){return t.__iterator(e,!u)},u}function ce(t,e,u,r){var n=be(t);return r&&(n.has=function(r){var n=t.get(r,du);return n!==du&&!!e.call(u,n,r,t)},n.get=function(r,n){var i=t.get(r,du);return i!==du&&e.call(u,i,r,t)?i:n}),n.__iterateUncached=function(n,i){var o=this,a=0;return t.__iterate(function(t,i,s){if(e.call(u,t,i,s))return a++,n(t,r?i:a-1,o)},i),a},n.__iteratorUncached=function(n,i){var o=t.__iterator(Cu,i),a=0;return new A(function(){for(;;){var i=o.next();if(i.done)return i;var s=i.value,f=s[0],c=s[1];if(e.call(u,c,f,t))return y(n,r?f:a++,c,i)}})},n}function De(t,e,u){var r=Dt().asMutable();return t.__iterate(function(n,i){r.update(e.call(u,n,i,t),0,function(t){return t+1})}),r.asImmutable()}function le(t,e,u){var r=o(t),n=(f(t)?$t():Dt()).asMutable();t.__iterate(function(i,o){n.update(e.call(u,i,o,t),function(t){return(t=t||[]).push(r?[o,i]:i),t})});var i=we(t);return n.map(function(e){return ge(t,i(e))})}function he(t,e,u,r){var n=t.size;if(void 0!==e&&(e|=0),void 0!==u&&(u===1/0?u=n:u|=0),v(e,u,n))return t;var i=F(e,n),o=E(u,n);if(i!==i||o!==o)return he(t.toSeq().cacheResult(),e,u,r);var a,s=o-i;s===s&&(a=s<0?0:s);var f=be(t);return f.size=0===a?a:t.size&&a||void 0,!r&&j(t)&&a>=0&&(f.get=function(e,u){return(e=d(this,e))>=0&&ea)return B();var t=n.next();return r||e===Eu?t:e===Fu?y(e,s-1,void 0,t):y(e,s-1,t.value[1],t)})},f}function pe(t,e,u){var r=be(t);return r.__iterateUncached=function(r,n){var i=this;if(n)return this.cacheResult().__iterate(r,n);var o=0;return t.__iterate(function(t,n,a){return e.call(u,t,n,a)&&++o&&r(t,n,i)}),o},r.__iteratorUncached=function(r,n){var i=this;if(n)return this.cacheResult().__iterator(r,n);var o=t.__iterator(Cu,n),a=!0;return new A(function(){if(!a)return B();var t=o.next();if(t.done)return t;var n=t.value,s=n[0],f=n[1];return e.call(u,f,s,i)?r===Cu?t:y(r,s,f,t):(a=!1,B())})},r}function de(t,e,u,r){var n=be(t);return n.__iterateUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterate(n,i);var a=!0,s=0;return t.__iterate(function(t,i,f){if(!a||!(a=e.call(u,t,i,f)))return s++,n(t,r?i:s-1,o)}),s},n.__iteratorUncached=function(n,i){var o=this;if(i)return this.cacheResult().__iterator(n,i);var a=t.__iterator(Cu,i),s=!0,f=0;return new A(function(){var t,i,c;do{if((t=a.next()).done)return r||n===Eu?t:n===Fu?y(n,f++,void 0,t):y(n,f++,t.value[1],t);var D=t.value;i=D[0],c=D[1],s&&(s=e.call(u,c,i,o))}while(s);return n===Cu?t:y(n,i,c,t)})},n}function _e(t,e){var r=o(t),n=[t].concat(e).map(function(t){return i(t)?r&&(t=u(t)):t=r?T(t):q(Array.isArray(t)?t:[t]),t}).filter(function(t){return 0!==t.size});if(0===n.length)return t;if(1===n.length){var s=n[0];if(s===t||r&&o(s)||a(t)&&a(s))return s}var f=new z(n);return r?f=f.toKeyedSeq():a(t)||(f=f.toSetSeq()),f=f.flatten(!0),f.size=n.reduce(function(t,e){if(void 0!==t){var u=e.size;if(void 0!==u)return t+u}},0),f}function ve(t,e,u){var r=be(t);return r.__iterateUncached=function(r,n){function o(t,f){var c=this;t.__iterate(function(t,n){return(!e||f0}function Be(t,u,r){var n=be(t);return n.size=new z(r).map(function(t){return t.size}).min(),n.__iterate=function(t,e){for(var u,r=this.__iterator(Eu,e),n=0;!(u=r.next()).done&&!1!==t(u.value,n++,this););return n},n.__iteratorUncached=function(t,n){var i=r.map(function(t){return t=e(t),S(n?t.reverse():t)}),o=0,a=!1;return new A(function(){var e;return a||(e=i.map(function(t){return t.next()}),a=e.some(function(t){return t.done})),a?B():y(t,o++,u.apply(null,e.map(function(t){return t.value})))})},n}function ge(t,e){return j(t)?e:t.constructor(e)}function me(t){if(t!==Object(t))throw new TypeError("Expected [K, V] tuple: "+t)}function Se(t){return ct(t.size),p(t)}function we(t){return o(t)?u:a(t)?r:n}function be(t){return Object.create((o(t)?x:a(t)?L:O).prototype)}function Ie(){return this._iter.cacheResult?(this._iter.cacheResult(),this.size=this._iter.size,this):I.prototype.cacheResult.call(this)}function xe(t,e){return t>e?1:te?-1:0}function nu(t){if(t.size===1/0)return 0;var e=f(t),u=o(t),r=e?1:0;return iu(t.__iterate(u?e?function(t,e){r=31*r+ou(it(t),it(e))|0}:function(t,e){r=r+ou(it(t),it(e))|0}:e?function(t){r=31*r+it(t)|0}:function(t){r=r+it(t)|0}),r)}function iu(t,e){return e=Iu(e,3432918353),e=Iu(e<<15|e>>>-15,461845907),e=Iu(e<<13|e>>>-13,5),e=(e+3864292196|0)^t,e=Iu(e^e>>>16,2246822507),e=Iu(e^e>>>13,3266489909),e=nt(e^e>>>16)}function ou(t,e){return t^e+2654435769+(t<<6)+(t>>2)|0}var au=Array.prototype.slice;t(u,e),t(r,e),t(n,e),e.isIterable=i,e.isKeyed=o,e.isIndexed=a,e.isAssociative=s,e.isOrdered=f,e.Keyed=u,e.Indexed=r,e.Set=n;var su="@@__IMMUTABLE_ITERABLE__@@",fu="@@__IMMUTABLE_KEYED__@@",cu="@@__IMMUTABLE_INDEXED__@@",Du="@@__IMMUTABLE_ORDERED__@@",lu=5,hu=1<r?B():y(t,n,u[e?r-n++:n++])})},t(M,x),M.prototype.get=function(t,e){return void 0===e||this.has(t)?this._object[t]:e},M.prototype.has=function(t){return this._object.hasOwnProperty(t)},M.prototype.__iterate=function(t,e){for(var u=this._object,r=this._keys,n=r.length-1,i=0;i<=n;i++){var o=r[e?n-i:i];if(!1===t(u[o],o,this))return i+1}return i},M.prototype.__iterator=function(t,e){var u=this._object,r=this._keys,n=r.length-1,i=0;return new A(function(){var o=r[e?n-i:i];return i++>n?B():y(t,o,u[o])})},M.prototype[Du]=!0,t(R,L),R.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);var u=S(this._iterable),r=0;if(m(u))for(var n;!(n=u.next()).done&&!1!==t(n.value,r++,this););return r},R.prototype.__iteratorUncached=function(t,e){if(e)return this.cacheResult().__iterator(t,e);var u=S(this._iterable);if(!m(u))return new A(B);var r=0;return new A(function(){var e=u.next();return e.done?e:y(t,r++,e.value)})},t(k,L),k.prototype.__iterateUncached=function(t,e){if(e)return this.cacheResult().__iterate(t,e);for(var u=this._iterator,r=this._iteratorCache,n=0;n=r.length){var e=u.next();if(e.done)return e;r[n]=e.value}return y(t,n,r[n++])})};var mu;t(Q,L),Q.prototype.toString=function(){return 0===this.size?"Repeat []":"Repeat [ "+this._value+" "+this.size+" times ]"},Q.prototype.get=function(t,e){return this.has(t)?this._value:e},Q.prototype.includes=function(t){return V(this._value,t)},Q.prototype.slice=function(t,e){var u=this.size;return v(t,e,u)?this:new Q(this._value,E(e,u)-F(t,u))},Q.prototype.reverse=function(){return this},Q.prototype.indexOf=function(t){return V(this._value,t)?0:-1},Q.prototype.lastIndexOf=function(t){return V(this._value,t)?this.size:-1},Q.prototype.__iterate=function(t,e){for(var u=0;u=0&&e=0&&uu?B():y(t,i++,o)})},Z.prototype.equals=function(t){return t instanceof Z?this._start===t._start&&this._end===t._end&&this._step===t._step:Y(this,t)};var wu;t(tt,e),t(et,tt),t(ut,tt),t(rt,tt),tt.Keyed=et,tt.Indexed=ut,tt.Set=rt;var bu,Iu="function"==typeof Math.imul&&-2===Math.imul(4294967295,2)?Math.imul:function(t,e){var u=65535&(t|=0),r=65535&(e|=0);return u*r+((t>>>16)*r+u*(e>>>16)<<16>>>0)|0},xu=Object.isExtensible,Lu=function(){try{return Object.defineProperty({},"@",{}),!0}catch(t){return!1}}(),Ou="function"==typeof WeakMap;Ou&&(bu=new WeakMap);var zu=0,Mu="__immutablehash__";"function"==typeof Symbol&&(Mu=Symbol(Mu));var Ru=16,ku=255,ju=0,Pu={};t(Dt,et),Dt.of=function(){var t=au.call(arguments,0);return yt().withMutations(function(e){for(var u=0;u=t.length)throw new Error("Missing value for key: "+t[u]);e.set(t[u],t[u+1])}})},Dt.prototype.toString=function(){return this.__toString("Map {","}")},Dt.prototype.get=function(t,e){return this._root?this._root.get(0,void 0,t,e):e},Dt.prototype.set=function(t,e){return Bt(this,t,e)},Dt.prototype.setIn=function(t,e){return this.updateIn(t,du,function(){return e})},Dt.prototype.remove=function(t){return Bt(this,t,du)},Dt.prototype.deleteIn=function(t){return this.updateIn(t,function(){return du})},Dt.prototype.update=function(t,e,u){return 1===arguments.length?t(this):this.updateIn([t],e,u)},Dt.prototype.updateIn=function(t,e,u){u||(u=e,e=void 0);var r=Mt(this,Le(t),e,u);return r===du?void 0:r},Dt.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._root=null,this.__hash=void 0,this.__altered=!0,this):yt()},Dt.prototype.merge=function(){return xt(this,void 0,arguments)},Dt.prototype.mergeWith=function(t){return xt(this,t,au.call(arguments,1))},Dt.prototype.mergeIn=function(t){var e=au.call(arguments,1);return this.updateIn(t,yt(),function(t){return"function"==typeof t.merge?t.merge.apply(t,e):e[e.length-1]})},Dt.prototype.mergeDeep=function(){return xt(this,Lt,arguments)},Dt.prototype.mergeDeepWith=function(t){var e=au.call(arguments,1);return xt(this,Ot(t),e)},Dt.prototype.mergeDeepIn=function(t){var e=au.call(arguments,1);return this.updateIn(t,yt(),function(t){return"function"==typeof t.mergeDeep?t.mergeDeep.apply(t,e):e[e.length-1]})},Dt.prototype.sort=function(t){return $t(Ce(this,t))},Dt.prototype.sortBy=function(t,e){return $t(Ce(this,e,t))},Dt.prototype.withMutations=function(t){var e=this.asMutable();return t(e),e.wasAltered()?e.__ensureOwner(this.__ownerID):this},Dt.prototype.asMutable=function(){return this.__ownerID?this:this.__ensureOwner(new l)},Dt.prototype.asImmutable=function(){return this.__ensureOwner()},Dt.prototype.wasAltered=function(){return this.__altered},Dt.prototype.__iterator=function(t,e){return new Ft(this,t,e)},Dt.prototype.__iterate=function(t,e){var u=this,r=0;return this._root&&this._root.iterate(function(e){return r++,t(e[1],e[0],u)},e),r},Dt.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?At(this.size,this._root,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},Dt.isMap=lt;var Tu="@@__IMMUTABLE_MAP__@@",qu=Dt.prototype;qu[Tu]=!0,qu.delete=qu.remove,qu.removeIn=qu.deleteIn,ht.prototype.get=function(t,e,u,r){for(var n=this.entries,i=0,o=n.length;i=Uu)return wt(t,s,r,n);var p=t&&t===this.ownerID,d=p?s:h(s);return l?a?f===c-1?d.pop():d[f]=d.pop():d[f]=[r,n]:d.push([r,n]),p?(this.entries=d,this):new ht(t,d)}},pt.prototype.get=function(t,e,u,r){void 0===e&&(e=it(u));var n=1<<((0===t?e:e>>>t)&pu),i=this.bitmap;return 0==(i&n)?r:this.nodes[Rt(i&n-1)].get(t+lu,e,u,r)},pt.prototype.update=function(t,e,u,r,n,i,o){void 0===u&&(u=it(r));var a=(0===e?u:u>>>e)&pu,s=1<=Wu)return It(t,l,f,a,p);if(c&&!p&&2===l.length&&mt(l[1^D]))return l[1^D];if(c&&p&&1===l.length&&mt(p))return p;var d=t&&t===this.ownerID,_=c?p?f:f^s:f|s,v=c?p?kt(l,D,p,d):Pt(l,D,d):jt(l,D,p,d);return d?(this.bitmap=_,this.nodes=v,this):new pt(t,_,v)},dt.prototype.get=function(t,e,u,r){void 0===e&&(e=it(u));var n=(0===t?e:e>>>t)&pu,i=this.nodes[n];return i?i.get(t+lu,e,u,r):r},dt.prototype.update=function(t,e,u,r,n,i,o){void 0===u&&(u=it(r));var a=(0===e?u:u>>>e)&pu,s=n===du,f=this.nodes,c=f[a];if(s&&!c)return this;var D=gt(c,t,e+lu,u,r,n,i,o);if(D===c)return this;var l=this.count;if(c){if(!D&&--l=0&&t>>e&pu;if(r>=this.array.length)return new Nt([],t);var n,i=0===r;if(e>0){var o=this.array[r];if((n=o&&o.removeBefore(t,e-lu,u))===o&&i)return this}if(i&&!n)return this;var a=Xt(this,t);if(!i)for(var s=0;s>>e&pu;if(r>=this.array.length)return this;var n;if(e>0){var i=this.array[r];if((n=i&&i.removeAfter(t,e-lu,u))===i&&r===this.array.length-1)return this}var o=Xt(this,t);return o.array.splice(r+1),n&&(o.array[r]=n),o};var Xu,Gu={};t($t,Dt),$t.of=function(){return this(arguments)},$t.prototype.toString=function(){return this.__toString("OrderedMap {","}")},$t.prototype.get=function(t,e){var u=this._map.get(t);return void 0!==u?this._list.get(u)[1]:e},$t.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._map.clear(),this._list.clear(),this):ee()},$t.prototype.set=function(t,e){return ue(this,t,e)},$t.prototype.remove=function(t){return ue(this,t,du)},$t.prototype.wasAltered=function(){return this._map.wasAltered()||this._list.wasAltered()},$t.prototype.__iterate=function(t,e){var u=this;return this._list.__iterate(function(e){return e&&t(e[1],e[0],u)},e)},$t.prototype.__iterator=function(t,e){return this._list.fromEntrySeq().__iterator(t,e)},$t.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map.__ensureOwner(t),u=this._list.__ensureOwner(t);return t?te(e,u,t,this.__hash):(this.__ownerID=t,this._map=e,this._list=u,this)},$t.isOrderedMap=Zt,$t.prototype[Du]=!0,$t.prototype.delete=$t.prototype.remove;var Vu;t(re,x),re.prototype.get=function(t,e){return this._iter.get(t,e)},re.prototype.has=function(t){return this._iter.has(t)},re.prototype.valueSeq=function(){return this._iter.valueSeq()},re.prototype.reverse=function(){var t=this,e=fe(this,!0);return this._useKeys||(e.valueSeq=function(){return t._iter.toSeq().reverse()}),e},re.prototype.map=function(t,e){var u=this,r=se(this,t,e);return this._useKeys||(r.valueSeq=function(){return u._iter.toSeq().map(t,e)}),r},re.prototype.__iterate=function(t,e){var u,r=this;return this._iter.__iterate(this._useKeys?function(e,u){return t(e,u,r)}:(u=e?Se(this):0,function(n){return t(n,e?--u:u++,r)}),e)},re.prototype.__iterator=function(t,e){if(this._useKeys)return this._iter.__iterator(t,e);var u=this._iter.__iterator(Eu,e),r=e?Se(this):0;return new A(function(){var n=u.next();return n.done?n:y(t,e?--r:r++,n.value,n)})},re.prototype[Du]=!0,t(ne,L),ne.prototype.includes=function(t){return this._iter.includes(t)},ne.prototype.__iterate=function(t,e){var u=this,r=0;return this._iter.__iterate(function(e){return t(e,r++,u)},e)},ne.prototype.__iterator=function(t,e){var u=this._iter.__iterator(Eu,e),r=0;return new A(function(){var e=u.next();return e.done?e:y(t,r++,e.value,e)})},t(ie,O),ie.prototype.has=function(t){return this._iter.includes(t)},ie.prototype.__iterate=function(t,e){var u=this;return this._iter.__iterate(function(e){return t(e,e,u)},e)},ie.prototype.__iterator=function(t,e){var u=this._iter.__iterator(Eu,e);return new A(function(){var e=u.next();return e.done?e:y(t,e.value,e.value,e)})},t(oe,x),oe.prototype.entrySeq=function(){return this._iter.toSeq()},oe.prototype.__iterate=function(t,e){var u=this;return this._iter.__iterate(function(e){if(e){me(e);var r=i(e);return t(r?e.get(1):e[1],r?e.get(0):e[0],u)}},e)},oe.prototype.__iterator=function(t,e){var u=this._iter.__iterator(Eu,e);return new A(function(){for(;;){var e=u.next();if(e.done)return e;var r=e.value;if(r){me(r);var n=i(r);return y(t,n?r.get(0):r[0],n?r.get(1):r[1],e)}}})},ne.prototype.cacheResult=re.prototype.cacheResult=ie.prototype.cacheResult=oe.prototype.cacheResult=Ie,t(Oe,et),Oe.prototype.toString=function(){return this.__toString(Me(this)+" {","}")},Oe.prototype.has=function(t){return this._defaultValues.hasOwnProperty(t)},Oe.prototype.get=function(t,e){if(!this.has(t))return e;var u=this._defaultValues[t];return this._map?this._map.get(t,u):u},Oe.prototype.clear=function(){if(this.__ownerID)return this._map&&this._map.clear(),this;var t=this.constructor;return t._empty||(t._empty=ze(this,yt()))},Oe.prototype.set=function(t,e){if(!this.has(t))throw new Error('Cannot set unknown key "'+t+'" on '+Me(this));if(this._map&&!this._map.has(t)&&e===this._defaultValues[t])return this;var u=this._map&&this._map.set(t,e);return this.__ownerID||u===this._map?this:ze(this,u)},Oe.prototype.remove=function(t){if(!this.has(t))return this;var e=this._map&&this._map.remove(t);return this.__ownerID||e===this._map?this:ze(this,e)},Oe.prototype.wasAltered=function(){return this._map.wasAltered()},Oe.prototype.__iterator=function(t,e){var r=this;return u(this._defaultValues).map(function(t,e){return r.get(e)}).__iterator(t,e)},Oe.prototype.__iterate=function(t,e){var r=this;return u(this._defaultValues).map(function(t,e){return r.get(e)}).__iterate(t,e)},Oe.prototype.__ensureOwner=function(t){if(t===this.__ownerID)return this;var e=this._map&&this._map.__ensureOwner(t);return t?ze(this,e,t):(this.__ownerID=t,this._map=e,this)};var Yu=Oe.prototype;Yu.delete=Yu.remove,Yu.deleteIn=Yu.removeIn=qu.removeIn,Yu.merge=qu.merge,Yu.mergeWith=qu.mergeWith,Yu.mergeIn=qu.mergeIn,Yu.mergeDeep=qu.mergeDeep,Yu.mergeDeepWith=qu.mergeDeepWith,Yu.mergeDeepIn=qu.mergeDeepIn,Yu.setIn=qu.setIn,Yu.update=qu.update,Yu.updateIn=qu.updateIn,Yu.withMutations=qu.withMutations,Yu.asMutable=qu.asMutable,Yu.asImmutable=qu.asImmutable,t(je,rt),je.of=function(){return this(arguments)},je.fromKeys=function(t){return this(u(t).keySeq())},je.prototype.toString=function(){return this.__toString("Set {","}")},je.prototype.has=function(t){return this._map.has(t)},je.prototype.add=function(t){return Te(this,this._map.set(t,!0))},je.prototype.remove=function(t){return Te(this,this._map.remove(t))},je.prototype.clear=function(){return Te(this,this._map.clear())},je.prototype.union=function(){var t=au.call(arguments,0);return 0===(t=t.filter(function(t){return 0!==t.size})).length?this:0!==this.size||this.__ownerID||1!==t.length?this.withMutations(function(e){for(var u=0;u=0;u--)e={value:arguments[u],next:e};return this.__ownerID?(this.size=t,this._head=e,this.__hash=void 0,this.__altered=!0,this):Ge(t,e)},He.prototype.pushAll=function(t){if(0===(t=r(t)).size)return this;ct(t.size);var e=this.size,u=this._head;return t.reverse().forEach(function(t){e++,u={value:t,next:u}}),this.__ownerID?(this.size=e,this._head=u,this.__hash=void 0,this.__altered=!0,this):Ge(e,u)},He.prototype.pop=function(){return this.slice(1)},He.prototype.unshift=function(){return this.push.apply(this,arguments)},He.prototype.unshiftAll=function(t){return this.pushAll(t)},He.prototype.shift=function(){return this.pop.apply(this,arguments)},He.prototype.clear=function(){return 0===this.size?this:this.__ownerID?(this.size=0,this._head=void 0,this.__hash=void 0,this.__altered=!0,this):Ve()},He.prototype.slice=function(t,e){if(v(t,e,this.size))return this;var u=F(t,this.size);if(E(e,this.size)!==this.size)return ut.prototype.slice.call(this,t,e);for(var r=this.size-u,n=this._head;u--;)n=n.next;return this.__ownerID?(this.size=r,this._head=n,this.__hash=void 0,this.__altered=!0,this):Ge(r,n)},He.prototype.__ensureOwner=function(t){return t===this.__ownerID?this:t?Ge(this.size,this._head,t,this.__hash):(this.__ownerID=t,this.__altered=!1,this)},He.prototype.__iterate=function(t,e){if(e)return this.reverse().__iterate(t);for(var u=0,r=this._head;r&&!1!==t(r.value,u++,this);)r=r.next;return u},He.prototype.__iterator=function(t,e){if(e)return this.reverse().__iterator(t);var u=0,r=this._head;return new A(function(){if(r){var e=r.value;return r=r.next,y(t,u++,e)}return B()})},He.isStack=Xe;var ur="@@__IMMUTABLE_STACK__@@",rr=He.prototype;rr[ur]=!0,rr.withMutations=qu.withMutations,rr.asMutable=qu.asMutable,rr.asImmutable=qu.asImmutable,rr.wasAltered=qu.wasAltered;var nr;e.Iterator=A,Ye(e,{toArray:function(){ct(this.size);var t=new Array(this.size||0);return this.valueSeq().__iterate(function(e,u){t[u]=e}),t},toIndexedSeq:function(){return new ne(this)},toJS:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJS?t.toJS():t}).__toJS()},toJSON:function(){return this.toSeq().map(function(t){return t&&"function"==typeof t.toJSON?t.toJSON():t}).__toJS()},toKeyedSeq:function(){return new re(this,!0)},toMap:function(){return Dt(this.toKeyedSeq())},toObject:function(){ct(this.size);var t={};return this.__iterate(function(e,u){t[u]=e}),t},toOrderedMap:function(){return $t(this.toKeyedSeq())},toOrderedSet:function(){return Ue(o(this)?this.valueSeq():this)},toSet:function(){return je(o(this)?this.valueSeq():this)},toSetSeq:function(){return new ie(this)},toSeq:function(){return a(this)?this.toIndexedSeq():o(this)?this.toKeyedSeq():this.toSetSeq()},toStack:function(){return He(o(this)?this.valueSeq():this)},toList:function(){return Tt(o(this)?this.valueSeq():this)},toString:function(){return"[Iterable]"},__toString:function(t,e){return 0===this.size?t+e:t+" "+this.toSeq().map(this.__toStringMapper).join(", ")+" "+e},concat:function(){return ge(this,_e(this,au.call(arguments,0)))},includes:function(t){return this.some(function(e){return V(e,t)})},entries:function(){return this.__iterator(Cu)},every:function(t,e){ct(this.size);var u=!0;return this.__iterate(function(r,n,i){if(!t.call(e,r,n,i))return u=!1,!1}),u},filter:function(t,e){return ge(this,ce(this,t,e,!0))},find:function(t,e,u){var r=this.findEntry(t,e);return r?r[1]:u},forEach:function(t,e){return ct(this.size),this.__iterate(e?t.bind(e):t)},join:function(t){ct(this.size),t=void 0!==t?""+t:",";var e="",u=!0;return this.__iterate(function(r){u?u=!1:e+=t,e+=null!==r&&void 0!==r?r.toString():""}),e},keys:function(){return this.__iterator(Fu)},map:function(t,e){return ge(this,se(this,t,e))},reduce:function(t,e,u){ct(this.size);var r,n;return arguments.length<2?n=!0:r=e,this.__iterate(function(e,i,o){n?(n=!1,r=e):r=t.call(u,r,e,i,o)}),r},reduceRight:function(t,e,u){var r=this.toKeyedSeq().reverse();return r.reduce.apply(r,arguments)},reverse:function(){return ge(this,fe(this,!0))},slice:function(t,e){return ge(this,he(this,t,e,!0))},some:function(t,e){return!this.every(Ze(t),e)},sort:function(t){return ge(this,Ce(this,t))},values:function(){return this.__iterator(Eu)},butLast:function(){return this.slice(0,-1)},isEmpty:function(){return void 0!==this.size?0===this.size:!this.some(function(){return!0})},count:function(t,e){return p(t?this.toSeq().filter(t,e):this)},countBy:function(t,e){return De(this,t,e)},equals:function(t){return Y(this,t)},entrySeq:function(){var t=this;if(t._cache)return new z(t._cache);var e=t.toSeq().map($e).toIndexedSeq();return e.fromEntrySeq=function(){return t.toSeq()},e},filterNot:function(t,e){return this.filter(Ze(t),e)},findEntry:function(t,e,u){var r=u;return this.__iterate(function(u,n,i){if(t.call(e,u,n,i))return r=[n,u],!1}),r},findKey:function(t,e){var u=this.findEntry(t,e);return u&&u[0]},findLast:function(t,e,u){return this.toKeyedSeq().reverse().find(t,e,u)},findLastEntry:function(t,e,u){return this.toKeyedSeq().reverse().findEntry(t,e,u)},findLastKey:function(t,e){return this.toKeyedSeq().reverse().findKey(t,e)},first:function(){return this.find(_)},flatMap:function(t,e){return ge(this,Fe(this,t,e))},flatten:function(t){return ge(this,ve(this,t,!0))},fromEntrySeq:function(){return new oe(this)},get:function(t,e){return this.find(function(e,u){return V(u,t)},void 0,e)},getIn:function(t,e){for(var u,r=this,n=Le(t);!(u=n.next()).done;){var i=u.value;if((r=r&&r.get?r.get(i,du):du)===du)return e}return r},groupBy:function(t,e){return le(this,t,e)},has:function(t){return this.get(t,du)!==du},hasIn:function(t){return this.getIn(t,du)!==du},isSubset:function(t){return t="function"==typeof t.includes?t:e(t),this.every(function(e){return t.includes(e)})},isSuperset:function(t){return(t="function"==typeof t.isSubset?t:e(t)).isSubset(this)},keyOf:function(t){return this.findKey(function(e){return V(e,t)})},keySeq:function(){return this.toSeq().map(Qe).toIndexedSeq()},last:function(){return this.toSeq().reverse().first()},lastKeyOf:function(t){return this.toKeyedSeq().reverse().keyOf(t)},max:function(t){return Ae(this,t)},maxBy:function(t,e){return Ae(this,e,t)},min:function(t){return Ae(this,t?tu(t):ru)},minBy:function(t,e){return Ae(this,e?tu(e):ru,t)},rest:function(){return this.slice(1)},skip:function(t){return this.slice(Math.max(0,t))},skipLast:function(t){return ge(this,this.toSeq().reverse().skip(t).reverse())},skipWhile:function(t,e){return ge(this,de(this,t,e,!0))},skipUntil:function(t,e){return this.skipWhile(Ze(t),e)},sortBy:function(t,e){return ge(this,Ce(this,e,t))},take:function(t){return this.slice(0,Math.max(0,t))},takeLast:function(t){return ge(this,this.toSeq().reverse().take(t).reverse())},takeWhile:function(t,e){return ge(this,pe(this,t,e))},takeUntil:function(t,e){return this.takeWhile(Ze(t),e)},valueSeq:function(){return this.toIndexedSeq()},hashCode:function(){return this.__hash||(this.__hash=nu(this))}});var ir=e.prototype;ir[su]=!0,ir[Bu]=ir.values,ir.__toJS=ir.toArray,ir.__toStringMapper=eu,ir.inspect=ir.toSource=function(){return this.toString()},ir.chain=ir.flatMap,ir.contains=ir.includes,Ye(u,{flip:function(){return ge(this,ae(this))},mapEntries:function(t,e){var u=this,r=0;return ge(this,this.toSeq().map(function(n,i){return t.call(e,[i,n],r++,u)}).fromEntrySeq())},mapKeys:function(t,e){var u=this;return ge(this,this.toSeq().flip().map(function(r,n){return t.call(e,r,n,u)}).flip())}});var or=u.prototype;return or[fu]=!0,or[Bu]=ir.entries,or.__toJS=ir.toObject,or.__toStringMapper=function(t,e){return JSON.stringify(e)+": "+eu(t)},Ye(r,{toKeyedSeq:function(){return new re(this,!1)},filter:function(t,e){return ge(this,ce(this,t,e,!1))},findIndex:function(t,e){var u=this.findEntry(t,e);return u?u[0]:-1},indexOf:function(t){var e=this.keyOf(t);return void 0===e?-1:e},lastIndexOf:function(t){var e=this.lastKeyOf(t);return void 0===e?-1:e},reverse:function(){return ge(this,fe(this,!1))},slice:function(t,e){return ge(this,he(this,t,e,!1))},splice:function(t,e){var u=arguments.length;if(e=Math.max(0|e,0),0===u||2===u&&!e)return this;t=F(t,t<0?this.count():this.size);var r=this.slice(0,t);return ge(this,1===u?r:r.concat(h(arguments,2),this.slice(t+e)))},findLastIndex:function(t,e){var u=this.findLastEntry(t,e);return u?u[0]:-1},first:function(){return this.get(0)},flatten:function(t){return ge(this,ve(this,t,!1))},get:function(t,e){return(t=d(this,t))<0||this.size===1/0||void 0!==this.size&&t>this.size?e:this.find(function(e,u){return u===t},void 0,e)},has:function(t){return(t=d(this,t))>=0&&(void 0!==this.size?this.size===1/0||t-1&&t%1==0&&t-1&&t%1==0&&t<=w}function v(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function F(t){return!!t&&"object"==typeof t}function E(t){return"string"==typeof t||!X(t)&&F(t)&&W.call(t)==z}function C(t){return"symbol"==typeof t||F(t)&&W.call(t)==M}function A(t){return t?(t=B(t))===S||t===-S?(t<0?-1:1)*b:t===t?t:0:0===t?t:0}function y(t){var e=A(t),u=e%1;return e===e?u?e-u:e:0}function B(t){if("number"==typeof t)return t;if(C(t))return I;if(v(t)){var e="function"==typeof t.valueOf?t.valueOf():t;t=v(e)?e+"":e}if("string"!=typeof t)return 0===t?t:+t;t=t.replace(R,"");var u=j.test(t);return u||P.test(t)?q(t.slice(2),u?2:8):k.test(t)?I:+t}function g(t){return h(t)?s(t):f(t)}function m(t){return t?a(t,g(t)):[]}var S=1/0,w=9007199254740991,b=1.7976931348623157e308,I=NaN,x="[object Arguments]",L="[object Function]",O="[object GeneratorFunction]",z="[object String]",M="[object Symbol]",R=/^\s+|\s+$/g,k=/^[-+]0x[0-9a-f]+$/i,j=/^0b[01]+$/i,P=/^0o[0-7]+$/i,T=/^(?:0|[1-9]\d*)$/,q=parseInt,N=Object.prototype,U=N.hasOwnProperty,W=N.toString,K=N.propertyIsEnumerable,J=function(t,e){return function(u){return t(e(u))}}(Object.keys,Object),H=Math.max,X=Array.isArray;t.exports=function(t,e,u,r){t=h(t)?t:m(t),u=u&&!r?y(u):0;var i=t.length;return u<0&&(u=H(i+u,0)),E(t)?u<=i&&t.indexOf(e,u)>-1:!!i&&n(t,e,u)>-1}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.Sequence=e.Run=e.Pairing=e.EmbeddingLevelState=e.DirectionalStatusStackEntry=e.BracketPairState=e.BracketPairStackEntry=e.decrease=e.increase=void 0;var r=u(1),n=(0,r.Record)({isolate:!1,level:0,override:"neutral"}),i=(0,r.Record)({directionalStatusStack:r.Stack.of(new n),bidiTypes:r.List.of(),embeddingLevels:r.List.of(),overflowEmbeddingCount:0,overflowIsolateCount:0,validIsolateCount:0}),o=(0,r.Record)({level:-1,from:0,to:0},"Run"),a=(0,r.Record)({runs:r.List.of(),eos:"",sos:""},"Sequence"),s=(0,r.Record)({point:0,position:0}),f=(0,r.Record)({open:0,close:0}),c=(0,r.Record)({stack:r.Stack.of(),pairings:r.List.of(),stackoverflow:!1});e.increase=function(t){return t+1},e.decrease=function(t){return t-1},e.BracketPairStackEntry=s,e.BracketPairState=c,e.DirectionalStatusStackEntry=n,e.EmbeddingLevelState=i,e.Pairing=f,e.Run=o,e.Sequence=a},function(t,e,u){(function(e){function u(t,e,u){switch(u.length){case 0:return t.call(e);case 1:return t.call(e,u[0]);case 2:return t.call(e,u[0],u[1]);case 3:return t.call(e,u[0],u[1],u[2])}return t.apply(e,u)}function r(t,e){for(var u=-1,r=e.length,n=t.length;++u0&&u(c)?e>1?n(c,e-1,u,i,a):r(a,c):i||(a[a.length]=c)}return a}function i(t,e){return e=b(void 0===e?t.length-1:e,0),function(){for(var r=arguments,n=-1,i=b(r.length-e,0),o=Array(i);++n-1&&t%1==0&&t<=d}function l(t){var e=typeof t;return!!t&&("object"==e||"function"==e)}function h(t){return!!t&&"object"==typeof t}var p="Expected a function",d=9007199254740991,_="[object Arguments]",v="[object Function]",F="[object GeneratorFunction]",E="object"==typeof e&&e&&e.Object===Object&&e,C="object"==typeof self&&self&&self.Object===Object&&self,A=E||C||Function("return this")(),y=Object.prototype,B=y.hasOwnProperty,g=y.toString,m=A.Symbol,S=y.propertyIsEnumerable,w=m?m.isConcatSpreadable:void 0,b=Math.max,I=Array.isArray,x=function(t){return i(function(e){var u=(e=n(e,1)).length,r=u;for(t&&e.reverse();r--;)if("function"!=typeof e[r])throw new TypeError(p);return function(){for(var t=0,r=u?e[t].apply(this,arguments):arguments[0];++t-1){var n=(0,c.default)(p,r);return u(t.push(n))}return t}var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,h=(0,a.default)(t,e,r),p=h.runs,d=h.bidiTypes,_=h.levels,v=(0,s.default)(t.zip(d,e).filter(function(t){var e=n(t,3),u=(e[0],e[1]);return e[2],!1===(0,D.isX9ControlCharacter)(u)})),F=n(v,3),E=F[0],C=F[1],A=F[2],y=(0,f.default)(E),B=y.initiatorToPDI,g=y.initiatorFromPDI;return{sequences:function(t){return t.map(function(t,e){var u=E.size,n=t.get("runs").first().get("from"),a=t.get("runs").last().get("to"),s=function(t){return(0,o.Range)(0,u).contains(t)?(0,c.default)(p,t).get("level"):r},f=s(n-1),l=s(n),h=function(t){var e=E.get(a-1),u=B.get(e,-1);return(0,i.default)([D.LRI,D.RLI,D.FSI],e)&&-1===u?r:s(a)}(),d=Math.max(f,l)%2==1?"R":"L",_=Math.max(l,h)%2==1?"R":"L";return t.set("sos",d).set("eos",_)})}(p.filter(function(t){var e=t.get("from"),u=E.get(e),r=g.get(e,-1);return u!==D.PDI||-1===r}).reduce(function(t,e,r){var n=new l.Sequence({runs:u(o.List.of(e))});return t.push(n)},o.List.of())),codepoints:E,bidiTypes:C,paragraphBidiTypes:A,levels:_}}},function(t,e,u){"use strict";function r(t){var e=t.get("overflowIsolateCount"),u=t.get("overflowEmbeddingCount");return e>0||u>0}Object.defineProperty(e,"__esModule",{value:!0});var n=function(t){return t&&t.__esModule?t:{default:t}}(u(4)),i=u(0),o=u(3);e.default=function(t,e,u,a){if(t!==i.RLI)return a;var s=a.get("directionalStatusStack").peek(),f=s.get("level");return(0,n.default)(function(t){return t.update("embeddingLevels",function(t){return t.set(u,f)})},function(t){var e=s.get("override");if("neutral"!==e){var r="left-to-right"===e?"L":"R";return t.update("bidiTypes",function(t){return t.set(u,r)})}return t},function(t){var e=f+1+f%2;return e>i.MAX_DEPTH||r(t)?t.update("overflowIsolateCount",o.increase):t.update("validIsolateCount",o.increase).update("directionalStatusStack",function(t){return t.push(new o.DirectionalStatusStackEntry({isolate:!0,level:e}))})})(a)}},function(t,e,u){"use strict";function r(t){var e=t.get("overflowIsolateCount"),u=t.get("overflowEmbeddingCount");return e>0||u>0}Object.defineProperty(e,"__esModule",{value:!0});var n=function(t){return t&&t.__esModule?t:{default:t}}(u(4)),i=u(3),o=u(0);e.default=function(t,e,u,a){if(t!==o.LRI)return a;var s=a.get("directionalStatusStack").peek(),f=s.get("level");return(0,n.default)(function(t){return t.update("embeddingLevels",function(t){return t.set(u,f)})},function(t){var e=s.get("override");if("neutral"!==e){var r="left-to-right"===e?"L":"R";return t.update("bidiTypes",function(t){return t.set(u,r)})}return t},function(t){var e=f+1+(f+1)%2;return e>o.MAX_DEPTH||r(t)?t.update("overflowIsolateCount",i.increase):t.update("validIsolateCount",i.increase).update("directionalStatusStack",function(t){return t.push(new i.DirectionalStatusStackEntry({isolate:!0,level:e}))})})(a)}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),i=(r(u(6)),r(u(2))),o=u(1),a=u(0);e.default=function(t,e){(0,o.Record)({inside:!1,counter:0},"P2State");var u=t.reduce(function(t,e){var u=t.get(-1,0);return t.push((0,i.default)([a.LRI,a.RLI,a.FSI],e)?u+1:e===a.PDI&&u>0?u-1:u)},o.List.of()).map(function(t){return t>0}),r=t.zip(e,u).filter(function(t){var e=n(t,3);return e[0],e[1],!1===e[2]}).map(function(t){var e=n(t,3),u=(e[0],e[1]);return e[2],u}).find(function(t){return(0,i.default)(["L","R","AL"],t)});return(0,i.default)(["R","AL"],r)?1:0}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=u(1),i=function(t){return t&&t.__esModule?t:{default:t}}(u(22));e.default=function(t){var e=t.size,u=(0,n.Range)().zip((0,n.Range)(0,e).map(function(e){return(0,i.default)(t,e)})).filter(function(t){var e=r(t,2);return e[0],-1!==e[1]}),o=u.map(function(t){var e=r(t,2),u=e[0];return[e[1],u]});return{initiatorToPDI:(0,n.Map)(u),initiatorFromPDI:(0,n.Map)(o)}}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=u(1);e.default=function(t){var e=t.reduce(function(t,e){var u=r(e,2),n=u[0],i=u[1];return t.update(0,function(t){return t.push(n)}).update(1,function(t){return t.push(i)})},n.List.of(n.List.of(),n.List.of()));return[e.get(0),e.get(1)]}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.reorderPermutation=e.reorder=e.resolve=void 0;var n=u(14),i=u(44),o=r(i),a=r(u(46)),s=r(u(47)),f=u(1);e.resolve=function(t,e){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=s.default.ucs2.encode(t).normalize("NFC"),i=s.default.ucs2.decode(r),o=(0,f.fromJS)(i),c=o.map(a.default);return(0,n.resolvedLevelsWithInvisibles)(o,c,e,u).toJS()},e.reorder=function(t,e){var u=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return(0,o.default)((0,f.fromJS)(t),(0,f.fromJS)(e),u).toJS()},e.reorderPermutation=function(t){return(0,i.reorderPermutation)((0,f.fromJS)(t)).toJS()}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function n(t,e,u){var r=!0===(arguments.length>3&&void 0!==arguments[3]&&arguments[3])?(0,f.default)(t,e):u,n=(0,a.default)(t,e,r),s=n.sequences,h=n.codepoints,p=n.bidiTypes,d=n.paragraphBidiTypes,_=(n.levels,(0,D.default)(h,p,s)),v=p.size,F=s.reduce(i,(0,o.List)((0,o.Range)(0,v)).map(function(t){return 0})),E=(0,c.default)(_,F);return(0,l.default)(d,E,r)}function i(t,e){return e.get("runs").reduce(function(t,e){var u=e.toJS(),r=u.from,n=u.to,i=n-r,a=e.get("level"),s=(0,o.List)((0,o.Range)(0,i)).map(function(t){return a});return t.slice(0,r).concat(s).concat(t.slice(n))},t)}Object.defineProperty(e,"__esModule",{value:!0}),e.resolvedLevelsWithInvisibles=void 0;var o=u(1),a=r(u(7)),s=u(0),f=(r(u(12)),r(u(28)),r(u(10))),c=r(u(29)),D=r(u(30)),l=(r(u(2)),r(u(43)));e.resolvedLevelsWithInvisibles=function(t,e,u){function r(t,e,u){return 0===t.size?u:(0,s.isX9ControlCharacter)(t.first())?r(t.rest(),e,u.push("x")):r(t.rest(),e.rest(),u.push(e.first()))}return r(e,n(t,e,u,arguments.length>3&&void 0!==arguments[3]&&arguments[3]),o.List.of())},e.default=n},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=(function(t){t&&t.__esModule}(u(2)),u(1)),i=u(0),o=u(3),a=u(16);e.default=function(t,e){var u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,s=[a.rle,a.lre,a.rlo,a.lro,a.rli,a.lri,a.fsi,a.other,a.pdi,a.pdf],f=n.Stack.of(new o.DirectionalStatusStackEntry({level:u})),c=new o.EmbeddingLevelState({directionalStatusStack:f}).set("bidiTypes",e).set("embeddingLevels",t.map(function(t){return u})),D=t.zip(e).reduce(function(u,n,i){var o=r(n,2),a=o[0],f=o[1];return s.reduce(function(u,r){return r(a,f,i,u,t,e)},u)},c);return{runs:t.zip(e,D.get("embeddingLevels")).filter(function(t){var e=r(t,3),u=(e[0],e[1]);return e[2],!1===(0,i.isX9ControlCharacter)(u)}).reduce(function(t,e,u){var n=r(e,3),i=(n[0],n[1],n[2]),a=t.size-1;return t.getIn([a,"level"],-1)===i?t.updateIn([a,"to"],o.increase):t.push(new o.Run({level:i,from:u,to:u+1}))},n.List.of()),bidiTypes:D.get("bidiTypes"),levels:D.get("embeddingLevels")}}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.pdf=e.pdi=e.other=e.fsi=e.lri=e.rli=e.lro=e.rlo=e.lre=e.rle=void 0;var n=u(17),i=r(u(18)),o=r(u(19)),a=r(u(20)),s=r(u(8)),f=r(u(9)),c=r(u(21)),D=r(u(23)),l=u(24),h=u(25);e.rle=n.rle,e.lre=i.default,e.rlo=o.default,e.lro=a.default,e.rli=s.default,e.lri=f.default,e.fsi=c.default,e.other=D.default,e.pdi=l.pdi,e.pdf=h.pdf},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.rle=void 0;var r=u(0),n=u(3),i=function(t){return t&&t.__esModule?t:{default:t}}(u(4));e.rle=function(t,e,u,o){if(t!==r.RLE)return o;var a=o.get("directionalStatusStack").peek().get("level");return(0,i.default)(function(t){return t.setIn(["embeddingLevels","levels",u],a)},function(t){var e=a+1+a%2,u=e>r.MAX_DEPTH,i=t.get("overflowIsolateCount"),o=t.get("overflowEmbeddingCount"),s=i>0||o>0;if(u||s)return 0===i?t.update("overflowEmbeddingCount",n.increase):t;var f=new n.DirectionalStatusStackEntry({level:e});return t.update("directionalStatusStack",function(t){return t.push(f)})})(o)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(u(4)),n=u(0),i=u(3);e.default=function(t,e,u,o){if(t!==n.LRE)return o;var a=o.get("directionalStatusStack").peek().get("level");return(0,r.default)(function(t){return t.setIn(["embeddingLevels","levels",u],a)},function(t){var e=a+1+(a+1)%2,u=e>n.MAX_DEPTH,r=t.get("overflowIsolateCount"),o=t.get("overflowEmbeddingCount"),s=r>0||o>0;if(u||s)return 0===r?t.update("overflowEmbeddingCount",i.increase):t;var f=new i.DirectionalStatusStackEntry({level:e});return t.update("directionalStatusStack",function(t){return t.push(f)})})(o)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0),n=u(3);e.default=function(t,e,u,i){if(t!==r.RLO)return i;var o=i.get("directionalStatusStack").peek().get("level"),a=i.get("overflowIsolateCount"),s=i.get("overflowEmbeddingCount"),f=o+1+o%2,c=f>r.MAX_DEPTH,D=a>0||s>0;return c||D?0===a?i.update("overflowEmbeddingCount",n.increase):i:i.update("directionalStatusStack",function(t){return t.push(new n.DirectionalStatusStackEntry({level:f,override:"right-to-left"}))})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0),n=u(3);e.default=function(t,e,u,i){if(t!==r.LRO)return i;var o=i.get("directionalStatusStack").peek().get("level"),a=i.get("overflowIsolateCount"),s=i.get("overflowEmbeddingCount"),f=o+1+(o+1)%2,c=f>r.MAX_DEPTH,D=a>0||s>0;return c||D?0===a?i.update("overflowEmbeddingCount",n.increase):i:i.update("directionalStatusStack",function(t){return t.push(new n.DirectionalStatusStackEntry({level:f,override:"left-to-right"}))})}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=r(u(8)),i=r(u(9)),o=r(u(10)),a=r(u(11)),s=u(0);e.default=function(t,e,u,r,f,c){if(t!==s.FSI)return r;var D=(0,a.default)(f).initiatorToPDI.get(u,-1),l=u+1,h=D>-1?D:f.size,p=f.slice(l,h),d=c.slice(l,h);return 1===(0,o.default)(p,d)?(0,n.default)(s.RLI,e,u,r,f):(0,i.default)(s.LRI,e,u,r,f)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(u(2)),n=u(0),i=u(1);e.default=function(t,e){if(e>=t.size)return-1;if(!(0,r.default)([n.LRI,n.RLI,n.FSI],t.get(e)))return-1;var u=t.slice(e+1),o=(0,i.Record)({counter:1,index:-1},"BD9State");return u.reduce(function(t,u,i){if(t.get("index")>-1)return t;var a=function(){var e=t.get("counter");return(0,r.default)([n.LRI,n.RLI,n.FSI],u)?e+1:u===n.PDI?e-1:e}();return u===n.PDI&&0===a?new o({counter:a,index:e+(i+1)}):t.set("counter",a)},new o).get("index")}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=r(u(4)),i=(r(u(2)),u(0));e.default=function(t,e,u,r){if((0,i.isNonFormatting)(e))return r;var o=r.get("directionalStatusStack").peek(),a=o.get("level");return(0,n.default)(function(t){return t.update("embeddingLevels",function(t){return t.set(u,a)})},function(t){var e=o.get("override");if("neutral"!==e){var r="left-to-right"===e?"L":"R";return t.update("bidiTypes",function(t){return t.set(u,r)})}return t})(r)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.pdi=void 0;var r=function(t){return t&&t.__esModule?t:{default:t}}(u(4)),n=u(0),i=u(3);e.pdi=function(t,e,u,o){if(t!==n.PDI)return o;var a=o.get("overflowIsolateCount"),s=o.get("validIsolateCount");return(0,r.default)(function(t){return a>0?t.update("overflowIsolateCount",i.decrease):0===s?t:t.set("overflowEmbeddingCount",0).update("directionalStatusStack",function(t){return t.skipWhile(function(t){return!1===t.get("isolate")})}).update("directionalStatusStack",function(t){return t.pop()}).update("validIsolateCount",i.decrease)},function(t){var e=t.get("directionalStatusStack").peek().get("level");return t.update("embeddingLevels",function(t){return t.set(u,e)})},function(t){var e=t.get("directionalStatusStack").peek().get("override");if("neutral"!==e){var r="left-to-right"===e?"L":"R";return t.setIn(["bidiTypes",u],r)}return t})(o)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.pdf=void 0;var r=u(0),n=u(3),i=function(t){return t&&t.__esModule?t:{default:t}}(u(4));e.pdf=function(t,e,u,o){return t!==r.PDF?o:(0,i.default)(function(t){var e=t.get("directionalStatusStack").peek().get("level");return t.setIn(["embeddingLevels","levels",u],e)},function(t){var e=t.get("overflowIsolateCount"),u=t.get("overflowEmbeddingCount"),r=t.get("directionalStatusStack"),i=r.peek().get("isolate");return e>0?t:u>0?t.update("overflowEmbeddingCount",n.decrease):!1===i&&r.size>=2?t.set("directionalStatusStack",r.pop()):t})(o)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=u(1);e.default=function(t){var e=t.reduce(function(t,e){var u=r(e,3),n=u[0],i=u[1],o=u[2];return t.update(0,function(t){return t.push(n)}).update(1,function(t){return t.push(i)}).update(2,function(t){return t.push(o)})},n.List.of(n.List.of(),n.List.of(),n.List.of()));return[e.get(0),e.get(1),e.get(2)]}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(3);e.default=function(t,e){var u=t.filter(function(t){return e>=t.get("from")&&e0?u.last():new r.Run}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(1);e.default=function(t){return t.butLast().reduce(function(t,e){var u=e.toJS(),r=u.from,n=u.to-r,i=t.get(-1);return t.push(n+i)},r.List.of(0))}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t,e){return t.zipWith(function(t,e){return"L"===t?e+e%2:"R"===t?e+(e+1)%2:"AN"===t||"EN"===t?e+1+(e+1)%2:void 0},e)}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}function n(t,e,u){var r=t.zip(e),n=(0,s.default)(u.get("runs").map(function(t){var e=t.toJS(),u=e.from,n=e.to;return r.slice(u,n)}).flatten()),l=i(n,2),h=l[0],p=l[1],d=[a.nsm,a.en,a.al,a.es,a.et,a.on,a.enToL,c.default,f.default,D.default].reduce(function(t,e){var r=u.get("runs").first().get("level");return e(t,h,u.get("sos"),u.get("eos"),r,p)},p),_=u.get("runs").butLast().reduce(function(t,e){var u=e.toJS(),r=u.from,n=u.to-r,i=t.get(-1);return t.push(n+i)},o.List.of(0)),v=u.get("runs").zip(_).map(function(t){var e=i(t,2),u=e[0],r=e[1],n=u.toJS(),o=n.from,a=n.to-o;return d.slice(r,r+a)});return u.get("runs").zip(v).reduce(function(t,e){var u=i(e,2),r=u[0],n=u[1],o=r.toJS(),a=o.from,s=o.to;return t.slice(0,a).concat(n).concat(t.slice(s))},e)}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),o=u(1),a=u(31),s=(r(u(7)),u(0),r(u(12))),f=r(u(39)),c=r(u(40)),D=r(u(42));e.default=function(t,e,u){return u.reduce(function(e,u){return n(t,e,u)},e)}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0}),e.enToL=e.on=e.et=e.es=e.al=e.en=e.nsm=void 0;var n=r(u(32)),i=r(u(33)),o=r(u(34)),a=r(u(35)),s=r(u(36)),f=r(u(37)),c=r(u(38));e.nsm=n.default,e.en=i.default,e.al=o.default,e.es=a.default,e.et=s.default,e.on=f.default,e.enToL=c.default},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(1),n=u(0);e.default=function(t,e,u,i){return t.reduce(function(t,r,i){if("NSM"!==r)return t.push(r);if(i<=0)return t.push(u);var o=t.get(i-1),a=e.get(i-1);return(0,n.isIsolateInitiator)(o)||(0,n.isPDI)(a)?t.push("ON"):t.push(o)},r.List.of())}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0);e.default=function(t,e,u,n,i){return t.map(function(e,n){return"EN"!==e?e:"AL"===t.slice(0,n).reverse().push(u).find(function(t){return(0,r.isStrong)(t)})?"AN":e})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(t){return t.map(function(t){return"AL"===t?"R":t})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(u(2));e.default=function(t){if(t.size<3)return t;var e=function(t){return(0,r.default)(["AN","EN"],t)},u=t.take(1),n=t.skip(2).zipWith(function(t,u,r){return"EN"===t&&t===r&&"ES"===u?"EN":"CS"===u&&e(t)&&t===r?t:u},t.skip(1),t),i=t.last();return u.concat(n).push(i)}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0);e.default=function(t){return t.map(function(e,u){if("ET"!==e)return e;var n=t.slice(0,u).reverse(),i=t.slice(u),o="EN"===n.skipWhile(r.isET).first(),a="EN"===i.skipWhile(r.isET).first();return o||a?"EN":e})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(t){return t&&t.__esModule?t:{default:t}}(u(2));e.default=function(t,e){return t.map(function(t,e){return(0,r.default)(["ET","ES","CS","B","S"],t)?"ON":t})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0);e.default=function(t,e,u,n,i){return t.map(function(e,n){return"EN"!==e?e:"L"===t.slice(0,n).reverse().push(u).find(function(t){return(0,r.isStrong)(t)})?"L":e})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0);e.default=function(t,e,u,n,i){return t.map(function(e,i){if(!(0,r.isNI)(e))return e;var o=t.slice(0,i).reverse().push(u),a=t.slice(i).push(n),s=o.skipWhile(r.isNI).first(),f=a.skipWhile(r.isNI).first();return"L"===s&&"L"===f?"L":(0,r.isR)(s)&&(0,r.isR)(f)?"R":e})}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});r(u(6));var n=r(u(41)),i=r(u(4)),o=r(u(2));e.default=function(t,e,u,r,a,s){var f=(0,n.default)(e);return(0,i.default)(function(){return f.reduce(function(t,e){var r=e.get("open"),n=e.get("close");if(t.get(r)!==t.get(n))return t;var i=t.slice(r,n+1).map(function(t){return(0,o.default)(["EN","AN"],t)?"R":t}),s=a%2==0?"L":"R",f=a%2==0?"R":"L",c=i.find(function(t){return t===s}),D=i.find(function(t){return t===f});return c?t.set(r,s).set(n,s):D?t.slice(0,r).map(function(t){return(0,o.default)(["EN","AN"],t)?"R":t}).reverse().push(u).find(function(t){return(0,o.default)(["L","R"],t)})===f?t.set(r,f).set(n,f):t.set(r,s).set(n,s):t},t)},function(t){return f.reduce(function(t,e){var u=e.get("open"),r=e.get("close"),n=(0,o.default)(["L","R"],t.get(u)),a=(0,o.default)(["L","R"],t.get(r));return(0,i.default)(function(t){return"NSM"===s.get(u+1)&&n?t.set(u+1,t.get(u)):t},function(t){return"NSM"===s.get(r+1)&&a?t.set(r+1,t.get(r)):t})(t)},t)})()}},function(t,e,u){"use strict";function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var n=r(u(6)),i=(r(u(2)),u(3)),o=u(0);e.default=function(t,e){var u=new i.BracketPairState;return t.reduce(function(t,e,u){if(!0===t.get("stackoverflow"))return t;var r=t.get("stack");if((0,o.isOpeningBracket)(e,"ON"))return 63==r.size?t.set("stackoverflow",!0):t.set("stack",r.push(new i.BracketPairStackEntry({point:(0,o.oppositeBracket)(e),position:u})));if((0,o.isClosingBracket)(e,"ON")&&r.size>0){var a=r.findKey(function(t){return t.get("point")===e});if((0,n.default)(a))return t;var s=r.getIn([a,"position"]);return t.set("stack",r.slice(a+1)).update("pairings",function(t){return t.push(new i.Pairing({open:s,close:u}))})}return t},u).get("pairings").sort(function(t,e){return t.get("open")-e.get("open")})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=u(0);e.default=function(t,e,u,n,i){var o=i%2==0?"L":"R";return t.map(function(t,e){return(0,r.isNI)(t)?o:t})}},function(t,e,u){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=function(){function t(t,e){var u=[],r=!0,n=!1,i=void 0;try{for(var o,a=t[Symbol.iterator]();!(r=(o=a.next()).done)&&(u.push(o.value),!e||u.length!==e);r=!0);}catch(t){n=!0,i=t}finally{try{!r&&a.return&&a.return()}finally{if(n)throw i}}return u}return function(e,u){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,u);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),n=function(t){return t&&t.__esModule?t:{default:t}}(u(2)),i=function(t){return(0,n.default)(["WS","FSI","LRI","RLI","PDI"],t)};e.default=function(t,e,u){return t.zip(e).map(function(e,o){var a=r(e,2),s=a[0],f=a[1];if((0,n.default)(["S","B"],s))return u;if(!i(s))return f;var c=t.slice(o).push("").skipWhile(i).first();return(0,n.default)(["","S","B"],c)?u:f})}},function(t,e,u){"use strict";function r(t,e){var u=n(e,0).groupBy(function(t){return t.get("level")}),a=u.keySeq().max();if(!(0,o.default)(a)||a<0)return t;if(0===a)return t;var f=u.get(a);return r(f.reduce(function(t,e){var u=e.toJS(),r=u.from,n=u.to,i=t.slice(r,n).reverse();return s(t,r,n,i)},t),f.reduce(function(t,e){var u=e.toJS(),r=u.from,n=u.to,o=(0,i.List)((0,i.Range)(0,n-r)).map(function(t){return a-1});return s(t,r,n,o)},e))}function n(t,e){var u=t.size;if(0===u)return i.List.of();var r=t.first(),o=t.findKey(function(t){return t!=r}),s=void 0===o?u:o,f=new a({level:r,from:e,to:e+s});return i.List.of(f).concat(n(t.slice(s),e+s))}Object.defineProperty(e,"__esModule",{value:!0}),e.reorderPermutation=void 0;var i=u(1),o=function(t){return t&&t.__esModule?t:{default:t}}(u(45)),a=(0,i.Record)({level:-1,from:0,to:0},"ReorderPair"),s=function(t,e,u,r){var n=t.slice(0,e),i=t.slice(u);return n.concat(r).concat(i)};e.reorderPermutation=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"x",u=r((0,i.List)((0,i.Range)(0,t.size)).map(function(e){return(0,i.Map)({strip:"x"===t.get(e),index:e})}).filter(function(t){return!1===t.get("strip")}).map(function(t){return t.get("index")}),t.filter(function(t){return t!=e})),n=new((0,i.Record)({remaining:(0,i.List)(),result:(0,i.List)()},"Reduction"))({remaining:u,result:(0,i.List)()});return(0,i.List)((0,i.Range)(0,t.size)).reduce(function(e,u){if("x"==t.get(u)){var r=e.get("result").size;return e.setIn(["result",u],r)}var n=e.get("remaining");return e.setIn(["result",u],n.first()).set("remaining",n.shift())},n).get("result")},e.default=r},function(t,e){function u(t){return!!t&&"object"==typeof t}var r="[object Number]",n=Object.prototype.toString;t.exports=function(t){return"number"==typeof t||u(t)&&n.call(t)==r}},function(t,e,u){(function(e){var u;!function(e){t.exports=e()}(function(){return function t(e,r,n){function i(a,s){if(!r[a]){if(!e[a]){var f="function"==typeof u&&u;if(!s&&f)return u(a,!0);if(o)return o(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var D=r[a]={exports:{}};e[a][0].call(D.exports,function(t){var u=e[a][1][t];return i(u||t)},D,D.exports,t,e,r,n)}return r[a].exports}for(var o="function"==typeof u&&u,a=0;a1&&(r=u[0]+"@",t=u[1]),r+i((t=t.replace(x,".")).split("."),e).join(".")}function a(t){for(var e,u,r=[],n=0,i=t.length;n=55296&&e<=56319&&n65535&&(e+=M((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=M(t)}).join("")}function f(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:C}function c(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function D(t,e,u){var r=0;for(t=u?z(t/g):t>>1,t+=z(t/e);t>O*y>>1;r+=C)t=z(t/O);return z(r+(O+1)*t/(t+B))}function l(t){var e,u,r,i,o,a,c,l,h,p,d=[],_=t.length,v=0,F=S,B=m;for((u=t.lastIndexOf(w))<0&&(u=0),r=0;r=128&&n("not-basic"),d.push(t.charCodeAt(r));for(i=u>0?u+1:0;i<_;){for(o=v,a=1,c=C;i>=_&&n("invalid-input"),((l=f(t.charCodeAt(i++)))>=C||l>z((E-v)/a))&&n("overflow"),v+=l*a,h=c<=B?A:c>=B+y?y:c-B,!(lz(E/(p=C-h))&&n("overflow"),a*=p;B=D(v-o,e=d.length+1,0==o),z(v/e)>E-F&&n("overflow"),F+=z(v/e),v%=e,d.splice(v++,0,F)}return s(d)}function h(t){var e,u,r,i,o,s,f,l,h,p,d,_,v,F,B,g=[];for(_=(t=a(t)).length,e=S,u=0,o=m,s=0;s<_;++s)(d=t[s])<128&&g.push(M(d));for(r=i=g.length,i&&g.push(w);r<_;){for(f=E,s=0;s<_;++s)(d=t[s])>=e&&dz((E-u)/(v=r+1))&&n("overflow"),u+=(f-e)*v,e=f,s=0;s<_;++s)if((d=t[s])E&&n("overflow"),d==e){for(l=u,h=C;p=h<=o?A:h>=o+y?y:h-o,!(l= 0x80 (not a basic code point)","invalid-input":"Invalid input"},O=C-A,z=Math.floor,M=String.fromCharCode;if(v={version:"1.4.1",ucs2:{decode:a,encode:s},decode:l,encode:h,toASCII:function(t){return o(t,function(t){return I.test(t)?"xn--"+h(t):t})},toUnicode:function(t){return o(t,function(t){return b.test(t)?l(t.slice(4).toLowerCase()):t})}},p&&d)if(u.exports==p)d.exports=v;else for(F in v)v.hasOwnProperty(F)&&(p[F]=v[F]);else e.punycode=v}(this)}).call(this,void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],2:[function(t,e,u){e.exports=/[\u0608\u060B\u060D\u061B\u061C\u061E-\u064A\u066D-\u066F\u0671-\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u070D\u070F\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u08A0-\u08B4\u08B6-\u08BD\uFB50-\uFBC1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFC\uFE70-\uFE74\uFE76-\uFEFC]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]/},{}],3:[function(t,e,u){e.exports=/[\u0600-\u0605\u0660-\u0669\u066B\u066C\u06DD\u08E2]|\uD803[\uDE60-\uDE7E]/},{}],4:[function(t,e,u){e.exports=/[\0-\x08\x0E-\x1B\x7F-\x84\x86-\x9F\xAD\u180E\u200B-\u200D\u2060-\u2064\u206A-\u206F\uFEFF]|\uD82F[\uDCA0-\uDCA3]|\uD834[\uDD73-\uDD7A]|\uDB40[\uDC01\uDC20-\uDC7F]/},{}],5:[function(t,e,u){e.exports=/[,\./:\xA0\u060C\u202F\u2044\uFE50\uFE52\uFE55\uFF0C\uFF0E\uFF0F\uFF1A]/},{}],6:[function(t,e,u){e.exports=/[0-9\xB2\xB3\xB9\u06F0-\u06F9\u2070\u2074-\u2079\u2080-\u2089\u2488-\u249B\uFF10-\uFF19]|\uD800[\uDEE1-\uDEFB]|\uD835[\uDFCE-\uDFFF]|\uD83C[\uDD00-\uDD0A]/},{}],7:[function(t,e,u){e.exports=/[\+\-\u207A\u207B\u208A\u208B\u2212\uFB29\uFE62\uFE63\uFF0B\uFF0D]/},{}],8:[function(t,e,u){e.exports=/[#-%\xA2-\xA5\xB0\xB1\u058F\u0609\u060A\u066A\u09F2\u09F3\u09FB\u0AF1\u0BF9\u0E3F\u17DB\u2030-\u2034\u20A0-\u20BE\u212E\u2213\uA838\uA839\uFE5F\uFE69\uFE6A\uFF03-\uFF05\uFFE0\uFFE1\uFFE5\uFFE6]/},{}],9:[function(t,e,u){e.exports=/\u2068/},{}],10:[function(t,e,u){e.exports=/[A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02B8\u02BB-\u02C1\u02D0\u02D1\u02E0-\u02E4\u02EE\u0370-\u0373\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0482\u048A-\u052F\u0531-\u0556\u0559-\u055F\u0561-\u0587\u0589\u0903-\u0939\u093B\u093D-\u0940\u0949-\u094C\u094E-\u0950\u0958-\u0961\u0964-\u0980\u0982\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD-\u09C0\u09C7\u09C8\u09CB\u09CC\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E1\u09E6-\u09F1\u09F4-\u09FA\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3E-\u0A40\u0A59-\u0A5C\u0A5E\u0A66-\u0A6F\u0A72-\u0A74\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD-\u0AC0\u0AC9\u0ACB\u0ACC\u0AD0\u0AE0\u0AE1\u0AE6-\u0AF0\u0AF9\u0B02\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B3E\u0B40\u0B47\u0B48\u0B4B\u0B4C\u0B57\u0B5C\u0B5D\u0B5F-\u0B61\u0B66-\u0B77\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE\u0BBF\u0BC1\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCC\u0BD0\u0BD7\u0BE6-\u0BF2\u0C01-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C41-\u0C44\u0C58-\u0C5A\u0C60\u0C61\u0C66-\u0C6F\u0C7F\u0C80\u0C82\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD-\u0CC4\u0CC6-\u0CC8\u0CCA\u0CCB\u0CD5\u0CD6\u0CDE\u0CE0\u0CE1\u0CE6-\u0CEF\u0CF1\u0CF2\u0D02\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D40\u0D46-\u0D48\u0D4A-\u0D4C\u0D4E\u0D4F\u0D54-\u0D61\u0D66-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCF-\u0DD1\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2-\u0DF4\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E4F-\u0E5B\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00-\u0F17\u0F1A-\u0F34\u0F36\u0F38\u0F3E-\u0F47\u0F49-\u0F6C\u0F7F\u0F85\u0F88-\u0F8C\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE-\u0FDA\u1000-\u102C\u1031\u1038\u103B\u103C\u103F-\u1057\u105A-\u105D\u1061-\u1070\u1075-\u1081\u1083\u1084\u1087-\u108C\u108E-\u109C\u109E-\u10C5\u10C7\u10CD\u10D0-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1360-\u137C\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u167F\u1681-\u169A\u16A0-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1735\u1736\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17B6\u17BE-\u17C5\u17C7\u17C8\u17D4-\u17DA\u17DC\u17E0-\u17E9\u1810-\u1819\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1923-\u1926\u1929-\u192B\u1930\u1931\u1933-\u1938\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A16\u1A19\u1A1A\u1A1E-\u1A55\u1A57\u1A61\u1A63\u1A64\u1A6D-\u1A72\u1A80-\u1A89\u1A90-\u1A99\u1AA0-\u1AAD\u1B04-\u1B33\u1B35\u1B3B\u1B3D-\u1B41\u1B43-\u1B4B\u1B50-\u1B6A\u1B74-\u1B7C\u1B82-\u1BA1\u1BA6\u1BA7\u1BAA\u1BAE-\u1BE5\u1BE7\u1BEA-\u1BEC\u1BEE\u1BF2\u1BF3\u1BFC-\u1C2B\u1C34\u1C35\u1C3B-\u1C49\u1C4D-\u1C88\u1CC0-\u1CC7\u1CD3\u1CE1\u1CE9-\u1CEC\u1CEE-\u1CF3\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200E\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u214F\u2160-\u2188\u2336-\u237A\u2395\u249C-\u24E9\u26AC\u2800-\u28FF\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D70\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u302E\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31F0-\u321C\u3220-\u324F\u3260-\u327B\u327F-\u32B0\u32C0-\u32CB\u32D0-\u32FE\u3300-\u3376\u337B-\u33DD\u33E0-\u33FE\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA60C\uA610-\uA62B\uA640-\uA66E\uA680-\uA69D\uA6A0-\uA6EF\uA6F2-\uA6F7\uA722-\uA787\uA789-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA824\uA827\uA830-\uA837\uA840-\uA873\uA880-\uA8C3\uA8CE-\uA8D9\uA8F2-\uA8FD\uA900-\uA925\uA92E-\uA946\uA952\uA953\uA95F-\uA97C\uA983-\uA9B2\uA9B4\uA9B5\uA9BA\uA9BB\uA9BD-\uA9CD\uA9CF-\uA9D9\uA9DE-\uA9E4\uA9E6-\uA9FE\uAA00-\uAA28\uAA2F\uAA30\uAA33\uAA34\uAA40-\uAA42\uAA44-\uAA4B\uAA4D\uAA50-\uAA59\uAA5C-\uAA7B\uAA7D-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAAEB\uAAEE-\uAAF5\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB65\uAB70-\uABE4\uABE6\uABE7\uABE9-\uABEC\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uE000-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD00\uDD02\uDD07-\uDD33\uDD37-\uDD3F\uDD8D\uDD8E\uDDD0-\uDDFC\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF23\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDF9F-\uDFC3\uDFC8-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDD6F\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD804[\uDC00\uDC02-\uDC37\uDC47-\uDC4D\uDC66-\uDC6F\uDC82-\uDCB2\uDCB7\uDCB8\uDCBB-\uDCC1\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD03-\uDD26\uDD2C\uDD36-\uDD43\uDD50-\uDD72\uDD74-\uDD76\uDD82-\uDDB5\uDDBF-\uDDC9\uDDCD\uDDD0-\uDDDF\uDDE1-\uDDF4\uDE00-\uDE11\uDE13-\uDE2E\uDE32\uDE33\uDE35\uDE38-\uDE3D\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA9\uDEB0-\uDEDE\uDEE0-\uDEE2\uDEF0-\uDEF9\uDF02\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D-\uDF3F\uDF41-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63]|\uD805[\uDC00-\uDC37\uDC40\uDC41\uDC45\uDC47-\uDC59\uDC5B\uDC5D\uDC80-\uDCB2\uDCB9\uDCBB-\uDCBE\uDCC1\uDCC4-\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB1\uDDB8-\uDDBB\uDDBE\uDDC1-\uDDDB\uDE00-\uDE32\uDE3B\uDE3C\uDE3E\uDE41-\uDE44\uDE50-\uDE59\uDE80-\uDEAA\uDEAC\uDEAE\uDEAF\uDEB6\uDEC0-\uDEC9\uDF00-\uDF19\uDF20\uDF21\uDF26\uDF30-\uDF3F]|\uD806[\uDCA0-\uDCF2\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2F\uDC3E-\uDC45\uDC50-\uDC6C\uDC70-\uDC8F\uDCA9\uDCB1\uDCB4]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC70-\uDC74\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uDB80-\uDBBE\uDBC0-\uDBFE][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDE6E\uDE6F\uDED0-\uDEED\uDEF5\uDF00-\uDF2F\uDF37-\uDF45\uDF50-\uDF59\uDF5B-\uDF61\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9C\uDC9F]|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD66\uDD6A-\uDD72\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDF60-\uDF71]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEDA\uDEDC-\uDF14\uDF16-\uDF4E\uDF50-\uDF88\uDF8A-\uDFC2\uDFC4-\uDFCB]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE8B]|\uD83C[\uDD10-\uDD2E\uDD30-\uDD69\uDD70-\uDDAC\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|[\uDBBF\uDBFF][\uDC00-\uDFFD]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/},{}],11:[function(t,e,u){e.exports=/\u202A/},{}],12:[function(t,e,u){e.exports=/\u2066/},{}],13:[function(t,e,u){e.exports=/\u202D/},{}],14:[function(t,e,u){e.exports=/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0902\u093A\u093C\u0941-\u0948\u094D\u0951-\u0957\u0962\u0963\u0981\u09BC\u09C1-\u09C4\u09CD\u09E2\u09E3\u0A01\u0A02\u0A3C\u0A41\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81\u0A82\u0ABC\u0AC1-\u0AC5\u0AC7\u0AC8\u0ACD\u0AE2\u0AE3\u0B01\u0B3C\u0B3F\u0B41-\u0B44\u0B4D\u0B56\u0B62\u0B63\u0B82\u0BC0\u0BCD\u0C00\u0C3E-\u0C40\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81\u0CBC\u0CCC\u0CCD\u0CE2\u0CE3\u0D01\u0D41-\u0D44\u0D4D\u0D62\u0D63\u0DCA\u0DD2-\u0DD4\u0DD6\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F71-\u0F7E\u0F80-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102D-\u1030\u1032-\u1037\u1039\u103A\u103D\u103E\u1058\u1059\u105E-\u1060\u1071-\u1074\u1082\u1085\u1086\u108D\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4\u17B5\u17B7-\u17BD\u17C6\u17C9-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193B\u1A17\u1A18\u1A1B\u1A56\u1A58-\u1A5E\u1A60\u1A62\u1A65-\u1A6C\u1A73-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B03\u1B34\u1B36-\u1B3A\u1B3C\u1B42\u1B6B-\u1B73\u1B80\u1B81\u1BA2-\u1BA5\u1BA8\u1BA9\u1BAB-\u1BAD\u1BE6\u1BE8\u1BE9\u1BED\u1BEF-\u1BF1\u1C2C-\u1C33\u1C36\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE0\u1CE2-\u1CE8\u1CED\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302D\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA825\uA826\uA8C4\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA951\uA980-\uA982\uA9B3\uA9B6-\uA9B9\uA9BC\uA9E5\uAA29-\uAA2E\uAA31\uAA32\uAA35\uAA36\uAA43\uAA4C\uAA7C\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEC\uAAED\uAAF6\uABE5\uABE8\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]|\uD800[\uDDFD\uDEE0\uDF76-\uDF7A]|\uD802[\uDE01-\uDE03\uDE05\uDE06\uDE0C-\uDE0F\uDE38-\uDE3A\uDE3F\uDEE5\uDEE6]|\uD804[\uDC01\uDC38-\uDC46\uDC7F-\uDC81\uDCB3-\uDCB6\uDCB9\uDCBA\uDD00-\uDD02\uDD27-\uDD2B\uDD2D-\uDD34\uDD73\uDD80\uDD81\uDDB6-\uDDBE\uDDCA-\uDDCC\uDE2F-\uDE31\uDE34\uDE36\uDE37\uDE3E\uDEDF\uDEE3-\uDEEA\uDF00\uDF01\uDF3C\uDF40\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC38-\uDC3F\uDC42-\uDC44\uDC46\uDCB3-\uDCB8\uDCBA\uDCBF\uDCC0\uDCC2\uDCC3\uDDB2-\uDDB5\uDDBC\uDDBD\uDDBF\uDDC0\uDDDC\uDDDD\uDE33-\uDE3A\uDE3D\uDE3F\uDE40\uDEAB\uDEAD\uDEB0-\uDEB5\uDEB7\uDF1D-\uDF1F\uDF22-\uDF25\uDF27-\uDF2B]|\uD807[\uDC30-\uDC36\uDC38-\uDC3D\uDC92-\uDCA7\uDCAA-\uDCB0\uDCB2\uDCB3\uDCB5\uDCB6]|\uD81A[\uDEF0-\uDEF4\uDF30-\uDF36]|\uD81B[\uDF8F-\uDF92]|\uD82F[\uDC9D\uDC9E]|\uD834[\uDD67-\uDD69\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDCD0-\uDCD6\uDD44-\uDD4A]|\uDB40[\uDD00-\uDDEF]/},{}],15:[function(t,e,u){e.exports=/[!"&-\*;-@\[-`\{-~\xA1\xA6-\xA9\xAB\xAC\xAE\xAF\xB4\xB6-\xB8\xBB-\xBF\xD7\xF7\u02B9\u02BA\u02C2-\u02CF\u02D2-\u02DF\u02E5-\u02ED\u02EF-\u02FF\u0374\u0375\u037E\u0384\u0385\u0387\u03F6\u058A\u058D\u058E\u0606\u0607\u060E\u060F\u06DE\u06E9\u07F6-\u07F9\u0BF3-\u0BF8\u0BFA\u0C78-\u0C7E\u0F3A-\u0F3D\u1390-\u1399\u1400\u169B\u169C\u17F0-\u17F9\u1800-\u180A\u1940\u1944\u1945\u19DE-\u19FF\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2010-\u2027\u2035-\u2043\u2045-\u205E\u207C-\u207E\u208C-\u208E\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u213A\u213B\u2140-\u2144\u214A-\u214D\u2150-\u215F\u2189-\u218B\u2190-\u2211\u2214-\u2335\u237B-\u2394\u2396-\u23FE\u2400-\u2426\u2440-\u244A\u2460-\u2487\u24EA-\u26AB\u26AD-\u27FF\u2900-\u2B73\u2B76-\u2B95\u2B98-\u2BB9\u2BBD-\u2BC8\u2BCA-\u2BD1\u2BEC-\u2BEF\u2CE5-\u2CEA\u2CF9-\u2CFF\u2E00-\u2E44\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u303F\u309B\u309C\u30A0\u30FB\u31C0-\u31E3\u321D\u321E\u3250-\u325F\u327C-\u327E\u32B1-\u32BF\u32CC-\u32CF\u3377-\u337A\u33DE\u33DF\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA60D-\uA60F\uA673\uA67E\uA67F\uA700-\uA721\uA788\uA828-\uA82B\uA874-\uA877\uFD3E\uFD3F\uFDFD\uFE10-\uFE19\uFE30-\uFE4F\uFE51\uFE54\uFE56-\uFE5E\uFE60\uFE61\uFE64-\uFE66\uFE68\uFE6B\uFF01\uFF02\uFF06-\uFF0A\uFF1B-\uFF20\uFF3B-\uFF40\uFF5B-\uFF65\uFFE2-\uFFE4\uFFE8-\uFFEE\uFFF9-\uFFFD]|\uD800[\uDD01\uDD40-\uDD8C\uDD90-\uDD9B\uDDA0]|\uD802[\uDD1F\uDF39-\uDF3F]|\uD804[\uDC52-\uDC65]|\uD805[\uDE60-\uDE6C]|\uD834[\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEDB\uDF15\uDF4F\uDF89\uDFC3]|\uD83B[\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0B\uDD0C\uDD6A\uDD6B\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED2\uDEE0-\uDEEC\uDEF0-\uDEF6\uDF00-\uDF73\uDF80-\uDFD4]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDD10-\uDD1E\uDD20-\uDD27\uDD30\uDD33-\uDD3E\uDD40-\uDD4B\uDD50-\uDD5E\uDD80-\uDD91\uDDC0]/},{}],16:[function(t,e,u){e.exports=/[\n\r\x1C-\x1E\x85\u2029]/},{}],17:[function(t,e,u){e.exports=/\u202C/},{}],18:[function(t,e,u){e.exports=/\u2069/},{}],19:[function(t,e,u){e.exports=/[\u05BE\u05C0\u05C3\u05C6\u05D0-\u05EA\u05F0-\u05F4\u07C0-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0830-\u083E\u0840-\u0858\u085E\u200F\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFB4F]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC57-\uDC9E\uDCA7-\uDCAF\uDCE0-\uDCF2\uDCF4\uDCF5\uDCFB-\uDD1B\uDD20-\uDD39\uDD3F\uDD80-\uDDB7\uDDBC-\uDDCF\uDDD2-\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE40-\uDE47\uDE50-\uDE58\uDE60-\uDE9F\uDEC0-\uDEE4\uDEEB-\uDEF6\uDF00-\uDF35\uDF40-\uDF55\uDF58-\uDF72\uDF78-\uDF91\uDF99-\uDF9C\uDFA9-\uDFAF]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDCFA-\uDCFF]|\uD83A[\uDC00-\uDCC4\uDCC7-\uDCCF\uDD00-\uDD43\uDD50-\uDD59\uDD5E\uDD5F]/},{}],20:[function(t,e,u){e.exports=/\u202B/},{}],21:[function(t,e,u){e.exports=/\u2067/},{}],22:[function(t,e,u){e.exports=/\u202E/},{}],23:[function(t,e,u){e.exports=/[\t\x0B\x1F]/},{}],24:[function(t,e,u){e.exports=/[\f \u1680\u2000-\u200A\u2028\u205F\u3000]/},{}],25:[function(t,e,u){"use strict";var r=t("unicode-9.0.0/Bidi_Class/Arabic_Letter/regex"),n=t("unicode-9.0.0/Bidi_Class/Arabic_Number/regex"),i=t("unicode-9.0.0/Bidi_Class/Boundary_Neutral/regex"),o=t("unicode-9.0.0/Bidi_Class/Common_Separator/regex"),a=t("unicode-9.0.0/Bidi_Class/European_Number/regex"),s=t("unicode-9.0.0/Bidi_Class/European_Separator/regex"),f=t("unicode-9.0.0/Bidi_Class/European_Terminator/regex"),c=t("unicode-9.0.0/Bidi_Class/First_Strong_Isolate/regex"),D=t("unicode-9.0.0/Bidi_Class/Left_To_Right/regex"),l=t("unicode-9.0.0/Bidi_Class/Left_To_Right_Embedding/regex"),h=t("unicode-9.0.0/Bidi_Class/Left_To_Right_Isolate/regex"),p=t("unicode-9.0.0/Bidi_Class/Left_To_Right_Override/regex"),d=t("unicode-9.0.0/Bidi_Class/Nonspacing_Mark/regex"),_=t("unicode-9.0.0/Bidi_Class/Other_Neutral/regex"),v=t("unicode-9.0.0/Bidi_Class/Paragraph_Separator/regex"),F=t("unicode-9.0.0/Bidi_Class/Pop_Directional_Format/regex"),E=t("unicode-9.0.0/Bidi_Class/Pop_Directional_Isolate/regex"),C=t("unicode-9.0.0/Bidi_Class/Right_To_Left/regex"),A=t("unicode-9.0.0/Bidi_Class/Right_To_Left_Embedding/regex"),y=t("unicode-9.0.0/Bidi_Class/Right_To_Left_Isolate/regex"),B=t("unicode-9.0.0/Bidi_Class/Right_To_Left_Override/regex"),g=t("unicode-9.0.0/Bidi_Class/Segment_Separator/regex"),m=t("unicode-9.0.0/Bidi_Class/White_Space/regex"),S=t("punycode"),w={AL:r,AN:n,BN:i,CS:o,EN:a,ES:s,ET:f,FSI:c,L:D,LRE:l,LRI:h,LRO:p,NSM:d,ON:_,B:v,PDF:F,PDI:E,R:C,RLE:A,RLI:y,RLO:B,S:g,WS:m};e.exports=function(t){var e,u=S.ucs2.encode([t]);for(e in w)if(!0===w[e].test(u))return e}},{punycode:1,"unicode-9.0.0/Bidi_Class/Arabic_Letter/regex":2,"unicode-9.0.0/Bidi_Class/Arabic_Number/regex":3,"unicode-9.0.0/Bidi_Class/Boundary_Neutral/regex":4,"unicode-9.0.0/Bidi_Class/Common_Separator/regex":5,"unicode-9.0.0/Bidi_Class/European_Number/regex":6,"unicode-9.0.0/Bidi_Class/European_Separator/regex":7,"unicode-9.0.0/Bidi_Class/European_Terminator/regex":8,"unicode-9.0.0/Bidi_Class/First_Strong_Isolate/regex":9,"unicode-9.0.0/Bidi_Class/Left_To_Right/regex":10,"unicode-9.0.0/Bidi_Class/Left_To_Right_Embedding/regex":11,"unicode-9.0.0/Bidi_Class/Left_To_Right_Isolate/regex":12,"unicode-9.0.0/Bidi_Class/Left_To_Right_Override/regex":13,"unicode-9.0.0/Bidi_Class/Nonspacing_Mark/regex":14,"unicode-9.0.0/Bidi_Class/Other_Neutral/regex":15,"unicode-9.0.0/Bidi_Class/Paragraph_Separator/regex":16,"unicode-9.0.0/Bidi_Class/Pop_Directional_Format/regex":17,"unicode-9.0.0/Bidi_Class/Pop_Directional_Isolate/regex":18,"unicode-9.0.0/Bidi_Class/Right_To_Left/regex":19,"unicode-9.0.0/Bidi_Class/Right_To_Left_Embedding/regex":20,"unicode-9.0.0/Bidi_Class/Right_To_Left_Isolate/regex":21,"unicode-9.0.0/Bidi_Class/Right_To_Left_Override/regex":22,"unicode-9.0.0/Bidi_Class/Segment_Separator/regex":23,"unicode-9.0.0/Bidi_Class/White_Space/regex":24}]},{},[25])(25)})}).call(e,u(5))},function(t,e,u){(function(t,r){var n;!function(i){function o(t){throw new RangeError(x[t])}function a(t,e){for(var u=t.length,r=[];u--;)r[u]=e(t[u]);return r}function s(t,e){var u=t.split("@"),r="";return u.length>1&&(r=u[0]+"@",t=u[1]),r+a((t=t.replace(I,".")).split("."),e).join(".")}function f(t){for(var e,u,r=[],n=0,i=t.length;n=55296&&e<=56319&&n65535&&(e+=z((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+=z(t)}).join("")}function D(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:E}function l(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function h(t,e,u){var r=0;for(t=u?O(t/B):t>>1,t+=O(t/e);t>L*A>>1;r+=E)t=O(t/L);return O(r+(L+1)*t/(t+y))}function p(t){var e,u,r,n,i,a,s,f,l,p,d=[],_=t.length,v=0,y=m,B=g;for((u=t.lastIndexOf(S))<0&&(u=0),r=0;r=128&&o("not-basic"),d.push(t.charCodeAt(r));for(n=u>0?u+1:0;n<_;){for(i=v,a=1,s=E;n>=_&&o("invalid-input"),((f=D(t.charCodeAt(n++)))>=E||f>O((F-v)/a))&&o("overflow"),v+=f*a,l=s<=B?C:s>=B+A?A:s-B,!(fO(F/(p=E-l))&&o("overflow"),a*=p;B=h(v-i,e=d.length+1,0==i),O(v/e)>F-y&&o("overflow"),y+=O(v/e),v%=e,d.splice(v++,0,y)}return c(d)}function d(t){var e,u,r,n,i,a,s,c,D,p,d,_,v,y,B,w=[];for(_=(t=f(t)).length,e=m,u=0,i=g,a=0;a<_;++a)(d=t[a])<128&&w.push(z(d));for(r=n=w.length,n&&w.push(S);r<_;){for(s=F,a=0;a<_;++a)(d=t[a])>=e&&dO((F-u)/(v=r+1))&&o("overflow"),u+=(s-e)*v,e=s,a=0;a<_;++a)if((d=t[a])F&&o("overflow"),d==e){for(c=u,D=E;p=D<=i?C:D>=i+A?A:D-i,!(c= 0x80 (not a basic code point)","invalid-input":"Invalid input"},L=E-C,O=Math.floor,z=String.fromCharCode;v={version:"1.4.1",ucs2:{decode:f,encode:c},decode:p,encode:d,toASCII:function(t){return s(t,function(t){return b.test(t)?"xn--"+d(t):t})},toUnicode:function(t){return s(t,function(t){return w.test(t)?p(t.slice(4).toLowerCase()):t})}},void 0!==(n=function(){return v}.call(e,u,e,t))&&(t.exports=n)}()}).call(e,u(48)(t),u(5))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children||(t.children=[]),Object.defineProperty(t,"loaded",{enumerable:!0,get:function(){return t.l}}),Object.defineProperty(t,"id",{enumerable:!0,get:function(){return t.i}}),t.webpackPolyfill=1),t}}])});/* +Script: RectanglePacker.js + An algorithm implementation in JavaScript for rectangle packing. + +Author: + Iván Montes , + +License: + LGPL - Lesser General Public License + +Credits: + - Algorithm based on +*/ + +/* + Class: NETXUS.RectanglePacker + A class that finds an 'efficient' position for a rectangle inside another rectangle + without overlapping the space already taken. + + Algorithm based on + + It uses a binary tree to partition the space of the parent rectangle and allocate the + passed rectangles by dividing the partitions into filled and empty. +*/ + + +// Create a NETXUS namespace object if it doesn't exists +if (typeof NETXUS === 'undefined') + var NETXUS = function() {}; + + +/* + Constructor: NETXUS.RectanglePacker + Initializes the object with the given maximum dimensions + + Parameters: + + width - The containing rectangle maximum width as integer + height - The containing rectangle maximum height as integer + +*/ +NETXUS.RectanglePacker = function ( width, height ) { + + this.root = {}; + + // initialize + this.reset( width, height ); +} + + +/* + Resets the object to its initial state by initializing the internal variables + + Parameters: + + width - The containing rectangle maximum width as integer + height - The containing rectangle maximum height as integer +*/ +NETXUS.RectanglePacker.prototype.reset = function ( width, height ) { + this.root.x = 0; + this.root.y = 0; + this.root.w = width; + this.root.h = height; + delete this.root.lft; + delete this.root.rgt; + + this.usedWidth = 0; + this.usedHeight = 0; +} + + +/* + Returns the actual used dimensions of the containing rectangle. + + Returns: + + A object composed of the properties: 'w' for width and 'h' for height. +*/ +NETXUS.RectanglePacker.prototype.getDimensions = function () { + return { w: this.usedWidth, h: this.usedHeight }; +} + + +/* + Finds a suitable place for the given rectangle + + Parameters: + + w - The rectangle width as integer. + h - The rectangle height as integer. + + Returns: + + If there is room for the rectangle then returns the coordinates as an object + composed of 'x' and 'y' properties. + If it doesn't fit returns null +*/ +NETXUS.RectanglePacker.prototype.findCoords = function ( w, h ) { + + // private function to traverse the node tree by recursion + function recursiveFindCoords ( node, w, h ) { + + // private function to clone a node coords and size + function cloneNode ( node ) { + return { + x: node.x, + y: node.y, + w: node.w, + h: node.h + }; + } + + // if we are not at a leaf then go deeper + if ( node.lft ) { + // check first the left branch if not found then go by the right + var coords = recursiveFindCoords( node.lft, w, h ); + return coords ? coords : recursiveFindCoords( node.rgt, w, h ); + } + else + { + // if already used or it's too big then return + if ( node.used || w > node.w || h > node.h ) + return null; + + // if it fits perfectly then use this gap + if ( w == node.w && h == node.h ) { + node.used = true; + return { x: node.x, y: node.y }; + } + + // initialize the left and right leafs by clonning the current one + node.lft = cloneNode( node ); + node.rgt = cloneNode( node ); + + // checks if we partition in vertical or horizontal + if ( node.w - w > node.h - h ) { + node.lft.w = w; + node.rgt.x = node.x + w; + node.rgt.w = node.w - w; + } else { + node.lft.h = h; + node.rgt.y = node.y + h; + node.rgt.h = node.h - h; + } + + return recursiveFindCoords( node.lft, w, h ); + } + } + + // perform the search + var coords = recursiveFindCoords( this.root, w, h ); + // if fitted then recalculate the used dimensions + if (coords) { + if ( this.usedWidth < coords.x + w ) + this.usedWidth = coords.x + w; + if ( this.usedHeight < coords.y + h ) + this.usedHeight = coords.y + h; + } + return coords; +} + +function UnionFind(count) { + this.roots = new Array(count); + this.ranks = new Array(count); + + for(var i=0; i0};Hr.prototype.addEventListener=function(H,N){this.O(H,N,null)}; +Hr.prototype.O=function(H,N,Q){if(this.Mo[H]==null){this.Mo[H]=[];this.ca[H]=[]}this.Mo[H].push(N);this.ca[H].push(Q); +if(H==z.E.Gn){var c=Hr.Ex;if(c.indexOf(this)==-1)c.push(this)}};Hr.prototype.removeEventListener=function(H,N){var Q=this.Mo[H]; +if(Q==null)return;var c=Q.indexOf(N);if(c<0)return;var _=this.ca[H];Q.splice(c,1);_.splice(c,1);if(H==z.E.Gn&&Q.length==0){var O=Hr.Ex; +O.splice(O.indexOf(this),1)}};Hr.prototype.N=function(H){H.currentTarget=this;if(H.target==null)H.target=this; +var N=this.Mo[H.type];if(N==null)return;var Q=this.ca[H.type];for(var c=0;c>>Q&1)==1)break;Q++}if(N==0||c[Q][1]==""){if((N&15)!=0&&rr.Dd(H,[33,126])>.7)Q=0; +else if(N==0)Q=0;else{Q=0}}return c[Q][1]};rr.Ek=120;rr.jg=20;rr.cols=8;rr.jv=function(H){var N=H.name.postScriptName; +if(N==null)return null;return N.replace(/ /g,"-")};rr.tyK=function(H){var N=H.name,Q=N.typoFamilyName?N.typoFamilyName:N.fontFamily,c=N.typoSubfamilyName?N.typoSubfamilyName:N.fontSubfamily,_="JUICE,Latin Modern Mono,Latin Modern Sans,Latin Modern Roman,Libre Caslon,Londrina,Panefresco,Perspective Sans,Plasma Drip,SF Shai Fontai,SF Toontime,SF Wasabi,SF Wonder Comic,Sansumi,Solveig,Theano,UnifrakturMaguntia,Varela,WC Rhesus,WC Sold Out,WC Wunderbach,Walkway,itsadzoke,Noto Sans JP,Noto Sans KR,Noto Serif JP,Noto Serif KR,Mplus 1p,Rounded Mplus 1c,Abhaya Libre,Bai Jamjuree,Gothic A1,Cairo,Chakra Petch,Clear Sans,Colaborate,Diner,El Messiri,Exo 2,Exo,Fahkwang,Gaegu,IBM Plex Mono,IBM Plex Sans Condensed,IBM Plex Sans,IBM Plex Serif,IM FELL DW,IM FELL Double,IM FELL English,IM FELL FLOWERS,IM FELL French Canon,IM FELL Great Primer,K2D,Karnivore,Knigthings Petrock,KoHo,Kodchasan,Krub,Libre Barcode,Lunchtype,Mada,Mali,Mirza,Mukta Malar,NanumMyeongjo,Newt Serif,Niramit,Proclamate,Tajawal,Teutonic".split(","); +for(var O=0;O<_.length;O++)if(Q.startsWith(_[O])){var L=Q.slice(_[O].length);Q=_[O];if(L.startsWith(" ")||L.startsWith("-"))L=L.slice(1); +if(L!=""){if(c=="Regular")c=L;else c=L+" "+c}break}return[Q,c]};rr.prototype.jq=function(H){if(this.FQ[H])return this.FQ[H]; +if(this.eN[H])return null;var N=null,Q=this.g_();if(Q[H]!=null)N=Q[H][5];if(N==null){var c;if(this.Dx[H])c=this.Dx[H]; +else{var _="DejaVuSans DejaVuSans-Bold DejaVuSans-Oblique DejaVuSans-BoldOblique DejaVuSerif DejaVuSerif-Bold DejaVuSerif-Italic DejaVuSerif-BoldItalic".split(" "),O=H.toLowerCase(),L=0; +if(O.indexOf("sans")!=-1)L=0;else if(O.indexOf("serif")!=-1)L=4;var s=O.indexOf("bold")!=-1,r=O.indexOf("italic")!=-1||O.indexOf("oblique")!=-1||O.endsWith("-it"); +if(s&&r)L+=3;else if(r)L+=2;else if(s)L+=1;c=_[L]}if(this.eB[c]==null)alert(tg.get([22,6,0])+" "+H+" "+tg.get([22,6,1])+". "+tg.get([22,6,2])+" "+c+"."); +this.eB[c]=!0;return this.jq(c)}this.eN[H]="a";var u=new k(z.E.Y,!0);u.data={X:z.m.UF,gg:{url:"rsrc/fonts/"+N}}; +this.N(u)};rr.prototype.ttL=function(H){alert(tg.get([22,6,0])+" "+H.name.fullName+" "+tg.get([23,0])+"."); +var N=rr.jv(H),Q=!1,c=FNTS.list;for(var _=0;_r?1:0}for(var L=0;LN[2])return 1;return 0};rr.prototype.Dx={ArialMT:"LiberationSans","Arial-BoldMT":"LiberationSans-Bold","Arial-ItalicMT":"LiberationSans-Italic","Arial-BoldItalicMT":"LiberationSans-BoldItalic",TimesNewRomanPSMT:"LiberationSerif","TimesNewRomanPS-BoldMT":"LiberationSerif-Bold","TimesNewRomanPS-ItalicMT":"LiberationSerif-Italic","TimesNewRomanPS-BoldItalicMT":"LiberationSerif-BoldItalic",CourierNewPSMT:"LiberationMono","CourierNewPS-BoldMT":"LiberationMono-Bold","CourierNewPS-ItalicMT":"LiberationMono-Italic","CourierNewPS-BoldItalicMT":"LiberationMono-BoldItalic",TrebuchetMS:"SourceSansPro-Regular","TrebuchetMS-Bold":"SourceSansPro-Semibold","TrebuchetMS-Italic":"SourceSansPro-It","TrebuchetMS-BoldItalic":"SourceSansPro-SemiboldIt","Times-Roman":"LiberationSerif",Calibri:"SourceSansPro-Regular","Calibri-Italic":"SourceSansPro-It","Calibri-Bold":"SourceSansPro-Bold",CalibriBold:"SourceSansPro-Bold","Times-Roman":"LiberationSerif","Times-Italic":"LiberationSerif-Italic","Times-Bold":"LiberationSerif-Bold","Helvetica-Bold":"LiberationSans-Bold","HelveticaNeue-Thin":"Roboto-Thin","HelveticaNeue-Light":"Roboto-Light",HelveticaNeue:"Roboto-Regular","HelveticaNeue-Roman":"Roboto-Regular","HelveticaNeue-Medium":"Roboto-Medium","HelveticaNeue-Bold":"Roboto-Bold","HelveticaNeue-BoldItalic":"Roboto-BoldItalic","HelveticaNeue-Black":"Roboto-Black","HelveticaNeue-Heavy":"Roboto-Black","SFProText-Light":"Roboto-Light","SFProText-Regular":"Roboto-Regular","SFProText-Roman":"Roboto-Regular","SFProText-Medium":"Roboto-Medium","SFProText-Semibold":"Roboto-Medium","SFProText-Bold":"Roboto-Bold","SFProText-BoldItalic":"SFProText-BoldItalic","SFProText-Black":"Roboto-Black","SFProText-Heavy":"Roboto-Black","SFProDisplay-Light":"Roboto-Light","SFProDisplay-Regular":"Roboto-Regular","SFProDisplay-Roman":"Roboto-Regular","SFProDisplay-Medium":"Roboto-Medium","SFProDisplay-Semibold":"Roboto-Medium","SFProDisplay-Bold":"Roboto-Bold","SFProDisplay-BoldItalic":"SFProDisplay-BoldItalic","SFProDisplay-Black":"Roboto-Black","SFProDisplay-Heavy":"Roboto-Black","SFUIText-Light":"Roboto-Light","SFUIText-Regular":"Roboto-Regular","SFUIText-Roman":"Roboto-Regular","SFUIText-Medium":"Roboto-Medium","SFUIText-Semibold":"Roboto-Medium","SFUIText-Bold":"Roboto-Bold","SFUIText-BoldItalic":"SFUIText-BoldItalic","SFUIText-Black":"Roboto-Black","SFUIText-Heavy":"Roboto-Black",Verdana:"DeajVuSans","Verdana-Bold":"DejaVuSans-Bold","Verdana-Italic":"DejaVuSans-Oblique","Verdana-BoldItalic":"DejaVuSans-BoldOblique","MyriadPro-Regular":"PTSans-Regular","MyriadPro-Bold":"PTSans-Bold","MyriadPro-LightIt":"PTSans-Italic","MyriadPro-Semibold":"PTSans-Bold","MyriadPro-BlackCond":"PTSans-NarrowBold",Cambria:"Oranienbaum-Regular",Georgia:"CharisSIL","Georgia-Bold":"CharisSIL-Bold","Georgia-Italic":"CharisSIL-Italic","Georgia-BoldItalic":"CharisSIL-BoldItalic","AGaramondPro-Regular":"EBGaramond08-Regular","AGaramondPro-Bold":"EBGaramond08-Bold","AGaramondPro-Italic":"EBGaramond08-Italic",Garamond:"EBGaramond08-Regular",FontAwesome:"FontAwesome5FreeSolid","ProximaNova-Regular":"Metropolis-Regular","ProximaNova-Semibold":"Metropolis-SemiBold","ProximaNova-Light":"Metropolis-Light",BellMT:"GalatiaSIL",PalatinoLinotype:"TeXGyrePagella-Regular","PalatinoLinotype-Bold":"TeXGyrePagella-Bold","PalatinoLinotype-Italic":"TeXGyrePagella-Italic","PalatinoLinotype-BoldItalic":"TeXGyrePagella-BoldItalic","":""}; +rr.prototype.g_=function(){if(FNTS.map==null){var H=FNTS.list;for(var N=0;NDate.now()*.001+30){while(V_.hb.length>0)V_.hb.pop()()}else{if(V_.yq==0)V_.yq=1; +gapi.auth.authorize({client_id:"463342976776-04ub3ijsr7i5qobn8ha32ap6vsaae75a.apps.googleusercontent.com",scope:["https://www.googleapis.com/auth/drive.install","https://www.googleapis.com/auth/drive.file"].join(" "),immediate:V_.yq==2?!1:!0},V_.tck)}}; +V_.tck=function(H){if(H&&!H.error){V_.YV=H;V_.yq=!1;V_.KV()}else if(V_.yq==1){V_.yq=2;V_.KV()}else alert("Error: "+H.error)}; +V_.hz=function(){return"access_token="+V_.YV.access_token+"&token_type="+V_.YV.token_type};function JP(){}JP.cR={tTQ:["PNG","JPG","SVG","GIF","PDF"],tGU:"EMF WEBP BMP PPM TIFF ICO DDS".split(" ")}; +JP.Uw=function(H){if(!(H instanceof ArrayBuffer)){console.log("Input is not ArrayBuffer")}var N=new Uint8Array(H),Q=JP.t$F,c; +if(Q(N,[56,66,80,83]))c="psd";if(Q(N,[103,105,109,112,32,120,99,102,32]))c="xcf";if(Q(N,[137,80,78,71,13,10,26,10]))c="png"; +if(Q(N,[87,76]))c="cdr";if(Q(N,[82,73,70,70])){var _=Ho.Fp(N),O=_.aw;if(O=="WEBP")c="webp";else if(O.slice(0,3)=="CDR")c="cdr"; +else c=O}if(Q(N,[255,216,255]))c="jpg";if(Q(N,[0,0,0,12,106,80,32,32]))c="jpg";if(Q(N,[0,0,0,0,48,0,1,0]))c="jpg"; +if(Q(N,[71,73,70,56]))c="gif";if(Q(N,[0,0,0,2,121,102,113,76]))c="msh";if(Q(N,[0,0,0,3,121,102,113,76]))c="msh"; +if(Q(N,[0,1]))c="aco";if(Q(N,[0,2]))c="aco";if(Q(N,[0,2,56,66,83,76]))c="asl";if(Q(N,[0,6,0,1]))c="abr"; +if(Q(N,[0,6,0,2]))c="abr";if(Q(N,[0,9,0,2]))c="abr";if(Q(N,[0,10,0,2]))c="abr";if(Q(N,[56,66,70,83]))c="shc"; +if(Q(N,[56,66,80,84]))c="pat";if(Q(N,[0,4,0,5]))c="acv";if(Q(N,[56,66,71,82]))c="grd";if(Q(N,[99,117,115,104]))c="csh"; +if(Q(N,[0,1,0,0,0]))c="otf";if(Q(N,[79,84,84,79]))c="otf";if(Q(N,[116,116,99,102]))c="otf";if(Q(N,[68,68,83,32]))c="dds"; +if(Q(N,[80,86,82,3]))c="pvr";if(Q(N,[0,0,1,0]))c="ico";if(Q(N,[66,77]))c="bmp";if(Q(N,[80,49]))c="ppm"; +if(Q(N,[80,50]))c="ppm";if(Q(N,[80,51]))c="ppm";if(Q(N,[80,52]))c="ppm";if(Q(N,[80,53]))c="ppm";if(Q(N,[80,54]))c="ppm"; +if(Q(N,[73,73,42,0]))c="tiff";if(Q(N,[77,77,0,42]))c="tiff";if(Q(N,[83,81,76,105]))c="sketch";if(Q(N,[80,75])){var L=UZIP.parse(H,!0); +if(L["document.json"])c="sketch";if(L.manifest)c="xd"}if(Q(N,[123]))c="json";if(Q(N,[60,115,118,103]))c="svg"; +if(Q(N,[60,63,120,109]))c="svg";if(Q(N,[60,33,100,111]))c="html";if(Q(N,[60,33,68,79]))c="html";if(Q(N,[13,10,60,33]))c="html"; +if(Q(N,[37,33]))c="eps";if(Q(N,[37,80,68,70]))c="pdf";if(Q(N,[32,32,32,37,80,68,70]))c="pdf";if(Q(N,[215,205,198,154]))c="wmf"; +if(Q(N,[1,0,0,0]))c="emf";return c};JP.t$F=function(H,N){for(var Q=0;Q \t\t \t \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t",L=" "+O+""; +if(H==1)L+=""+""+""; +L+=""+""+""; +var s=new Uint8Array(L.length);tm.aX(L,s,0);return"data:image/svg+xml;base64,"+JP.Yw(s.buffer)};JP.Yw=function(H){var N=new Uint8Array(H),Q=""; +for(var c=0;c>3)]; +n=n>>7-(j&7)&1;var J=f*V+F<<2;t[J]=t[J+1]=t[J+2]=(1-n)*255;t[J+3]=255}}if(c=="P5")for(var j=0;j>3)]>>(7-(T&7)<<0)&1)*255;u[e]=t;u[e+1]=t; +u[e+2]=t;u[e+3]=255}}return[{MD:new p(0,0,L,s),data:u.buffer}]}else{var N=new PDFJS.JpxImage;N.parse(H); +var L=N.width,s=N.height,Y=N.tiles,A=N.componentsCount,G=new Uint8Array(L*s*4),j=new p(0,0,L,s);for(var N=0; +N>1)];T=T>>4-4*(V&1);T=T&15;L[C]=H[_+4*T+2];L[C+1]=H[_+4*T+1]; +L[C+2]=H[_+4*T+0]}}if(c.S_==1)for(var r=0;r>3)]; +e=e>>7-(V&7);e=e&1;L[C]=H[_+4*e+2];L[C+1]=H[_+4*e+1];L[C+2]=H[_+4*e+0]}}return{MD:new p(0,0,c.JX,c.ht),data:L.buffer}}; +JP.BMP.tHQ=function(H,N){var Q={};Q.JX=x.eC(H,N);N+=4;Q.ht=x.eC(H,N);N+=4;var c=x.$R(H,N);N+=2;if(c!=1)alert("unsupported number of color planes: "+c); +Q.S_=x.$R(H,N);N+=2;Q.cv=x.UD(H,N);N+=4;var _=x.UD(H,N);N+=4;var O=x.UD(H,N);N+=4;var L=x.UD(H,N);N+=4; +Q.e_=x.UD(H,N);N+=4;N+=4;return Q};JP.BMP.tDu=function(H,N,Q){x.Fc(H,N,Q.JX);N+=4;x.Fc(H,N,Q.ht);N+=4; +x.ey(H,N,1);N+=2;x.ey(H,N,Q.S_);N+=2;x.Fc(H,N,Q.cv);N+=4;var c=4*Math.floor((Q.S_*Q.JX+31)/32);x.Fc(H,N,c*Q.ht+2); +N+=4;x.Fc(H,N,2834);N+=4;x.Fc(H,N,2834);N+=4;x.Fc(H,N,Q.e_);N+=4;N+=4};JP.GIF={};JP.GIF.Dz=function(H,N,Q,c){if(c==null)c=[100,!1]; +if(c[1]){H=H.slice(0);H.reverse()}var _=[],O=[],T=null;for(var L=0;L256||Q>256){alert("Maximum ICO size is 256x256 px."); +return}var _=new th,O=0,L=c&&c[0]==!0;x.Fl(_,O,0);O+=2;x.Fl(_,O,L?2:1);O+=2;x.Fl(_,O,1);O+=2;var s=new Uint8Array(JP.PNG.Dz(H,N,Q)); +_.VX(O,16);_.data[O]=N==256?0:N;O++;_.data[O]=Q==256?0:Q;O++;O+=2;x.Fl(_,O,L?Math.round(N/2):1);O+=2; +x.Fl(_,O,L?Math.round(Q/2):32);O+=2;x.GI(_,O,s.length);O+=4;x.GI(_,O,6+16);O+=4;_.VX(O,s.length);for(var r=0; +r>c)+(O>>c)&1==1?204:255;H[L]=H[L+1]=H[L+2]=s;H[L+3]=255}}; +$.fM=function(H){var N=H.toString(16);while(N.length<6)N="0"+N;return N};$.ttO=function(H){return parseInt(H,16)}; +$.If=function(H){return.3*H.T+.59*H.q+.11*H.H};$.YH=function(H){return Math.max(H.T,H.q,H.H)-Math.min(H.T,H.q,H.H)}; +$.YK=function(H,N,Q){return.3*H+.59*N+.11*Q};$.tTh=function(H,N,Q){return Math.max(H,N,Q)-Math.min(H,N,Q)}; +$.Y_=function(H,N){var Q=N-H,c=Math.abs(Q),_=Q-1,O=Q+1;if(Math.abs(_).5?r/(2-c-_):r/(c+_);switch(c){case H:O=(N-Q)/r+(N1)Q-=1; +if(Q<1/6)return H+(N-H)*6*Q;if(Q<1/2)return N;if(Q<2/3)return H+(N-H)*(2/3-Q)*6;return H};$.En=function(H,N,Q){var c,_,O; +if(N==0)c=_=O=Q;else{var L=Q<.5?Q*(1+N):Q+N-Q*N,s=2*Q-L;c=$.yU(s,L,H+1/3);_=$.yU(s,L,H);O=$.yU(s,L,H-1/3)}return{T:c,q:_,H:O}}; +$.sM=function(H,N,Q){var c=Math.max(H,N,Q),_=Math.min(H,N,Q),O,L,s=c,r=c-_;L=c==0?0:r/c;if(c==_)O=0; +else{switch(c){case H:O=(N-Q)/r+(N_){if(c>O){if(_>O){Q.T=N; +Q.q=$.Fh(c,_,O,N);Q.H=0}else{Q.T=N;Q.H=$.Fh(c,O,_,N);Q.q=0}}else{Q.H=N;Q.T=$.Fh(O,c,_,N);Q.q=0}}else{if(cO){Q.q=N; +Q.H=$.Fh(_,O,c,N);Q.T=0}else{Q.H=N;Q.q=$.Fh(O,_,c,N);Q.T=0}}else{Q.q=N;Q.T=$.Fh(_,c,O,N);Q.H=0}}};$.tt_=function(H){var N=H.T,Q=H.q,c=H.H,_=$.YK(N,Q,c),O=Math.min(N,Q,c),L=Math.max(N,Q,c); +if(O<0){var s=_/(_-O);N=_+(N-_)*s;Q=_+(Q-_)*s;c=_+(c-_)*s}if(L>1){var s=(1-_)/(L-_);N=_+(N-_)*s;Q=_+(Q-_)*s; +c=_+(c-_)*s}H.T=N;H.q=Q;H.H=c};$.by=function(H,N,Q,c,_,O){var L=new Uint32Array(H.buffer),s=0;c=Math.log(c)/Math.log(2); +c=Math.round(c);for(var r=0;r>c)+(u+_>>c)&1==1?4291348680:4294967295}}; +$.tTn=function(H,N,Q){return(H>>Q)+(N>>Q)&1==1?200:255};$.BS=function(H,N){var Q=H.length;for(var c=0; +c>2]=Math.floor(H[c+0]*.3+H[c+1]*.59+H[c+2]*.11+.5)};$.tH$=function(H,N){var Q=N.length; +for(var c=0;c>2];N[c]=_;N[c+1]=_;N[c+2]=_}};$.GL=function(H,N){var Q=H.o,c=H.T,_=H.q,O=H.H,L=Math.min(H.o.length,N.buffer.byteLength>>>2),s=4*Math.floor(L/4),r=new Uint32Array(N.buffer),u=new Uint32Array(Q.buffer),V=new Uint32Array(c.buffer),C=new Uint32Array(_.buffer),T=new Uint32Array(O.buffer); +for(var e=0;e>2],Y=T[e>>2],A=C[e>>2],G=V[e>>2];r[e]=t<<24|(Y&255)<<16|(A&255)<<8|G&255; +r[e+1]=(t&65280)<<16|(Y&65280)<<8|A&65280|(G&65280)>>>8;r[e+2]=(t&16711680)<<8|Y&16711680|(A&16711680)>>>8|(G&16711680)>>>16; +r[e+3]=t&4278190080|(Y&4278190080)>>>8|(A&4278190080)>>>16|(G&4278190080)>>>24}for(var e=s;e>>2),s=4*Math.floor(L/4),r=new Uint32Array(H.buffer),u=new Uint32Array(Q.buffer),V=new Uint32Array(c.buffer),C=new Uint32Array(_.buffer),T=new Uint32Array(O.buffer); +for(var e=0;e>2]=t&255|(Y&255)<<8|(A&255)<<16|G<<24; +C[e>>2]=(t&65280)>>8|Y&65280|(A&65280)<<8|(G&65280)<<16;T[e>>2]=(t&16711680)>>16|(Y&16711680)>>8|A&16711680|(G&16711680)<<8; +u[e>>2]=t>>>24|Y>>>24<<8|A>>>24<<16|G&4278190080}for(var e=s;e>0&255;_[e]=j>>8&255; +O[e]=j>>16&255;Q[e]=j>>24&255}};$.rY=function(H,N,Q){var c=new Uint8Array(H.buffer),_=Math.min(c.length/4,N.length); +for(var O=0;O<_;O++){N[O]=c[(O<<2)+Q]}};$.kw=function(H,N,Q){var c=new Uint8Array(N.buffer),_=new Uint32Array(H.buffer),O=Math.min(c.length/4,H.length),L=0; +while(L+4>>2];c[(L<<2)+Q]=s&255;c[(L<<2)+Q+4]=s>>>8&255;c[(L<<2)+Q+8]=s>>>16&255;c[(L<<2)+Q+12]=s>>>24; +L+=4}while(L>>2,H=new Uint32Array(H.buffer,0,c),N=new Uint32Array(N.buffer,0,c); +N.set(H)};$.tPt=function(H,N){return $.v$(H.o,N.o)&&$.v$(H.T,N.T)&&$.v$(H.q,N.q)&&$.v$(H.H,N.H)};$.v$=function(H,N){var Q=H.buffer.byteLength,c=N.buffer.byteLength,_=new Uint32Array(H.buffer,0,Q>>2),O=new Uint32Array(N.buffer,0,c>>2); +if(Q!=c)return!1;var L=_.length;for(var s=0;s=2||c.z>=2){var _=$.Ef(Q,c); +H.push(_.nn,_.rect);Q=_.nn;c=_.rect}};$.Ef=function(H,N,Q){var c=N.$,_=N.z,O=c>>1,L=_>>1,s=new p(N.x,N.y,O,L); +if(H==null)return{rect:s};var r=Q&&Q.length==O*L*4?Q:$.I(O*L*4),u=new Uint32Array(H.buffer),V=new Uint32Array(r.buffer); +for(var C=0;C>>24,w=A>>>24,f=G>>>24,b=j>>>24,F=(Y>>>0&255)*d+(A>>>0&255)*w+(G>>>0&255)*f+(j>>>0&255)*b,n=(Y>>>8&255)*d+(A>>>8&255)*w+(G>>>8&255)*f+(j>>>8&255)*b,J=(Y>>>16&255)*d+(A>>>16&255)*w+(G>>>16&255)*f+(j>>>16&255)*b,Z=d+w+f+b; +if(Z==0)V[e]=0;else{var P=1/Z;F=~~(F*P+.5);n=~~(n*P+.5);J=~~(J*P+.5);V[e]=Z+2>>>2<<24|J<<16|n<<8|F}}return{rect:s,nn:r}}; +$.tLj=function(H,N,Q){var c=N.$,_=N.z,O=c>>1,L=_>>1,s=new p(N.x,N.y,O,L);if(H==null)return{rect:s};var r=Q&&Q.length==O*L*4?Q:$.I(O*L*4),u=new Uint32Array(H.buffer),V=new Uint32Array(r.buffer); +for(var C=0;C>>0&255)+(A>>>0&255)+(G>>>0&255)+(j>>>0&255)>>>2,w=2+(Y>>>8&255)+(A>>>8&255)+(G>>>8&255)+(j>>>8&255)>>>2,f=2+(Y>>>16&255)+(A>>>16&255)+(G>>>16&255)+(j>>>16&255)>>>2; +V[e]=4278190080|f<<16|w<<8|d}return{rect:s,nn:r}};$.tPI=function(H,N,Q){var c=N.$,_=N.z,O=2*Math.floor(c/3),L=2*Math.floor(_/3),s=new p(N.x,N.y,O,L); +if(H==null)return{rect:s};var r=Q&&Q.length==O*L*4?Q:$.I(O*L*4),u=new Uint32Array(H.buffer),V=new Uint32Array(r.buffer); +for(var C=0;C>>1)*c+(T*3>>>1),Y=u[t],A=u[t+1],G=u[t+2],j=u[t+c],d=u[t+1+c],w=u[t+2+c],f=u[t+c+c],b=u[t+1+c+c],F=u[t+2+c+c],n=Y>>>24<<2,J=(Y>>>16&255)*n,Z=(Y>>>8&255)*n,P=(Y&255)*n,M=A>>>24<<1,y=(A>>>16&255)*M,a=(A>>>8&255)*M,g=(A&255)*M,U=G>>>24<<2,D=(G>>>16&255)*U,W=(G>>>8&255)*U,m=(G&255)*U,q=j>>>24<<1,S=(j>>>16&255)*q,I=(j>>>8&255)*q,v=(j&255)*q,h=d>>>24,i=(d>>>16&255)*h,JI=(d>>>8&255)*h,Jx=(d&255)*h,Jd=w>>>24<<1,JC=(w>>>16&255)*Jd,JM=(w>>>8&255)*Jd,Jh=(w&255)*Jd,Jv=f>>>24<<2,JW=(f>>>16&255)*Jv,Ji=(f>>>8&255)*Jv,Jc=(f&255)*Jv,JT=b>>>24<<1,Jy=(b>>>16&255)*JT,Jg=(b>>>8&255)*JT,Jn=(b&255)*JT,Jq=F>>>24<<2,tJ=(F>>>16&255)*Jq,ty=(F>>>8&255)*Jq,JA=(F&255)*Jq,td=n+M+q+h,Jk=U+M+Jd+h,rR=Jv+JT+q+h,Je=Jq+JT+Jd+h,JU=td==0?0:1/td,JK=Jk==0?0:1/Jk,rH=rR==0?0:1/rR,rL=Je==0?0:1/Je,Ju=0,JZ=0,Jl=0,rV=0; +Ju=~~(.5+(P+g+v+Jx)*JU);JZ=~~(.5+(Z+a+I+JI)*JU);Jl=~~(.5+(J+y+S+i)*JU);rV=~~(.5+td*(1/9));V[e]=rV<<24|Jl<<16|JZ<<8|Ju; +Ju=~~(.5+(m+g+Jh+Jx)*JK);JZ=~~(.5+(W+a+JM+JI)*JK);Jl=~~(.5+(D+y+JC+i)*JK);rV=~~(.5+Jk*(1/9));V[e+1]=rV<<24|Jl<<16|JZ<<8|Ju; +Ju=~~(.5+(Jc+Jn+v+Jx)*rH);JZ=~~(.5+(Ji+Jg+I+JI)*rH);Jl=~~(.5+(JW+Jy+S+i)*rH);rV=~~(.5+rR*(1/9));V[e+O]=rV<<24|Jl<<16|JZ<<8|Ju; +Ju=~~(.5+(JA+Jn+Jh+Jx)*rL);JZ=~~(.5+(ty+Jg+JM+JI)*rL);Jl=~~(.5+(tJ+Jy+JC+i)*rL);rV=~~(.5+Je*(1/9));V[e+O+1]=rV<<24|Jl<<16|JZ<<8|Ju}return{rect:s,nn:r}}; +$.tRP=function(H,N,Q){var c=N.$,_=N.z,O=2*Math.floor(c/3),L=2*Math.floor(_/3),s=new p(N.x,N.y,O,L);if(H==null)return{rect:s}; +var r=Q&&Q.length==O*L*4?Q:$.I(O*L*4),u=new Uint32Array(H.buffer),V=new Uint32Array(r.buffer);for(var C=0; +C>>1)*c+(T*3>>>1),Y=u[t],A=u[t+1],G=u[t+2],j=u[t+c],d=u[t+1+c],w=u[t+2+c],f=u[t+c+c],b=u[t+1+c+c],F=u[t+2+c+c],n=(Y>>>16&255)<<2,J=(Y>>>8&255)<<2,Z=(Y&255)<<2,P=(A>>>16&255)<<1,M=(A>>>8&255)<<1,y=(A&255)<<1,a=(G>>>16&255)<<2,g=(G>>>8&255)<<2,U=(G&255)<<2,D=(j>>>16&255)<<1,W=(j>>>8&255)<<1,m=(j&255)<<1,q=d>>>16&255,S=d>>>8&255,I=d&255,v=(w>>>16&255)<<1,h=(w>>>8&255)<<1,i=(w&255)<<1,JI=(f>>>16&255)<<2,Jx=(f>>>8&255)<<2,Jd=(f&255)<<2,JC=(b>>>16&255)<<1,JM=(b>>>8&255)<<1,Jh=(b&255)<<1,Jv=(F>>>16&255)<<2,JW=(F>>>8&255)<<2,Ji=(F&255)<<2,Jc=0,JT=0,Jy=0; +Jc=~~(.5+(Z+y+m+I)*(1/9));JT=~~(.5+(J+M+W+S)*(1/9));Jy=~~(.5+(n+P+D+q)*(1/9));V[e]=255<<24|Jy<<16|JT<<8|Jc; +Jc=~~(.5+(U+y+i+I)*(1/9));JT=~~(.5+(g+M+h+S)*(1/9));Jy=~~(.5+(a+P+v+q)*(1/9));V[e+1]=255<<24|Jy<<16|JT<<8|Jc; +Jc=~~(.5+(Jd+Jh+m+I)*(1/9));JT=~~(.5+(Jx+JM+W+S)*(1/9));Jy=~~(.5+(JI+JC+D+q)*(1/9));V[e+O]=255<<24|Jy<<16|JT<<8|Jc; +Jc=~~(.5+(Ji+Jh+i+I)*(1/9));JT=~~(.5+(JW+JM+h+S)*(1/9));Jy=~~(.5+(Jv+JC+v+q)*(1/9));V[e+O+1]=255<<24|Jy<<16|JT<<8|Jc}return{rect:s,nn:r}}; +$.Yp=function(H,N,Q,c){var _=$.Ef,O=$.tPI,u=0,C;if(H){var L=255,s=H.length;s-=(s>>>3&7)<<3;for(var r=3; +r>>8)>>>8};$.round=function(H,N){if(N==null)N=128;var Q=H.length; +for(var c=0;c>>24)*(s>>>24))<<24|$.qi((L>>>16&255)*(s>>>16&255))<<16|$.qi((L>>>8&255)*(s>>>8&255))<<8|$.qi((L&255)*(s&255))}}; +$.tV$=function(H,N){var Q=H.length;for(var c=0;c>8&255,r=O>>16&255,u=O>>24&255;Q[_]=N[L]|N[s]<<8|N[r]<<16|N[u]<<24}}; +$.tJA=function(H,N,Q,c,_,O,L){var s=new Uint32Array(H.buffer),r=new Uint32Array(N.buffer),u=s.length,V=0; +while(256<>>8&255)<>>16&255)<>>8&255)<>>16&255)<w){var f=(d-w)/(255-w);A+=f*(255-A);G+=f*(255-G);j+=f*(255-j)}else if(w==0)A=G=j=0;else{var f=d/w; +A=f*A;G=f*G;j=f*j}}r[C]=A|G<<8|j<<16|T&4278190080}};$.tPG=function(H){var N=new Uint32Array(256),c=0; +for(var Q=0;QN[c])c=Q;return c};$.hV=function(H,N){var Q=N.$,c=N.z,top=0,_=0,O=0,L=0,s=!1,r=0; +s=!1;for(var u=0;u=0;u--){var V=u*Q;for(var C=0;C=0;C--){for(var u=0; +u=0;C--){var T=C*_;for(var e=0;e<_;e++)if(c[T+e]!=V)u=!0;if(u)break;else s++}u=!1;for(var e=0; +e<_;e++){for(var C=0;C=0;e--){for(var C=0; +C>2);$.rY(H.buffer,N,3);var Q=$.hV(N,H.rect); +if(Q.v$(H.rect))return;var c=new $.I(Q.f()*4);$.Pg(H.buffer,H.rect,c,Q);H.buffer=c;H.rect=Q};$.extend=function(H,N,Q){if(H.rect.pk(N))return; +var c=H.rect.Fv(N),_=$.I(c.f());if(Q!=null)$.set(_,Q);$.Jg(H.channel,H.rect,_,c);H.rect=c;H.channel=_}; +$.ttd=function(H,N){if(N.km()||H.rect.pk(N))return;var Q=H.rect.Fv(N),c=$.I(Q.f()*4);$.Pg(H.buffer,H.rect,c,Q); +H.rect=Q;H.buffer=c};$.tPx=function(H,N,Q){var c=N.clone(),_=Q.f(),O=H.Fv(c);while(O.f()/H.f()<2&&O.f()<_){c.FA(16,16); +O=O.Fv(c).sj(Q)}if(_/O.f()<2)O=Q.clone();return O};$.oc=function(H,N,Q){if(!Q.Eo(H))return!1;var c=Math.floor(H.x)-Q.x,_=Math.floor(H.y)-Q.y,O=_*Q.$+c; +return N[O]>128};$.ttj=function(H,N,Q){if(!Q.Eo(H))return!1;var c=Math.floor(H.x)-Q.x,_=Math.floor(H.y)-Q.y,O=_*Q.$+c; +return N[4*O+3]>128};$.cb=function(H){if($.bu.length=c?0:1-(1-N)/c};$.a.lbrnF=function(H,N,Q){return Math.max(0,H*Q+N-Q)}; +$.a.dkClF=function(H,N,Q){var c=$.If(H)<$.If(N)?H:N;Q.T=c.T;Q.q=c.q;Q.H=c.H;return Q};$.a.liteF=function(H,N,Q){return Math.max(H,N)}; +$.a.scrnF=function(H,N,Q){return N+H-N*H};$.a["div F"]=function(H,N,Q){H*=Q;return N==0?0:N>=1-H?1:N/(1-H)}; +$.a.lddgF=function(H,N,Q){H*=Q;return Math.min(1,H+N)};$.a.lgClF=function(H,N,Q){var c=$.If(H)>$.If(N)?H:N; +Q.T=c.T;Q.q=c.q;Q.H=c.H;return Q};$.a.overF=function(H,N,Q){return $.a.hLitF(N,H,Q)};$.a.sLitF=function(H,N,Q){return H<=.5?N-(1-2*H)*N*(1-N):N+(2*H-1)*($.a.oI(N)-N)}; +$.a.hLitF=function(H,N,Q){return H<=.5?$.a["mul F"](2*H,N,Q):$.a.scrnF(2*H-1,N,Q)};$.a.vLitF=function(H,N,Q){return H<=.5?$.a.tVK(2*H,N,Q):$.a.tHy(2*H-1,N,Q)}; +$.a.lLitF=function(H,N,Q){return H<=.5?$.a.lbrnF(2*H,N,Q):$.a.lddgF(2*H-1,N,Q)};$.a.pLitF=function(H,N,Q){return H<=.5?$.a.darkF(2*H,N,Q):$.a.liteF(2*H-1,N,Q)}; +$.a.hMixF=function(H,N,Q){if(Q>.99)return H+N<1?0:1;return Math.min(1,Math.max(0,(N+H*Q-Q)/(1-Q+1e-6)))}; +$.a.diffF=function(H,N,Q){H*=Q;return Math.abs(H-N)};$.a.smudF=function(H,N,Q){return H+N-2*H*N};$.a.fsubF=function(H,N,Q){return Math.max(N-H,0)}; +$.a.fdivF=function(H,N,Q){return Math.min(N/H,1)};$.a["hue F"]=function(H,N,Q){$.YG(H,$.YH(N),Q);$.sg(Q,$.If(N),Q)}; +$.a["sat F"]=function(H,N,Q){$.YG(N,$.YH(H),Q);$.sg(Q,$.If(N),Q)};$.a.colrF=function(H,N,Q){$.sg(H,$.If(N),Q)}; +$.a["lum F"]=function(H,N,Q){$.sg(N,$.If(H),Q)};$.a.tw$=function(H,N,Q,c,_,O,L,s){var r=N.sj(c).sj(_),u=Math.max(0,r.x-N.x),V=Math.max(0,r.x-c.x),C=Math.max(0,r.y-N.y),T=Math.max(0,r.y-c.y),e=r.$,t=r.z,Y=N.$,A=c.$,G=$.a.DR,j=$.a.WX,d=new Uint32Array(H.buffer),w=new Uint32Array(Q.buffer); +for(var f=0;f>>24==0)continue; +if(J>>>24==255&&O==1&&s==0){w[F+n]=d[b+n];continue}var Z=w[F+n],P=255*O&255;if(s==0){P=(J>>>24)*O&255; +M=Z>>>24}var y=j[M<<8|P],a=P+y,g=J&255,U=J>>>8&255,D=J>>>16&255,W=Z&255,m=Z>>>8&255,q=Z>>>16&255;w[F+n]=s*(Z>>>24)+(1-s)*a<<24|G[a<<8|$.qi(D*P+q*y)]<<16|G[a<<8|$.qi(U*P+m*y)]<<8|G[a<<8|$.qi(g*P+W*y)]}}}; +$.a.tDM=function(H,N,Q,c,_,O){var L=N.sj(c).sj(_),s=Math.max(0,L.x-N.x),r=Math.max(0,L.x-c.x),u=Math.max(0,L.y-N.y),V=Math.max(0,L.y-c.y),C=L.$,T=L.z,e=N.$,t=c.$,Y=$.a.DR,A=$.a.WX,G=new Uint32Array(H.buffer),j=new Uint32Array(Q.buffer),d=Math.floor(Math.random()*16777215),w=0; +for(var f=0;f>>24==0)continue; +if(J>>24==255&&O==1){j[F+n]=J;continue}var Z=j[F+n],P=(J>>>24)*O*(1/255),M=(Z>>>24)*(1/255),y=M*(1-P),a=P+y,g=J&255,U=J>>>8&255,D=J>>>16&255,W=Z&255,m=Z>>>8&255,q=Z>>>16&255; +w>>>=8;if((n&3)==0)w=$.a.zS(F+n+d);var S=a==0?0:1/a,I=Math.floor(a*(256*255))+(w&255)>>>8,v=Math.floor((D*P+q*y)*S+.5),h=Math.floor((U*P+m*y)*S+.5),i=Math.floor((g*P+W*y)*S+.5); +j[F+n]=I<<24|v<<16|h<<8|i}}};$.a.tcm=function(H,N,Q,c,_,O,L,s){var r=1/255,u=r*O,V=s.VE?1:0,C=s.fill,T=s.style,e=N.sj(c).sj(_),t=Math.max(0,e.x-N.x),Y=Math.max(0,e.x-c.x),A=Math.max(0,e.y-N.y),G=Math.max(0,e.y-c.y),j=e.$,d=e.z,w=N.$,f=c.$,b=new Uint32Array(H.buffer),F=new Uint32Array(Q.buffer); +for(var n=0;n>>24==0)continue; +var y=F[Z],a=O;if(V==0){a=(M>>>24)*u;g=(y>>>24)*r}var U=g*(1-a),D=a+U,W=255/D,m=(M&255)*r,q=(M>>>8&255)*r,S=(M>>>16&255)*r,I=(y&255)*r,v=(y>>>8&255)*r,h=(y>>>16&255)*r,i=T?1:a,JI=((1-g)*a*m+(1-i)*g*I+i*g*L(m,I,(1+a-i)*C))*W,Jx=((1-g)*a*q+(1-i)*g*v+i*g*L(q,v,(1+a-i)*C))*W,Jd=((1-g)*a*S+(1-i)*g*h+i*g*L(S,h,(1+a-i)*C))*W; +D=a*C+g*(1-a*C);var JC=Math.round(D*255);F[Z]=V*(y>>>24)+(1-V)*JC<<24|Jd<<16|Jx<<8|JI}}};$.a.tCL=function(H,N,Q,c,_,O,L,s){var r=1/255,u=r*O,V=N.sj(c).sj(_),C=Math.max(0,V.x-N.x),T=Math.max(0,V.x-c.x),e=Math.max(0,V.y-N.y),t=Math.max(0,V.y-c.y),Y=V.$,A=V.z,G=new Uint32Array(H.buffer),j=new Uint32Array(Q.buffer),d={T:0,q:0,H:0},w={T:0,q:0,H:0},f={T:0,q:0,H:0}; +for(var b=0;b>>24)*u;y=(P>>>24)*r}var a=y*(1-M),g=M+a,U=255/g,D=(Z&255)*r,W=(Z>>>8&255)*r,m=(Z>>>16&255)*r,q=(P&255)*r,S=(P>>>8&255)*r,I=(P>>>16&255)*r; +d.T=D;d.q=W;d.H=m;w.T=q;w.q=S;w.H=I;L(d,w,f);var v=(((1-y)*D+y*f.T)*M+q*a)*U,h=(((1-y)*W+y*f.q)*M+S*a)*U,i=(((1-y)*m+y*f.H)*M+I*a)*U,JI=s*(P>>>24)+(1-s)*Math.round(g*255); +j[n]=JI<<24|i<<16|h<<8|v}}};$.a.LC=function(H){H=H^61^H>>16;H=H+(H<<3);H=H^H>>4;H=H*668265261;H=H^H>>15; +return(H&16777215)*(1/16777215)};$.a.zS=function(H){H=H^61^H>>16;H=H+(H<<3);H=H^H>>4;H=H*668265261;H=H^H>>15; +return H};$.a.tGl=function(H,N,Q,c,_,O,L,s){var r=1/255,u=r*O,V=Math.round(O*(256*256*256/255)),C=N.sj(c).sj(_),T=Math.max(0,C.x-N.x),e=Math.max(0,C.x-c.x),t=Math.max(0,C.y-N.y),Y=Math.max(0,C.y-c.y),A=C.$,G=C.z,j=new Uint32Array(H.buffer),d=new Uint32Array(Q.buffer); +for(var w=0;w>>24); +if(($.a.zS(f)&16777215)>=Z*V)continue;d[b]=n&16777215|s*(J>>>24)+(1-s)*255<<24}}};$.a.tPi=function(H,N,Q){for(var c=0; +c>>2];if(_==0)continue;var O=_*(1/255),L=1/O,s=N[c],r=N[c+1],u=N[c+2],V=H[c],C=H[c+1],T=H[c+2]; +N[c]=Math.min(255,Math.max(0,Math.round((s-(1-O)*V)*L)));N[c+1]=Math.min(255,Math.max(0,Math.round((r-(1-O)*C)*L))); +N[c+2]=Math.min(255,Math.max(0,Math.round((u-(1-O)*T)*L)));N[c+3]=255}};$.a.fX=function(H,N,Q,c,_,O,L,s,r,u){if(u==null)u=!1; +if(_&&!N.v$(O)){var V=$.I(N.f()*4);$.set(V,L);$.Jg(_,O,V,N);_=V;O=N}if(u){if(_==null)$.a.tRM(H,N,Q,c,_,s,r); +else $.a.trm(H,N,Q,c,_,s,r)}else{if(_==null)$.a.tRx(H,N,Q,c,_,s,r);else $.a.ttZ(H,N,Q,c,_,s,r)}};$.a.tRx=function(H,N,Q,c,_,O,L){var s=1/255,r=N.sj(c).sj(O),u=Math.max(0,r.x-N.x),V=Math.max(0,r.x-c.x),C=Math.max(0,r.y-N.y),T=Math.max(0,r.y-c.y),e=r.$,t=r.z,Y=new Uint32Array(H.buffer),A=new Uint32Array(Q.buffer),G=$.a.DR,j=L*255&255; +for(var d=0;d>>24,Z=n>>>24,P=$.qi(j*J+(255-j)*Z),M=$.qi(J*j),y=$.qi(Z*(255-j)),a=F&255,g=F>>>8&255,U=F>>>16&255,D=n&255,W=n>>>8&255,m=n>>>16&255,q=M*a+D*y,S=M*g+W*y,I=M*U+m*y; +q=G[P<<8|$.qi(q)];S=G[P<<8|$.qi(S)];I=G[P<<8|$.qi(I)];A[f]=P<<24|I<<16|S<<8|q}}};$.a.tRM=function(H,N,Q,c,_,O,L){var s=1/255,r=N.sj(c).sj(O),u=Math.max(0,r.x-N.x),V=Math.max(0,r.x-c.x),C=Math.max(0,r.y-N.y),T=Math.max(0,r.y-c.y),e=r.$,t=r.z,Y=new Uint32Array(H.buffer),A=new Uint32Array(Q.buffer),G=$.a.DR,j=L*16777215&16777215; +for(var d=0;d>>24,Z=n>>>24,P=$.qi(b*J+(255-b)*Z),M=$.qi(J*b),y=$.qi(Z*(255-b)),a=F&255,g=F>>>8&255,U=F>>>16&255,D=n&255,W=n>>>8&255,m=n>>>16&255,q=G[P<<8|$.qi(M*a+D*y)],S=G[P<<8|$.qi(M*g+W*y)],I=G[P<<8|$.qi(M*U+m*y)]; +A[w]=P<<24|I<<16|S<<8|q}}};$.a.trm=function(H,N,Q,c,_,O,L){var s=1/255,r=N.sj(c).sj(O),u=Math.max(0,r.x-N.x),V=Math.max(0,r.x-c.x),C=Math.max(0,r.y-N.y),T=Math.max(0,r.y-c.y),e=r.$,t=r.z,Y=new Uint32Array(H.buffer),A=new Uint32Array(Q.buffer),G=$.a.DR,j=Math.round(L*257); +for(var d=0;d>>24,P=J>>>24,M=Z*F*(1/255),y=P*(255-F)*(1/255),a=n&255,g=n>>>8&255,U=n>>>16&255,D=J&255,W=J>>>8&255,m=J>>>16&255,q=$.a.zS(f+b+G),S=Math.floor((M+y)*256+.5)+(q>>>0&255)>>>8,I=S==0?0:256/(M+y),v=a*M+D*y,h=g*M+W*y,i=U*M+m*y,JI=Math.floor(v*I+.5)+(q>>>8&255)>>>8,Jx=Math.floor(h*I+.5)+(q>>>16&255)>>>8,Jd=Math.floor(i*I+.5)+(q>>>21&248)>>>8; +A[f+b]=S<<24|Jd<<16|Jx<<8|JI}}};$.a.tDS=function(H){return Math.floor(H+Math.random())};$.a.sF=function(H,N,Q,c,_,O,L){var s=1/255,r=N.sj(c).sj(O),u=Math.max(0,r.x-N.x),V=Math.max(0,r.x-c.x),C=Math.max(0,r.y-N.y),T=Math.max(0,r.y-c.y),e=r.$,t=r.z; +for(var Y=0;Y>1); +$.blur.BJ(N,L,Q,c,O[1]-1>>1);$.blur.BJ(N,L,Q,c,O[2]-1>>1)};$.blur.tGA=function(H,N,Q,c){var _=$.blur.Wj(c,3),O=$.blur.Zw(N*Q*4); +$.blur.BL(H,O,N,Q,_[0]-1>>1);$.blur.BL(H,O,N,Q,_[1]-1>>1);$.blur.BL(H,O,N,Q,_[2]-1>>1)};$.blur.tRX=function(H,N,Q,c,_){var O=$.blur.Wj(_,3),L=$.blur.Lf(Q*c); +$.sa(H,N);$.blur.Bp(N,L,Q,c,(O[0]-1)/2);$.blur.Bp(N,L,Q,c,(O[1]-1)/2);$.blur.Bp(N,L,Q,c,(O[2]-1)/2)}; +$.blur.BJ=function(H,N,Q,c,_){$.blur.tRQ(H,N,Q,c,_);$.blur.tHu(N,H,Q,c,_)};$.blur.BL=function(H,N,Q,c,_){$.blur.LY(H,N,Q,c,_); +$.blur.tDD(N,H,Q,c,_)};$.blur.Bp=function(H,N,Q,c,_){$.blur.tHj(H,N,Q,c,_);$.blur.tLK(N,H,Q,c,_)};$.blur.Wb=[]; +$.blur.Bk=function(H){if($.blur.Wb[H])return $.blur.Wb[H];var N=1/(H+H+1),Q=(H+H+1)*256,c=$.I(Q);for(var _=0; +_>>24;M+=(W&255)*m;y+=(W>>>8&255)*m;a+=(W>>>16&255)*m;g+=m}}if(g!=0){var q=1/g; +M=~~(M*q+.5);y=~~(y*q+.5);a=~~(a*q+.5);g=~~(g*e*e+.5);_[b]=g<<24|a<<16|y<<8|M}}};$.nH.Bs=new Float64Array(5*20); +$.nH.tRC=new Uint32Array(5*5*20);$.nH.oc=function(H,N,Q,c,_,O,L){var s=$.nH.Bs,r=$.nH.tRC,u=0,V=0;for(var C=0; +C.05;f++){$.nH.hN(r,0,G);$.nH.uM(r,4,A);$.nH.cM(H,r);u=r[8];V=r[9];$.nH.uM(r,0,G); +$.nH.hN(r,4,A);$.nH.cM(H,r);C=r[8];T=r[9];e=1/(u*T-V*C);t=(j-N)*e;Y=(d-Q)*e;A+=-T*t+C*Y;G+=+V*t-u*Y; +$.nH.qV(H,A,G,r);j=r[8];d=r[9];w=(j-N)*(j-N)+(d-Q)*(d-Q)}if(O&&(A<0||A>1||G<0||G>1||w>.25))return s; +L[s]=A;L[s+1]=G;L[s+2]=j;L[s+3]=d;L[s+4]=u*T-V*C;return s+5};$.nH.apply=function(H,N,Q){var c=Q.x,_=Q.y,O=1/Q.$,L=1/Q.z,s=$.nH.uH; +for(var r=0;rV)continue;if(N[C+C+18]==0){if(G=L.length){console.log("Buffer not long enough"); +throw"e"}if(O==$.nH.D.oI||m<2)return r;var q=$.nH.D.LN(H,!0),S=$.K.jm(q[0]),I=$.K.jm(q[1]),v=$.nH.D.LN(H,!1),h=$.K.jm(v[0]),i=$.K.jm(v[1]); +if(S.$+S.z+I.$+I.zO)O=c[_];_++}var V=N*Q,C=O==0?0:1/O;for(var _=0;_=0?0:1,n=O[f]*(b?1:T),J=1,Z=L[2*f+1],P=-L[2*f];if(!(G==0&&j==0||Z==0&&P==0)){var M=V[d],y=C[d]; +if(G*V[d]+j*C[d]<0){M=-M;y=-y}if(b){M*=T;y*=T}var a=G*M+j*y,g=Z*M+P*y,U=2/(3*Math.PI)*(r[Math.floor((.5+.5*a)*(s-1))]+r[Math.floor((.5+.5*g)*(s-1))]); +J=U}var D=Math.round(20*(.43*F+.43*J+.14*n));e[w]=Math.max(1,Math.min(255,D))}}}console.log(e);return e}; +$.Px.tRr=function(H,N){var Q=new Int32Array(H*N*8),c=Q,_=0,O=0;c.fill(-1);for(var L=0;L0&&s>0)c[O+0]=_-H-1;if(L>0)c[O+1]=_-H;if(L>0&&s0)c[O+6]=_+H-1;if(s>0)c[O+7]=_-1;_++;O+=8}return Q};$.HW={};$.HW.tPo=function(H,N){var Q=H.slice(0); +for(var c=0;c>1,r=new Uint32Array(H.buffer),N=new Uint8ClampedArray(N.buffer); +for(var u=0;u>8&255)*G;e+=(w>>16&255)*G;t+=(w>>24&255)*G}if(C<0)C=-C;if(T<0)T=-T;if(e<0)e=-e;if(t<0)t=-t; +var f=u*Q+V<<2;N[f]=~~(.5+C);N[f+1]=~~(.5+T);N[f+2]=~~(.5+e);N[f+3]=255-L&N[f+3]|L&~~(.5+t)}};$.HW.gr=function(H,N,Q,c,_,O,L,s){if(O<=10)$.HW.tRs(H,N,Q,c,_,O,L,s); +else $.HW.tRo(H,N,Q,c,_,O,L,s)};$.HW.tRo=function(H,N,Q,c,_,O,L,s){var r=0,u=new Uint32Array(16),V=new Uint32Array(256),C=new Uint32Array(1*c),T=new Uint32Array(16*c),e=new Uint32Array(256*c),t=Math.min(O,c),Y=Math.min(O,_); +for(var A=0;A=0)$.HW.twL(e,T,C,H,N,c,A-O-1); +$.set(V,0);$.set(u,0);r=0;for(var G=0;G=0&&C[G-O-1]!=0){r-=C[G-O-1];$.HW.tcu(V,u,e,T,G-O-1)}var j=r==0?0:L(V,u,H[A*c+G],r,s); +Q[A*c+G]=j}}};$.HW.tRs=function(H,N,Q,c,_,O,L,s){var r=0,u=new Uint32Array(16),V=new Uint32Array(256); +for(var C=0;C<_;C++){$.set(V,0);$.set(u,0);r=0;var T=Math.max(C-O,0),e=Math.min(_,C+O+1);for(var t=0; +t=0)r+=$.HW.qc(V,u,H,N,T*c+t-O-1,c,e*c+t-O-1,-1);var Y=r==0?0:L(V,u,H[C*c+t],r,s);Q[C*c+t]=Y}}}; +$.HW.qc=function(H,N,Q,c,_,O,L,s){var r=0;while(_>>4]+=u;r+=u;_+=O}return r}; +$.HW.t$V=function(H,N,Q,c,_){var O=15;while(N[O]==0&&O>0)O--;O=(O<<4)+15;while(H[O]==0&&O>0)O--;return O}; +$.HW.tJq=function(H,N,Q,c,_){var O=0;while(N[O]==0&&O<15)O++;O=O<<4;while(H[O]==0&&O<255)O++;return O}; +$.HW.tHG=function(H,N,Q,c,_){var O=c>>>1,L=0,s=0;while(L<=O)L+=N[s++];if(s>0){s--;L-=N[s]}s=s<<4;while(L<=O)L+=H[s++]; +return s-1};$.HW.ug=function(H,N,Q,c,_){var O=_[0],L=0,s=0,r=Math.max(0,Q-O),u=Math.min(256,Q+O+1);while(r>>4]+=u;Q[r]+=u}};$.HW.twL=function(H,N,Q,c,_,O,L){var s=L*O;for(var r=0;r>>4]-=u;Q[r]-=u}};$.HW.vc=function(H){var N=H.length,Q=0;for(var c=0;c1e-9)u=!1}var e=$.F.CD(H),t=$.F.Cc(H)&&e; +if(L||u&&V==Q+c&&e){$.F.tLR(r,N,Q,c,_,O,s);return}var Y=O.$,A=O.z,G=new Float64Array(2);_=new Uint32Array(_.buffer); +N=new Uint32Array(N.buffer);for(var j=0;jQ+1||Z<-1||Z>c+1; +if(s){J=Math.max(.001,Math.min(Q-1,J));Z=Math.max(.001,Math.min(c-1,Z))}else if(P)continue;$.F.LH(F+1/Q,n,H,G); +M=G[0]-f;y=G[1]-b;var a=M*M+y*y;$.F.LH(F,n+1/c,H,G);M=G[0]-f;y=G[1]-b;var g=M*M+y*y,U=1/Math.sqrt(Math.max(a,g)); +if(U<.8){$.F.ui(J,Z,N,Q,c,_,w,t?1:0);continue}var D=Math.round(U*3);if(!s&&(J<.6||J>Q-.6||Z<.6||Z>c-.6)){D=Math.max(D,5)}if(s&&P)D=1; +var W=1/D;for(var C=0;C=1||Z<0||Z>=1)continue; +J=Math.floor(J*Q);Z=Math.floor(Z*c);var JI=Z*Q+J,Jx=N[JI],Jd=Jx>>>24;m+=(Jx&255)*Jd;q+=(Jx>>>8&255)*Jd; +S+=(Jx>>>16&255)*Jd;I+=Jd}if(I!=0){var JC=1/I;m=~~(m*JC+.5);q=~~(q*JC+.5);S=~~(S*JC+.5);I=~~(I*W*W+.5); +_[w]=I<<24|S<<16|q<<8|m}}};$.F.tLR=function(H,N,Q,c,_,O,L){var s=O.x+O.$,r=O.y+O.z,u=0,V=new Uint32Array(_.buffer),C=new Uint32Array(N.buffer),T=H[0]*Q,e=H[1]*Q,t=H[2]*Q,Y=H[3]*c,A=H[4]*c,G=H[5]*c,j=H[6],d=H[7]; +for(var w=O.y+.5;w=0&&V=0&&V+1=0&&C<_,w=C+1>=0&&C+1<_; +if(G&&d)T=Q[A];if(j&&d)e=Q[A+1];if(G&&w)t=Q[A+c];if(j&&w)Y=Q[A+c+1]}else if(s==1){var f=V<0?0:V>c-1?c-1:V,b=V<-1?0:V>c-2?c-1:V+1,F=C<0?0:C>_-1?_-1:C,n=C<-1?0:C>_-2?_-1:C+1; +T=Q[F*c+f];e=Q[F*c+b];t=Q[n*c+f];Y=Q[n*c+b]}else{var f=(V+c)%c,b=(V+1+c)%c,F=(C+_)%_,n=(C+1+_)%_;T=Q[F*c+f]; +e=Q[F*c+b];t=Q[n*c+f];Y=Q[n*c+b]}var J=H-V,Z=N-C,P=(1-Z)*(1-J)*(T>>>24),M=(1-Z)*J*(e>>>24),y=Z*(1-J)*(t>>>24),a=Z*J*(Y>>>24),g=P+M+y+a,U=P*(T&255)+M*(e&255)+y*(t&255)+a*(Y&255),D=P*(T>>>8&255)+M*(e>>>8&255)+y*(t>>>8&255)+a*(Y>>>8&255),W=P*(T>>>16&255)+M*(e>>>16&255)+y*(t>>>16&255)+a*(Y>>>16&255); +if(g==0)O[L]=0;else{var m=1/g;U=~~(U*m+.5);D=~~(D*m+.5);W=~~(W*m+.5);g=~~(g+.5);O[L]=g<<24|W<<16|D<<8|U}}; +$.F.CL=function(H,N,Q,c,_,O,L,s,r,u,V,C){var T=new Uint32Array(H.buffer),e=new Uint32Array(c.buffer),t=(1+2*u)/_,Y=[],A=[]; +for(var G=0;G<_;G++){var j=-.25+u-G*t;Y.push(Math.cos(2*Math.PI*j)*C/V);Y.push(Math.sin(2*Math.PI*j)/V)}L*=N; +s*=Q;for(var d=0;dN-1?N-1:f)),n=~~(.5+(b<0?0:b>Q-1?Q-1:b)); +e[d*_+G]=T[n*N+F]}}};$.F.CC=function(H,N,Q,c,_,O,L,s,r,u,V,C){var T=new Uint32Array(H.buffer),e=new Uint32Array(c.buffer),t=1/C,Y=[],A=Q*4,G=1/A; +for(var j=0;j>1,S=V.EK.z-Q.z>>1,I=V.EK.$,v=-.6*m,h=(-.6+.4)*m,i=(-.6+2*.4)*m,JI=(-.6+3*.4)*m; +for(var J=0,Z=0;J=1){D=(U<=0?0:f-1)<<2;N[Z]=F[D];N[Z+1]=F[D+1];N[Z+2]=F[D+2];N[Z+3]=F[D+3]; +continue}D=Math.max(0,Math.min(f-1,Math.round((U+v)*f)))<<2;Jd+=F[D];JC+=F[D+1];JM+=F[D+2];Jx+=F[D+3]; +D=Math.max(0,Math.min(f-1,Math.round((U+h)*f)))<<2;Jd+=F[D];JC+=F[D+1];JM+=F[D+2];Jx+=F[D+3];D=Math.max(0,Math.min(f-1,Math.round((U+i)*f)))<<2; +Jd+=F[D];JC+=F[D+1];JM+=F[D+2];Jx+=F[D+3];D=Math.max(0,Math.min(f-1,Math.round((U+JI)*f)))<<2;Jd+=F[D]; +JC+=F[D+1];JM+=F[D+2];Jx+=F[D+3];N[Z]=Jd>>2;N[Z+1]=JC>>2;N[Z+2]=JM>>2;N[Z+3]=Jx>>2}}};$.e.zp=function(H,N,Q){var c=[]; +for(var _=0;_>16&255,q:N>>8&255,H:N&255};else if(H[_].v.Type.v.Clry=="BckC")O={T:Q>>16&255,q:Q>>8&255,H:Q&255}; +else O=$.e.NG(H[_].v.Clr.v);c.push(O)}return c};$.e.NG=function(H){var N,Q=H.classID;if(Q=="RGBC")N={T:H.Rd.v,q:H.Grn.v,H:H.Bl.v}; +else if(Q=="HSBC"){N=$.pq(H.H.v.val/360,H.Strt.v/100,H.Brgh.v/100);N.T*=255;N.q*=255;N.H*=255}else if(Q=="CMYC"){var c=100-H.Cyn.v,_=100-H.Mgnt.v,O=100-H.Ylw.v,L=100-H.Blck.v,s=255*c*L*1e-4,r=255*(.2*c+.8*_)*L*1e-4,u=255*(.2*_+.8*O)*L*1e-4; +N={T:s,q:r,H:u}}else if(Q=="Grsc")N={T:255-H.Gry.v,q:255-H.Gry.v,H:255-H.Gry.v};else console.log(H); +return N};$.e.Ta=function(H){return{classID:"RGBC",Rd:{t:"doub",v:H.T},Grn:{t:"doub",v:H.q},Bl:{t:"doub",v:H.H}}}; +$.e.CT=function(H,N,Q){var c=new Uint32Array(Q),_=1/(Q-0);for(var O=0;O400)t++;var Y=H,A=N,G=r,j=Math.floor(A.$/t),d=Math.floor(A.z/t); +H=$.I(j*d*4);$.scale.ke(Y,A.$,A.z,H,j,d,1/t);r=$.I(j*d);$.scale.in(G,A.$,A.z,r,j,d,1/t);$.round(r,1); +var w=$.hV(r,new p(0,0,j,d));if(w.km())return;var f=Math.round((w.$+w.z)/2/15),b=Date.now(),F=$.I(j*d*4); +$.trq(H,F);var n=Int16Array,J=new n(j*d*24),Z=new n(64),P=new n(64),M=new n(64),y=new n(64);for(var U=3; +U0){var U=Math.floor(h*JT),D=h-U*2*j; +Jc.push({x:D-j,y:U-d,R:I[h],NS:-1})}}Jc.sort(function(rV,rD){return rD.R-rV.R});var Jy=new Int32Array(j*d),Jg=[]; +for(var h=0;h>2]=JK+1}if(O)console.log(Date.now()-b,"copied back"); +b=Date.now();$.ih.zZ(ty,JA,L,null,1e3);if(O)console.log(Date.now()-b,"poisson smooth");b=Date.now(); +$.Pg(ty,L,c,_)};$.te.Cd=function(H,N,Q,c,_,O){return $.te.zk(H+_.x,N+_.y,Q,c)&&O[(N+_.y)*Q+(H+_.x)]==-1?0:1e9}; +$.te.tLw=function(H,N,Q,c,top,_,O,L){var s=Date.now(),r=[-1,0,0,-1,1,0,0,1],u=1e99,V=[],C=[],T=2*(L*2*3+L*2),e=null,t=0,Y=0,A=0,G=1e99; +while(!0&&Date.now()1){if(H[J]==H[q]){var S=0; +S+=$.te.Nh(Z+M.x,P+M.y,Z+f.x,P+f.y,Q,c,N,_);S+=$.te.Nh(W+M.x,m+M.y,W+f.x,m+f.y,Q,c,N,_);V[b]=J;V[b+1]=q; +C[b]=S;C[b+1]=S;b+=2}else{var I=top[H[q]],v=F,h=0,i=0,JI=0;F++;h+=$.te.Nh(Z+M.x,P+M.y,Z+f.x,P+f.y,Q,c,N,_); +h+=$.te.Nh(W+M.x,m+M.y,W+f.x,m+f.y,Q,c,N,_);i+=$.te.Nh(Z+I.x,P+I.y,Z+f.x,P+f.y,Q,c,N,_);i+=$.te.Nh(W+I.x,m+I.y,W+f.x,m+f.y,Q,c,N,_); +JI+=$.te.Nh(Z+I.x,P+I.y,Z+M.x,P+M.y,Q,c,N,_);JI+=$.te.Nh(W+I.x,m+I.y,W+M.x,m+M.y,Q,c,N,_);V[b]=J;V[b+1]=v; +C[b]=h;C[b+1]=h;b+=2;V[b]=q;V[b+1]=v;C[b]=i;C[b+1]=i;b+=2;V[b]=v;V[b+1]=L+1;C[b]=JI;C[b+1]=0;b+=2}}}V[b]=L; +V[b+1]=J;C[b]=y;C[b+1]=0;b+=2;V[b]=J;V[b+1]=L+1;C[b]=a;C[b+1]=0;b+=2;n+=Math.min(y,a)}if(n>d)continue; +var Jx=$.ef.UU(F,b,L,L+1,V,C,d);if(Jx.SL=u){break}u=d; +H=j;if((A&3)==0){if(d*1.03>=G)break;G=d}if((A&3)==0){var JC=0*top.length;for(var J=0;JJC; +J++){if(H.indexOf(J)!=-1)continue;top.splice(J,1);for(var q=0;qJ)H[q]--;J--}}}return H}; +$.te.tGK=function(H,N,Q,c,_,O){for(var L=0;L>1)};$.te.ttY=function(H,N,Q,c,_,O){var top=[]; +for(var L=0;L<60;L++){var s=$.te.CG(top,25,Q,c,_,H,N);if(s==null)break;else top.push(s)}if(top.length==0)return null; +var r=[];for(var L=0;L100){var s;s=$.te.CG(top,0,Q,c,_,H,N,u,V); +if(s==null)return null;top.push(s);T=0}}r.push(C)}return{top:top,TC:r}};$.te.Nh=function(H,N,Q,c,_,O,L,s){if(H==Q&&N==c)return 0; +if(H<0||N<0||H>=_||N>=O||Q<0||c<0||Q>=_||c>=O||s[N*_+H]!=-1||s[c*_+Q]!=-1)return 1e7;var r=N*_+H<<2,u=c*_+Q<<2,V=L[r]-L[u],C=L[r+1]-L[u+1],T=L[r+2]-L[u+2]; +return 1+(V*V+C*C+T*T)};$.te.zk=function(H,N,Q,c){return H>=0&&H=0&&N=c)return _+1}return _};$.te.qS=function(H,N,Q,c,_){var O=16,e=0;if(N-H<=O){Q.push(99,H,N); +return}$.te.jm(H,N,c,_);var L=-1,s=-1;for(var r=4;r<24;r++){var u=_[2*r+1]-_[2*r];if(u>s){s=u;L=r}}var V=H+N>>1,C=$.te.tJP(V,H,N,c,L),T=-1; +for(var r=H;r<=N;r++)if(c[24*r+L]==C){if(T==-1)T=r;e=r}if(H+8N-e)V=T;else if(e+1u)c[(L<<1)+1]=s}}}; +$.te.qW=function(H,N,Q){var c=0,_=0;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c; +_++;c=Q[H+_];Q[H+_]=Q[N+_];Q[N+_]=c;_++};$.te.qZ=function(H,N,Q,c){var _=Q+c>>>1,O=H[24*_+N];while(Q<=c){while(H[24*Q+N]O)c--;if(Q<=c){if(H[24*Q+N]!=H[24*c+N])$.te.qW(Q*24,c*24,H);Q++;c--}}return Q};$.te.tJP=function(H,N,Q,c,_){var O=0; +while(N!=Q){O=$.te.qZ(c,_,N,Q);if(H>1; +L>0;L>>=1,O--){for(s=0;s>O&1)!=0;if(r){H+=c+"["+s+"] = "+Q+"["+(-L+s)+"] - "+Q+"["+s+"]; "}else{H+=c+"["+s+"] = "+Q+"["+(L+s)+"] + "+Q+"["+s+"]; "}}_=Q; +Q=c;c=_;H+="\n"}console.log(H)};$.te.tdc=function(H,N,Q){var c=N,_=Q,O=c,L=0,r,u,V;while(H>>L!=2)L++; +var s=L;for(r=H>>1;r>0;r>>=1,L--){for(u=0;u>L&1)!=0;if(V)_[u]=c[-r+u]-c[u];else _[u]=c[r+u]+c[u]}O=c; +c=_;_=O}if((s&1)==1)for(r=0;rQ)Q=L;if(s_)_=s}return[N,c,Q,_]};$.oL.tdC=function(H,N){var Q=[],c=Math.floor(N.length/3); +for(var _=0;__[2]-_[0])C=1;else C=0;var T=(_[0+C]+_[2+C])*.5; +O[2+C]=L[0+C]=T;for(var e=0;eT||G>T||j>T){r[V++]=t}}if(u==c||V==c||u+V>c*1.3)return Q;return{axis:C,NC:T,F$:$.oL.qk(H,N,s,u,O),tCm:$.oL.qk(H,N,r,V,L)}}; +$.oL.tdT=function(H,N,Q,c,_){while(Q.F$!=null){if(Q.axis==0&&c<=Q.NC||Q.axis==1&&_<=Q.NC)Q=Q.F$;else Q=Q.tCm}return $.oL.twS(H,N,Q,c,_)}; +$.oL.tdg=function(H,N,Q){return Q[0]<=H&&H<=Q[2]&&Q[1]<=N&&N<=Q[3]};$.oL.twS=function(H,N,Q,c,_){for(var O=0; +O>>1,u>>>1,V>>>1,1,0,0];var n=1/F,J=(f*w-d*b)*n,Z=(G*b-f*j)*n;if(J>=0&&Z>=0&&J+Z<=1)return[r>>>1,u>>>1,V>>>1,1-J-Z,J,Z]}return null}; +$.Iw={};$.Iw.CE=function(H){var N=~~(H+.5);return N<0?0:N>255?255:N};$.Iw.transform=function(H,N,Q){var c=$.Iw.CE,_=H.T.length; +for(var O=0;O<_;O++){var L=H.T[O],s=H.q[O],r=H.H[O];N.T[O]=c(Q[0]*L+Q[1]*s+Q[2]*r+Q[3]*255);N.q[O]=c(Q[4]*L+Q[5]*s+Q[6]*r+Q[7]*255); +N.H[O]=c(Q[8]*L+Q[9]*s+Q[10]*r+Q[11]*255)}};$.Iw.tyA=function(H,N,Q){var c=$.Iw.CE,_=H.length;for(var O=0; +O<_;O+=4){var L=H[O],s=H[O+1],r=H[O+2];N[O]=c(Q[0]*L+Q[1]*s+Q[2]*r+Q[3]*255);N[O+1]=c(Q[4]*L+Q[5]*s+Q[6]*r+Q[7]*255); +N[O+2]=c(Q[8]*L+Q[9]*s+Q[10]*r+Q[11]*255)}};$.Iw.Am=function(H,N,Q){return[1,0,0,H,0,1,0,N,0,0,1,Q,0,0,0,1]}; +$.Iw.UH=function(H,N,Q){return[H,0,0,0,0,N,0,0,0,0,Q,0,0,0,0,1]};$.Iw.tc_=function(H){return[H[0],H[1],H[2],H[4],H[5],H[6],H[8],H[9],H[10]]}; +$.Iw.Cg=function(H){return[H[0],H[1],H[2],0,H[3],H[4],H[5],0,H[6],H[7],H[8],0,0,0,0,1]};$.Iw.US=function(H,N){return[H[0]*N[0]+H[1]*N[1]+H[2]*N[2]+H[3]*N[3],H[4]*N[0]+H[5]*N[1]+H[6]*N[2]+H[7]*N[3],H[8]*N[0]+H[9]*N[1]+H[10]*N[2]+H[11]*N[3],H[12]*N[0]+H[13]*N[1]+H[14]*N[2]+H[15]*N[3]]}; +$.Iw.zC=function(H){var N=[];N[0]=H[0];N[1]=H[4];N[2]=H[8];N[3]=H[12];N[4]=H[1];N[5]=H[5];N[6]=H[9]; +N[7]=H[13];N[8]=H[2];N[9]=H[6];N[10]=H[10];N[11]=H[14];N[12]=H[3];N[13]=H[7];N[14]=H[11];N[15]=H[15]; +return N};$.Iw.multiply=function(H,N){var Q=[];Q[0]=H[0]*N[0]+H[1]*N[4]+H[2]*N[8]+H[3]*N[12];Q[1]=H[0]*N[1]+H[1]*N[5]+H[2]*N[9]+H[3]*N[13]; +Q[2]=H[0]*N[2]+H[1]*N[6]+H[2]*N[10]+H[3]*N[14];Q[3]=H[0]*N[3]+H[1]*N[7]+H[2]*N[11]+H[3]*N[15];Q[4]=H[4]*N[0]+H[5]*N[4]+H[6]*N[8]+H[7]*N[12]; +Q[5]=H[4]*N[1]+H[5]*N[5]+H[6]*N[9]+H[7]*N[13];Q[6]=H[4]*N[2]+H[5]*N[6]+H[6]*N[10]+H[7]*N[14];Q[7]=H[4]*N[3]+H[5]*N[7]+H[6]*N[11]+H[7]*N[15]; +Q[8]=H[8]*N[0]+H[9]*N[4]+H[10]*N[8]+H[11]*N[12];Q[9]=H[8]*N[1]+H[9]*N[5]+H[10]*N[9]+H[11]*N[13];Q[10]=H[8]*N[2]+H[9]*N[6]+H[10]*N[10]+H[11]*N[14]; +Q[11]=H[8]*N[3]+H[9]*N[7]+H[10]*N[11]+H[11]*N[15];Q[12]=H[12]*N[0]+H[13]*N[4]+H[14]*N[8]+H[15]*N[12]; +Q[13]=H[12]*N[1]+H[13]*N[5]+H[14]*N[9]+H[15]*N[13];Q[14]=H[12]*N[2]+H[13]*N[6]+H[14]*N[10]+H[15]*N[14]; +Q[15]=H[12]*N[3]+H[13]*N[7]+H[14]*N[11]+H[15]*N[15];return Q};$.Iw.UK=function(H){var N=[];N[0]=H[5]*H[10]*H[15]-H[5]*H[14]*H[11]-H[6]*H[9]*H[15]+H[6]*H[13]*H[11]+H[7]*H[9]*H[14]-H[7]*H[13]*H[10]; +N[1]=-H[1]*H[10]*H[15]+H[1]*H[14]*H[11]+H[2]*H[9]*H[15]-H[2]*H[13]*H[11]-H[3]*H[9]*H[14]+H[3]*H[13]*H[10]; +N[2]=H[1]*H[6]*H[15]-H[1]*H[14]*H[7]-H[2]*H[5]*H[15]+H[2]*H[13]*H[7]+H[3]*H[5]*H[14]-H[3]*H[13]*H[6]; +N[3]=-H[1]*H[6]*H[11]+H[1]*H[10]*H[7]+H[2]*H[5]*H[11]-H[2]*H[9]*H[7]-H[3]*H[5]*H[10]+H[3]*H[9]*H[6]; +N[4]=-H[4]*H[10]*H[15]+H[4]*H[14]*H[11]+H[6]*H[8]*H[15]-H[6]*H[12]*H[11]-H[7]*H[8]*H[14]+H[7]*H[12]*H[10]; +N[5]=H[0]*H[10]*H[15]-H[0]*H[14]*H[11]-H[2]*H[8]*H[15]+H[2]*H[12]*H[11]+H[3]*H[8]*H[14]-H[3]*H[12]*H[10]; +N[6]=-H[0]*H[6]*H[15]+H[0]*H[14]*H[7]+H[2]*H[4]*H[15]-H[2]*H[12]*H[7]-H[3]*H[4]*H[14]+H[3]*H[12]*H[6]; +N[7]=H[0]*H[6]*H[11]-H[0]*H[10]*H[7]-H[2]*H[4]*H[11]+H[2]*H[8]*H[7]+H[3]*H[4]*H[10]-H[3]*H[8]*H[6];N[8]=H[4]*H[9]*H[15]-H[4]*H[13]*H[11]-H[5]*H[8]*H[15]+H[5]*H[12]*H[11]+H[7]*H[8]*H[13]-H[7]*H[12]*H[9]; +N[9]=-H[0]*H[9]*H[15]+H[0]*H[13]*H[11]+H[1]*H[8]*H[15]-H[1]*H[12]*H[11]-H[3]*H[8]*H[13]+H[3]*H[12]*H[9]; +N[10]=H[0]*H[5]*H[15]-H[0]*H[13]*H[7]-H[1]*H[4]*H[15]+H[1]*H[12]*H[7]+H[3]*H[4]*H[13]-H[3]*H[12]*H[5]; +N[11]=-H[0]*H[5]*H[11]+H[0]*H[9]*H[7]+H[1]*H[4]*H[11]-H[1]*H[8]*H[7]-H[3]*H[4]*H[9]+H[3]*H[8]*H[5];N[12]=-H[4]*H[9]*H[14]+H[4]*H[13]*H[10]+H[5]*H[8]*H[14]-H[5]*H[12]*H[10]-H[6]*H[8]*H[13]+H[6]*H[12]*H[9]; +N[13]=H[0]*H[9]*H[14]-H[0]*H[13]*H[10]-H[1]*H[8]*H[14]+H[1]*H[12]*H[10]+H[2]*H[8]*H[13]-H[2]*H[12]*H[9]; +N[14]=-H[0]*H[5]*H[14]+H[0]*H[13]*H[6]+H[1]*H[4]*H[14]-H[1]*H[12]*H[6]-H[2]*H[4]*H[13]+H[2]*H[12]*H[5]; +N[15]=H[0]*H[5]*H[10]-H[0]*H[9]*H[6]-H[1]*H[4]*H[10]+H[1]*H[8]*H[6]+H[2]*H[4]*H[9]-H[2]*H[8]*H[5];var Q=H[0]*N[0]+H[1]*N[4]+H[2]*N[8]+H[3]*N[12]; +for(var c=0;c<16;c++)N[c]/=Q;return N};$.Iw.WQ=function(H){var N=[],Q=H[5]*H[10]*H[15]-H[5]*H[14]*H[11]-H[6]*H[9]*H[15]+H[6]*H[13]*H[11]+H[7]*H[9]*H[14]-H[7]*H[13]*H[10],c=-H[4]*H[10]*H[15]+H[4]*H[14]*H[11]+H[6]*H[8]*H[15]-H[6]*H[12]*H[11]-H[7]*H[8]*H[14]+H[7]*H[12]*H[10],_=H[4]*H[9]*H[15]-H[4]*H[13]*H[11]-H[5]*H[8]*H[15]+H[5]*H[12]*H[11]+H[7]*H[8]*H[13]-H[7]*H[12]*H[9],O=-H[4]*H[9]*H[14]+H[4]*H[13]*H[10]+H[5]*H[8]*H[14]-H[5]*H[12]*H[10]-H[6]*H[8]*H[13]+H[6]*H[12]*H[9]; +return H[0]*Q+H[1]*c+H[2]*_+H[3]*O};$.Iw.pR=$.Iw.Cg([3.1338561,-1.6168667,-.4906146,-.9787684,1.9161415,.033454,.0719453,-.2289914,1.4052427]); +$.ef={};$.ef.Ch=new Uint32Array(1);$.ef.Cq=function(H,N,Q,c,_,O){var L=new Uint32Array(H),s=0,r=$.ef.Ch; +if(r.length>1]=e;r[s+1]=L[C];L[C]=s+1;s+=4;r[s]=C;u[s+2>>1]=t;r[s+1]=L[T];L[T]=s+1;s+=4}return{cB:r,Fi:u,FZ:L}}; +$.ef.UU=function(H,N,Q,c,_,O,L){var s=1,r=$.ef.Cq(H,N,Q,c,_,O),u=r.cB,V=r.Fi,C=r.FZ,T=new Uint32Array(H),e=new $.ef.pX(H),Y=1,w=0; +e.push(Q);e.push(c);var t=new $.ef.pX(H),A=new Uint8Array(H),G=new Uint32Array(H);A[Q]=1;A[c]=2;var j=new Uint32Array(H),d=new Uint32Array(H); +d[Q]=d[c]=0;j[Q]=j[c]=1;while(!0){var f=-1,M=0,D=1e30;while(!e.zN()&&f==-1){var b=e.top(),F=A[b],n=C[b]-1; +while(n!=-1){var J=u[n],Z=A[J],P=n^F-1<<2;if(V[P+2>>1]!=0){if(Z==0){$.ef.pC(b,n,J,A,G,d,j);e.push(J)}else if(Z==F&&j[J]<=j[b]&&d[J]>d[b])$.ef.pC(b,n,J,A,G,d,j); +else if(Z!=F){f=P}}n=u[n+1]-1}if(f!=-1)break;e.pop()}if(f==-1){break}Y++;var y=f;while(y!=-1){T[M]=y; +M++;y=G[u[y^4]]-1}var a=M>>1;for(var g=0;g>1]);w+=D;if(w>=L)return{Ml:null,SL:w};for(var g=0; +g>1]-=D;V[m+2>>1]+=D;if(V[W+2>>1]==0&&A[b]==A[J]){if(A[b]==1){G[J]=0; +t.push(J)}if(A[b]==2){G[b]=0;t.push(b)}}}while(!t.zN()){var b=t.pop(),F=A[b],n=C[b]-1,q=F==1?4:0,S=0,I=0,v=1e9; +while(n!=-1){var J=u[n],h=n^4,P=n^q;if(A[J]==F&&V[P+2>>1]>0&&$.ef.tT_(J,Q,c,G,u,Y,j,d)+1>1]>0){e.push(J)}if(G[J]==n+1){G[J]=0;t.push(J)}}n=u[n+1]-1}A[b]=0;e.remove(b)}}var i=[]; +for(var g=0;g>1)}if(A[J]==1&&A[b]!=1){i.push(N+g>>1)}}return{Ml:i,SL:w}}; +$.ef.pC=function(H,N,Q,c,_,O,L){c[Q]=c[H];_[Q]=N+1;O[Q]=O[H]+1;L[Q]=L[H]};$.ef.tT_=function(H,N,Q,c,_,O,L,s){var r=H,u=c[H]-1,V=0; +while(u!=-1&&L[H]!=O){H=_[u^4];u=c[H]-1;V++}if(u==-1&&H!=N&&H!=Q)return 1e9;var C=s[H]+V;V=0;u=c[r]-1; +while(r!=H){s[r]=C-V;V++;L[r]=O;r=_[u^4];u=c[r]-1}return C};$.ef.tda=function(H,N,Q,c,_,O){var L=$.ef.Cq(H,N,Q,c,_,O),s=L.cB,r=L.Fi,u=L.FZ,V=0,C=0,T=new Uint32Array(H*2),e=new $.ef.Ci(H),t=0; +while(!0){e.reset();e.push(Q);for(var Y=0;Y>1]>0&&t!=Q){T[t<<1]=A+1;T[(t<<1)+1]=G;e.push(t)}G=s[G+1]-1}if(T[c<<1]!=0){break}}if(T[c<<1]==0){break}var j=1e30; +t=c;while(!0){var d=T[t<<1]-1;if(d==-1)break;var w=T[(t<<1)+1];j=Math.min(j,r[w+2>>1]);t=d}t=c;while(!0){var d=T[t<<1]-1; +if(d==-1)break;var w=T[(t<<1)+1],f=w^4;r[w+2>>1]-=j;r[f+2>>1]+=j;t=d}V+=j}var b=[];for(var Y=0;Y>1)}if((T[t<<1]!=0||t==Q)&&T[d<<1]==0&&d!=Q){b.push(N+Y>>1)}}return{Ml:b,SL:V}}; +$.ef.Ci=function(H){H|=H>>1;H|=H>>2;H|=H>>4;H|=H>>8;H|=H>>16;this.kK=new Uint32Array(H+1);this.pU=H; +this._W=0;this._n=0};$.ef.Ci.prototype={push:function(H){var N=this._n;this.kK[N]=H;this._n=N+1&this.pU},pop:function(){var H=this._W,N=this.kK[H]; +this._W=H+1&this.pU;return N},zN:function(){return this._W==this._n},reset:function(){this._W=0;this._n=0}}; +$.ef.pX=function(H){H|=H>>1;H|=H>>2;H|=H>>4;H|=H>>8;H|=H>>16;this.kK=new Uint32Array(H+1);this.gt=new Uint32Array(H+1); +this.pU=H;this._W=0;this._n=0};$.ef.pX.prototype={top:function(){return this.kK[this._W]},tdi:function(){return this.kK[this._n]},push:function(H){if(this.gt[H]!=0)return; +this.gt[H]=this._n+1;var N=this._n;this.kK[N]=H;this._n=N+1&this.pU},pop:function(){var H=this._W,N=this.kK[H]; +this.gt[N]=0;this._W=H+1&this.pU;return N},zN:function(){return this._W==this._n},remove:function(H){var N=this.gt[H]-1; +if(N==-1)return;this.gt[H]=0;if(N==this._W){this.pop();return}var Q=this.pop();this.kK[N]=Q;this.gt[Q]=N+1},pV:function(H){return H+this.pU+1&this.pU}}; +$.ef.CX=function(H,N,Q){var c=$.ef.qZ(H,N,Q);if(N>>1]; +while(N<=Q){while(H[N]c)Q--;if(N<=Q){$.ef.qW(H,N,Q);N++;Q--}}return N};$.ef.qW=function(H,N,Q){var c=H[N]; +H[N]=H[Q];H[Q]=c};$.FU={};$.FU.tRT=function(H){for(var N=0;N.01){$.FU.zs(H,r);continue}var T=$.FU.zu(u); +$.F.apply(N,T);$.FU.pz(u,[Math.min(T[0],T[2]),Math.min(T[1],T[3]),Math.max(T[0],T[2]),Math.max(T[1],T[3])]); +if(C==2){var e=$.FU.iH(u),t=new Jo(N[0],N[1],N[3],N[4],0,0);t.dZ();if(t.o==0){e.push(e.shift());t.rotate(Math.PI/2); +t.dZ()}if(t.o<0){var Y=e[0];e[0]=e[1];e[1]=Y;Y=e[2];e[2]=e[3];e[3]=Y}if(t.KI<0){var Y=e[0];e[0]=e[3]; +e[3]=Y;Y=e[1];e[1]=e[2];e[2]=Y}if(c)for(var A=0;A<4;A++)e[A]=e[A]*L;$.FU.iC(u,e)}if(C==4){u.keyOriginLineWeight.v*=L; +var G=$.FU.CQ(u);$.F.apply(N,G);$.FU.ttN(u,G)}}};$.FU.pB=function(H,N){var Q=N.L;for(var c=0;c=0}; +$.K.tVJ=function(H){var N={},Q=null,c=0,_={M:2,L:2,Q:4,C:6};for(var O=0;O5)continue; +var c=H[Q].length;if(Q==H.length-1)break;var _=H[Q].type==3;$.K.t$y(N,H,Q+1,c,_);if(!_)N.lX.push("Z"); +Q+=c}return N};$.K.t$y=function(H,N,Q,c,_){var O=N[Q],L=null;H.Z.push(O.P.x,O.P.y);H.lX.push("M");for(var s=Q; +s110*110){var s=$.I(H.f()*4);$.kw(Q,s,3);var r=$.Ef(s,H),u=$.Ef(N,H);H=u.rect;N=u.nn;Q=$.I(H.f()); +$.rY(r.nn,Q,3);L*=2}var V=Date.now(),C=$.oC.CB(H,N,Q);if(L!=1){var V=Date.now(),T=$.I(H.f()*4);$.kw(C,T,3); +var e=l._.Qk([T,H],new Jo(c.$/H.$,0,0,c.z/H.z,0,0),!1);e.rect.x=c.x;e.rect.y=c.y;C=$.I(c.f());$.he(e.buffer,e.rect,C,c); +var V=Date.now();C=$.oC.CB(c,_,C)}return C};$.oC.CB=function(H,N,Q){var c=H.$,_=H.z,O=H.$*H.z,L=new Uint8Array(O),s=new Uint8Array(O),r=$.clone(N),u=$.clone(N),C,T,w=0,f=0,m=0; +for(var V=0;V5||Date.now()-q>500)break}var Jy=$.I(O*4),Jg=$.I(O);for(var V=0;V>2]==0)continue;Jy[V]=N[V];Jy[V+1]=N[V+1];Jy[V+2]=N[V+2];Jy[V+3]=N[V+3];Jg[V>>2]=255}return Jg}; +$.oC.CZ=function(H,N,Q,c,_){var O=0,L=H[N],s=Q-L.gJ[0],r=c-L.gJ[1],u=_-L.gJ[2];if(L.eo==0||L.WQ<1e-20)O+=.99; +else{O+=L.gc*(1/Math.sqrt(L.WQ))*Math.exp(-.5*$.oC.tJh(s,r,u,L.Fm))}var V=O>=1?0:-Math.log(O);if(isNaN(V)){console.log(O); +console.log(L);console.log(H);console.log(L.WQ,Math.sqrt(L.WQ),1/Math.sqrt(L.WQ));throw"e"}return V}; +$.oC.t$_=function(H,N,Q,c,_,O){for(var L=0;L<2;L++){var s=L==0?N:H;for(var r=0;r>2]=$.oC.Ck(N,V,C,T);Q[r>>2]=$.oC.Ck(H,V,C,T);if(O[r>>2]==0){s=N;e=c[r>>2]}else{s=H;e=Q[r>>2]}var u=s[e],t=u.ce,Y=u.gJ; +u.eo++;var A=V-Y[0],G=C-Y[1],j=T-Y[2];u.om[0]+=V;u.om[1]+=C;u.om[2]+=T;t[0]+=A*A;t[1]+=A*G;t[2]+=A*j; +t[3]+=G*A;t[4]+=G*G;t[5]+=G*j;t[6]+=j*A;t[7]+=j*G;t[8]+=j*j}for(var L=0;L<2;L++){var s=L==0?H:N,d=0; +for(var r=0;r=0;L--){var s=Math.pow(10,L);if(5*s*H<=O){c=5*s;_=10;break}if(2*s*H<=O){c=2*s;_=4;break}if(1*s*H<=O){c=1*s; +_=10;break}}if(c==0){c=1;_=10}var r=Math.ceil(c*H),u=$.I(r*$.VU.oK*4);$.Mw(u,4278190080|Q);for(var L=0; +L<$.VU.oK;L++)$.VU.iO(u,4*L*r,N);for(var L=0;L1||c==1&&r>20)for(var L=1;L<_;L++)$.VU.twD(u,L*(r/_),r,(L&1)==1?.8:.7,N);return{er:u,step:c}};$.VU.twD=function(H,N,Q,c,_){var N=Math.round(N); +for(var O=Math.round($.VU.oK*c);O<$.VU.oK-1;O++)$.VU.iO(H,4*(O*Q+N),_)};$.VU.iO=function(H,N,Q){H[N+0]=Q>>16&255; +H[N+1]=Q>>8&255;H[N+2]=Q&255};$.VU.tyr=function(H,N,Q){var c=N&255,_=N>>8&255,O=N>>16&255,G,j,d,w;N=Math.round(c*.6)<<16|Math.round(_*.6)<<8|Math.round(O*.6); +$.VU.trO(Math.round(c*.8)<<16|Math.round(_*.8)<<8|Math.round(O*.8),Q);var L=this.tHk(H.s,N,Q),s=H.kp(0,0),r=H.kp(H.C.$,H.C.z),u=Math.floor(s.x/L.step)*L.step,V=Math.ceil(r.x/L.step)*L.step,C=Math.floor(s.y/L.step)*L.step,T=Math.ceil(r.y/L.step)*L.step,e=H.PM(u,C),t=H.PM(V,C),Y=L.step*H.s,A=Math.ceil(Y); +G=H.gS.data;j=new p(0,0,H.C.$,$.VU.oK);d=new p(0,0,A,$.VU.oK);w=new p(0,Math.round($.VU.oK*.08),$.VU.Tx,$.VU.Tx); +for(var f=0;f<(V-u)/L.step;f++){d.x=Math.round(e.x+f*Y);$.Pg(L.er,d,G,j,d);var b=(u+f*L.step).toString(10); +for(var F=0;F>>24;t+=F;Y+=F*(b>>>16&255);A+=F*(b>>>8&255); +G+=F*(b&255)}if(t!=0){var n=1/t;c[T*_+e]=t/(j*d)<<24|Y*n<<16|A*n<<8|G*n}else c[T*_+e]=0}};$.t={};$.t.tPM=function(H,N,Q){var c=128,_=0,O=Q.$,L=Q.z; +for(var s=0;s=c&&(r==0||H[_-1]>7==1&&(e==0||H[Y-O]>>7==0||t==0||H[Y-1]>>7==0||t==O-1||H[Y+1]>>7==0||e==L-1||H[Y+O]>>7==0)){T[Y]=4278190080|((t+e&4)>>>2)*c}}}}; +$.t.txj=function(H,N,Q,c,_,O){var L=Q.$,s=Q.z,r=0,u=0,V=L,C=s;if(_){r=_.x-Q.x;u=_.y-Q.y;V=r+_.$;C=u+_.z}var T=new Uint8Array(N.buffer),e=new Uint32Array(N.buffer); +for(var t=u;t>>1<<24|255&c;else e[A]=255<<24|(G<<16|G<<8|G)&c}}}; +$.lO={};$.lO.Zh=function(H,N,Q){var c,_;if(Q=="front"){c=H.rect.clone();_=$.lO.tRV}if(Q=="union"){c=H.rect.Fv(N.rect); +_=$.lO.Fv}if(Q=="difference"){c=N.rect.clone();_=$.lO.ttA}if(Q=="intersection"){c=H.rect.sj(N.rect); +_=$.lO.sj}if(Q=="xor"){c=H.rect.Fv(N.rect);_=$.lO.tVx}if(c.km())return null;var O=$.I(c.f());$.Jg(N.channel,N.rect,O,c); +var L=$.I(c.f());$.Jg(H.channel,H.rect,L,c);_(L,O,O);var s=$.hV(O,c);if(s.km())return null;if(!s.v$(c)){var r=$.I(s.f()); +$.Jg(O,c,r,s);O=r;c=s}return{channel:O,rect:c}};$.lO.tRV=function(H,N,Q){for(var c=0;c_+c)break}};$.kv={};$.kv.oS=function(H,N,Q){return{t:"Objc",v:{classID:"CrPt",Hrzn:{t:"doub",v:H},Vrtc:{t:"doub",v:N},Cnty:{t:"bool",v:Q}}}}; +$.kv.UC=function(H,N){for(var Q=0;QO){_=L;O=Math.abs(H[L][c])}$.kv.WK.t$l(H,c,_);for(var L=c+1; +L=0;L--){if(H[L][L]==0)return 1;var u=H[L][Q]/H[L][L];N[L]=u;for(var r=L-1;r>=0;r--){H[r][Q]-=H[r][L]*u; +H[r][L]=0}}return 0};$.kv.WK.t$I=function(H,N){var Q=[];for(var c=0;c=N[N.length-1])return Q[N.length-1];var _=1;while(N[_]=N[N.length-1])return Q[N.length-1]; +var _=1;while(N[_]100)O[1]=.4*O[1];if(O[2]>150)O[1]=.7*O[2]}return O};$.kv.TJ=function(H,N){var Q=new Uint8Array(H.length); +for(var c=0;ct){var A=Y;Y=t;t=A}N[s]=C+$.style.tJJ(t,Y,T)}};$.style.ij=function(H,N,Q){var c=!0;for(var _=0; +_=0; +s--)$.style.ZY(N,H,Q,O+s<<1,1)}for(var L=c-2;L>=0;L--){var O=L*Q;for(var s=0;s<=Q-1;s++)$.style.TH(N,H,Q,O+s<<1,1); +for(var s=1;s<=Q-1;s++)$.style.ZY(N,H,Q,O+s<<1,-1);for(var s=Q-2;s>=0;s--)$.style.ZY(N,H,Q,O+s<<1,1)}}; +$.style.ZY=function(H,N,Q,c,_){var O=(c>>>1)+_<<1,L=H[c],s=H[c+1],r=H[O]+_,u=H[O+1],V=r*r+u*u,C=L*L+s*s; +if(u!=16383&&(L==16383||Math.sqrt(V)+(.5-N[(c>>>1)+u*Q+r]*(1/255))>>1)+s*Q+L]*(1/255)))){H[c]=r; +H[c+1]=u}};$.style.TH=function(H,N,Q,c,_){var O=(c>>>1)+_*Q<<1,L=H[c],s=H[c+1],r=H[O],u=H[O+1]+_,V=r*r+u*u,C=L*L+s*s; +if(r!=16383&&(L==16383||Math.sqrt(V)+(.5-N[(c>>>1)+u*Q+r]*(1/255))>>1)+s*Q+L]*(1/255)))){H[c]=r; +H[c+1]=u}};$.style.tIo=function(H,N,Q,c){var _=Q*c;for(var O=0;O<_;O++)if(H[O]==0){N[O*2]=16383;N[O*2+1]=16383}for(var L=1; +L<=c-1;L++){var O=L*Q;for(var s=0;s<=Q-1;s++)$.style.Tw(N,H,Q,O+s<<1,-1);for(var s=1;s<=Q-1;s++)$.style.ZB(N,H,Q,O+s<<1,-1); +for(var s=Q-2;s>=0;s--)$.style.ZB(N,H,Q,O+s<<1,1)}for(var L=c-2;L>=0;L--){var O=L*Q;for(var s=0;s<=Q-1; +s++)$.style.Tw(N,H,Q,O+s<<1,1);for(var s=1;s<=Q-1;s++)$.style.ZB(N,H,Q,O+s<<1,-1);for(var s=Q-2;s>=0; +s--)$.style.ZB(N,H,Q,O+s<<1,1)}};$.style.ZB=function(H,N,Q,c,_){var O=(c>>>1)+_<<1,L=H[c],s=H[c+1],r=H[O]+_,u=H[O+1],V=r*r+u*u,C=L*L+s*s; +if(u!=16383&&(L==16383||V>>1)+_*Q<<1,L=H[c],s=H[c+1],r=H[O],u=H[O+1]+_,V=r*r+u*u,C=L*L+s*s; +if(r!=16383&&(L==16383||V=0;r--)N[r+O-Q]=Math.min(N[r+O-Q],N[r+O-Q+1]);for(var u=c-2;u>=0;u--){var s=u*Q+Q-1;N[s]=Math.min(N[s],Math.min(N[s+Q]+1,N[s+Q-1]+Math.SQRT2)); +for(var r=Q-2;r>=1;r--){var V=N[--s],C=Math.min(N[s+1]+1,Math.min(N[s+Q-1]+Math.SQRT2,Math.min(N[s+Q]+1,N[s+Q+1]+Math.SQRT2))); +if(C=0;r--){if(H[r*Q+L]>_)s=0;else s++;O[r]=s}s=Q+c;for(var r=0; +r_)s=0;else s++;N[r*Q+L]=s>16;H=H+(H<<3);H=H^H>>4;H=H*668265261;H=H^H>>15; +return H&255};$.kg={};$.kg.WB=function(H,N,Q){var c=H.canvas;if(c.width!=N||c.height!=Q)z.UZ(c,N,Q,H)}; +$.kg.ib=function(H,N,Q,c,_,O){$.kg.WB(H,N,Q);if(O==null)O=!1;var L=_.channel,s=_.rect,r=!_.isEnabled; +N=Math.floor(N*z.h());Q=Math.floor(Q*z.h());if(N*Q==0)return;var u=H.createImageData(N,Q),V=u.data,C=1/N,T=1/Q; +for(var e=0;e=s.x+s.$||j=s.y+s.z)d=_.color;else d=L[(j-s.y)*s.$+(G-s.x)];d=255*(255-_.JU)+d*_.JU>>>8; +if(O)d=170+Math.round(.4*(d-170));V[A]=d;V[A+1]=d;V[A+2]=d;V[A+3]=255}H.putImageData(u,0,0);if(r)$.kg.iA(H,N,Q)}; +$.kg.tDc=function(H,N,Q,c){H.fillStyle="#eeeeee";H.fillRect(.6*N,.6*Q,N,Q);H.lineWidth=1.5;var _=.65*N,O=.95*N,L=.65*Q,s=.95*Q,r=.75*N,u=.85*N,V=.75*Q,C=.85*Q; +H.beginPath();H.moveTo(_,L);H.lineTo(O,L);H.lineTo(O,s);H.lineTo(_,s);H.lineTo(_,L);H.moveTo(r,V);H.lineTo(u,V); +H.lineTo(u,C);H.lineTo(r,C);H.lineTo(r,V);H.closePath();H.stroke()};$.kg.tDT=function(H,N,Q){var c,_,O; +N=Math.floor(z.h()*N);Q=Math.floor(z.h()*Q);c=Math.ceil(Math.min(N,Q)*.4);_=N-c;O=Q-c;H.scale(1/z.h(),1/z.h()); +H.fillStyle="#eeeeee";H.fillRect(_,O,N,Q);H.lineWidth=1;H.strokeRect(_+2.5,O+2.5,N-_-5,Q-O-5);var L=H.createImageData(3,3); +$.Mw(L.data,4278190080);L.data[4*4]=L.data[4*4+1]=L.data[4*4+2]=238;H.putImageData(L,_+1,O+1);H.putImageData(L,N-4,O+1); +H.putImageData(L,_+1,Q-4);H.putImageData(L,N-4,Q-4)};$.kg.Ze=function(H,N,Q,c,_,O,L){$.kg.WB(H,N,Q); +N=Math.floor(N*z.h());Q=Math.floor(Q*z.h());if(N*Q==0)return;var s=H.createImageData(N,Q),r=s.data,u=1/N,V=1/Q,C=1/255; +$.Y$(r,N,Q,4);var T=O.x,e=O.x+O.$,t=O.y,Y=O.y+O.z;for(var A=0;A=e||f=Y){}else{var b=r[d],F=r[d+1],n=r[d+2],J=r[d+3],Z=(f-O.y)*O.$+(w-O.x)<<2;J=_[Z+3]*C; +b=_[Z+0]*J+b*(1-J);F=_[Z+1]*J+F*(1-J);n=_[Z+2]*J+n*(1-J);r[d]=b;r[d+1]=F;r[d+2]=n;r[d+3]=255}}H.putImageData(s,0,0); +if(L)$.kg.iA(H,N,Q)};$.kg.tcD=function(H,N,Q,c){$.kg.WB(H,N,Q);H.fillStyle=$.kg.NG(c.Clr.v);H.fillRect(0,0,N,Q); +$.kg.iU(H,N,Q)};$.kg.tcf=function(H,N,Q,c){$.kg.WB(H,N,Q);H.fillStyle="#ffffff";H.fillRect(0,0,N,Q); +H.fillStyle="#000000";H.font=""+Q*.7+"px serif";H.fillText("T",(N-Q*.43)/2,Q*.75);H.fillText("T",(N-Q*.43)/2,Q*.75)}; +$.kg.tcj=function(H,N,Q){$.kg.WB(H,N,Q);H.clearRect(0,0,N,Q);H.font=Q*.7+"px serif";H.fillText(":(",(N-Q*.43)/2,Q*.7)}; +$.kg.tLY=function(H,N,Q,c){$.kg.WB(H,N,Q);var _=JO.get(c),O=tg.get(JO.names[_]).substring(0,3);H.fillStyle="#ffffff"; +H.fillRect(0,0,N,Q);H.fillStyle="#000000";H.font=Q*.55+"px sans-serif";var L=H.measureText(O);H.fillText(O,(N-L.width)/2,Q*.67); +H.fillRect(0,0,N,Q*.1);H.fillRect(0,Q*.9,N,Q*.1)};$.kg.tCq=function(H,N,Q,c){$.kg.WB(H,N,Q);var _=H.canvas.width,O=H.canvas.height,L=H.getImageData(0,0,_,O); +$.e.AH(c.Grad.v,new Uint8Array(L.data.buffer),new p(0,0,_,O),[1/_,0,0,1/O],_/2,O/2,!1,0,16711680,65280); +H.putImageData(L,0,0);$.kg.iU(H,N,Q)};$.kg.td$=function(H,N,Q,c,_){$.kg.WB(H,N,Q);var O=H,L=Ja.bE(c.Ptrn.v,_.add.Patt),s=L.lU; +$.kg.Ze(H,N,Q,s,L.nn,s,!1);$.kg.iU(O,N,Q)};$.kg.iA=function(H,N,Q){H.strokeStyle="#bb0000";H.lineWidth=3; +H.beginPath();H.moveTo(N*.15,Q*.15);H.lineTo(N*.85,Q*.85);H.moveTo(N*.85,Q*.15);H.lineTo(N*.15,Q*.85); +H.closePath();H.stroke()};$.kg.iA=function(H,N,Q){H.strokeStyle="#bb0000";H.lineWidth=3;H.beginPath(); +H.moveTo(N*.15,Q*.15);H.lineTo(N*.85,Q*.85);H.moveTo(N*.85,Q*.15);H.lineTo(N*.15,Q*.85);H.closePath(); +H.stroke()};$.kg.iU=function(H,N,Q){H.fillStyle="#eeeeee";H.fillRect(0,Q*.75,N,Q*.25);H.beginPath(); +H.moveTo(0,Q*.75);H.lineTo(N,Q*.75);H.moveTo(N*.1,Q*.875);H.lineTo(N*.9,Q*.875);H.moveTo(N*.65,Q*.825); +H.lineTo(N*.65,Q*.95);H.closePath();H.stroke()};$.kg.NG=function(H){var N=$.e.NG(H),Q=Math.round(N.T)<<16|Math.round(N.q)<<8|Math.round(N.H); +return"#"+$.fM(Q)};$.A={};$.A.iF=function(H,N,Q){var c=[],_=-1;for(var O=0;O5||L.type==0||L.type==3)continue;if(N!=null&&N.indexOf(_)==-1)continue; +if(Q!=null&&Q.indexOf(O)==-1)continue;c.push(L.kM.x);c.push(L.kM.y);c.push(L.P.x);c.push(L.P.y);c.push(L.kq.x); +c.push(L.kq.y)}return c};$.A.im=function(H,N,Q,c){var _=0,O=-1;for(var L=0;L5||s.type==0||s.type==3)continue;if(Q!=null&&Q.indexOf(O)==-1)continue; +if(c!=null&&c.indexOf(L)==-1)continue;s.kM.kR(H[_],H[_+1]);s.P.kR(H[_+2],H[_+3]);s.kq.kR(H[_+4],H[_+5]); +_+=6}};$.A.Nj=function(H,N,Q,c){var _=$.A.iF(H,Q,c);$.K.UC(_,N,_);$.A.im(_,H,Q,c)};$.A.tGJ=function(H,N,Q,c){var _=$.A.iF(H,Q,c); +$.F.apply(N,_);$.A.im(_,H,Q,c)};$.A.tGk=function(H,N){var Q=$.A.tRf(H,40);for(var c=0;c5){Q.push(JSON.parse(JSON.stringify(_)));continue}var O=$.A.ttG(H,c+1,_.length); +O=$.K.kb(O,N);var L=$.A.ttK(O);c+=_.length;_=JSON.parse(JSON.stringify(_));_.length=L.length;Q.push(_); +for(var s=0;s5)continue;var Q=H[N].length;if(!(Q==4||Q==6||Q==8)){N+=Q; +continue}for(var c=0;c5)continue;var O=H[_].length; +if((H[_].type==0||H[_].type==3)&&H[_].AY!=-1)c++;if(N!=null&&N.indexOf(c)==-1)continue;if(_==H.length-1)break; +var L=H[_].type==3;if(Q==null)Q=$.A.TL(H,_+1,O,L);else{var s=$.A.TL(H,_+1,O,L);if(N!=null||H[_].AY==0||H[_].AY==-1||H[_].AY==1){var r=Math.min(Q.x,s.x),u=Math.min(Q.y,s.y),V=Math.max(Q.x+Q.$,s.x+s.$),C=Math.max(Q.y+Q.z,s.y+s.z); +Q.x=r;Q.y=u;Q.$=V-r;Q.z=C-u}else if(H[_].AY==2)Q=Q;else if(H[_].AY==3)Q=Q.sj(s)}_+=O}if(Q==null||Q.$<0||Q.z<0)Q=new p(0,0,0,0); +return Q};$.A.tVz=new Float64Array(4);$.A.TL=function(H,N,Q,c){var _=$.A.tVz;_[0]=1e30;_[1]=1e30;_[2]=-1e30; +_[3]=-1e30;var O=H[N+Q-1];if(!c)$.A.Tg(O.P.x,O.P.y,O.kq.x,O.kq.y,H[N].kM.x,H[N].kM.y,H[N].P.x,H[N].P.y,_); +for(var L=N;LC)C=D;if(W>T)T=W}r[0]=Math.min(r[0],u);r[1]=Math.min(r[1],V);r[2]=Math.max(r[2],C); +r[3]=Math.max(r[3],T)};$.A.eX=function(H){$.A.tN();var N=new paper.CompoundPath(H),Q=$.A.oV(N);return Q}; +$.A.Tp=function(H){var N=2,Q=$.A.qh(H),c=!1,_=!1;for(var O=2;O1)H=$.A.TO(H); +var r=$.A.AJ(H),s=new paper.CompoundPath({fillRule:"nonzero"});for(var O=0;O=0;s--){var r=L[s][0],u=r.hitTest(O,_);if(u!=null)return{U_:s,mX:Q?u.location.index:null}}return{U_:-1}}; +$.A.ot=function(H,N){var Q=[[],[],[]];for(var c=0;c5||_.type==0||_.type==3)continue; +if(N.Eo(_.P))Q[0].push(c);if(N.Eo(_.kM))Q[1].push(c);if(N.Eo(_.kq))Q[2].push(c)}return Q};$.A.tJl=function(H,N,Q){var c=H.slice(0,2),_=[],O=null,L=-1; +for(var s=2;s_.length)Q.pop();for(var s=0;s=N)return Q; +Q++}return Q};$.A.Tu=function(H,N){var Q=-1,c=0;for(var _=0;_5)continue;var O=H[_].length,L;if(_==H.length-1)break;var s=H[_].type==3; +if(_==2){if(!$.A.eQ(H))L="subtract";else L="unite"}else{if(H[_].AY==0)L="exclude";if(H[_].AY==1)L="unite"; +if(H[_].AY==2)L="subtract";if(H[_].AY==3)L="intersect"}if(H[_].AY!=-1)Q=[];for(var r=0;r$.A.PV){$.A.PV=L}if(c!=null){var s=!1,r=!1,u=0; +for(var V=0;V0)r=!0}if(!s&&u<20)H=$.A.TO(H)}var T=$.A.qh(H); +for(var V=0;V5)continue;var e=H[V].length;if(e==0)continue;if(V==H.length-1)break; +var t=H[V].type==3;if(V==2){if(!$.A.eQ(H))O.globalCompositeOperation="destination-out";else O.globalCompositeOperation="source-over"}else{var Y; +if(H[V].AY==0)Y="xor";if(H[V].AY==1)Y="source-over";if(H[V].AY==2)Y="destination-out";if(H[V].AY==3)Y="source-in"; +if(H[V].AY!=-1&&c==null)O.globalCompositeOperation=Y}if(H[V].AY!=-1){O.beginPath();if(c){var A=c.strokeStyleLineWidth.v.val,G=c.strokeStyleLineAlignment.v.strokeStyleLineAlignment,j=c.strokeStyleLineCapType.v.strokeStyleLineCapType,d=c.strokeStyleLineJoinType.v.strokeStyleLineJoinType,w=c.strokeStyleMiterLimit.v,f=[],b=c.strokeStyleLineDashSet.v; +for(var F=0;F1||Math.abs(O[L*4]-O[L*4+s])>1)Q=!0}return!Q}else return H.warpValue.v==0&&H.warpPerspective.v==0&&H.warpPerspectiveOther.v==0}; +$.UB.I=function(H){var N={classID:"warp",warpStyle:{t:"enum",v:{warpStyle:"warpNone"}},warpValue:{t:"doub",v:0},warpPerspective:{t:"doub",v:0},warpPerspectiveOther:{t:"doub",v:0},warpRotate:{t:"enum",v:{Ornt:"Hrzn"}}}; +if(H){N.bounds={t:"Objc",v:{classID:"Rctn",Top:{t:"UntF",v:{type:"#Pxl",val:H.y}},Left:{t:"UntF",v:{type:"#Pxl",val:H.x}},Btom:{t:"UntF",v:{type:"#Pxl",val:H.y+H.z}},Rght:{t:"UntF",v:{type:"#Pxl",val:H.x+H.$}}}}; +N.uOrder={t:"long",v:4};N.vOrder={t:"long",v:4}}return N};$.UB.tC$=function(H,N,Q,c){for(var _=0;_0)C=C-D*C*c; +else T=T+D*T*c}else if(L==1||L==2)C=C-D*C*c;else if(s==1||s==2)T=T+D*T*c}if(Q=="warpTwist"){if((L==1||L==2)&&(s==1||s==2)){var W=c*Math.PI/2,f=1+Math.abs(c)*2,m=C*Math.cos(W)-T*Math.sin(W),q=C*Math.sin(W)+T*Math.cos(W); +C=m*f;T=q*f}}if(Q=="warpShellLower"||Q=="warpShellUpper"){if(Q=="warpShellUpper"){L=3-L;T=-T}if(L>2||L==2&&(s==0||s==3)){if(c>0){var S=n+L/3*2*t; +C=Math.sin(F)*S;T=-w*e-t+Math.cos(F)*S;if(s==1||s==2){C=s==1?-y*S:y*S;T=-w*e-t+M*S}}else{if((s==1||s==2)&&L==3){C=s==1?-y*n:y*n; +T=w*e-M*n+t}else if(L==2){T=t-t*(2/3)*Math.cos(F);C=C+t*(2/3)*Math.sin(F)}}}if(Q=="warpShellUpper"){L=3-L; +T=-T}}C+=e;T+=t}u=C,V=T;H[r]=u+N.x;H[r+1]=V+N.y}}};$.UB.tRi=function(H,N,Q){var c=[];for(var _=0;_<4; +_++)c.push(1-Q+_/3*2*Q);var O=[];for(var _=0;_<4;_++)O.push(1-N+_/3*2*N);var L=[0,0,0,0],s=[0,0,0,0]; +for(var r=0;r<4;r++)for(var _=0;_<4;_++){var u=2*(4*r+_),V=H[u],C=H[u+1];L[_]+=V/4;s[_]+=C/4}for(var r=0; +r<4;r++)for(var _=0;_<4;_++){var T=c[_],u=2*(4*r+_),V=H[u],C=H[u+1],e=L[_],t=s[_];H[u]=e+T*(V-e);H[u+1]=t+T*(C-t)}var Y=H.slice(0); +for(var r=0;r<4;r++)for(var _=1;_<3;_++){var u=2*(4*r+_),V=H[u],C=H[u+1],A=u+(_==1?-2:2),G=H[A],j=H[A+1]; +H[u]=V-G;H[u+1]=C-j}var d=H[0],w=H[1],f=H[8],b=H[9],F=H[16],n=H[17],J=H[24],Z=H[25],P=H[6],M=H[7],y=H[14],a=H[15],g=H[22],U=H[23],D=H[30],W=H[31],m=P-d,q=M-w,S=y-f,I=a-b,v=g-F,h=U-n,i=D-J,JI=W-Z; +for(var r=0;r<4;r++){var Jx=2*r*4,Jd=0,JC=0,JM=r==1?.33:.66,Jh=1-JM;if(r==0){Jd=m;JC=q}if(r==1){Jd=Jh*m+JM*-i; +JC=Jh*q+JM*-JI}if(r==2){Jd=Jh*m+JM*-i;JC=Jh*q+JM*-JI}if(r==3){Jd=-i;JC=-JI}H[Jx]=H[Jx]+Jd/2;H[Jx+1]=H[Jx+1]+JC/2; +H[Jx+6]=H[Jx+6]-Jd/2;H[Jx+7]=H[Jx+7]-JC/2}for(var r=0;r<4;r++)for(var _=1;_<3;_++){var u=2*(4*r+_),V=H[u],C=H[u+1],A=u+(_==1?-2:2),G=H[A],j=H[A+1],T=2*r/3; +H[u]=G+T*V;H[u+1]=j+T*C}for(var r=1;r<3;r++)for(var _=1;_<3;_++){var u=2*(4*r+_),V=H[u],C=H[u+1],Jv=r==1?-8:-16,JW=r==1?16:8,Ji=H[u+Jv],Jc=H[u+Jv+1],JT=H[u+JW],Jy=H[u+JW+1],T=r/3; +V=(1-T)*Ji+T*JT;C=(1-T)*Jc+T*Jy;H[u]=V;H[u+1]=C}$.K.iv(Y,H,H,N)};$.UB.tRZ=function(H,N){return(4-H)*(1/3)}; +$.UB.tVf=function(H,N){return(1-H)*(3-H)/(3*N)};$.raw={};$.raw.normalize=function(H){if(H.t50706!=null)return; +H.t50706=[1,2,0,0];H.t50717=[(1<>1<<1; +O+=u[1]>>1<<1}if(H.t50720){var V=H.t50720;L=_+V[0];s=O+V[1]}var C=L-_,T=s-O,e=new Float32Array(C*T*3); +if(H.t277[0]!=1)throw"More than 1 sample per pixel!";var t=H.t33421,Y=H.t33421;if(t.length!=2||t[0]!=2||t[1]!=2)throw"Unknown CFA pattern size"; +var A=H.t33422.join(",");if(A=="0,1,1,2")G=0;else if(A=="1,0,2,1")G=1;else if(A=="2,1,1,0")G=2;else if(A=="1,2,0,1")G=3; +else throw"Unknown CFA pattern";for(var j=0;j1)b=1;if(F<0)F=0;else if(F>1)F=1;if(n<0)n=0;else if(n>1)n=1;b=e[~~(b*999)];F=e[~~(F*999)]; +n=e[~~(n*999)];N[J]=V.oB[~~(b*1023)];N[J+1]=V.oF[~~(F*1023)];N[J+2]=V.UY[~~(n*1023)]}};$.raw.tJI=function(H,N){var Q=H.width,c=H.height,_=new Uint16Array(N.length),O=null,L=0,C=0,T=0; +$.raw.trj(H,_);$.raw.o$(1,H,_,Q,c);if(H.t50712){O=H.t50712;L=O.length-1;if(O[L]>65535)throw"too big values"}var s=H.t50713,r=H.t50714,u=H.t50715,V=H.t50716; +if(r==null)r=[0,0,0,0];if(s==null||s[0]+s[1]!=4)r=[r[0],r[0],r[0],r[0]];var e=Q,t=c;if(H.t50829){var Y=H.t50829; +C=Y[1];T=Y[0];e=Y[3];t=Y[2]}u=new Float32Array(u?u:Q);V=new Float32Array(V?V:c);var A=H.t50717[0];if(O)A=Math.min(A,O[L]); +var G=1/(A-r[0]),j=H.data,d=N.length;for(var w=T;wL)F=L; +F=O[F]}var n=r[0]+u[f-C]+V[w-T];N[b]=Math.max(0,Math.min(1,(F-n)/(A-n)))}}};$.raw.trj=function(H,N){var Q=N.length,c=H.data,_=H.t258[0]; +if(_!=16&&_!=14&&_!=12&&_!=10&&_!=8)throw"Unsupported Bits Per Sample:"+_;for(var O=0;O>>3,C=c[V]<<24|c[V+1]<<16|c[V+2]<<8|c[V+3]; +if((u&7)==0){s=C>>>18;r=C>>>4&16383}else{s=C>>>14&16383;r=C&16383}}else if(_==12){L=O+(O>>>1);s=c[L]<<4|c[L+1]>>4; +r=(c[L+1]&15)<<8|c[L+2]}else if(_==10){var u=O*10,V=u>>>3;if((u&7)==0){s=(c[V]<<2|c[V+1]>>6)&1023;r=(c[V+1]<<4|c[V+2]>>4)&1023}else{s=(c[V]<<6|c[V+1]>>2)&1023; +r=(c[V+1]<<8|c[V+2]>>0)&1023}}else if(_==8){L=O;s=c[L];r=c[L+1]}N[O]=s;N[O+1]=r}};$.raw.o$=function(H,N,Q,c,_){var O=N["t"+[51008,51009,51022][H-1]],V=0; +if(O==null)return;var L=c*_,s=x.j,r=x.FD,u=new Uint8Array(O),C=x.j(u,V);V+=4;for(var T=0;T>1}else if(e==5&&H==1){var G=V,Jn=s(u,G); +G+=4;var Jq=s(u,G);G+=4;var tJ=s(u,G);G+=4;for(var Jg=0;Jg>1}}else if(e==7&&H==1){var G=V,td=x.uq(u,G);G+=16;var Jk=s(u,G); +G+=4;var rR=s(u,G);G+=4;var Je=s(u,G),JU=s(u,G+4);G+=8;var JK=s(u,G);G+=4;var rH=new Uint16Array(JK); +for(var Jg=0;Jg1e-7);return Q};$.raw.Pr=function(H,N){var Q=tP.Pp(N),c=$.raw.twi,_=H.t50779?H.t50779[0]:0,O=c(H.t50721,H.t50722,H.t50778[0],_,Q.No),L=c(H.t50723,H.t50724,H.t50778[0],_,Q.No); +L=L||[1,0,0,0,1,0,0,0,1];var s=H.t50727?[H.t50727[0],0,0,0,H.t50727[1],0,0,0,H.t50727[2]]:[1,0,0,0,1,0,0,0,1]; +return $.Iw.multiply($.Iw.Cg(s),$.Iw.multiply($.Iw.Cg(L),$.Iw.Cg(O)))};$.raw.twi=function(H,N,Q,c,_){if(!H&&!N){return null}else if(H&&!N){return H}else if(_c){return N}else{var O=(1/_-1/c)/(1/Q-1/c),L=1-O,s=[]; +for(var r=0;r<9;r++)s[r]=H[r]*O+N[r]*L;return s}};var tP={};tP.tIS={x:.34567,y:.3585};tP.PC=[{T:0,An:.18006,Dq:.26352,yC:-.24341},{T:10,An:.18066,Dq:.26589,yC:-.25479},{T:20,An:.18133,Dq:.26846,yC:-.26876},{T:30,An:.18208,Dq:.27119,yC:-.28539},{T:40,An:.18293,Dq:.27407,yC:-.3047},{T:50,An:.18388,Dq:.27709,yC:-.32675},{T:60,An:.18494,Dq:.28021,yC:-.35156},{T:70,An:.18611,Dq:.28342,yC:-.37915},{T:80,An:.1874,Dq:.28668,yC:-.40955},{T:90,An:.1888,Dq:.28997,yC:-.44278},{T:100,An:.19032,Dq:.29326,yC:-.47888},{T:125,An:.19462,Dq:.30141,yC:-.58204},{T:150,An:.19962,Dq:.30921,yC:-.70471},{T:175,An:.20525,Dq:.31647,yC:-.84901},{T:200,An:.21142,Dq:.32312,yC:-1.0182},{T:225,An:.21807,Dq:.32909,yC:-1.2168},{T:250,An:.22511,Dq:.33439,yC:-1.4512},{T:275,An:.23247,Dq:.33904,yC:-1.7298},{T:300,An:.2401,Dq:.34308,yC:-2.0637},{T:325,An:.24792,Dq:.34655,yC:-2.4681},{T:350,An:.25591,Dq:.34951,yC:-2.9641},{T:375,An:.264,Dq:.352,yC:-3.5814},{T:400,An:.27218,Dq:.35407,yC:-4.3633},{T:425,An:.28039,Dq:.35577,yC:-5.3762},{T:450,An:.28863,Dq:.35714,yC:-6.7262},{T:475,An:.29685,Dq:.35823,yC:-8.5955},{T:500,An:.30505,Dq:.35907,yC:-11.324},{T:525,An:.3132,Dq:.35968,yC:-15.628},{T:550,An:.32129,Dq:.36011,yC:-23.325},{T:575,An:.32931,Dq:.36038,yC:-40.77},{T:600,An:.33724,Dq:.36051,yC:-116.45}]; +tP.Pp=function(H){var N=tP.PC,Q=2*H.x/(1.5-H.x+6*H.y),c=3*H.y/(1.5-H.x+6*H.y),_=0,O=0,L=0;for(;L<31; +L++){_=c-N[L].Dq-N[L].yC*(Q-N[L].An);if(L>0&&_<0){break}O=_}_/=Math.sqrt(1+N[L].yC*N[L].yC);O/=Math.sqrt(1+N[L-1].yC*N[L-1].yC); +var s=O/(O-_),r=1e6/((N[L].T-N[L-1].T)*s+N[L-1].T),u=Q-((N[L].An-N[L-1].An)*s+N[L-1].An),V=c-((N[L].Dq-N[L-1].Dq)*s+N[L-1].Dq),C=Math.sqrt(1+N[L].yC*N[L].yC),T=1/C,e=N[L].yC/C,t=Math.sqrt(1+N[L-1].yC*N[L-1].yC),Y=1/t,A=N[L-1].yC/t,G=(T-Y)*s+Y,j=(e-A)*s+A,d=Math.sqrt(G*G+j*j); +G/=d;j/=d;var w=(u*G+V*j)*-3e3;return{No:r,Lv:w}};tP.tyd=function(H,N){var Q=tP.PC,c=1e6/H,_=1;for(; +_<31;_++){if(c=250?tJ:g)<<2; +Jq[ty]=N[td];Jq[ty+1]=N[td+1];Jq[ty+2]=N[td+2]}$.kw(Jn,Jq,3);if(r)console.log(Date.now()-s);s=Date.now(); +return Jq};$.H_.SL=function(H,N,Q,c,_,O,L,s,r){var u=~~(H*_),V=H-u*c,C=~~(N*_),T=N-C*c,e=~~(Q*_),t=Q-e*c,Y=Math.sqrt((V-T)*(V-T)+(u-C)*(u-C))*L,A=Math.sqrt((V-t)*(V-t)+(u-e)*(u-e))*s,y=0; +if(Y+A>=r)return 1e9;var G=H<<2,j=N<<2,d=Q<<2,w=O[G],f=O[G+1],b=O[G+2],F=O[j],n=O[j+1],J=O[j+2],Z=O[d],P=O[d+1],M=O[d+2]; +if(F!=Z||n!=P||J!=M){var a=F-Z,g=n-P,U=J-M,D=w-Z,W=f-P,m=b-M,q=(D*a+W*g+m*U)/(a*a+g*g+U*U);q=Math.max(0,Math.min(1,q)); +var S=w-(q*F+(1-q)*Z),I=f-(q*n+(1-q)*P),v=b-(q*J+(1-q)*M);y=Math.sqrt(S*S+I*I+v*v)}return y+Y+A};$.H_.alpha=function(H,N,Q,c){var _=H<<2,O=N<<2,L=Q<<2,s=c[_],r=c[_+1],u=c[_+2],V=c[O],C=c[O+1],T=c[O+2],e=c[L],t=c[L+1],Y=c[L+2]; +if(V==e&&C==t&&T==Y)return 1;var A=V-e,G=C-t,j=T-Y,d=s-e,w=r-t,f=u-Y,b=(d*A+w*G+f*j)/(A*A+G*G+j*j);return Math.max(0,Math.min(1,b))}; +$.H_.tGz=function(H){};$.H_.Pl=function(H,N,Q,c){var _=[];for(var O=0;O1&&H[s-N-N]!=c&&H[s-N-N]!=255-c||O!=Q-1&&H[s+N]!=c&&H[s+N]!=255-c||O1&&H[s-1-1]!=c&&H[s-1-1]!=255-c||L!=N-1&&H[s+1]!=c&&H[s+1]!=255-c||L>>2; +console.log(C,t);T=$.I(C.f());$.rY(V.nn,T,0);$.kw(N,u,0);V=$.Ef(u,Q);V=$.Ef(V.nn,V.rect);e=$.I(C.f()); +$.rY(V.nn,e,0);var Y=$.Mr.ty_(T,e,C,t,_),A=Y[0],G=Y[1],j=new p(0,0,C.$*2,C.z*2);A=r(A,C,j,!0);A=r(A,j,Q,!0); +G=r(G,C,j,!0);G=r(G,j,Q,!0);var d=$.I(s);for(var w=0;w>>2,L>>>2);t=c>>>2;T=$.Mr.tLV(H,O,L);e=$.Mr.tLJ(N,O,L);if(V)console.log(Date.now()-u); +u=Date.now();var Y=$.Mr.tLy(T,e,C,t,_),A=Y[0],G=Y[1],j=Y[2],d=Y[3];if(V)console.log(Date.now()-u);u=Date.now(); +var w=$.I(s);for(var f=0;f>>2)*(O>>>2)+(b>>>2),J=F<<2,Z=A[n]*N[J]+G[n]*N[J+1]+j[n]*N[J+2]+d[n]*255; +w[F]=Math.max(0,Math.min(255,~~(.5+Z)))}if(V)console.log(Date.now()-u);u=Date.now();return w};$.Mr.tLV=function(H,N,Q){var c=N>>>2,_=Q>>>2,O=$.I(N*Q); +for(var L=0;L<_;L++)for(var s=0;s>>2,_=Q>>>2,O=$.I(N*Q*4); +for(var L=0;L<_;L++)for(var s=0;s>2]=d.ind}return{gB:C,$e:u[1]}};$.Bm.PK=function(H,N,Q){var c=[],_={},O=N-1,L=Q-1,s=0,r=new Uint32Array(H),u=[-N-1,-N,-N+1,-1,1,N-1,N,N+1,N+N,2,-N-N,-2,N+N-1,N+N+1,N+2,-N+2,-N-N+1,-N-N-1,-N-2,N-2,N+N+2,-N-N+2-N-N-2,N+N-2]; +for(var V=1;V>1,b=u+((w&1)==0?1:N),F=t.find(u),n=t.find(b),J=Math.min(Y[F]+j/Math.sqrt(A[F]),Y[n]+j/Math.sqrt(A[n])); +if(F!=n&&f<=J){t.link(u,b);G--;var Z=t.find(u);A[Z]=A[F]+A[n];Y[Z]=f}}var P=[],M={},y=new Uint16Array(_); +for(var u=0;u<_;u++){var Z=t.find(u),a=M[Z];if(a==null){M[Z]=a=P.length;P.push({eo:0,vc:[0,0,0,0]})}P[a].eo++; +for(var b=0;b<4;b++)P[a].vc[b]+=H[(u<<2)+b];y[u]=a}var g=new Uint32Array(P.length);for(var u=0;u>2};var $N=function(){function H(){this.f=0;this.Dj=0;this.hc={};this.MO=[];this.LE=1e5; +this.Lp=1e5;this.Li=-1;this.Lo=-1;this.color=0}function N(_){this.pu=_;this.qd=new Array(_);this.lA=new Array(_*6); +this.tTV=0;this.sE=new Array(_*2);this.alpha=new Array(_);this.Lb=new Array(_);this.Lz=new Array(_)}function Q(_,O,L,s){function r(G,j,_,O){return _[O*j+G]}function u(A){var n=_.length; +while(A0)return 1; +else if(J<0)return 0}return 0}function C(n,t){var Y=new H,G=n,j=t,J=0,Z=1,P;Y.color=_[t*O+n];Y.sign=r(n,t,_,O)==Y.color?"+":"-"; +while(1){Y.MO.push(G,j);if(G>Y.Li)Y.Li=G;if(GY.Lo)Y.Lo=j;if(j>1),j+(Z-J-1>>1),_,O)==Y.color,y=r(G+(J-Z-1>>1),j+(Z+J-1>>1),_,O)==Y.color; +if(y&&!M){if(s.TU=="right"||s.TU=="black"&&Y.sign=="+"||s.TU=="white"&&Y.sign=="-"||s.TU=="majority"&&V(G,j,Y.color)||s.TU=="minority"&&!V(G,j,Y.color)){P=J; +J=-Z;Z=P}else{P=J;J=Z;Z=-P}}else if(y){P=J;J=-Z;Z=P}else if(!M){P=J;J=Z;Z=-P}}return Y}var T=0,e=[]; +while(!0){var T=u(T);if(T==-1)break;var t=Math.floor(T/O),Y=C(T-t*O,t);for(var A=0;As.tPc)e.push(Y)}for(var A=0;A=0;b--){var F=e[b]; +if(f.LEF.Li||f.LpF.Lo)continue;if(!$N.ttc(F.MO,f.MO[0]+.5,f.MO[1]+.5))continue; +f.parent=b;break}}return e}function c(_,O){function L(J,Z,P,M,y){this.x=J;this.y=Z;this.$u=P;this.Jh=M; +this.Jp=y}function s(J,Z){return(Z+J)%Z}function r(J,Z,P,M){return J*M-P*Z}function u(J,Z,P,M){return J*P+Z*M}function V(J,Z,P){if(J<=P)return J<=Z&&Z=0&&i<=1)return i;else if(JI>=0&&JI<=1)return JI; +else return-1}function G(n){var F,J,Z;n.Tk=n.MO[0];n.mf=n.MO[1];n.ma=[];var P=n.ma;P.push(new L(0,0,0,0,0)); +for(F=0;F=0;F--){if(Z[F<<1]!=Z[Jv<<1]&&Z[(F<<1)+1]!=Z[(Jv<<1)+1])Jv=F+1;y[F]=Jv}for(F=J-1; +F>=0;F--){var JW=s(F+1,J)<<1;a[0]=a[1]=a[2]=a[3]=0;P=(3+3*(Z[JW]-Z[F<<1])+(Z[JW+1]-Z[(F<<1)+1]))/2;a[P]++; +g=0;U=0;D=0;W=0;Jv=y[F];Jx=F;while(1){i=0;P=(3+3*Math.sign(Z[Jv*2]-Z[Jx*2])+Math.sign(Z[Jv*2+1]-Z[Jx*2+1]))/2; +a[P]++;if(a[0]&&a[1]&&a[2]&&a[3]){M[F]=Jx;i=1;break}v=Z[Jv*2]-Z[F*2];h=Z[Jv*2+1]-Z[F*2+1];if(r(g,U,v,h)<0||r(D,W,v,h)>0){break}if(Math.abs(v)<=1&&Math.abs(h)<=1){}else{m=v+(h>=0&&(h>0||v<0)?1:-1); +q=h+(v<=0&&(v<0||h<0)?1:-1);if(r(g,U,m,q)>=0){g=m;U=q}m=v+(h<=0&&(h<0||v<0)?1:-1);q=h+(v>=0&&(v>0||h<0)?1:-1); +if(r(D,W,m,q)<=0){D=m;W=q}}Jx=Jv;Jv=y[Jx];if(!V(Jv,F,Jx)){break}}if(i==0){S=Math.sign(Z[Jv*2]-Z[Jx*2]); +I=Math.sign(Z[Jv*2+1]-Z[Jx*2+1]);v=Z[Jx*2]-Z[F*2];h=Z[Jx*2+1]-Z[F*2+1];Jd=r(g,U,v,h);JC=r(g,U,S,I);JM=r(D,W,v,h); +Jh=r(D,W,S,I);JI=1e7;if(JC<0){JI=Math.floor(Jd/-JC)}if(Jh>0){JI=Math.min(JI,Math.floor(-JM/Jh))}M[F]=s(Jx+JI,J)}}JI=M[J-1]; +n.PP[J-1]=JI;for(F=J-2;F>=0;F--){if(V(F+1,M[F],JI)){JI=M[F]}n.PP[F]=JI}for(F=J-1;V(s(F+1,J),JI,n.PP[F]); +F--){n.PP[F]=JI}}function d(n){function J(n,F,Z){var y=n.Dj,v=n.MO,h=n.ma,i,JI,Jx,Jd,JC,M,JM,Jh,I,Jv,JW,Ji,Jc,JT,Jy=0; +if(Z>=y){Z-=y;Jy=1}if(Jy==0){i=h[Z+1].x-h[F].x;JI=h[Z+1].y-h[F].y;Jd=h[Z+1].Jh-h[F].Jh;Jx=h[Z+1].$u-h[F].$u; +JC=h[Z+1].Jp-h[F].Jp;M=Z+1-F}else{i=h[Z+1].x-h[F].x+h[y].x;JI=h[Z+1].y-h[F].y+h[y].y;Jd=h[Z+1].Jh-h[F].Jh+h[y].Jh; +Jx=h[Z+1].$u-h[F].$u+h[y].$u;JC=h[Z+1].Jp-h[F].Jp+h[y].Jp;M=Z+1-F+y}JW=(v[F<<1]+v[Z<<1])/2-v[0];Ji=(v[(F<<1)+1]+v[(Z<<1)+1])/2-v[1]; +JT=v[Z<<1]-v[F<<1];Jc=-(v[(Z<<1)+1]-v[(F<<1)+1]);JM=(Jd-2*i*JW)/M+JW*JW;Jh=(Jx-i*Ji-JI*JW)/M+JW*Ji;I=(JC-2*JI*Ji)/M+Ji*Ji; +Jv=Jc*Jc*JM+2*Jc*JT*Jh+JT*JT*I;return Math.sqrt(Jv)}var F,Z,P,M,y=n.Dj,a=new Array(y+1),g=new Array(y+1),U=new Array(y),D=new Array(y+1),W=new Array(y+1),m=new Array(y+1),q,S,I; +for(F=0;F0;Z--){m[Z]=F; +F=D[F]}m[0]=0;a[0]=0;for(Z=1;Z<=P;Z++){for(F=m[Z];F<=W[Z];F++){S=-1;for(M=W[Z-1];M>=D[F];M--){q=J(n,M,F)+a[M]; +if(S<0||q0;Z--){F=g[F];n.mj[Z]=F}}function w(n){function J(n,F,q,U,D,Jg){var M=n.Dj,Jn=n.ma,Jq=0,I; +while(q>=M){q-=M;Jq+=1}while(F>=M){F-=M;Jq-=1}while(q<0){q+=M;Jq-=1}while(F<0){F+=M;Jq+=1}var tJ=Jn[q+1].x-Jn[F].x+Jq*Jn[M].x,ty=Jn[q+1].y-Jn[F].y+Jq*Jn[M].y,JA=Jn[q+1].Jh-Jn[F].Jh+Jq*Jn[M].Jh,td=Jn[q+1].$u-Jn[F].$u+Jq*Jn[M].$u,Jk=Jn[q+1].Jp-Jn[F].Jp+Jq*Jn[M].Jp,S=q+1-F+Jq*M; +U[Jg]=tJ/S;U[Jg+1]=ty/S;var rR=(JA-tJ*tJ/S)/S,Je=(td-tJ*ty/S)/S,JU=(Jk-ty*ty/S)/S,JK=(rR+JU+Math.sqrt((rR-JU)*(rR-JU)+4*Je*Je))/2; +rR-=JK;JU-=JK;if(Math.abs(rR)>=Math.abs(JU)){I=Math.sqrt(rR*rR+Je*Je);if(I!=0){D[Jg]=-Je/I;D[Jg+1]=rR/I}}else{I=Math.sqrt(JU*JU+Je*Je); +if(I!=0){D[Jg]=-JU/I;D[Jg+1]=Je/I}}if(I==0){D[Jg]=D[Jg+1]=0}}var Z=n.om,P=n.mj,M=n.Dj,y=n.MO,a=n.Tk,g=n.mf,U=new Array(Z*2),D=new Array(Z*2),W=new Array(Z),m=new Array(3),F,q,S,I,JI,Jx,Jd,JC,JM,Jh,Jv; +n.hc=new N(Z);for(F=0;Fi[4]){m[0]=-i[1];m[1]=i[0]}else if(i[4]){m[0]=-i[4];m[1]=i[3]}else{m[0]=1; +m[1]=0}var v=m[0]*m[0]+m[1]*m[1],h=1/v;m[2]=-m[1]*Ji-m[0]*JW;for(I=0;I<3;I++){i[I*3+0]+=m[I]*m[0]*h; +i[I*3+1]+=m[I]*m[1]*h;i[I*3+2]+=m[I]*m[2]*h}}JI=Math.abs(Jc-JW);Jx=Math.abs(JT-Ji);if(JI<=.5&&Jx<=.5){n.hc.sE[F<<1]=Jc+a; +n.hc.sE[(F<<1)+1]=JT+g;continue}Jd=C(i,JW,Ji);JM=JW;Jh=Ji;if(i[0]!=0){for(Jv=0;Jv<2;Jv++){JT=Ji-.5+Jv; +Jc=-(i[1]*JT+i[2])/ i[0];JI=Math.abs(Jc-JW);JC=C(i,Jc,JT);if(JI<=.5&&JC1?1-1/y:0;g=g*(1/.75)}else{g=4/3}Z.Lb[P]=g; +var Jx=3*P<<1;if(g>=O.tPY){Z.qd[P]=0;Z.lA[Jx+0]=Z.lA[Jx+1]=0;Z.lA[Jx+2]=v;Z.lA[Jx+3]=h;Z.lA[Jx+4]=i; +Z.lA[Jx+5]=JI}else{if(g<.55){g=.55}else if(g>1){g=1}var Jd=.5+.5*g;Z.qd[P]=1;Z.lA[Jx]=T(Jd,m,v);Z.lA[Jx+1]=T(Jd,q,h); +Z.lA[Jx+2]=T(Jd,S,v);Z.lA[Jx+3]=T(Jd,I,h);Z.lA[Jx+4]=i;Z.lA[Jx+5]=JI}Z.alpha[P]=g;Z.Lz[P]=.5}Z.tPz=1}function b(n){function J(){this.PU=0; +this.ml=0;this.mZ=0;this.mk=0;this.me=0;this.yC=0;this._u=0;this.alpha=0}function Z(n,F,m,rH,rL,JC,JM){var M=n.hc.pu,Ju=n.hc.lA,JZ=n.hc.sE; +if(F==m)return 1;var Jl=F,v=s(F+1,M),rV=s(Jl+1,M),JA=JZ[F<<1],td=JZ[(F<<1)+1],rD=JZ[v<<1],tb=JZ[(v<<1)+1],rv=JC[rV]; +if(rv==0)return 1;var rG=t(JA-rD,td-tb);for(Jl=rV;Jl!=m;Jl=rV){var rV=s(Jl+1,M),Js=s(Jl+2,M),rI=JZ[rV<<1],tv=JZ[(rV<<1)+1],tt=JZ[Js<<1],rE=JZ[(Js<<1)+1]; +if(JC[rV]!=rv)return 1;if(Math.sign(r(rD-JA,tb-td,tt-rI,rE-tv))!=rv)return 1;if(u(rD-JA,tb-td,tt-rI,rE-tv)=m){h+=JM[M]}var rm=rU-Jy,rn=rJ-Jg,rK=tG-Jy,V$=rT-Jg,Vc=JR-Jy,rb=rO-Jg,rl=r(rm,rn,rK,V$),rB=r(rm,rn,Vc,rb),HI=r(rK,V$,Vc,rb),Hw=rl+HI-rB; +if(rB==rl)return 1;var Jd=HI/(HI-Hw),Jx=rB/(rB-rl),rf=rB*Jd/2;if(rf==0)return 1;var VI=h/rf,i=2-Math.sqrt(4-VI/.3); +rH.ml=T(Jd*i,Jy,rU);rH.mZ=T(Jd*i,Jg,rJ);rH.mk=T(Jx*i,JR,tG);rH.me=T(Jx*i,rO,rT);rH.alpha=i;rH.yC=Jd; +rH._u=Jx;rU=rH.ml;rJ=rH.mZ;tG=rH.mk;rT=rH.me;rH.PU=0;for(Jl=s(F+1,M);Jl!=m;Jl=rV){rV=s(Jl+1,M);var rN=JZ[Jl<<1],rp=JZ[(Jl<<1)+1],rI=JZ[rV<<1],tv=JZ[(rV<<1)+1]; +Jd=A(rU-Jy,rJ-Jg,tG-rU,rT-rJ,JR-tG,rO-rT,rI-rN,tv-rp);if(Jd<-.5)return 1;var rZ=Y(Jd,Jy,rU,tG,JR),$u=Y(Jd,Jg,rJ,rT,rO),rG=t(rI-rN,tv-rp); +if(rG==0)return 1;var rz=r(rI-rN,tv-rp,rZ-rN,$u-rp)/rG;if(Math.abs(rz)>rL)return 1;if(u(rI-rN,tv-rp,rZ-rN,$u-rp)<0||u(rN-rI,rp-tv,rZ-rI,$u-tv)<0){return 1}rH.PU+=rz*rz}for(Jl=F; +Jl!=m;Jl=rV){rV=s(Jl+1,M);var rX=Jl*3+2<<1,rQ=rV*3+2<<1,Hy=Ju[rX],HR=Ju[rX+1],tq=Ju[rQ],HH=Ju[rQ+1]; +Jd=A(rU-Jy,rJ-Jg,tG-rU,rT-rJ,JR-tG,rO-rT,tq-Hy,HH-HR);if(Jd<-.5)return 1;var rZ=Y(Jd,Jy,rU,tG,JR),$u=Y(Jd,Jg,rJ,rT,rO),rG=t(tq-Hy,HH-HR); +if(rG==0)return 1;var rz=r(tq-Hy,HH-HR,rZ-Hy,$u-HR)/rG,rh=r(tq-Hy,HH-HR,JZ[rV<<1]-Hy,JZ[(rV<<1)+1]-HR)/rG; +rh*=.75*n.hc.alpha[rV];if(rh<0){rz=-rz;rh=-rh}if(rz=0;F--){q=Z(n,F,s(m,M),S,O.tdt,JC,JM); +if(q){break}if(U[m]>U[F]+1||U[m]==U[F]+1&&g[m]>g[F]+S.PU){a[m]=F;g[m]=g[F]+S.PU;U[m]=U[F]+1;D[m]=S;S=new J}}}W=U[M]; +JI=new N(W);Jx=new Array(W);Jd=new Array(W);m=M;for(F=W-1;F>=0;F--){var Je=s(m,M),JU=F*3+0<<1,JK=Je*3+0<<1; +if(a[m]==m-1){JI.qd[F]=P.qd[Je];JI.lA[JU]=P.lA[JK];JI.lA[JU+1]=P.lA[JK+1];JI.lA[JU+2]=P.lA[JK+2];JI.lA[JU+3]=P.lA[JK+3]; +JI.lA[JU+4]=P.lA[JK+4];JI.lA[JU+5]=P.lA[JK+5];JI.sE[F<<1]=P.sE[Je<<1];JI.sE[(F<<1)+1]=P.sE[(Je<<1)+1]; +JI.alpha[F]=P.alpha[Je];JI.Lb[F]=P.Lb[Je];JI.Lz[F]=P.Lz[Je];Jx[F]=Jd[F]=1}else{JI.qd[F]="CURVE";JI.lA[JU]=D[m].ml; +JI.lA[JU+1]=D[m].mZ;JI.lA[JU+2]=D[m].mk;JI.lA[JU+3]=D[m].me;JI.lA[JU+4]=P.lA[JK+4];JI.lA[JU+5]=P.lA[JK+5]; +JI.sE[F<<1]=T(D[m]._u,P.lA[JK+4],y[Je<<1]);JI.sE[(F<<1)+1]=T(D[m]._u,P.lA[JK+5],y[(Je<<1)+1]);JI.alpha[F]=D[m].alpha; +JI.Lb[F]=D[m].alpha;Jx[F]=D[m]._u;Jd[F]=D[m].yC}m=a[m]}for(F=0;F"; +for(var r=0;r>>24&255)==0)continue;u+=">0&255,e=V>>8&255,t=V>>16&255,V="rgb("+T+","+e+","+t+")";u+="\" fill=\""+V+"\" fill-rule=\"evenodd\"/>"}u+=""; +return u};$N.ttc=function(H,N,Q){var c=H.length>>1,_,O=H[2*c-3]-Q,L=H[2*c-2]-N,s=H[2*c-1]-Q,r=s>O,V=0; +for(var u=0;uO}for(var u=0;u0&&s>0)continue;if(_<0&&L<0)continue;if(O==s&&Math.min(_,L)<=0)return!0; +if(O==s)continue;var C=_+(L-_)*-O/(s-O);if(C==0)return!0;if(C>0)V++;if(O==0&&r&&s>O)V--;if(O==0&&!r&&sO}return(V&1)==1};$N.fill=function(H,N,Q,c){var _=N[H],O=[H],L=0;while(LQ*Q*2)throw"e"; +var s=O[L];L++;N[s]=c;if(N[s-Q]==_){O.push(s-Q);N[s-Q]=254}if(N[s-1]==_){O.push(s-1);N[s-1]=254}if(N[s+1]==_){O.push(s+1); +N[s+1]=254}if(N[s+Q]==_){O.push(s+Q);N[s+Q]=254}}};var o={};o.Yv=!1;o.PZ=!1;o.VC=!1;o.ql=document.createElement("canvas"); +o.Ia=null;o.Av=null;o.QK=0;(function(){var H={alpha:!0,antialias:!1,depth:!1,premultipliedAlpha:!1},N; +if(!N)N=o.ql.getContext("webgl",H);if(!N)N=o.ql.getContext("experimental-webgl",H);if(N){o.Yv=!0;o.PZ=!0; +o.Ia=N;o.Av=N.createFramebuffer();N.bindFramebuffer(N.FRAMEBUFFER,o.Av);N.disable(N.BLEND);N.disable(N.DEPTH_TEST); +var Q=N.createBuffer();N.bindBuffer(N.ARRAY_BUFFER,Q);N.bufferData(N.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),N.STATIC_DRAW); +N.enableVertexAttribArray(0);N.vertexAttribPointer(0,2,N.FLOAT,!1,0,0)}}());o.ttb=function(H){var N=o.Ia; +if(H>N.getParameter(N.MAX_TEXTURE_SIZE)){o.Yv=!1;alert("Disabling WebGL")}};o.Vb=function(H,N){return new Float32Array([(H.x-N.x)/N.$,(H.y-N.y)/N.z,H.$/N.$,H.z/N.z])}; +o.en=function(){return this.ql};o.jl=function(H,N){var Q=o.Ia;Q.bindFramebuffer(Q.FRAMEBUFFER,o.Av); +Q.framebufferTexture2D(Q.FRAMEBUFFER,Q.COLOR_ATTACHMENT0,Q.TEXTURE_2D,H.La,0);Q.viewport(0,0,H.$,H.z); +if(N){Q.enable(Q.SCISSOR_TEST);Q.scissor(N.x,N.y,N.$,N.z)}else Q.disable(Q.SCISSOR_TEST)};o.PA=function(H,N,Q){if(Q)throw"error"; +var c=o.Ia;c.disable(c.SCISSOR_TEST);c.bindFramebuffer(c.FRAMEBUFFER,null);c.viewport(0,0,H,N);if(Q){c.enable(c.SCISSOR_TEST); +c.scissor(Q.x,Q.y,Math.round(Q.$),Math.round(Q.z))}else c.disable(c.SCISSOR_TEST)};o.clear=function(){var H=o.Ia; +H.clearColor(0,0,0,0);H.clear(H.COLOR_BUFFER_BIT)};o.sk=function(H,N){if(N==null)N=0;var Q=(N>>0&255)==0,c=(N>>8&255)==0,_=(N>>16&255)==0,O=(N>>24&255)==0,L=(H>>0&255)*(1/255),s=(H>>8&255)*(1/255),r=(H>>16&255)*(1/255),u=(H>>24&255)*(1/255),V=o.Ia; +V.colorMask(Q,c,_,O);V.clearColor(L,s,r,u);V.clear(V.COLOR_BUFFER_BIT);V.colorMask(!0,!0,!0,!0)};o.h_=function(H,N,Q,c,_){var O=N.sj(c); +if(_)O=O.sj(_);if(O.km())return;var L=o.Ia;o.jl(H);L.bindTexture(L.TEXTURE_2D,Q.La);L.copyTexSubImage2D(L.TEXTURE_2D,0,O.x-c.x,O.y-c.y,O.x-N.x,O.y-N.y,O.$,O.z)}; +o.tx$=function(H,N,Q){var c=o.Pe[H];if(c==null||c.$!=N||c.z!=Q){if(c)c.delete();c=new o.wf(N,Q)}o.Pe[H]=c; +return c};o.Pe=[];o.YB=function(){this.uX=null;this.Hr=null};o.YB.TV=null;o.YB.prototype.SW=function(H){if(this.Hr)return; +this.Hr={};var N=o.Ia,Q=this.uX,c=this.Hr;for(var _=0;_c)Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,this.$,this.z,0,Q.RGBA,Q.UNSIGNED_BYTE,H); +else{var _=$.I(N.f()*4);$.Pg(H,new p(0,0,this.$,this.z),_,N);Q.texSubImage2D(Q.TEXTURE_2D,0,N.x,N.y,N.$,N.z,Q.RGBA,Q.UNSIGNED_BYTE,_)}}else Q.texImage2D(Q.TEXTURE_2D,0,Q.RGBA,Q.RGBA,Q.UNSIGNED_BYTE,H)}; +o.wf.prototype.get=function(H){var N=o.Ia;o.jl(this);N.readPixels(0,0,this.$,this.z,N.RGBA,N.UNSIGNED_BYTE,H)}; +o.wf.prototype.EX=function(H){if(H.km())return;var N=o.Ia;if(this.QZ==null){this.QZ=N.createTexture(); +this.AU(this.QZ,this.$,this.z);o.Ob++;o.QK+=this.$*this.z*4}N.bindFramebuffer(N.FRAMEBUFFER,o.Av);N.bindTexture(N.TEXTURE_2D,this.QZ); +if(H){var Q=Math.max(H.x,0),c=Math.max(H.y,0);N.copyTexSubImage2D(N.TEXTURE_2D,0,Q,c,Q,c,H.$,H.z)}else N.copyTexImage2D(N.TEXTURE_2D,0,N.RGBA,0,0,this.$,this.z,0)}; +o.wf.prototype.AU=function(H,N,Q){var c=o.Ia;c.bindTexture(c.TEXTURE_2D,H);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,this.tdy?c.LINEAR:c.NEAREST); +c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.NEAREST);c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE); +c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,N,Q,0,c.RGBA,c.UNSIGNED_BYTE,null)}; +o.wf.prototype.delete=function(){var H=o.Ia;if(this.La){H.deleteTexture(this.La);o.Ob--;o.QK-=this.$*this.z*4}if(this.QZ){H.deleteTexture(this.QZ); +o.Ob--;o.QK-=this.$*this.z*4}if(o.VC)if(o.VC)console.log("GL.Channels instances: "+o.Ob+", memory: "+o.QK*4)}; +o.wf.prototype.clone=function(){var H=o.Ia,N=new o.wf(this.$,this.z);o.jl(this);H.bindTexture(H.TEXTURE_2D,N.La); +H.copyTexImage2D(H.TEXTURE_2D,0,H.RGBA,0,0,this.$,this.z,0);return N};o._G={tVe:" vec3 ocbrn(vec3 a, vec3 b, float f) { return mix( ONE3 - min(ONE3,(ONE3-b)/(a*f+ONE3-f)) , ZERO3 , vec3(equal(a ,ZERO3)) ); } ",t$J:" vec3 ocddg(vec3 a, vec3 b, float f) { return mix( min(ONE3, b/(ONE3 - a*f)) , ONE3 , vec3(equal(a*f,ONE3 )) ); } ",ol:"const vec3 ZERO3 = vec3(0.0,0.0,0.0) ;\t\t\tconst vec3 QUAR3 = vec3(0.25,0.25,0.25) ;\t\t\tconst vec3 HALF3 = vec3(0.5,0.5,0.5) ;\t\t\tconst vec3 ONE3 = vec3(1.0,1.0,1.0) ;",Y_:" float hueDiff(float shue, float hue) { \t\t\t\tfloat df = hue-shue, adf=abs(df), df0 = df-1.0, df1 = df+1.0; \t\t\t\tif(abs(df0) < adf) df = df0; \t\t\t\telse if(abs(df1) < adf) df = df1; \t\t\t\treturn df; \t\t\t}",PN:" float hueCF(float hueS, float hue0) { \t\t\t\tfloat df = hueDiff(hue0, hueS)*6.0; \t\t\t\treturn max(0.0, min(1.0, (df<0.0) ? 1.0+df : 1.0-df )); } ",YH:"float sat(vec3 c) { return max(c.x,max(c.y,c.z)) - min(c.x,min(c.y,c.z)); }",If:"float lum(vec3 c) { return dot(c, vec3(0.3,0.59,0.11)); } ",oI:"vec3 D (vec3 x) { return mix( sqrt(x), ((16.0*x-12.0)*x+4.0)*x , vec3(lessThanEqual(x,QUAR3)) ); }",t$D:"float midSat (vec3 v, float s) { return ((v.y-v.z)*s)/(v.x-v.z); }",YG:"vec3 setSat (vec3 c, float s) \t\t\t{\t\t\t\tvec3 o;\t\t\t\tif(c.r==c.g && c.g==c.b) o = ZERO3;\t\t\t\telse if(c.r>c.g) {\t\t\t\t\tif(c.r>c.b) {\t\t\t\t\t\tif(c.g>c.b)\to = vec3(s, midSat(c.rgb,s), 0.0); \t\t\t\t\t\telse\to = vec3(s, 0.0, midSat(c.rbg,s)); \t\t\t\t\t}\t\t\t\t\telse\t\to = vec3(midSat(c.brg,s), 0.0, s); \t\t\t\t} else {\t\t\t\t\tif(c.rc.b)\to = vec3(0.0, s, midSat(c.gbr,s)); \t\t\t\t\t\telse\t o = vec3(0.0, midSat(c.bgr,s), s); \t\t\t\t\t}\t\t\t\t\telse\t\t o = vec3(midSat(c.grb,s), s, 0.0);\t\t\t\t}\t\t\t\treturn o;\t\t\t}",trS:"vec3 clipCol(vec3 c) \t\t\t{ \t\t\t\tvec3 o = c; float l = lum(c); \t\t\t\tfloat n = min(c.r,min(c.g,c.b)); \t\t\t\tfloat x = max(c.r,max(c.g,c.b)); \t\t\t\tif(n<0.0) o = l + (o-l)*(l/(l-n));\t\t\t\tif(x>1.0) o = l + (o-l)*(1.0-l)/(x-l);\t\t\t\treturn o;\t\t\t}",sg:"vec3 setLum (vec3 c, float l) { return clipCol(c+l-lum(c)); } ",Pu:"bool in01(vec2 c) { return (0.0<=c.x) && (c.x<=1.0) && (0.0<=c.y) && (c.y<=1.0); }",hash:"float hash(vec2 v) { return fract(sin(dot(v ,vec2(12.9898,78.233))) * 43758.5453); }",pI:"vec3 rgbToHsl (vec3 rgb) {\t\t\t\tfloat r = rgb.r, g = rgb.g, b = rgb.b; \t\t\t\tfloat mx = max(r, max(g, b)), mn = min(r, min(g, b)); \t\t\t\tfloat h, s, l = (mx + mn) * 0.5;\t\t\t\t\t\t\t\tif(mx == mn) h = s = 0.0; \t\t\t\telse{ \t\t\t\t\tfloat d = mx - mn; \t\t\t\t\ts = l > 0.5 ? d / (2.0 - mx - mn) : d / (mx + mn); \t\t\t\t\t\t\t\t\t\tif(mx==r) h = (g - b) / d + (g < b ? 6.0 : 0.0); \t\t\t\t\telse if(mx==g) h = (b - r) / d + 2.0; \t\t\t\t\telse if(mx==b) h = (r - g) / d + 4.0; \t\t\t\t\t\t\t\t\t\th /= 6.0; \t\t\t\t} \t\t\t\treturn vec3(h,s,l); }",En:"vec3 hslToRgb (float h, float s, float l){\t\t\t\tfloat r, g, b;\t\t\t\t\t\t\t\tif(s == 0.0) r = g = b = l; \t\t\t\telse{ \t\t\t\t\tfloat q = l < 0.5 ? l * (1.0 + s) : l + s - l * s; \t\t\t\t\tfloat p = 2.0 * l - q; \t\t\t\t\tr = hue2rgb(p, q, h + 1.0/3.0); \t\t\t\t\tg = hue2rgb(p, q, h); \t\t\t\t\tb = hue2rgb(p, q, h - 1.0/3.0); \t\t\t\t} \t\t\t\treturn vec3(r,g,b); } ",yU:"float hue2rgb(float p, float q, float t){ \t\t\t\tif(t < 0.0) t += 1.0;\t\t\t\tif(t > 1.0) t -= 1.0;\t\t\t\tif(t < 1.0/6.0) return p + (q - p) * 6.0 * t; \t\t\t\tif(t < 1.0/2.0) return q; \t\t\t\tif(t < 2.0/3.0) return p + (q - p) * (2.0/3.0 - t) * 6.0; \t\t\t\treturn p;\t}",sM:"vec3 rgbToHsv(vec3 rgb){\t\t\t\t\tfloat r = rgb.r, g = rgb.g, b = rgb.b; \t\t\t\tfloat mx = max(r, max(g, b)), mn = min(r, min(g, b)); \t\t\t\tfloat h, s, v = mx; \t\t\t\t\t\t\t\tfloat d = mx - mn; \t\t\t\ts = mx == 0.0 ? 0.0 : d / mx; \t\t\t\t\t\t\t\tif(mx == mn) h = 0.0; \t\t\t\telse if(mx==r) h = (g - b) / d + (g < b ? 6.0 : 0.0); \t\t\t\telse if(mx==g) h = (b - r) / d + 2.0; \t\t\t\telse if(mx==b) h = (r - g) / d + 4.0; \t\t\t\t\t\t\t\th /= 6.0; \t\t\t\treturn vec3(h,s,v); }",pq:"vec3 hsvToRgb(float h, float s, float v) { \t\t\t\tfloat r, g, b, f, p, q, t, i; \t\t\t\ti = floor(h * 6.0); \t\t\t\tf = h * 6.0 - i; \t\t\t\tp = v * (1.0 - s); \t\t\t\tq = v * (1.0 - f * s); \t\t\t\tt = v * (1.0 - (1.0 - f) * s); \t\t\t\t\t\t\t\tif (i==0.0) { r = v, g = t, b = p; }\t\t\t\telse if(i==1.0) { r = q, g = v, b = p; }\t\t\t\telse if(i==2.0) { r = p, g = v, b = t; }\t\t\t\telse if(i==3.0) { r = p, g = q, b = v; }\t\t\t\telse if(i==4.0) { r = t, g = p, b = v; }\t\t\t\telse if(i==5.0) { r = v, g = p, b = q; }\t\t\t\t\t\t\t\treturn vec3(r,g,b); }"}; +o.vs=function(H,N,Q,c,_){if(o.vs.js==null)o.vs.js=new o.vs.VS;var O=N.T.length;if(o.vs.oz["m"+O]==null){o.vs.oz["m"+O]={tdx:new o.wf(O,1),nn:$.I(O*4)}}var L=o.vs.oz["m"+O]; +$.kw(N.T,L.nn,0);$.kw(N.q,L.nn,1);$.kw(N.H,L.nn,2);var s=L.tdx;s.set(L.nn);var r=o.vs.js,u=o.Ia;o.jl(H,_); +H.EX(_);r.QN();r.ON(H.QZ,s.La,Q?1:0,c?1:0);u.drawArrays(u.TRIANGLES,0,6)};o.vs.js=null;o.vs.oz={};o.vs.VS=function(){o.YB.call(this); +var H="\t\t\tprecision mediump float;\t\t\t"+o._G.If+"\t\t\t"+o._G.ol+"\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D map;\t\t\tuniform float toGray;\t\t\tuniform float presLum;\t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tfloat olum = lum(src.rgb); \t\t\t\tsrc.rgb = toGray * vec3(olum) + (1.0-toGray)*src.rgb; \t\t\t\tfloat r = texture2D(map, vec2(src.r, 0)).r;\t\t\t\tfloat g = texture2D(map, vec2(src.g, 0)).g;\t\t\t\tfloat b = texture2D(map, vec2(src.b, 0)).b;\t\t\t\tvec3 col = vec3(r,g,b); \t\t\t\tif(presLum==1.0) { \t\t\t\t\tfloat nlum = lum(col); \t\t\t\t\tif(olum>nlum) col += (olum-nlum)/(1.0-nlum)*(ONE3-col); \t\t\t\t\telse if(nlum==0.0) col = ZERO3; \t\t\t\t\telse col = (olum/nlum) * col; \t\t\t\t}\t\t\t\tgl_FragColor = vec4(col,src.w);\t\t\t\t\t\t\t}",N="\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\tsCoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +this.sA(H,N)};o.vs.VS.prototype=new o.YB;o.vs.VS.prototype.ON=function(H,N,Q,c){this.SW(["source","map","toGray","presLum"]); +var _=o.Ia,O=this.Hr;_.uniform1f(O.toGray,Q);_.uniform1f(O.presLum,c);_.uniform1i(O.source,0);_.uniform1i(O.map,1); +_.activeTexture(_.TEXTURE0);_.bindTexture(_.TEXTURE_2D,H);_.activeTexture(_.TEXTURE1);_.bindTexture(_.TEXTURE_2D,N); +_.activeTexture(_.TEXTURE0)};o.NN=function(H,N,Q,c,_,O){if(o.NN.js==null){o.NN.js=new o.NN.VS;o.NN.ck=new o.wf(256,1); +o.NN.dc=$.I(256*4)}N.o=$.I(256);var L=o.NN.dc;$.GL(N,L);var s=o.NN.ck;s.set(L);var r=o.NN.js,u=o.Ia; +o.jl(H,Q);H.EX(Q);r.QN();r.ON(H.QZ,s.La,c,_,O);u.drawArrays(u.TRIANGLES,0,6)};o.NN.js=null;o.NN.ck=null; +o.NN.dc=null;o.NN.VS=function(){o.YB.call(this);var H="\t\t\tprecision mediump float;\t\t\t"+o._G.yU+"\t\t\t"+o._G.pI+"\t\t\t"+o._G.En+"\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D map;\t\t\tuniform float cfa; \t\t\tuniform float cfb; \t\t\tuniform int colorize; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec3 rgb = cfa*src.rgb + cfb*(1.0-src.rgb);\t\t\t\t\t\t\t\tvec3 hsl = rgbToHsl(rgb); \t\t\t\tfloat h = hsl.r, s = hsl.g, l = hsl.b; \t\t\t\t\t\t\t\tvec4 mapv = texture2D(map, vec2(h, 0));\t\t\t\tfloat nh = mapv.r; \t\t\t\tfloat sc = mapv.g*2.0-1.0; \t\t\t\tfloat lc = mapv.b*2.0-1.0; \t\t\t\t\t\t\t\tfloat ns; \t\t\t\tif(colorize==1) ns = sc; \t\t\t\telse {\t\t\t\t\tif(sc>0.0) sc = tan((3.14159265359/2.0)*sc);\t\t\t\t\tns = min(s * (1.0 + sc), 1.0); \t\t\t\t} \t\t\t\t\t\t\t\tfloat alc = abs(lc); \t\t\t\t\t\t\t\tvec3 zrgb = hslToRgb(nh, min(1.0,ns*(1.0-alc)), l + (lc>0.0 ? 1.0 : -1.0)*min(l, 1.0-l)*s); \t\t\t\tvec3 nrgb = hslToRgb(nh, min(1.0,ns), l); \t\t\t\trgb = nrgb * (1.0-alc) + zrgb * alc; \t\t\t\t\t\t\t\tgl_FragColor = vec4(rgb,src.w); \t\t\t\t\t\t\t}",N="\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\tsCoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +this.sA(H,N)};o.NN.VS.prototype=new o.YB;o.NN.VS.prototype.ON=function(H,N,Q,c,_){this.SW(["source","map","cfa","cfb","colorize"]); +var O=o.Ia,L=this.Hr;O.uniform1f(L.cfa,Q);O.uniform1f(L.cfb,c);O.uniform1i(L.colorize,_);O.uniform1i(L.source,0); +O.uniform1i(L.map,1);O.activeTexture(O.TEXTURE0);O.bindTexture(O.TEXTURE_2D,H);O.activeTexture(O.TEXTURE1); +O.bindTexture(O.TEXTURE_2D,N);O.activeTexture(O.TEXTURE0)};o.EQ=function(H,N,Q,c){if(o.EQ.js==null)o.EQ.js=new o.EQ.VS; +var _=o.EQ.js,O=o.Ia;o.jl(H,c);H.EX(c);_.QN();_.ON(H.QZ,N,Q);O.drawArrays(O.TRIANGLES,0,6)};o.EQ.js=null; +o.EQ.VS=function(){o.YB.call(this);var H="\t\t\tprecision mediump float;\t\t\t"+o._G.yU+"\t\t\t"+o._G.sM+"\t\t\t"+o._G.pq+"\t\t\t"+o._G.pI+"\t\t\t"+o._G.En+"\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform float vib; \t\t\tuniform float sat; \t\t\tconst float PI = 3.141592653; \t\t\t\t\t\tvarying vec2 sCoord;\t\t\t\t\t\tvoid main(void) { \t\t\t\tvec4 src = texture2D(source, sCoord); \t\t\t\tvec3 hsl = rgbToHsv(src.rgb); \t\t\t\tfloat h=hsl.r, s=hsl.g, l=hsl.b; \t\t\t\t\t\t\t\tfloat sk0 = 0.0, sk1 = 45.0/360.0; \t\t\t\tfloat skin = (hlum(b) ? a : b );",over:"return mix( a+(2.0*b -1.0)-a*(2.0*b-1.0) , 2.0*b*a , step(-HALF3,-b) );",sLit:"return mix( b+(2.0*a -1.0)*(D(b)-b) , b-(1.0-2.0*a)*b*(1.0-b) , step(-HALF3,-a) );",hLit:"return mix( b+(2.0*a -1.0)-b*(2.0*a-1.0) , 2.0*a*b , step(-HALF3,-a) );",vLit:" return mix( ocddg(2.0*a-1.0,b,f) , ocbrn(2.0*a,b,f) , vec3(greaterThanEqual(HALF3,a))); ",lLit:"return mix( min(ONE3, (2.0*a-1.0)*f+b) , max(ZERO3, 2.0*a*f+b-f) , step(-HALF3,-a));",pLit:"return mix( max(2.0*a-1.0,b) , min(2.0*a, b) , step(-HALF3,-a) );",hMix:"if(f>0.99) return vec3(greaterThanEqual(a+b,ONE3)); return min( ONE3, max(ZERO3, (b+a*f-f)/(1.0-f+1e-6) )) ; ",diff:"return abs(a*f-b);",smud:"return a+b-2.0*a*b;",fsub:"return max(b-a, ZERO3);",fdiv:"return min(b/a, ONE3);","hue ":"return setLum( setSat(a, sat(b)) , lum(b) ); ","sat ":"return setLum( setSat(b, sat(a)) , lum(b) ); ",colr:"return setLum( a, lum(b) ); ","lum ":"return setLum( b, lum(a) ); "}; +o.a.VS=function(H){o.YB.call(this);var N="\t\t\tprecision mediump float;\t\t\t"+o._G.ol+"\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform float alpha;\t\t\tuniform float fill;\t\t\tuniform float style;\t\t\tuniform float keepBGA;\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\t\t\t\t\t\t\t"+o._G.YH+"\t\t\t"+o._G.If+"\t\t\t"+o._G.oI+"\t\t\t"+o._G.tVe+"\t\t\t"+o._G.t$J+"\t\t\t"+o._G.t$D+"\t\t\t"+o._G.YG+"\t\t\t"+o._G.trS+"\t\t\t"+o._G.sg+"\t\t\t"+o._G.hash+"\t\t\t\t\t\tvec3 BB(vec3 a, vec3 b, float f) { "+o.a.Xc[H]+" } \t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 tgt = texture2D(target, tCoord);\t\t\t\tvec4 src = texture2D(source, sCoord);",Q="\t\t\tattribute vec2 verPos;\t\t\tuniform vec4 srct;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (verPos-srct.xy)/srct.zw;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +if(H=="diss")N+="\t\t\t\t\tgl_FragColor = (hash(tCoord) >= (keepBGA + (1.0-keepBGA)*src.w)*alpha ? tgt : vec4(src.xyz, keepBGA*tgt.w + (1.0-keepBGA))); }"; +else N+=" \t\t\t\t\tfloat as = (keepBGA + (1.0-keepBGA)*src.w) * alpha, at = keepBGA + (1.0-keepBGA)*tgt.w; \t\t\t\t\tfloat ats = at * (1.0-as), ao = as + ats, iao = (ao==0.0) ? 0.0 : (1.0/ao); \t\t\t\t\tfloat ccf = (style==1.0) ? 1.0 : as; \t\t\t\t\tvec3 ncl = ( (1.0-at)*as*src.xyz + (1.0-ccf)*at*tgt.xyz + ccf*at*BB(src.xyz, tgt.xyz, (1.0+as-ccf)*fill) ) * iao;\t\t\t\t\tgl_FragColor = vec4(ncl, keepBGA*tgt.w + (1.0-keepBGA)*(as*fill + at*(1.0-as*fill)));\t\t\t\t\t\t\t}"; +this.sA(N,Q)};o.a.VS.prototype=new o.YB;o.a.VS.prototype.ON=function(H,N,Q,c,_,O,L){this.SW("srct alpha source target fill style keepBGA".split(" ")); +var s=o.Ia,r=this.Hr;s.uniform4fv(r.srct,Q);s.uniform1f(r.alpha,c);s.uniform1f(r.fill,_);s.uniform1f(r.style,O); +s.uniform1f(r.keepBGA,L);s.uniform1i(r.source,0);s.uniform1i(r.target,1);s.activeTexture(s.TEXTURE0); +s.bindTexture(s.TEXTURE_2D,H);s.activeTexture(s.TEXTURE1);s.bindTexture(s.TEXTURE_2D,N);s.activeTexture(s.TEXTURE0)}; +o.a.eY=function(H,N){o.YB.call(this);this.tTG=H;this.LZ=N;var Q="\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D source;\t\t\tuniform sampler2D target;\t\t\tuniform sampler2D weight;\t\t\tuniform float wcolor;\t\t\tuniform float awg; /* additional weight */\t\t\tuniform float dissv;\t\t\t\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 wCoord;\t\t\t\t\t\t"+o._G.Pu+"\t\t\t"+o._G.hash+"\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec4 tgt = texture2D(target, tCoord);\t\t\t\tvec4 src = "+(H?"texture2D(source, sCoord)":"vec4(0.0)")+"; \t\t\t\tfloat wg = awg "+(N?"* (in01(wCoord) ? texture2D(weight, wCoord).w : wcolor)":"")+";\t\t\t\t"+(H?"":"wg = 1.0-wg;")+"\t\t\t\tfloat hwg = hash(tCoord)>=wg ? 0.0 : 1.0; wg = dissv*hwg + (1.0-dissv)*wg; \t\t\t\tfloat as = wg*src.w, at = (1.0-wg)*tgt.w, ao = as+at;\t\t\t\t\t\t\t\tgl_FragColor = vec4( (as*src.xyz + at*tgt.xyz)/ao, ao ); \t\t\t}",c="\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 tCoord;\t\t\tvarying vec2 sCoord;\t\t\tvarying vec2 wCoord;\t\t\t\t\t\tuniform vec4 srct;\t\t\tuniform vec4 wrct;\t\t\tvoid main(void) {\t\t\t\ttCoord = verPos;\t\t\t\tsCoord = (verPos-srct.xy)/srct.zw;\t\t\t\twCoord = (verPos-wrct.xy)/wrct.zw;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +this.sA(Q,c)};o.a.eY.prototype=new o.YB;o.a.eY.prototype.ON=function(H,N,Q,c,_,O,L,s){if(this.LZ)this.SW("srct wrct wcolor awg dissv source target weight".split(" ")); +else this.SW(["srct","awg","dissv","source","target"]);var r=o.Ia,u=this.Hr;r.uniform4fv(u.srct,c);if(this.LZ){r.uniform4fv(u.wrct,_); +r.uniform1f(u.wcolor,O)}r.uniform1f(u.awg,L);r.uniform1f(u.dissv,s);r.uniform1i(u.source,0);r.uniform1i(u.target,1); +if(this.LZ)r.uniform1i(u.weight,2);r.activeTexture(r.TEXTURE0);r.bindTexture(r.TEXTURE_2D,H);r.activeTexture(r.TEXTURE1); +r.bindTexture(r.TEXTURE_2D,N);if(this.LZ){r.activeTexture(r.TEXTURE2);r.bindTexture(r.TEXTURE_2D,Q)}r.activeTexture(r.TEXTURE0)}; +o.a.XT=function(){o.YB.call(this);var H="\t\t\tprecision mediump float;\t\t\t\t\t\tuniform sampler2D prev;\t\t\tuniform sampler2D next;\t\t\tuniform sampler2D alpha;\t\t\t\t\t\tvarying vec2 coord;\t\t\t\t\t\t\t\t\tvoid main(void) {\t\t\t\tvec3 or = texture2D(prev , coord).rgb;\t\t\t\tvec3 ir = texture2D(next , coord).rgb; \t\t\t\tfloat al = texture2D(alpha, coord).w; \t\t\t\tgl_FragColor = vec4( (ir-(1.0-al)*or)*(1.0/al) ,1.0 ); \t\t\t}",N="\t\t\tattribute vec2 verPos;\t\t\tvarying vec2 coord;\t\t\t\t\t\tuniform vec4 rct;\t\t\tvoid main(void) {\t\t\t\tcoord = verPos;\t\t\t\tgl_Position = vec4(vec2(-1.0,-1.0) + 2.0*verPos, 0.0, 1.0);\t\t\t}"; +this.sA(H,N)};o.a.XT.prototype=new o.YB;o.a.XT.prototype.ON=function(H,N,Q,c){this.SW(["rct","prev","next","alpha"]); +var _=o.Ia,O=this.Hr;_.uniform4fv(O.rct,[0,0,1,1]);_.uniform1i(O.prev,0);_.uniform1i(O.next,1);_.uniform1i(O.alpha,2); +_.activeTexture(_.TEXTURE0);_.bindTexture(_.TEXTURE_2D,N);_.activeTexture(_.TEXTURE1);_.bindTexture(_.TEXTURE_2D,Q); +_.activeTexture(_.TEXTURE2);_.bindTexture(_.TEXTURE_2D,c);_.activeTexture(_.TEXTURE0)};function E(H,N){if(!H)H=0; +if(!N)N=0;this.x=H;this.y=N}E.prototype.add=function(H){return new E(this.x+H.x,this.y+H.y)};E.prototype.clone=function(){return new E(this.x,this.y)}; +E.prototype.py=function(H){this.x=H.x;this.y=H.y};E.prototype.v$=function(H){return this.x==H.x&&this.y==H.y}; +E.prototype.normalize=function(H){var N=Math.sqrt(this.x*this.x+this.y*this.y);this.x*=H/N;this.y*=H/N}; +E.prototype.offset=function(H,N){this.x+=H;this.y+=N};E.prototype.kR=function(H,N){this.x=H;this.y=N}; +E.prototype.Tr=function(H){return new E(this.x-H.x,this.y-H.y)};E.Ln=function(H,N){return E.trE(H.x,H.y,N.x,N.y)}; +E.iv=function(H,N,Q){return new E(H.x+Q*(N.x-H.x),H.y+Q*(N.y-H.y))};E.txy=function(H,N){return new E(H*Math.cos(N),H*Math.sin(N))}; +E.trE=function(H,N,Q,c){return Math.sqrt((Q-H)*(Q-H)+(c-N)*(c-N))};E.XP={};E.PR={};E.XP.create=function(){var H=new Float32Array(4); +return H};E.PR.create=function(H){var N=new Float32Array(16);N[0]=N[5]=N[10]=N[15]=1;if(H)E.PR.set(H,N); +return N};E.XP.add=function(H,N,Q){Q[0]=H[0]+N[0];Q[1]=H[1]+N[1];Q[2]=H[2]+N[2];Q[3]=H[3]+N[3]};E.XP.set=function(H,N){N[0]=H[0]; +N[1]=H[1];N[2]=H[2];N[3]=H[3]};E.PR.set=function(H,N){N[0]=H[0];N[1]=H[1];N[2]=H[2];N[3]=H[3];N[4]=H[4]; +N[5]=H[5];N[6]=H[6];N[7]=H[7];N[8]=H[8];N[9]=H[9];N[10]=H[10];N[11]=H[11];N[12]=H[12];N[13]=H[13];N[14]=H[14]; +N[15]=H[15]};E.PR.multiply=function(H,N,Q){var c=H[0],_=H[1],O=H[2],L=H[3],s=H[4],r=H[5],u=H[6],V=H[7],C=H[8],T=H[9],e=H[10],t=H[11],Y=H[12],A=H[13],G=H[14],j=H[15],d=N[0],w=N[1],f=N[2],b=N[3]; +Q[0]=d*c+w*s+f*C+b*Y;Q[1]=d*_+w*r+f*T+b*A;Q[2]=d*O+w*u+f*e+b*G;Q[3]=d*L+w*V+f*t+b*j;d=N[4];w=N[5];f=N[6]; +b=N[7];Q[4]=d*c+w*s+f*C+b*Y;Q[5]=d*_+w*r+f*T+b*A;Q[6]=d*O+w*u+f*e+b*G;Q[7]=d*L+w*V+f*t+b*j;d=N[8];w=N[9]; +f=N[10];b=N[11];Q[8]=d*c+w*s+f*C+b*Y;Q[9]=d*_+w*r+f*T+b*A;Q[10]=d*O+w*u+f*e+b*G;Q[11]=d*L+w*V+f*t+b*j; +d=N[12];w=N[13];f=N[14];b=N[15];Q[12]=d*c+w*s+f*C+b*Y;Q[13]=d*_+w*r+f*T+b*A;Q[14]=d*O+w*u+f*e+b*G;Q[15]=d*L+w*V+f*t+b*j; +return Q};E.PR.inverse=function(H,N){var Q=H[0],c=H[1],_=H[2],O=H[3],L=H[4],s=H[5],r=H[6],u=H[7],V=H[8],C=H[9],T=H[10],e=H[11],t=H[12],Y=H[13],A=H[14],G=H[15],j=Q*s-c*L,d=Q*r-_*L,w=Q*u-O*L,f=c*r-_*s,b=c*u-O*s,F=_*u-O*r,n=V*Y-C*t,J=V*A-T*t,Z=V*G-e*t,P=C*A-T*Y,M=C*G-e*Y,y=T*G-e*A,a=j*y-d*M+w*P+f*Z-b*J+F*n; +if(!a){return null}a=1/a;N[0]=(s*y-r*M+u*P)*a;N[1]=(_*M-c*y-O*P)*a;N[2]=(Y*F-A*b+G*f)*a;N[3]=(T*b-C*F-e*f)*a; +N[4]=(r*Z-L*y-u*J)*a;N[5]=(Q*y-_*Z+O*J)*a;N[6]=(A*w-t*F-G*d)*a;N[7]=(V*F-T*w+e*d)*a;N[8]=(L*M-s*Z+u*n)*a; +N[9]=(c*Z-Q*M-O*n)*a;N[10]=(t*b-Y*w+G*j)*a;N[11]=(C*w-V*b-e*j)*a;N[12]=(s*J-L*P-r*n)*a;N[13]=(Q*P-c*J+_*n)*a; +N[14]=(Y*d-t*f-A*j)*a;N[15]=(V*f-C*d+T*j)*a;return N};E.PR.txD=function(H,N,Q){var c=N[0],_=N[1];Q[0]=c*H[0]+_*H[4]+H[12]; +Q[1]=c*H[1]+_*H[5]+H[13]};E.PR.txP=function(H,N,Q){var c=N[0],_=N[1],O=N[2],L=N[3];Q[0]=H[0]*c+H[4]*_+H[8]*O+H[12]*L; +Q[1]=H[1]*c+H[5]*_+H[9]*O+H[13]*L;Q[2]=H[2]*c+H[6]*_+H[10]*O+H[14]*L;Q[3]=H[3]*c+H[7]*_+H[11]*O+H[15]*L}; +function Jo(H,N,Q,c,_,O){if(typeof H==="undefined"){H=1;N=0;Q=0;c=1;_=0;O=0}this.o=H;this.H=N;this.lA=Q; +this.KI=c;this.DX=_;this.Ug=O}Jo.prototype.ka=function(){return Math.sqrt(Math.abs(this.o*this.KI-this.H*this.lA))}; +Jo.prototype.dZ=function(){var H=this,N=Math.round;H.o=N(H.o);H.H=N(H.H);H.lA=N(H.lA);H.KI=N(H.KI);H.DX=N(H.DX); +H.Ug=N(H.Ug)};Jo.prototype.Sk=function(H){return new E(H.x*this.o+H.y*this.lA+this.DX,H.x*this.H+H.y*this.KI+this.Ug)}; +Jo.prototype.translate=function(H,N){this.DX+=H;this.Ug+=N};Jo.prototype.rotate=function(H){var N=new Jo(Math.cos(H),-Math.sin(H),Math.sin(H),Math.cos(H),0,0); +this.concat(N)};Jo.prototype.scale=function(H,N){var Q=new Jo(H,0,0,N,0,0);this.concat(Q)};Jo.prototype.concat=function(H){this.py(new Jo(this.o*H.o+this.H*H.lA,this.o*H.H+this.H*H.KI,this.lA*H.o+this.KI*H.lA,this.lA*H.H+this.KI*H.KI,this.DX*H.o+this.Ug*H.lA+H.DX,this.DX*H.H+this.Ug*H.KI+H.Ug))}; +Jo.prototype.UK=function(){var H=this.o*this.KI-this.H*this.lA;this.py(new Jo(this.KI/H,-this.H/H,-this.lA/H,this.o/H,(this.lA*this.Ug-this.KI*this.DX)/H,(this.H*this.DX-this.o*this.Ug)/H))}; +Jo.prototype.clone=function(){return new Jo(this.o,this.H,this.lA,this.KI,this.DX,this.Ug)};Jo.prototype.py=function(H){this.o=H.o; +this.H=H.H;this.lA=H.lA;this.KI=H.KI;this.DX=H.DX;this.Ug=H.Ug};function JY(){}JY._r=function(H,N,Q,c){var _=Q,O=x.vq(H,Q); +Q+=4+2*O.length;if(O!="\0")N.__name=O;if(c)console.log("---------------------",O,O.length);N.classID=JY.pM(H,Q); +if(c)console.log("- reading descriptor",N.classID,Q);Q+=4+Math.max(4,N.classID.length);var L=x.eI(H,Q); +Q+=4;if(c)console.log(3,Q);for(var s=0;s1e3)return"blbost...";if(Q==0)Q=4;return x.sx(H,N+4,Q).trim()}; +JY.pp=function(H,N,Q){if(Q.length<=4&&Q!="warp"&&Q!="list"&&Q!="Comp")x.qe(H,N,0);else x.qe(H,N,Q.length); +x.np(H,N+4,Q);if(Q.length<4){var c="";for(var _=Q.length;_<4;_++)c+=" ";x.np(H,N+4+Q.length,c)}};JY.trk=function(H){var N={}; +for(var Q in H){if(Q=="classID")N[Q]=H[Q];else if(Q=="__name")N[Q]=H[Q];else N[Q]=JY.GR(H[Q])}return N}; +JY.GR=function(H){if(H.yC=="Objc")return JY.trk(H.v);else if(H.yC=="VlLs"){var N=[];for(var Q=0;Q=12)c[s].kE=x.sx(H,N+8,4); +break;case"lsdk":c.lsct={type:x.j(H,N)};break;case"lyvr":c[s]=x.j(H,N);break;case"lnsr":var C={artb:1,bgnd:1,cont:1,layr:1,lset:1,rend:1,shap:1,user:1,____:null}; +c[s]=x.sx(H,N,4);break;case"lspf":c[s]=x.j(H,N);break;case"lclr":c[s]=x.NU(H,N);break;case"luni":c[s]=x.vq(H,N); +break;case"fxrp":c[s]=new E(x.FD(H,N),x.FD(H,N+8));break;case"artb":case"artd":c[s]={};JY._r(H,c[s],N+4); +break;case"SoCo":c[s]={};JY._r(H,c[s],N+4);break;case"GdFl":c[s]={};JY._r(H,c[s],N+4);tE.Xx(c[s],s); +break;case"PtFl":c[s]={};JY._r(H,c[s],N+4);tE.Xx(c[s],s);break;case"CgEd":c[s]={};JY._r(H,c[s],N+4); +break;case"brit":c[s]={};c[s].Pk=x.kF(H,N);c[s].dy=x.kF(H,N+2);c[s].ul=x.kF(H,N+4);c[s].uz=H[N+6];break; +case"levl":var T=H.buffer.slice(N,N+r);c[s]=$R.Fp(T);break;case"curv":c[s]=HC.Nd(H,N,r);break;case"expA":var e=x.NU(H,N); +c[s]=[x.Fg(H,N+2),x.Fg(H,N+6),x.Fg(H,N+10)];break;case"vibA":c[s]={};JY._r(H,c[s],N+4);break;case"hue2":c[s]=$p.Nd(H,N,r); +break;case"blnc":c[s]={fY:[],If:H[N+18]==1};for(var V=0;V<3;V++){var t=[];c[s].fY.push(t);for(var Y=0; +Y<3;Y++)t.push(x.kF(H,N+V*6+Y*2))}break;case"blwh":c[s]={};JY._r(H,c[s],N+4);break;case"phfl":c[s]={}; +var e=x.NU(H,N);if(e==3)c[s].mB=[x.Fg(H,N+2),x.Fg(H,N+6),x.Fg(H,N+10)];if(e==2)c[s].color={L_:x.NU(H,N+2),Dq:[x.kF(H,N+4),x.kF(H,N+6),x.kF(H,N+8),x.kF(H,N+10)]}; +var A=N+2+(e==3?12:10);c[s].mC=x.j(H,A);A+=4;c[s].uT=H[A]==1;break;case"mixr":c[s]={_J:x.NU(H,N+2)==1,R:[]}; +for(var V=0;V<20;V++)c[s].R.push(x.kF(H,N+4+V*2));break;case"clrL":c[s]={};JY._r(H,c[s],N+6);break;case"nvrt":c[s]=1; +break;case"post":c[s]=x.NU(H,N);break;case"thrs":c[s]=x.NU(H,N);break;case"grdm":var G={classID:"Grdn",Clrs:{t:"VlLs",v:[]},GrdF:{yC:"enum",v:{GrdF:"CstS"}},Intr:{t:"doub",v:4096},Nm:{t:"TEXT",v:""},Trns:{t:"VlLs",v:[]}}; +c[s]={rev:H[N+2]==1,mz:H[N+3]==1,e:G};var j=N+4;G.Nm.v=x.vq(H,j);j+=4+G.Nm.v.length*2;var d=x.NU(H,j); +j+=2;for(var V=0;V>0&1)==1;a.WZ=(g>>1&1)==0;a.isEnabled=(g>>2&1)==0; +a.L=to.GN(H,N+8,r-8,O.$,O.z);break;case"shmd":c[s]={};var D=x.j(H,N),A=N+4;for(var V=0;V>0&1){r=N[Q];Q++}if(e>>1&1){u=x.FD(N,Q);Q+=8}if(e>>2&1){V=N[Q];Q++}if(e>>3&1){C=x.FD(N,Q); +Q+=8}if((Q-T&1)==1)Q++;H._P=[r,u,V,C]}else{if(c==20)Q+=2;else{H.qz=VF.Gv(N,Q);Q+=18}}return _+c};VF.twv=function(H,N,Q){x.u(N,Q,0); +Q+=4;if(H.d==null)return Q;var c=Q,_=!0;x.u(N,Q,0);x.lW(N,Q,H.d.rect);Q+=16;x.tk(N,Q,H.d.color);Q+=1; +VF.Gz(H.d,N,Q,_);Q+=1;if(_){if(H.qz){VF.twE(N,Q,H.qz);Q+=18}x.tk(N,Q,15);Q+=1;var O=H.Ab(),L=H.add.vmsk; +x.tk(N,Q,O?O.JU:255);Q+=1;x.GP(N,Q,O?O.jQ:0);Q+=8;x.tk(N,Q,L?L.JU:255);Q+=1;x.GP(N,Q,L?L.jQ:0);Q+=8; +Q++;x.u(N,c-4,Q-c)}return Q};VF.Gv=function(H,N){var Q=new R.qu;VF.GK(Q,H,N);N+=1;Q.color=H[N];N+=1; +Q.rect=x.uq(H,N);N+=16;return Q};VF.twE=function(H,N,Q){VF.Gz(Q,H,N,!1);N+=1;x.tk(H,N,Q.color);N+=1; +x.lW(H,N,Q.rect);N+=16};VF.GK=function(H,N,Q){var c=N[Q];H.WZ=(c>>0&1)==0;H.isEnabled=(c>>1&1)==0;H.iV=(c>>3&1)==1; +return c>>4&1};VF.Gz=function(H,N,Q,c){var _=0;if(!H.WZ)_+=1<<0;if(!H.isEnabled)_+=1<<1;if(H.iV)_+=1<<3; +if(c)_+=1<<4;x.tk(N,Q,_)};VF.tyt=function(H,N,Q){var c=x.j(N,Q);Q+=4;if(c!=5*8)console.log("unexpected Layer Blending Ranges content, size:",c); +H.gA=[];for(var _=0;_0; +s=O,Q-=V){C=Q<128?Q:128;if(s<=r-3&&H[s+1]==H[s+0]&&H[s+2]==H[s+0]){for(O=s+3;O=128){var r=H[N++],u=_+(257-s);c.fill(r,_,u);_=u;L+=2}else{var u=_+(1+s);while(_>>1];if(_)_.nb=x.NU(Q,L)}}if(N.TP.r1032){var Q=N.TP.r1032,s=x.j(Q,12); +for(var L=0;L0){var Y=H.add.Txt2?H.add.Txt2.gz:null;H.add.Txt2={};H.add.Txt2.gz=rM.tPy(c,null,Y)}var A=H.add.lnk2; +if(A){var G=H.add.lnk2=[];for(var r=0;r".charCodeAt(0)){Q+=2;break}else{var r=H[Q];if(r==10||r==9||r==32)Q++; +else{console.log("unknown byte: "+r+", char: "+String.fromCharCode(r),Q);Q++}}}return Q};HG.kH=function(H,N,Q,c){x.np(N,Q,"<<\n"); +Q+=3;var _=HG.ttB;for(var O in H){x.tk(N,Q,"\t".charCodeAt(0),c+1);Q+=c+1;x.np(N,Q,"/"+O);Q+=1+O.length; +if(_(H[O])||H[O]instanceof Array){x.np(N,Q," ");Q++}else{x.np(N,Q,"\n");Q++;x.tk(N,Q,"\t".charCodeAt(0),c+1); +Q+=c+1}Q=HG.qY(H[O],N,Q,c+1);x.np(N,Q,"\n");Q++}x.tk(N,Q,"\t".charCodeAt(0),c);Q+=c;x.np(N,Q,">>");Q+=2; +return Q};HG.eb=function(H,N,Q,c){var _=N,O={size:0,R:0};while(!0){while(H[N]==" ".charCodeAt(0)||H[N]=="\t".charCodeAt(0)||H[N]=="\n".charCodeAt(0))N++; +if(H[N]=="<".charCodeAt(0)){O.R={};N=HG.Uo(H,O.R,N,Q+1);break}else if(H[N]=="(".charCodeAt(0)){N+=3; +var L=N;while(!0){if(H[L]==")".charCodeAt(0)&&(H[L+1]=="\n".charCodeAt(0)||H[L+1]==" ".charCodeAt(0)))break; +else L++}O.R=x.Gm(H,N,L);N=L+2;break}else if(H[N]=="[".charCodeAt(0)){N++;O.R=[];while(H[N]==" ".charCodeAt(0)||H[N]=="\t".charCodeAt(0)||H[N]=="\n".charCodeAt(0))N++; +while(H[N]!="]".charCodeAt(0)){var s=HG.eb(H,N,Q+1,c);O.R.push(s.R);N+=s.size;while(H[N]==" ".charCodeAt(0)||H[N]=="\t".charCodeAt(0)||H[N]=="\n".charCodeAt(0))N++}N++; +break}else{var r=x.indexOf(H," ".charCodeAt(0),N,N+50),u=x.indexOf(H,"\n".charCodeAt(0),N,N+50);if(u==-1)u=Infinity; +if(r==-1)r=Infinity;var V=x.sx(H,N,Math.min(r,u)-N).trim(),C=parseFloat(V);if(!isNaN(C)){O.R=parseFloat(V); +N=Math.min(r,u)+1;break}else if(V=="true"||V=="false"){O.R=V=="true";N=Math.min(r,u)+1;break}else console.log("unknown identifier: "+V); +N=Math.min(r,u)+1}}O.size=N-_;return O};HG.qY=function(H,N,Q,c){if(H instanceof Array){var _=H.length==0||typeof H[0]=="number"; +if(_){x.np(N,Q,"[ ");Q+=2;for(var O=0;O0)c.Fy=JV.tJ$(N,Q,s,O,_);Q+=s;var r=x.sx(N,Q,8); +Q+=8;var u=x.j(N,Q);Q+=4;if(u>0)c.nw=JV.trx(N,Q,u);Q+=u;var V=x.sx(N,Q,8);Q+=8;var C=x.j(N,Q);Q+=4;if(C>0){var T={}; +JY._r(N,T,Q+4);c.list=T.Brsh.v}Q+=C;var e=c.list;for(var t=0;t>>s&1;if(r){if(O==0){var u=HC.Gk(H,N);N+=2+2*u.length}else{var u=HC.two(H,N); +N+=256}_.push(u)}else _.push(O==0?[0,0,255,255]:HC.tHN())}return _};HC.tHN=function(){var H=[];for(var N=0; +N<256;N++)H.push(N);return H};HC.Gk=function(H,N){var Q=[],c=x.NU(H,N);N+=2;for(var _=0;_1){}if(t){if(t.v.masterFXSwitch==null)t.v.masterFXSwitch={t:"bool",v:!0}; +tE.Xd(t.v)}}return c};$j.QU=function(H){var N=new th,Q=0;x.kW(N,Q,2);Q+=2;x.np(N,Q,"8BSL");Q+=4;x.kW(N,Q,3); +Q+=2;var c=Q;Q+=4;for(var _=0;_>>2)}else if(c==3){r=new Float32Array(L*s*2); +var u=0,V=0,C=!0;Q=32;while(Q=0;Q--)N+=String.fromCharCode(H>>Q*8&255);return N};x.twj=function(H){var N=0;for(var Q=H.length-1; +Q>=0;Q--)N|=H.charCodeAt(Q)<<(3-Q)*8;return N};x.indexOf=function(H,N,Q,c){if(Q==null)Q=0;if(c==null)c=H.length; +c=Math.min(c,H.length);for(var _=Q;_65535)return"";var c=x.tIN(H,N,Q-1);return{_u:c,NK:4+Q}}; +x.tyF=function(H,N){var Q=x.UD(H,N);N+=4;if(Q>65535)return"";var c=x.tIC(H,N,Q);return c};x.vq=function(H,N){var Q=x.j(H,N); +N+=4;if(Q>65535)return"";var c=x.Gu(H,N,Q);return c};x.tDE=function(H,N,Q){x.Fc(H,N,Q.length);N+=4;x.tIe(H,N,Q)}; +x.tcw=function(H,N,Q){x.nW(H,N,Q.length);N+=4;x.xt(H,N,Q)};x.ES=function(H,N,Q){H.VX(N,4+2*Q.length); +x.tcw(H.data,N,Q)};x.tcS=function(H,N,Q){H.VX(N,4+2*Q.length);x.tDE(H.data,N,Q)};x.tcE=function(H,N,Q){var c=[]; +for(var _=0;_>8&255;H[N+1]=Q&255};x.kW=function(H,N,Q){H.VX(N,4);x.Ag(H.data,N,Q)};x.$R=function(H,N){return H[N+1]<<8|H[N]}; +x.ey=function(H,N,Q){H[N+1]=Q>>8&255;H[N]=Q&255};x.Fl=function(H,N,Q){H.VX(N,4);x.ey(H.data,N,Q)};x.kF=function(H,N){x.ed[0]=H[N+1]; +x.ed[1]=H[N];return x.Xe[0]};x.tcU=function(H,N){x.ed[0]=H[N];x.ed[1]=H[N+1];return x.Xe[0]};x._s=x.Ag; +x.eL=x.kW;x.eI=function(H,N){x.NZ[0]=H[N+3];x.NZ[1]=H[N+2];x.NZ[2]=H[N+1];x.NZ[3]=H[N];return x.$F[0]}; +x.nU=function(H,N,Q){x.$F[0]=Q;H[N+3]=x.NZ[0];H[N+2]=x.NZ[1];H[N+1]=x.NZ[2];H[N+0]=x.NZ[3]};x.qe=function(H,N,Q){H.VX(N,4); +x.nU(H.data,N,Q)};x.eC=function(H,N){x.NZ[0]=H[N+0];x.NZ[1]=H[N+1];x.NZ[2]=H[N+2];x.NZ[3]=H[N+3];return x.$F[0]}; +x.x$=function(H,N,Q){x.$F[0]=Q;H[N+0]=x.NZ[0];H[N+1]=x.NZ[1];H[N+2]=x.NZ[2];H[N+3]=x.NZ[3]};x.tLC=function(H,N,Q){H.VX(N,4); +x.x$(H.data,N,Q)};x.j=function(H,N){var Q=H[N]*(256*256*256)+(H[N+1]<<16|H[N+2]<<8|H[N+3]);return Q}; +x.nW=function(H,N,Q){H[N]=Q>>24&255;H[N+1]=Q>>16&255;H[N+2]=Q>>8&255;H[N+3]=Q>>0&255};x.u=function(H,N,Q){H.VX(N,4); +x.nW(H.data,N,Q)};x.pK=function(H,N){return x.j(H,N)<<32|x.j(H,N+4)};x.tLP=function(H,N,Q){x.nW(H,N,Q>>16>>16); +x.nW(H,N+4,Q&4294967295)};x.XA=function(H,N,Q){H.VX(N,8);x.tLP(H.data,N,Q)};x.UD=x.eC;x.Fc=x.x$;x.GI=x.tLC; +x.FD=function(H,N){var Q=new Uint8Array(8);for(var c=0;c<8;c++)Q[c]=H[N+7-c];var _=new Float64Array(Q.buffer); +return _[0]};x.tLv=function(H,N){var Q=new Uint8Array(8);for(var c=0;c<8;c++)Q[c]=H[N+c];var _=new Float64Array(Q.buffer); +return _[0]};x.GC=function(H,N,Q){var c=new Float64Array(1);c[0]=Q;var _=new Uint8Array(c.buffer);for(var O=0; +O<4;O++){var L=_[O];_[O]=_[7-O];_[7-O]=L}for(var O=0;O<8;O++)H[N+O]=_[O]};x.GP=function(H,N,Q){H.VX(N,8); +x.GC(H.data,N,Q)};x.Fg=function(H,N){x.NZ[0]=H[N+3];x.NZ[1]=H[N+2];x.NZ[2]=H[N+1];x.NZ[3]=H[N+0];return x.eG[0]}; +x.xJ=function(H,N){x.NZ[0]=H[N+0];x.NZ[1]=H[N+1];x.NZ[2]=H[N+2];x.NZ[3]=H[N+3];return x.eG[0]};x.q_=function(H,N,Q){x.eG[0]=Q; +H[N+0]=x.NZ[3];H[N+1]=x.NZ[2];H[N+2]=x.NZ[1];H[N+3]=x.NZ[0]};x.XU=function(H,N,Q){H.VX(N,4);x.q_(H.data,N,Q)}; +x.Xk=function(H,N,Q){x.eG[0]=Q;H[N+0]=x.NZ[0];H[N+1]=x.NZ[1];H[N+2]=x.NZ[2];H[N+3]=x.NZ[3]};x.txo=function(H,N,Q){H.VX(N,4); +x.Xk(H.data,N,Q)};x.$w=function(H,N){var Q=x.eI(H,N)/16777215;return Q};x.xl=function(H,N,Q){x.nU(H,N,Math.floor(Q*16777215))}; +x.tRg=function(H,N,Q){H.VX(N,4);x.xl(H.data,N,Q)};x.$T=function(H,N){var Q=H[N],c=x.sx(H,N+1,Q);Q+=1-Q%2; +return{oJ:c,length:Q+1}};x.tLq=function(H,N,Q){var c=Q.length;H[N]=c;x.Fo(H,N+1,Q);if(c%2==0){H[N+1+c]=0; +++c}return c+1};x.Fb=function(H,N,Q){H.VX(N,Q.length+2);return x.tLq(H.data,N,Q)};x.FB=function(H,N){var Q=new Jo; +Q.o=x.FD(H,N+0*8);Q.H=x.FD(H,N+1*8);Q.lA=x.FD(H,N+2*8);Q.KI=x.FD(H,N+3*8);Q.DX=x.FD(H,N+4*8);Q.Ug=x.FD(H,N+5*8); +return Q};x.eT=function(H,N,Q){x.GC(H,N+0*8,Q.o);x.GC(H,N+1*8,Q.H);x.GC(H,N+2*8,Q.lA);x.GC(H,N+3*8,Q.KI); +x.GC(H,N+4*8,Q.DX);x.GC(H,N+5*8,Q.Ug)};x.tLX=function(H,N,Q){H.VX(N,48);x.eT(H.data,N,Q)};x.tLz=function(H,N){var Q=x.Fg(H,N),c=x.Fg(H,N+4),_=x.Fg(H,N+8),O=x.Fg(H,N+12); +return new p(Q,c,_-Q,O-c)};x.tCy=function(H,N,Q){x.q_(H,N,Q.x);x.q_(H,N+4,Q.y);x.q_(H,N+8,Q.x+Q.$);x.q_(H,N+12,Q.y+Q.z)}; +x.tTr=function(H,N,Q){H.VX(N,16);x.tCy(H.data,N,Q)};x.uq=function(H,N){var Q=x.eI(H,N),c=x.eI(H,N+4),_=x.eI(H,N+8),O=x.eI(H,N+12); +return new p(c,Q,O-c,_-Q)};x.xr=function(H,N,Q){x.nU(H,N,Q.y);x.nU(H,N+4,Q.x);x.nU(H,N+8,Q.y+Q.z);x.nU(H,N+12,Q.x+Q.$)}; +x.lW=function(H,N,Q){H.VX(N,16);x.xr(H.data,N,Q)};x.$g=function(H,N,Q){var c=new Uint8Array(Q);for(var _=0; +_=this.x&&H<=this.x+this.$&&(N>=this.y&&N<=this.y+this.z)}; +p.prototype.Eo=function(H){return this.contains(H.x,H.y)};p.prototype.pk=function(H){return this.x<=H.x&&this.y<=H.y&&H.x+H.$<=this.x+this.$&&H.y+H.z<=this.y+this.z}; +p.prototype.py=function(H){this.x=H.x;this.y=H.y;this.$=H.$;this.z=H.z};p.prototype.v$=function(H){return this.x==H.x&&this.y==H.y&&this.$==H.$&&this.z==H.z}; +p.prototype.FA=function(H,N){this.x-=H;this.y-=N;this.$+=2*H;this.z+=2*N};p.prototype.tRS=function(H){this.FA(H.x,H.y)}; +p.prototype.sj=function(H){var N=Math.max(this.x,H.x),Q=Math.max(this.y,H.y),c=Math.min(this.x+this.$,H.x+H.$),_=Math.min(this.y+this.z,H.y+H.z); +if(cthis.x+this.$||H.y>this.y+this.z||H.x+H.$>"); +Q+=2;return Q};VB.Jy=function(H){return H==9||H==10||H==32};VB.xd=function(H,N,Q,c){while(!0){while(VB.Jy(H[Q])||H[Q]==0)Q++; +if(Q>=H.length)break;if(H[Q]=="/".charCodeAt(0)){Q++;var _=Q;while(!VB.Jy(H[_]))_++;var O=x.sx(H,Q,_-Q); +Q=_+1;var L=VB.eb(H,Q,c,O);N["_"+O]=L.R;Q+=L.size}else if(H[Q]==">".charCodeAt(0)){Q+=2;break}else{var s=H[Q]; +console.log(x.sx(H,Q,Q+100));console.log("unknown byte: "+s+", char: "+String.fromCharCode(s)+", offset: "+Q); +Q++;throw"e";return-1}}return Q};VB.xv=function(H,N,Q,c){for(var _ in H){var O=_.substring(1,_.length); +x.np(N,Q,"/"+O);Q+=1+O.length;x.np(N,Q," ");Q++;Q=VB.qY(H[_],N,Q,c+1);x.np(N,Q," ");Q++}return Q};VB.eb=function(H,N,Q,c){var _=N,O={type:"",size:0,R:0}; +while(VB.Jy(H[N]))N++;if(H[N]=="<".charCodeAt(0)){O.type="Object";O.R={};N=VB.Uo(H,O.R,N,Q+1)}else if(H[N]=="(".charCodeAt(0)){O.type="String"; +N++;if(H[N]==")".charCodeAt(0)){O.R="s";N++}else{N+=2;var L=N,VG=0;while(!0){if(H[L]==")".charCodeAt(0)&&H[L-1]!="\\".charCodeAt(0))break; +else L+=1}O.R="s"+x.Gm(H,N,L);N=L+2}}else if(H[N]=="[".charCodeAt(0)){N++;O.R=[];O.type="Array";while(VB.Jy(H[N]))N++; +while(H[N]!="]".charCodeAt(0)){var s=VB.eb(H,N,Q+1,c);if(s==-1)return-1;O.R.push(s.R);N+=s.size;delete s.size; +while(VB.Jy(H[N]))N++}N++}else{var r=N;while(!VB.Jy(H[r]))r++;var u=x.sx(H,N,r-N),V=parseFloat(u);if(!isNaN(V)&&u.indexOf(".")!=-1){O.type="Float"; +var C=parseFloat(u);O.R="f"+C}else if(!isNaN(V)&&u.indexOf(".")==-1){O.type="Integer";O.R="i"+parseInt(u)}else if(u=="true"||u=="false"){O.type="Boolean"; +O.R=u=="true"}else if(u.charAt(0)=="/"){O.type="BString";O.R=u}else{console.log("unknown value",JSON.stringify(u)); +throw"e"}N=r+1}O.size=N-_;return O};VB.tdX=function(H){if(H==Math.round(H))return H+".0";var N=H.toFixed(5); +if(0=7){r=r}else alert("Unknown XCF version: "+O); +s=8}var u={};c=tw.Xm(Q,c,u);var V=[];c=tw.XF(Q,c,V,s);var C=[];c=tw.XF(Q,c,C,s);N.iw=0;for(var T=0;T0){N.b.push(N.sd());N.iw--}N.b.reverse();delete N.iw;N.buffer=$.I(N.$*N.z*4); +if(N.b.length==0)console.log("No layers!!!");for(var T=0;TC){Q.b.push(Q.sd()); +Q.iw--}Q.iw=C;if(L.add.lsct==tR.Gp||L.add.lsct==tR.Vc)Q.iw++;var JI=_==4?x.j:x.pK;if(L.XX()){L.buffer=$.I(L.rect.f()*4); +var Jx=new $.wf(L.rect.f()),Jd=JI(H,N);N+=_;var JC=JI(H,N);N+=_;tw.xb(H,Jd,Jx,c,_,O);$.GL(Jx,L.buffer); +if(JC!=0){L.d=new R.qu;L.d.color=0;L.d.rect=L.rect.clone();L.d.channel=tw.xn(H,JC,c,_,O).y_;if(T[rA.xe])L.d.isEnabled=x.j(T[rA.xe],0)==1}}Q.b.push(L)}; +tw.td_=function(H){var N="("+tm.hI(H,0,H.length-1)+")",Q=[],c={};tw.xO(N,1,Q);tw.tRJ(Q,c);return c}; +tw.tRJ=function(H,N){for(var Q=0;Q=H.length)throw"e";var c=H.charAt(N);N++;if(c=="("){var _=[];N=tw.xO(H,N,_); +Q.push(_)}else if(c==" "||c=="\n"||c=="\r"){}else if(c==")")return N;else if(c=="\""){var O=N;while(!0){var L=H[N]; +N++;if(L=="\"")break;if(L=="\\")N++}Q.push(JSON.parse(H.slice(O-1,N)))}else{var O=N-1;while(H[N]!=" "&&H[N]!=")")N++; +Q.push(H.slice(O,N))}}};tw.xn=function(H,N,Q,c,_){var O=x.j(H,N);N+=4;var L=x.j(H,N);N+=4;var s=x.XZ(H,N); +N+=s.NK;var r={};N=tw.Xm(H,N,r);var u=new $.wf(O*L),V=c==4?x.j:x.pK,C=V(H,N);N+=c;tw.xb(H,C,u,Q,c,_); +return{y_:u.T,aO:r}};tw.xb=function(H,N,Q,c,_,O){var L=x.j(H,N);N+=4;var s=x.j(H,N);N+=4;var r=x.j(H,N); +N+=4;var u=_==4?x.j:x.pK,V=u(H,N);N+=_;tw.tRH(H,V,Q,c,r,_,O)};tw.tRH=function(H,N,Q,c,_,O,L){var s=x.j(H,N),V=0,j=0; +N+=4;var r=x.j(H,N);N+=4;var u=new p(0,0,s,r);if(L==100)V=1;else if(L==150)V=1;else if(L==600)V=4;else alert("unsupported bit depth "+L); +var C=_/V,V=Math.round(_/C),T=[];N=tw.XF(H,N,T,O);var e=new $.wf(64*64*V),t=new p,Y=c[rA.tVB][0],A=[e.T,e.q,e.H,e.o]; +if(C==3)$.set(e.o,255);var G=Date.now();for(var d=0;d1)a=1;M[y]=n[~~(.5+a*1e3)]}}}$.h_(e,t,Q,u)}};tw.tRI=function(){var H=tw.tdp; +if(H!=null)return H;H=tw.tdp=new Uint8Array(1001);for(var N=0;N<1001;N++)H[N]=~~(.49+255*$.hU(N*.001)); +return H};tw.tRc=function(H,N,Q,c,_,O){if(c==1){for(var L=0;L<_;L++){var s=O[L],r=0;while(r1)console.log(c.pages.length,"pages"); +var _=[],L=new p;for(var s=0;s8e3*8e3||V.$>3e4||V.z>3e4){Q.Mv(u,!0); +var C=Q.jm(u,s);if(C.f()>=V.f())Q.Mv(u,!1)}V=Q.jm(u,s);for(var e=0;eN)Q++;if(Q!=1&&!window.confirm("Your image is quite large ("+H.$+" x "+H.z+" px).\n"+"Press OK to scale it down "+Q+"x, or Cancel to keep the size."))Q=1; +return Q};r$.jm=function(H,N){var Q=[],c=r$;for(var _=0;_3e4&&r.$<=3e4||s.z>3e4&&r.z<=3e4){alert("Re-arranging artboards"); +for(var _=0;_0)Jv/=2;JO.nt("brit",[Math.round(Jh*255),Math.round(Jv*100),!0],JM.v.Fltr.v); +a.push(JM)}}}C.x=C.y=0;var Jc=$.K.DK(C).Z;e.UK();$.K.UC(Jc,e,Jc);b.add.SoLd.Trnf=l._.Sz(Jc);b.add.SoLd.nonAffineTransform=l._.Sz(Jc); +b.fc(N,!1)}else if(t=="text"){if(V.attributedString==null)continue;var JT=e.clone(),Jy,Jg,JA=0;JT.UK(); +JT.o=JT.KI=Math.min(JT.o,JT.KI);b.add.lnsr="rend";b.add.TySh=X.YD(0,0);b.add.TySh._B=new p(0,0,C.$,C.z); +b.add.TySh.UC=JT;var Jn=V.attributedString;if(Jn.archivedAttributedString)Jn=Jn.archivedAttributedString; +var Jq=Jn.NSString;if(Jq==null)Jq=Jn.string;if(Jq["NS.string"])Jq=Jq["NS.string"];if(O[V.do_objectID]!=null)Jq=O[V.do_objectID]; +var tJ=s.Mi(L,V.do_objectID+"_stringValue");if(tJ)Jq=tJ.value;if(Jn.attributes!=null){Jy=[];Jg=[];var ty=Jn.attributes; +for(var G=0;GJq.length){Jy[Jy.length-2]--;JA--;if(Jy[Jy.length-2]==0){Jy.pop(); +Jy.pop()}}Jy[Jy.length-2]+=Jq.length-JA}Jq=Jq.replace(/\u2028/g,"\n");Jq=Jq.replace(/\u2029/g,"\n"); +Jq=Jq.replace(/\r/g,"\n");var td=b.add.TySh.Bd;X.el(td,0,Jq);if(Jq!=""){s.t$k(td,Jy,Jg,Jq);var J=JT.ka(),Jk=X.Sr(td,0,1),rR=Jk.hj.AutoLeading?0:Jk.hj.Leading*.6,Je=0,JU=Math.max(Jk.hj.FontSize,rR)*J,JK=C.$,rH=C.z; +if(V.textBehaviour==0){X.kN(td,0);var rL=X.Io(Jk.re);if(rL==1)Je=JK*J;if(rL==2)Je=JK*J*.5}else{X.kN(td,1); +X.Yc(td,[0,0,Math.round(JK),Math.round(rH)]);JU=JU*.35}b.add.TySh.UC.translate(Je,JU)}}else if(t=="symbolInstance"||t=="symbolMaster"){var Ju=V.symbolID; +if(O[V.do_objectID])Ju=O[V.do_objectID].symbolID;if(Ju=="")continue;var JZ={};for(var m in O)JZ[m]=O[m]; +if(V.overrides)for(var m in V.overrides)JZ[m]=V.overrides[m];var Jl=L.slice(0);if(V.overrideValues)Jl=Jl.concat(V.overrideValues); +var rV=_[Ju];if(rV==null){console.log("Unknown master master",V.symbolID);continue}var rD=r$.uq(rV.CR.frame),tb=rD.$/C.$,rv=rD.z/C.z,rG=e.clone(); +rG.scale(tb,rv);b.add.lsct=tR.Vc;b.kE="pass";b._c=24;b.cE(V.isVisible);N.b.push(N.sd());s.QR(rV.CR.layers,N,rG,c,_,JZ,Jl)}else if(t=="slice"){console.log("slice layers are ignored by now"); +continue}else{console.log("unknown layer type: "+t,V);continue}if(T&&T.contextSettings){var Js=T.contextSettings; +b.kE=s.em[Js.blendMode];b.kE=ta.Cj[ta.io.indexOf(b.kE)];b.opacity=Math.round(b.opacity*Js.opacity)}if(F!=null)b.add.lmfx=F; +N.b.push(b);if(V.hasClippingMask){r.push(b);N.b.push(N.sd())}}while(r.length!=0)s.MF(r.pop(),N)};r$.Mi=function(H,N){for(var Q=0; +Q127){_+=128*(H[Q]-1);Q++;if(H[Q-1]>127){_+=128*(H[Q]-1);Q++}}var O=H[Q];Q++;c.push(_,O)}return c}; +r$.t$k=function(H,N,Q,c){var _=r$,O=0,C=0;for(var L=0;Lc.length/2;for(var L=0;L0; +if(t.NSStrikethrough!=null)Y.hj.Strikethrough=t.NSStrikethrough>0;if(t.MSAttributedStringTextTransformAttribute==1)Y.hj.FontCaps=2; +var n=t.NSParagraphStyle;if(n==null)n=t.paragraphStyle;var J=n?n.NSAlignment:null;if(n&&J==null)J=n.alignment; +if(J!=null){var Z=0;if(!1){}else if(J==1)Z=1;else if(J==2)Z=2;else if(J==4)Z=0;else{Z=J;console.log("unknown align",J)}if(V&&Z<2)Z=1-Z; +Y.re.Justification=Z}var P=n?n.NSMinLineHeight:null;if(n&&P==null)P=n.minimumLineHeight;if(n&&P!=null){Y.hj.AutoLeading=!1; +Y.hj.Leading=Math.round(P)}Y.re._Direction=V?1:0;X.zX(H,C,C+T,Y);C+=T}};r$.tJH=function(H,N,Q,c,_,O,L){var s=r$,r=JSON.parse(B.default),V=!1; +for(var u=0;u0){if(V=="text")O=L.JD(u,O); +var U=u.children.length,D=_.PH;_.PH=e;var W=V!="text"&&V!="textPath"||U>1;if(W){var m=j.op();j.add.lsct=m?tR.Gp:tR.Vc; +j.kE="pass";j._c=24;j.cE(m);Q.b.push(Q.sd())}L.Q$(H,u.children,Q,Y,_,O);if(W)Q.b.push(j);_.PH=D}else if(V=="use"){var q=L.JD(u); +q.concat(Y);var S=L.Nr(u),I=H.getElementById(S.slice(1)),D=_.PH;_.PH=e;L.Q$(H,[I],Q,q,_,O);_.PH=D}else if(V=="path"||V=="rect"||V=="circle"||V=="ellipse"||V=="polygon"||V=="polyline"||V=="line"){j._c|=16; +j.add.vmsk=new R.hT;j.add.vstk=JSON.parse(JSON.stringify(B.nO.default));j.add.vstk.strokeEnabled.v=!1; +var v=j.add.vstk,F=j.add.vmsk;F.L=L.fW(H,u);$.A.Nj(F.L,Y);var h=$.A.gw(F.L),i=e.stroke,JI=e["stroke-width"],Jx=e["stroke-dasharray"],Jd=e.fill,JC=e["stroke-linejoin"],JM=e["stroke-linecap"],Jh=e["paint-order"]; +if(i==null||i=="none"){}else{var Jv=L.Mu(H,i,Y,h),JW=["SoFi","GrFl","patternFill"].indexOf(Jv.type),Ji=[B.IS,B.fT,B.fP][JW],Jc=v.strokeStyleContent.v={classID:B.nO.aw[JW]},JT=1; +for(var M=0;M0){var tJ=L.NJ(u.children[0],_.sn);for(var t in tJ)if(s.indexOf(t)==-1)e[t]=tJ[t]}var ty=e["xml:space"],JA=u.textContent; +if(ty=="preserve")JA=JA.replace(/\t/g," ").replace(/\n/g," ");if(C==null)j.Vp(JA);j.add.TySh=X.YD(0,0); +j.add.TySh._B=new p(0,0,100,100);j.add.TySh.UC=q.clone();var td=j.add.TySh.Bd;X.el(td,0,JA);var Jd=e.fill,Jk=e["font-size"],rR=e["font-weight"],Je=e["font-family"],JU=e["text-decoration"],i=e.stroke,JI=e["stroke-width"],JK=X.Sr(td,0,1); +if(Jd&&Jd!="none"){var rH=CSS.bI(Jd);JK.hj.FillColor={Type:1,Values:[1,rH.T/255,rH.q/255,rH.H/255]}}if(JU=="underline")JK.hj.Underline=!0; +if(Jk)rL=L.QH(Jk,rL);JK.hj.FontSize=Math.round(rL);X.kP(JK,"LiberationSans");if(rR=="bold")X.kP(JK,"LiberationSans-Bold"); +if(Je){var Ju=Je+":"+(rR?rR:"normal"),JZ={"FreeMono:normal":"NimbusMono-Regular","FreeMono:bold":"NimbusMono-Bold","'DejaVu Sans':normal":"DejaVuSans","'DejaVu Sans':bold":"DejaVuSans-Bold","'Nimbus Sans L':normal":"NimbusSanL-Reg","'Nimbus Sans L':bold":"NimbusSanL-Bol"}; +if(JZ[Ju])X.kP(JK,JZ[Ju])}if(e["text-anchor"])JK.re.Justification=["start","end","middle"].indexOf(e["text-anchor"]); +X.zX(td,0,JA.length,JK);if(i==null||i=="none"){}else{var Jl=JSON.parse(B.cz[B.order.indexOf("FrFX")]); +Jl.Clr.v=$.e.Ta(CSS.bI(i));Jl.Sz.v.val=Math.round(parseFloat(JI)*l._.ka(q));var rV=JSON.parse(B.default); +for(var M=0;M0&&N[_-1]!="e"){N=N.slice(0,_)+" "+N.slice(_);_++;c=!0}}N=N.split(/\s*[\s,]\s*/).map(parseFloat); +if(!1){}else if(H=="translate"){if(N.length==1)Q.translate(N[0],0);else Q.translate(N[0],N[1])}else if(H=="scale"){if(N.length==1)Q.scale(N[0],N[0]); +else Q.scale(N[0],N[1])}else if(H=="rotate"){var L=0,s=0;if(N.length!=1){L=N[1];s=N[2]}Q.translate(-L,-s); +Q.rotate(-Math.PI*N[0]/180);Q.translate(L,s)}else if(H=="matrix")Q=new Jo(N[0],N[1],N[2],N[3],N[4],N[5]); +else console.log("unknown transform: ",H);return Q};VL.NJ=function(H,N){var Q={},c="fill stroke stroke-width stroke-dasharray stroke-opacity stroke-linejoin stroke-linecap font-size font-weight font-family text-decoration text-anchor stop-color stop-opacity filter display opacity fill-opacity paint-order mix-blend-mode xml:space".split(" "); +for(var _=0;_"); +var L={WU:[],C:[],CV:0,gu:0,gc:0,_q:{},_l:{},ad:0,tP:{},Co:{},Cl:0,LS:[]};VL.gR(H,L,H.root.children,1,N); +if(L.WU.length!=0){Q.push(c.Vs(1)+"");Q=Q.concat(L.WU);Q.push(c.Vs(1)+"")}Q.push(c.Vs(1)+"");Q=Q.concat(L.C); +Q.push("");Q=Q.join(N.Nt?"\n":"");var C=$.I(Math.round(Q.length*1.5)),T=tm.aX(Q,C,0);if(c.IQ){console.log(c.IQ); +var e="SVGParser.gen.db = [\n";for(var s=0;s "); +T.push("filter: url(#flt"+N.gu+")")}if(s.oP()){if(O.IQ&&s.getName().split("-").length==3){O.IQ.push({tdO:s.getName(),Dj:0,x_:[]})}if(u){N.gc++; +A.push("clip-path=\"url(#cp"+N.gc+")\"");N.WU.push(O.Vs(2)+""); +var n=$.A.Tp(u.L);N.WU.push(O.Vs(3)+"");N.WU.push(O.Vs(2)+"")}if(T.length!=0)A.push("style=\""+T.join(";")+"\""); +N.C.push(O.Vs(c)+"");O.gR(H,N,Q[L].children,c+1,_);N.C.push(O.Vs(c)+"")}else if(s.TT()&&u==null){var J=new p(0,0,H.$,H.z); +O.gs(T,s.add,N,J);if(T.length!=0)A.push("style=\""+T.join(";")+"\"");N.C.push(O.Vs(c)+"")}else if(u){var J=$.A.gw(u.L),n=$.A.Tp(u.L); +if(n.SB!=0){A.push("fill-rule=\"evenodd\"")}var Z=n.Ni;O.gs(T,s.add,N,J);if(T.length!=0){var P=T.join(";"),M=N.Co[P]; +if(M==null){M="shp"+N.Cl;N.Cl++;N.Co[P]=M;N.tP[M]=P}G.push(M)}N.C.push(O.Vs(c)+""); +if(O.IQ){var y=$.K.Cp(u.L);y.Z=y.Z.map(Math.round);var a=O.IQ[O.IQ.length-1];a.Dj+=JSON.stringify(y).length; +a.x_.push([T[0].split("#").pop(),y])}}else if(C&&!_.tCG){var g=C.Bd,U=C.UC.clone(),i=0,JI=0;if(X.gG(g)==1){var D=X.Sr(g,0,0).re.Justification,W=0,m=X.BR(g)[2]; +if(D==2)W=m/2;if(D==1)W=m;U.translate(W,0)}T.push("transform: "+O.eT(U));var q=X.Fk(g),S=g.EngineDict.ParagraphRun,I=S.RunArray,v=S.RunLengthArray; +if(T.length!=0)A.push("style=\""+T.join(";")+"\"");N.C.push(O.Vs(c)+"");var h=s.add.lmfx; +if(h)h=h.frameFXMulti.v[0];if(h)h=h.v;for(var Jx=0;Jx"+O.oJ(JM)+"")}i+=JC}N.C.push(O.Vs(c)+"")}else if(s.add.SoLd){var Ji=s.add.SoLd,Jc=Ji.Idnt.v,JT=0,Jy=Ji.Crop?Ji.Crop.v:null; +if(N._l[Jc]!=null)JT=N._l[Jc];else{N.ad++;JT=N.ad;N._l[Jc]=N.ad;var Jg=H.Hj(Jc,Jy),tJ="";if(Jg==null)return; +var Jn=Jg.Eq,Jq=JP.Uw(Jg.raw.buffer);if(Jq=="pdf"){var ty=new rw("h");JP.PDF.cA(Jg.raw.buffer,ty);ty.f$(); +ty.HZ();ty.r();ty.LD();if(Ji.Crop&&Ji.Crop.v==1){l.$p.tt(ty,ty.root.AK(ty,!0))}var JA=JP.SVG.Dz(ty,ty.$,ty.z); +tJ="data:image/svg+xml;base64,"+JP.Yw(JA)}else if(Jq=="jpg"||Jq=="png"||Jq=="gif"||Jq=="svg"){var td={jpg:"image/jpg",png:"image/png",jpg:"image/jpg",svg:"image/svg+xml"}; +tJ="data:"+td[Jq]+";base64,"+JP.Yw(Jg.raw.buffer)}else{tJ=JP.Km(Jn[0],Jn[1].$,Jn[1].z)}N.WU.push(O.Vs(2)+"")}var Jk=$.F.Cw(Ji); +if(T.length!=0)A.push("style=\""+T.join(";")+"\"");var rR=O.Jc(A,G);N.C.push(O.Vs(c)+"")}else if(!s.rect.km()&&(_.tCd||C)){if(T.length!=0)A.push("style=\""+T.join(";")+"\""); +var rR=O.Jc(A,G),Je=s.rect;N.ad++;var tJ=JP.Km(s.buffer,Je.$,Je.z);N.WU.push(O.Vs(2)+""); +N.C.push(O.Vs(c)+"")}}};VL.Jc=function(H,N){if(N.length!=0)H.push("class=\""+N.join(" ")+"\""); +return H.join(" ")};VL.oJ=function(H){return String(H).replace(/&/g,"&").replace(//g,">").replace(/\u0022/g,""")}; +VL.eT=function(H){var N=[H.o,H.H,H.lA,H.KI,H.DX,H.Ug].map(VL._X);return"matrix("+N.join(",")+")"};VL.gs=function(H,N,Q,c){var _=VL,O=N.vstk,L=N.vmsk,s=N.lmfx; +if(L&&L.jQ!=0){var r=_._X(L.jQ);if(Q._q[r]==null){Q.gu++;Q._q[r]=Q.gu;Q.WU.push(_.Vs(2)+" ")}H.push("filter: url(#flt"+Q._q[r]+")")}var u=Ja.Yy(s),V=u[0],C=u[1]; +if(O&&!O.fillEnabled.v)H.push("fill: none");else if(N.SoCo&&C==null||V){var T=CSS.YP((V?V:N.SoCo).Clr.v); +H.push("fill: "+T)}else if(N.GdFl||C){_.NH(C?C:N.GdFl,Q,c);H.push("fill: url(#grd"+Q.CV+")")}if(O==null||!O.strokeEnabled.v)O=Ja.Yq(s); +if(O&&O.strokeEnabled.v){var e=O.strokeStyleContent.v,t=e.classID;if(t=="solidColorLayer")H.push("stroke: "+CSS.YP(e.Clr.v)); +else{_.NH(e,Q,c);H.push("stroke: url(#grd"+Q.CV+")")}var Y=B.nO.Ky.indexOf(O.strokeStyleLineCapType.v.strokeStyleLineCapType),A=B.nO.join.indexOf(O.strokeStyleLineJoinType.v.strokeStyleLineJoinType),G=O.strokeStyleOpacity.v.val/100,j=O.strokeStyleLineWidth.v.val,d=B.nO.e$.indexOf(O.strokeStyleLineAlignment.v.strokeStyleLineAlignment); +if(d==2){j*=2;H.push("paint-order:stroke fill markers")}var w=O.strokeStyleLineDashSet.v,f=[];for(var b=0; +b"); +if(r==1)N.WU.push(C+" cx=\""+c._X(V[0].x)+"\" cy=\""+c._X(V[0].y)+"\" r=\""+c._X(E.Ln(V[0],V[1]))+"\">"); +var T=H.Rvrs.v;if(T){O.reverse();L.reverse()}for(var e=0;e")}N.WU.push(c.Vs(2)+"")}; +var Vm={};Vm.parse=function(H){var N=new Uint8Array(H),Q=null;if(N[0]==80&&N[1]==75){var c=Date.now(),_=UZIP.parse(N.buffer),Q=_["document.json"]; +Q=JSON.parse(tm.hI(Q,0,Q.length));Vm.Qg(Q,_)}else{var O=Jm.parse(H);Q=Vm.aG(O[2][0][1])}return Q};Vm.Qg=function(H,N){var Q=typeof H; +if(Q=="string"||Q=="number"||Q=="boolean")return H;if(H instanceof Array){for(var c=0;c0){var w=Math.min(100,j);d.push(w,0);j-=w}Y=new Uint8Array(d)}A=t.NSAttributes instanceof Array?t.NSAttributes:[t.NSAttributes]; +var f={$class:"NSAttributedString",NSString:G,NSAttributes:A};e.attributedString={_class:"MSAttributedString",archivedAttributedString:f}; +f.NSAttributeInfo={$class:"NSMutableData","NS.data":Y};delete e.storage}return c};Vm.JC={NU:function(H,N){return H[N+1]<<8|H[N]},j:function(H,N){return H[N+3]<<24|H[N+2]<<16|H[N+1]<<8|H[N]},sx:function(H,N,Q){var c=""; +for(var _=0;_>4,C=u&15,e=null; +r+=1;if([4,5,6,10,12,13].indexOf(V)!=-1&&C==15){var T=s.eI(H,r);r+=T.Dj;C=T.R}if(!1){}else if(V==0)e=C==8?!1:C==9?!0:null; +else if(V==1)e=s.eI(H,r-1).R;else if(V==2)e=1<=12&&(L&1)==0){var r=L-13>>1,u=new Uint8Array(r); +Jm.sa(H,Q,u,0,r);O.push(u);Q+=r}else if(L>=13&&(L&1)==1){var r=L-12>>1;O.push(Jm.hI(H,Q,r));Q+=r}else throw"unknonw type "+L}return O},XO:function(H){if(!(H[18]==1&&H[19]==1&&H[20]==0&&H[21]==64&&H[22]==32&&H[23]==32))throw"unexpected SQL3 header"; +var N={_U:Jm.sx(H,0,15),ic:Jm.NU(H,16),tTW:Jm.j(H,24),size:Jm.j(H,28),tTp:Jm.j(H,32),tTo:Jm.j(H,36),tTU:Jm.j(H,40),tTk:Jm.j(H,44),tPR:Jm.j(H,48),tPV:Jm.j(H,52),sY:Jm.j(H,56),tPq:Jm.j(H,60),tPl:Jm.j(H,64)!=0,tPj:Jm.j(H,68),tdM:Jm.j(H,92),tdS:Jm.j(H,96)}; +if(N.ic==1)N.ic=65536;if(N.sY!=1)throw"unsupported text encoding "+N.sY;return N},tIy:function(H,N){return H[N]<<16|H[N+1]<<8|H[N+2]},tID:function(H,N){var Q=Jm.tIy(H,N),c=Q&8388608; +return c?-(16777215-Q+1):Q},tIT:function(H,N){Jm.pn[0]=H[N];return Jm.tIj[0]},eI:function(H,N){var Q=Jm.pn; +for(var c=0;c<4;c++)Q[c]=H[N+3-c];return Jm.tyD[0]},kF:function(H,N){var Q=Jm.pn;Q[0]=H[N+1];Q[1]=H[N]; +return Jm.tIB[0]},NU:function(H,N){return H[N]<<8|H[N+1]},j:function(H,N){return H[N]<<24|H[N+1]<<16|H[N+2]<<8|H[N+3]},tIa:function(H,N){var Q=Jm.pn; +for(var c=0;c<8;c++)Q[c]=H[N+7-c];return Jm.tyo[0]},ND:function(H,N){var Q=N,c=0;while(!0){var _=H[N]; +N++;c=c*128+(_&127);if(_<128)break}return{Dq:c,Dj:N-Q}},sx:function(H,N,Q){var c="";for(var _=0;_>6;N[Q+_+1]=128|L>>0&63;_+=2}else if((L&4294967295-(1<<16)+1)==0){N[Q+_]=224|L>>12; +N[Q+_+1]=128|L>>6&63;N[Q+_+2]=128|L>>0&63;_+=3}else if((L&4294967295-(1<<21)+1)==0){N[Q+_]=240|L>>18; +N[Q+_+1]=128|L>>12&63;N[Q+_+2]=128|L>>6&63;N[Q+_+3]=128|L>>0&63;_+=4}else throw"e"}return _};function tD(H,N,Q){this.In=H; +this.$W=N;this.tdN=Q;this.sz=0;this.FY=-1;this.FN=0;this.Cf=[];this._N=null;this.se=null;this.tR=null; +this.FF=null;this.tD=null}tD.prototype.StartPage=function(H,N,Q,c){this.se=[H,N,Q,c];var _=this.$W.ka(); +H=Math.round(H*_);N=Math.round(N*_);Q=Math.round(Q*_);c=Math.round(c*_);var O=this.In,L=this.tR;O.$+=Math.round(Q-H); +O.z=Math.max(O.z,Math.round(c-N));this.$W.Ug=this.tdN?c:-N;if(L){var s=L[2]-L[0]+30;this.$W.DX+=s;this.sz+=s; +O.$+=30}else this.$W.DX=-H;this.tR=[H,N,Q,c];O.b.push(O.sd())};tD.prototype.af=function(){var H=this.In,N=H.b[H.b.length-1]; +return N};tD.prototype.aB=function(){var H=JSON.parse(JSON.stringify(B.nO.default));H.strokeStyleLineAlignment.v.strokeStyleLineAlignment="strokeStyleAlignCenter"; +H.strokeEnabled.v=!1;H.fillEnabled.v=!1;return H};tD.prototype.aU=function(){var H=this.In,N=H.Zs(); +N.Vp("Path "+H.b.length);this.In.b.push(N);N._c|=16;N.add.SoCo={classID:"null",Clr:{t:"Objc",v:$.e.Ta({T:0,q:0,H:0})}}; +N.add.vmsk=new R.hT;N.add.vstk=this.aB();return N};tD.prototype.QQ=function(H){var N=[{type:6},{type:8,all:0}].concat($.A.eX(Typr.U.pathToSVG(H))); +$.A.Nj(N,this.$W);return N};tD.QO=function(H,N){for(var Q=0;Q=2){c=!1;break}if(c)return!0}return!1};tD.Sj=function(H,N,Q){var c=!1; +if(H=="MLLLZ"&&N.length==8||H=="MLLLLZ"&&N.length==10){if(N.length==10)N=N.slice(0,8);var _=Q[0],O=Q[1],L=Q[2],s=Q[3]; +if(!c)c=tD.Si(N,[_,O,L,O,L,s,_,s]);if(!c)c=tD.Si(N,[_,s,L,s,L,O,_,O])}return c};tD.prototype.Na=function(H){var N=this.In,Q=H.cpth,c=Q.cmds.join(""),_=Q.crds,O=c+" "+_.join(","),L=tD.Sj(c,_,this.se); +if(L&&this.FF==null)return;if(O==this.FF)return;if(this.FF!=null){N.b.push(this.tD);this.FF=null}if(!L){this.FF=O; +N.b.push(N.sd());var s=N.Zs();s.Vp("Mask");s.add.lsct=tR.Vc;s.kE="pass";s._c=24;var r=s.add.vmsk=new R.hT; +r.L=this.QQ(H.cpth);this.tD=s}};tD.vP=function(H,N,Q){var c,_;if(H.length!=null){c="SoFi";var O=JSON.parse(B.cz[B.order.indexOf("SoFi")]); +_={t:"Objc",v:O};_.v.Clr.v=tD.SI(H)}else{var L=tD.tDa(H,N,Q);c="GrFl";_={t:"Objc",v:L}}return{type:c,R:_}}; +tD.tDa=function(H,N,Q){var c=JSON.parse(B.cz[B.order.indexOf("GrFl")]),_=c.Grad.v;_.Intr.v=0;var O=tD.Ng(H.mat); +O.concat(N);var L=new E(0,0),s=new E(Q.$,0),r=H.crds;if(H.typ=="rad"){c.Type.v.GrdT="Rdl";L.x=r[0];L.y=r[1]; +s.x=L.x;s.y=L.y;s.x+=r[5]}else{c.Type.v.GrdT="Lnr";L.x=r[0];L.y=r[1];s.x=r[2];s.y=r[3];L.x=s.x+.5*(L.x-s.x); +L.y=s.y+.5*(L.y-s.y)}L=O.Sk(L);s=O.Sk(s);$.e.qa(L,s,Q,c);var u=H.grad;$.e.zO(u,_);return c};tD.prototype.PutText=function(H,N,Q){if(this.FY!=-1&&this.FY!=this.FN)return; +if(N.length==0||N.length==1&&N.charCodeAt(0)==0)return;this.Na(H);var c=this.In,_=H.font,O=tD.Ng(H.ctm),V=null; +O.concat(this.$W);var L=tD.Ng(_.Tm);L.concat(O);var s=l._.ka(L),r=new Jo(1/s,0,0,-1/s,0,0);r.concat(L); +var u=_.Tfs*s;if(_.Th!=100||_.Trise!=0){console.log(_)}var C=c.b.length-1;while(C>=0&&c.b[C].add.TySh==null)C--; +if(C>=0&&c.b[C].add.TySh){var T=c.b[C],e=T.add.TySh.UC,t=e.o==r.o&&e.H==r.H&&e.lA==r.lA&&e.KI==r.KI&&Math.abs(e.Ug-r.Ug)==0&&Math.abs(e.DX+this.Cf[C]-r.DX)>3]>>7-(L&7)&1)*255; +_[s]=r;_[s+1]=r;_[s+2]=r;_[s+3]=255}H=_}return H};tD.prototype.EJ=function(H,N,Q){if(H.length!=N*Q*4){var c=JP.Uw(H.buffer),_=JP.aD(c); +H=new Uint8Array(_.cA(H)[0].data)}return H};tD.prototype.ShowPage=function(){var H=this.In;this.FN++; +var N=this.tR;if(this.FF!=null){H.b.push(this.tD);this.FF=null}var Q=H.Zs();H.b.push(Q);Q.L$(new p(Math.round(this.sz),0,Math.round(N[2]-N[0]),Math.round(N[3]-N[1]))); +Q.Vp("Page "+this.FN);Q.add.lsct=tR.Vc;Q.kE="pass";Q._c=24};tD.prototype.Print=function(H){console.log("Print:",H)}; +tD.prototype.Done=function(){var H=this.In;if(this.FN==1)H.b[H.b.length-1].add.lsct=tR.Gp;H.HT(this.FN); +for(var N=0;NH.length)throw"e";if(O.VB=="RIFF"||O.VB=="LIST"&&(O.aw!="cmpr"&&O.aw!="stlt")){O.sub=[]; +N+=12;var L=O.M+O.size;while(N=0;e--)JN.sK(T[e],N,Q,c)}else if(O=="obj "&&u.R&&u.R.path){C.Vp("Object "+Q.b.length); +var t=N.tC[u.R.tGy],Y=N.tM[u.R.tGT],A=C.getName(),G=t&&t.type!=0,j=G&&t.R!=null?t.R:[0,0,0];C._c|=16; +C.add.vstk=JSON.parse(JSON.stringify(B.nO.default));var d=C.add.vstk;d.strokeEnabled.v=!1;C.add.vmsk=new R.hT; +if(Y&&Y.tGG!=1){d.strokeEnabled.v=!0;d.strokeStyleLineAlignment.v.strokeStyleLineAlignment="strokeStyleAlignCenter"; +d.strokeStyleLineWidth.v.val=Y.lineWidth*300;var w=Y.color;d.strokeStyleContent.v.Clr.v=$.e.Ta({T:w[0]*255,q:w[1]*255,H:w[2]*255})}var f=u.R.path,b={crds:f.Z,cmds:f.lX}; +C.add.vmsk.L=[{type:6},{type:8,all:0}].concat($.A.eX(Typr.U.pathToSVG(b)));$.A.Nj(C.add.vmsk.L,V);tD.uP(j,C,V,$.A.gw(C.add.vmsk.L)); +d.fillEnabled.v=G;C.Ls();C.Sa(Q)}else if(O=="obj "&&s){var F=u.R.tGM,Z="";C.add.TySh=X.YD(0,0);var n=V.ka(); +C.add.TySh.UC.translate(V.DX,V.Ug);var J=C.add.TySh.Bd,P=s.R.s_;for(var e=0;e=1300);j.R.txc=JN.OV(H);j.R.us={};var W=s(H);for(var m=0;m1300)H.M+=4;if(G>=1300){if(s(H))H.M+=68;else H.M+=12}else{H.M+=20;if(G>=1e3)H.M+=8;if(s(H))H.M+=8; +H.M+=8}}var Jd=s(H);j.R.txO={};for(var m=0;m=1300)Jv+=4;H.M+=Jv*Jh;var JW=s(H);H.M+=28*JW;if(G>800){var Ji=s(H); +H.M+=12*Ji}j.R.B_={};for(var m=0;m=1200)Jg*=2; +H.M+=Jg;Jy.uR=s(H);Jy.uN=s(H);if(Jc>1){Jy.txg=s(H);Jy.tGs=s(H);Jy.tdb=s(H);Jy.tdz=s(H);if(G>800)Jy.tGt=s(H)}if(Jc>2){Jy.tGH=s(H); +Jy.tGI=s(H);Jy.tGD=s(H);Jy.tGh=s(H);Jy.tGe=s(H)}j.R.B_[JT]=Jy}}else if(j.VB=="LIST")JN.OR(H,j.sub,Q,c+1); +else if(j.VB=="txsm"){j.R={};if(G<600)throw"e";if(G<700)throw"e";if(G>=1600)throw"e";if(G>=1500)H.M+=37; +else H.M+=36;if(s(H)){if(G<800)H.M+=32}if(G<800)H.M+=4;j.R.tG_=s(H);j.R.s_=[];H.M+=48;if(G>=800){if(s(H)){H.M+=32; +if(G>=1300)H.M+=8}}if(G>=1500)H.M+=12;var Jc=s(H),Jn=1;if(!Jc){if(G>=800)H.M+=4;if(G>800)H.M+=2;if(G>=1400)H.M+=2; +H.M+=24;if(G<800)H.M+=8;Jn=s(H)}for(var M=0;M=1300&&Jc)H.M++;H.M++;var D=s(H),tJ=[]; +for(m=0;m=800)td=O(H);var Jy={};if(JA&1){Jy.txE=L(H); +var Jk=L(H);if(Jk)Jy.txR=Jk}if(JA&2)H.M+=4;if(JA&4)Jy.txV=C(H);if(JA&8)H.M+=4;if(JA&16)H.M+=4;if(JA&32)H.M+=4; +if(JA&64){Jy.uR=s(H);if(G>=1500)H.M+=48}if(JA&128){Jy.uN=s(H)}if(td&8){if(G>=1300){var rR=s(H);H.M+=rR*2}else H.M+=4}if(td&32){var Je=O(H); +if(Je)H.M+=52}if(ty==2)if(G>=1300)H.M+=48;tJ.push(Jy)}var JU=s(H),JK=[];for(m=0;m=1200)rH=readU64(H)&4294967295; +else rH=s(H);JK[m]=rH>>16|rH&1}var rL=JU;if(G>=1200)rL=s(H);var Ju=JN.EE(H);j.R.s_.push({tGg:Jq,text:Ju,B_:tJ})}}else if(j.VB=="font"){var JZ=L(H),Jl=L(H); +H.M+=14;var rV=JN.EE(H);j.R={id:JZ,txI:Jl,name:rV}}else if(["IKEY","ICMT","pfrd","bcfg"].indexOf(j.VB)!=-1){}else if(j.VB=="flgs")j.R=s(H); +else if(j.VB=="bbox"){var rD=C(H),tb=C(H),rv=C(H),rG=C(H);j.R=new p(rD,tb,rv-rD,rG-tb)}else if(j.VB=="fild"){var Js=s(H),rI=0,tt; +if(G>=1300){H.M+=4;rI=L(H);H.M+=2}var tv=L(H);if(tv==0){}else if(tv==1){H.M+=G>=1300?13:2;tt=JN.bI(H)}else if(tv==2){H.M+=G>=1300?8:2; +var rE=O(H),rX=0;if(G>=1300){H.M+=17;rX=r(H)}else if(G>=600){H.M+=19;rX=u(H)}else{H.M+=11;rX=r(H)}var rQ=e(H),ra=.5+Y(H),rx=.5+Y(H)-.5; +if(G>=600)H.M+=2;var rU=t(H)&255,rJ=O(H)/100;H.M++;var tG=t(H)&65535;if(G>=1300)H.M+=3;var rT=[];for(var m=0; +m=1300){if(rI==158||G>=1600&&rI==150)H.M+=26;else H.M+=5}var rO=t(H)/100; +if(G>=1300)H.M+=3;rT.push([rO,JR])}tt={typ:rE==1?"lin":"rad",crds:[ra-Math.cos(rQ)/2,rx-Math.sin(rQ)/2,ra,rx],grad:rT,mat:[1,0,0,1,0,0]}}else console.log("Unknown fill type",tv); +j.R={id:Js,type:tv,R:tt}}else if(j.VB=="outl"){var rg=s(H);if(G>=1300){var rc=0,rm=0;while(rc!=1){H.M+=rm; +rc=s(H);rm=s(H)}}var rn=L(H),rK=L(H),V$=L(H);if(G<1300&&G>=600)H.M+=2;var Vc=C(H),rb=L(H)/100;if(G>=600)H.M+=2; +var rl=e(H);if(G>=1300)H.M+=46;else if(G>=600)H.M+=52;var tt=JN.bI(H,rg==270963208||rg==276198e3,rg); +j.R={id:rg,tGG:rn,txS:rK,txq:V$,lineWidth:Vc,color:tt}}else if(j.VB=="mcfg"){if(1300<=G)H.M+=12;else if(900<=G)H.M+=4; +else if(600<=G&&G<700)H.M+=28;var rB=0,HI=0;if(G<400)throw"e";else{rB=C(H);HI=C(H)}j.R={tGw:new E(rB,HI)}}else if(j.VB=="loda"){var U=H.M,Hw=t(H),rf=t(H),VI=t(H),rN=t(H),rp=t(H),rZ=[],$u=[]; +H.M=U+VI;for(var m=0;m=0;m--)$u[m]=t(H);j.R={};for(var m=0; +m=1300)H.M+=8; +var Hf=L(H);if(Hf==8){var Vr,Vg,rD,VE,Ht,tb;if(G>=600)H.M+=6;if(G>=500){Vr=V(H);Vg=V(H);rD=V(H)/(G<600?1e3:254e3); +VE=V(H);Ht=V(H);tb=V(H)/(G<600?1e3:254e3)}else throw"e";j.Iw=new Jo(Vr,VE,Vg,Ht,rD,tb)}else console.log(Hf)}}else if(!1){console.log(j); +var VQ=Math.min(j.size,32);console.log(x.tcE(data,j.M,VQ));console.log(x.tcA(data,j.M,VQ))}}};JN.OV=function(H,N){var Q=JN._t,c={},_=Q(H); +for(var O=0;O<_;O++){var L=Q(H);H.M+=4;var s=Q(H);c[L]=s;if(N)H.M+=48}return c};JN.tCv=function(H){var N=JN,Q=N._T; +H.M+=4;var c=Q(H),_=Q(H);return new E(c,_)};JN.tCs=function(H){var N=JN,Q=N._t,c=N.uO,_=N._T;H.M+=4; +var O=c(H)+c(H);H.M+=16;var L=JN.EW(H,O);return L};JN.tT$=function(H){var N=JN.uO(H);H.M+=2;return JN.EW(H,N)}; +JN.EW=function(H,N){var Q=JN,c=Q._T,_=H._D<600?2:4,O=H.M,L={Z:[],lX:[]},s=0,r=0,u=0;for(var V=0;V=500){L=c(H);if(L==1&&O>=1300)L=25;if(L==25||L==30)throw"e";else if(L==14)throw"e";else{H.M+=6; +s=_(H)}}else throw"e";var r=[];if(L==2||L==17){var u=[s>>>0&255,s>>>8&255,s>>>16&255,s>>>24&255];if(L==2)for(var V=0; +V<4;V++)u[V]=Math.round(255*u[V]/100);for(var V=0;V<4;V++)u[V]/=255;r=UDOC.C.cmykToRgb(u)}else console.log("Unknown color model "+L,s,s.toString(16)); +return r};var l={};l.NY=function(H,N,Q){this.name=H;this.id=N;if(Q!=null)this.Xg=Q};l.NY.prototype.Ly=function(H,N,Q,c,_){}; +l.NY.prototype.enable=function(H,N,Q,c,_,O){var L=new k(z.E.Y,!0);L.data={X:z.m.gM,Ut:"default"};N.N(L)}; +l.NY.prototype.disable=function(H,N,Q,c){};l.NY.prototype.cL=function(H,N,Q,c,_){};l.NY.prototype.XY=function(H,N,Q,c,_){}; +l.NY.prototype.Nu=function(H,N,Q,c,_){};l.NY.prototype.OH=function(H,N,Q,c,_){};l.NY.prototype.FJ=function(H,N,Q,c){}; +l.NY.prototype.xz=function(H,N,Q,c){};l.NY.prototype.wD=function(H,N){};l.NY.prototype.mK=function(H,N){}; +l.NY.prototype.sG=function(H,N,Q,c,_){};l.NY.prototype.qB=function(H,N){};l.NY.prototype.jV=function(H){return!1}; +l.NY.prototype.mW=function(H){return!1};l.NY.prototype.ZQ=function(){return!1};l.NY.prototype.Oy=function(H,N){return!0}; +l.NY.prototype.Nm=function(){return null};l.NY.prototype.E_=function(H,N,Q){};l.NY.prototype.hR=function(){return!1}; +l.NY.prototype.hH=function(H,N,Q,c){};l.Ft="0";l.sQ="1";l.hw="2";l.hL="5";l.tTw="6";l.tTK="7";l.pF="8"; +l.tTs="9";l.Wz="10";l.hx="14";l.tTu="16";l.Fj="18";l.FK="19";l.hM="20";l.Tz="23";l.F_="24";l.mg="27"; +l.so="31";l.tPO="34";l.tPn="35";l._x="36";l._h="37";l.MY="38";l.hW="39";l.hq="40";l.hp="41";l.tPB="42"; +l.hX="43";l.Jv="47";l.Oc="51";l.tdd="52";l.tdU="54";l.tGE="55";l.tGf="56";l.tGj="57";l.txM="58";l.mS="59"; +l.ML="61";l._y="100";l.mE="101";l.nP="230";l.tHt="231";l.ni="232";l.uh="233";l.rt="234";l.Mb="235";l.mq="236"; +l.mh=function(H,N,Q){l.NY.call(this,H,N,Q);this.kS={brush:H?HP.wi():null,bmode:"norm",opacity:1,flow:1,smth:0,wconf:{GS:10,Gh:!0},algnd:!1,sfrom:0,expo:.5,rng:1,strn:.5,pdetail:!0,smode:1,qsmode:0,setop:"front",patch:0}; +this.Uu=null;this.yd=null;this.St=null;this.TK=null;this.gk=null;this.tv=null;this.th=null;this.Ud=null; +this._g=1;this.qt=!1;this.Ua=null;this.caller=null};l.mh.prototype=new l.NY;l.mh.prototype.Ly=function(H,N,Q,c,_){if(H.X=="draw"){var O=H.txl,L=this.kS.bmode; +this.rD(Q);this.kS.bmode="norm";this.ps(Q,"draw",H.txf,O,O);this.kS.bmode=L;this.r(Q,O);this.finish(Q,O,H._F)}}; +l.mh.prototype.jV=function(H){if(K.jH.indexOf(H)!=-1)return!0;return!1};l.mh.prototype.FJ=function(H,N,Q,c){var _=this.kS.brush,O=l.mh.Og(_,c); +if(O!=null){var L=new k(z.E.Y,!0);L.data={X:z.m.u_,gg:JG.kT,HF:O};N.N(L)}if(!c.l(K.sf)&&c.fG()!=-1){var s=z.bM(Math.round(this.kS.opacity*100),c.fG())/100; +this.kS.opacity=s;var L=new k(z.E.Y,!0);L.data={X:z.m.nv,c:this.id,SV:{opacity:s}};N.N(L)}if(this.id==l.pF&&c.l(K.kz)!=this.qt&&H!=null){var r=this.kS.qsmode; +if(r==2)r=H.t==null?0:1;else r=2;this.OS(r,N);this.qt=c.l(K.kz)}else this.qt=c.l(K.kz);if(this.id==l.mg||this.id==l.FK||this.id==l.hM||this.id==l.Tz||this.id==l.F_){this.Hf(N,Q,c)}}; +l.mh.Og=function(H,N){var Q=H.Brsh.v.Dmtr.v.val,c=H.Brsh.v.Hrdn!=null?H.Brsh.v.Hrdn.v.val:-1,_=Q,O=c,L=N.l(K.Yz); +if(N.l(K.fm)){if(L)c=25*Math.floor((c-1)/25);else{if(Q>10)Q=5*Math.floor((Q-1)/5);else Q--}}if(N.l(K.Oq)){if(L)c=25*Math.ceil((c+1)/25); +else{if(Q>9)Q=5*Math.ceil((Q+1)/5);else Q++}}Q=Math.max(1,Q);c=Math.max(0,Math.min(100,c));if(O==-1)c=-1; +if(Q!=_||c!=O){var s=JSON.parse(JSON.stringify(H));s.Brsh.v.Dmtr.v.val=Q;if(O!=-1)s.Brsh.v.Hrdn.v.val=c; +return s}return null};l.mh.prototype.Hf=function(H,N,Q){if(N.lL.list.length==0)return;var c=Jf.YF(this.kS.brush,N.lL.Fy,this._g),_=z.IX(c); +if((this.id==l.mg||this.id==l.FK||this.id==l.Tz||this.id==l.F_)&&Q!=null&&Q.l(K.kz))_="crosshair";var O=new k(z.E.Y,!0); +O.data={X:z.m.gM,Ut:_};if(H)H.N(O)};l.mh.prototype.enable=function(H,N,Q,c){this.caller=N;var _=new k(z.E.Y,!0); +_.data={X:z.m.u_,gg:JG.kT,HF:JSON.parse(JSON.stringify(this.kS.brush))};N.N(_);if(H&&H.n.s!=0)this._g=H.n.s; +this.Hf(N,Q,c)};l.mh.prototype.qB=function(H,N){if(N==JG.kT){this.kS.brush=H.lL.CU;this.Hf(this.caller,H)}}; +l.mh.prototype.sG=function(H,N,Q,c,_){for(var O in H)this.kS[O]=H[O]};l.mh.prototype.rD=function(H){var N=H.b[H.g[0]],Q=N.G<=0?null:N.G==1?N.Ab():N.hy(H).d; +this.Ud=H.t==null?null:{rect:H.t.rect.clone(),channel:$.clone(H.t.channel)};this.gk=Q?Q.channel:N.buffer; +this.TK=(Q?Q.rect:N.rect).clone();var c=new p(0,0,H.$,H.z),_=c.Fv(this.TK);if(this.mi()||_.v$(this.TK))this.gk=this.gk.slice(0); +else{if(Q)Q.extend(_);else N.extend(_)}this.tv=this.TK;this.th=this.gk;if(N.G<=0&&(this.id==l.mg||this.id==l.FK)){var O=this.kS.sfrom; +if(O!=0){this.tv=new p(0,0,H.$,H.z);this.th=$.clone(H.cn(O==1?H.g[0]:null))}}};l.mh.prototype.hQ=function(H,N,Q){if(H.l(K.kz)){var c=new k(z.E.W,!0); +c.c=l.hx;c.data={X:"pickhere",tRa:Q};N.N(c);return!0}return!1};l.mh.prototype.Pa=function(H,N,Q,c,_,O){if(!H.FS()){this.Uu=null; +return}this.rD(H);var L=new p(0,0,H.$,H.z),s=null;if(O!=null){var r=H.b[H.g[0]],u=r.G<=0?null:r.G==1?r.Ab():r.hy(H).d; +s=$.I(L.f()*4);if(u)l.mh.gb(this.gk,this.TK,u.color,s,L);else $.Pg(this.gk,this.TK,s,L)}if(this.Uu&&this.id==l.pF&&this.kS.qsmode!=0){}else{var V=this.id==l.pF?H.b[H.g[0]].rect:L; +this.Uu=new Jf(this.kS.brush,N.lL.Fy,N.lL.nw,{OO:_,tX:O,tRh:this.kS.smth*50*z.h()/H.n.s,tf:this.id==l.F_},N.AF,N.ze,V,s)}if(this.id==l.pF){this.Uu.Kb(this.kS.brush,this.kS.qsmode==2?0:16777215)}var C=H.n.kp(c.x,c.y); +C=l.UP.ep(H,C,N);if(Q.l(K.Yz)&&this.yd){this.Uu.moveTo(this.yd.x,this.yd.y,c.Gl);this.Uu.lineTo(C.x,C.y,c.Gl)}else this.Uu.moveTo(C.x,C.y,c.Gl); +this.yd=C;this.St=new tL(C)};l.mh.prototype.xR=function(H,N,Q){if(H.n.s!=0&&H.n.s!=this._g){this._g=H.n.s; +this.Hf(this.caller,Q)}};l.mh.prototype.Mq=function(H,N,Q,c){if(this.Uu==null)return;var _=H.b[H.g[0]],O=H.n.kp(c.x,c.y); +O=l.UP.ep(H,O,N);var L=this.St.Kj(O,Q);this.Uu.lineTo(L.x,L.y,c.Gl);this.yd=L};l.mh.prototype.xz=function(H,N,Q,c){if(this.id!=l.pF||H==null)return; +if(H.t==null||H.g[0]!=this.tRe){this.tRe=H.g[0];this.OS(0,N)}};l.mh.prototype.r=function(H,N){if(N==null){N=this.Uu.YN(); +if(this.mi())N=N.sj(this.TK)}if(N.km())return;var Q=H.b[H.g[0]];if(Q.G<=0){Q.r(N)}if(Q.G==1){Q.Ab().rb=!0; +Q.Sa(H)}if(Q.G==3){Q.r()}H.r(H.root.KS(N,H,H.g[0]))};l.mh.prototype.Nu=function(H,N,Q,c,_){if(this.Uu==null)return; +this.Uu.finish();if(this.id!=l.Fj)this.ue(H);if(this.id==l.pF){var O=H.t;H.t=this.Ud;var L=new k(z.E.W,!0); +L.data={X:"setsel",_F:this.name,t:O};L.c=l.sQ;N.N(L);if(this.kS.qsmode==0)this.OS(1,N)}else{this.finish(H,this.Uu.Yd()); +this.Uu=null}this.dir=0};l.mh.prototype.OS=function(H,N){if(H==this.kS.qsmode)return;this.kS.qsmode=H; +var Q=new k(z.E.Y,!0);Q.data={X:z.m.nv,c:this.id,SV:{qsmode:H}};N.N(Q)};l.mh.prototype.mi=function(){var H=this.id; +return H==l.pF||H==l.so||H==l.hW||H==l.hq||H==l.hp};l.mh.prototype.finish=function(H,N,Q){var c=H.b[H.g[0]],_=c.G<=0?null:c.G==1?c.Ab():c.hy(H).d,O=_?_.rect:c.rect,r,u; +if(this.mi()||!O.v$(this.TK)){if(_==null){if(this.mi())c.hJ();else{var L=N.Fv(this.TK),s=$.I(L.f()*4); +$.Pg(c.buffer,c.rect,s,L);c.buffer=s;c.rect=L}}else _.hJ();this.r(H,O)}if(c.G<=0){r=$.I(N.f()*4);$.Pg(this.gk,this.TK,r,N); +u=$.I(N.f()*4);$.Pg(c.buffer,c.rect,u,N)}else{r=$.I(N.f());$.set(r,_.color);$.Jg(this.gk,this.TK,r,N); +u=$.I(N.f());$.set(u,_.color);$.Jg(_.channel,_.rect,u,N)}var V=new Jj(Q?Q:this.name,this);V.data={X:"putbrush",i:H.g[0],qx:c.G,Ge:N,tY:r,tB:u}; +H.Af(V)};l.mh.prototype.mK=function(H,N){this.hl(H,N,H.tY,H.tRF)};l.mh.prototype.wD=function(H,N){this.hl(H,N,H.tB,H.ttC)}; +l.mh.prototype.hl=function(H,N,Q,c){var _=N.b[H.i];if(H.X=="putbrush"){if(H.qx<=0){_.extend(H.Ge);$.Pg(Q,H.Ge,_.buffer,_.rect); +_.hJ()}if(H.qx==1||H.qx==3){var O=H.qx==1?_.Ab():_.hy(N).d;$.Jg(Q,H.Ge,O.channel,O.rect);if(H.qx==1){_.Ab().rb=!0; +_.Sa(N)}}}if(H.X=="drawtemp"){_.UM.nI=c;_.cX(N,0,0,N.t)}_.r();N.r()};l.mh.prototype.ue=function(H){this.ps(H,this.Ua,this.Uu.GE(),this.Uu.AK(),this.Uu.YN()); +this.r(H)};l.mh.prototype.ps=function(H,N,Q,c,_){var O=this.kS,L=H.b[H.g[0]],s=L.G<=0?null:L.G==1?L.Ab():L.hy(H).d,r=$.I(_.f()*4); +if(s==null){$.Pg(this.gk,this.TK,r,_)}else{l.mh.gb(this.gk,this.TK,s.color,r,_)}if(H.t&&N!="qselect"){var u=_.sj(H.t.rect),V=$.I(u.f()*4); +$.Pg(Q,c,V,u);$.Sm(H.t.channel,H.t.rect,V,u);Q=V;c=u}if(N=="draw")$.a.MR(O.bmode,Q,c,r,_,_,O.opacity); +if(N=="erase"){var C=$.I(_.f()*4);$.Pg(Q,c,C,_);if(s==null){var T=$.I(_.f());$.rY(C,T,3);$.Yi(T,O.opacity); +$.UK(T);$.Sm(T,_,r,_)}else{$.Mw(C,0,4278190080);$.a.MR("norm",C,_,r,_,_,O.opacity)}}if(N=="clone"||N=="heal"){var e=this.mo(),t=this.tv.clone(); +t.offset(e.x,e.y);var Y=_.clone();Y.FA(1,1);var A=$.I(Y.f()*4),G=$.I(Y.f());$.Pg(Q,c,A,Y);$.rY(A,G,3); +$.Mw(A,0);if(s==null){$.Pg(this.th,t,A,Y);var j=$.I(Y.f());$.rY(A,j,3);$.Yj(j,G)}else l.mh.gb(this.gk,t,s.color,A,Y); +if(N=="clone"){$.kw(G,A,3);$.a.MR(O.bmode,A,Y,r,_,_,O.opacity)}if(N=="heal"){var d=$.clone(G);$.round(d,20); +var w=$.I(Y.f()*4);$.Pg(this.gk,this.TK,w,Y);$.a.fX(A,Y,w,Y,d,Y,0,Y,1,!1);$.ih.zZ(w,d,Y);$.a.fX(w,Y,r,_,G,Y,0,_,1,!1)}}if(N=="dodge"||N=="burn"){var A=$.I(_.f()*4),F=1,n=0,J=0,Z=0; +$.Pg(Q,c,A,_);var f=_.f()*4,b=l.mh.Oh;if(this.qt){if(N=="dodge")N="burn";else N="dodge"}var P=O.rng; +if(N=="dodge"){n=[1-F/2,1,1+F][P];J=[1,1/(1+F),1][P];Z=[F/2,0,0][P]}if(N=="burn"){n=[1/(1-F/2),1,1-F/2][P]; +J=[1,1+F,1][P];Z=[-(F/2)/(1-F/2),0,0][P]}for(var M=0;M1||this.So>1?N:null; +var c=this.uc,_=this.kt;c.x=Math.round(c.x);c.y=Math.round(c.y);_.x=Math.round(_.x);_.y=Math.round(_.y); +if(Q){c.x=Math.max(0,Math.min(H.$,c.x));c.y=Math.max(0,Math.min(H.z,c.y));_.x=Math.max(0,Math.min(H.$,_.x)); +_.y=Math.max(0,Math.min(H.z,_.y))}var O=l.rG.QL(c,_,N,!0,this.kS.lQ),L=O[0].x,s=O[0].y;return new p(L,s,O[1].x-L,O[1].y-s)}; +l.MV.prototype.cL=function(H,N,Q,c,_){this.IY=!1;this.Ce=c.l(K.Yz);this.qt=c.l(K.kz);this.Sg=this.Ce?0:1; +this.So=this.qt?0:1;this.uc=H.n.kp(_.x,_.y);this.uc=l.UP.ep(H,this.uc,Q);if(this.hm(H,this.uc)){this.SQ=!0; +this.xh=H.t.rect.clone();return}this.nZ(H,Q,c,_);H.n._E=new p};l.MV.prototype.hm=function(H,N){if(H.t&&this.kS.uy=="front")return $.oc(N,H.t.channel,H.t.rect); +return!1};l.MV.prototype.XY=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y);if(E.Ln(this.uc,O)*H.n.s>5)this.IY=!0; +if(c.l(K.JW)){if(this.xX==null)this.xX=new E(O.x-this.uc.x,O.y-this.uc.y);this.uc.x=O.x-this.xX.x;this.uc.y=O.y-this.xX.y}else this.xX=null; +this.kt=O;if(!this.SQ)this.kt=l.UP.ep(H,this.kt,Q);if(this.hm(H,this.kt))this.hf(N,"move");else this.hf(N,this.Sx); +if(this.SQ){var L=this.xh.clone();L.x+=this.kt.x-this.uc.x;L.y+=this.kt.y-this.uc.y;var s=l.UP.tg(H,L,Q); +H.t.rect.x=Math.round(this.kt.x-this.uc.x+this.xh.x+s[0]);H.t.rect.y=Math.round(this.kt.y-this.uc.y+this.xh.y+s[1]); +H.Ow=!0;l.UP.tG(H,L,s);return}this.fI(H,Q,c,_);if(H.n._E)H.n._E=this.AK(H,c)};l.MV.prototype.Nu=function(H,N,Q,c,_){H.n._E=null; +this.kt=H.n.kp(_.x,_.y);this.kt=l.UP.ep(H,this.kt,Q);if(this.SQ){this.SQ=!1;if(this.kt.v$(this.uc)&&this.WH()=="front"){var O=new Jj([7,1],this); +O.data={X:"changesel",Ud:H.t,_k:null};H.Af(O);this.wD(O.data,H);return}this.WR(H,this.xh,H.t.rect.clone()); +if(H!=null&&H.S.iG){H.S.iG=null;H.un=!0}return}this.Ub(H,Q,c,_)};l.MV.prototype.WR=function(H,N,Q){var c=H.lk(); +if(c!=null&&c.c==this&&c.data.X=="movesel"){}else{c=new Jj([7,7],this);c.data={X:"movesel",Gi:N};H.Af(c)}c.data.SO=Q; +this.wD(c.data,H)};l.MV.prototype.FJ=function(H,N,Q,c){if(this.IY){if(this.Sg==0&&!c.l(K.Yz))this.Sg++; +if(this.Sg==1&&c.l(K.Yz))this.Sg++;if(this.So==0&&!c.l(K.kz))this.So++;if(this.So==1&&c.l(K.kz))this.So++}if(H.t!=null){var _=c.Ik(); +if(_.x!=0||_.y!=0){var O=H.t.rect.clone();O.x+=_.x;O.y+=_.y;this.WR(H,H.t.rect.clone(),O)}}};l.MV.prototype.finish=function(H,N,Q,c){var _=H.t,O=this.getSelection(H,N,Q,c),u; +if(O&&this.kS.jQ!=0){var L={rect:O.rect.clone(),channel:null},s=Math.round(this.kS.jQ*2.6);L.rect.FA(s,s); +var r=$.I(L.rect.f());L.channel=$.I(L.rect.f());$.Jg(O.channel,O.rect,r,L.rect);$.blur.ur(r,L.channel,L.rect,this.kS.jQ); +O=L}if(O!=null&&$.Wt(O.channel,0)){O=null}if(O==null){if(_==null)return;u=new Jj([7,1],this);u.data={X:"changesel",Ud:_,_k:O}}else{if(_!=null)O=$.lO.Zh(O,_,this.WH()); +u=new Jj(this.name,this);u.data={X:"changesel",Ud:_,_k:O}}H.Af(u);this.wD(u.data,H);this.uc.kR(-1,-1); +this.kt.kR(-1,-1)};l.MV.prototype.WH=function(){var H=this.kS.uy;if(this.Ce)H="union";if(this.qt)H="difference"; +if(this.Ce&&this.qt)H="intersection";return H};l.MV.prototype.getSelection=function(H,N,Q,c){return null}; +l.MV.prototype.nZ=function(H,N,Q,c){};l.MV.prototype.fI=function(H,N,Q,c){};l.MV.prototype.Ub=function(H,N,Q,c){}; +l.MV.prototype.mK=function(H,N){var Q=H.X;if(Q=="changesel")N.t=H.Ud;if(Q=="movesel")N.t.rect=H.Gi;N.Ow=!0}; +l.MV.prototype.wD=function(H,N){var Q=H.X;if(Q=="changesel")N.t=H._k;if(Q=="movesel")N.t.rect=H.SO;N.Ow=!0}; +l.MV.prototype.sG=function(H){this.kS=H};l.MV.prototype._A=function(H){var N=$.K.TD(H.Z);if(N.km())return null; +var Q=z.B("canvas","");Q.width=N.$;Q.height=N.z;var c=Q.getContext("2d");c.beginPath();c.translate(-N.x,-N.y); +Typr.U.pathToContext({cmds:H.lX,crds:H.Z},c);c.closePath();c.fill();var _=$.I(N.f()),O=c.getImageData(0,0,Q.width,Q.height); +$.rY(O.data,_,3);return{rect:N,channel:_}};l.sW=function(){l.mh.call(this,[10,18],l._x,"tools/blur"); +this.Ua="copy"};l.sW.prototype=new l.mh;l.sW.prototype.cL=function(H,N,Q,c,_){var O=c.l(K.kz)?Jf.IR:Jf._x; +this.Pa(H,Q,c,_,this.kS.strn,O);if(this.Uu==null)return;this.ue(H)};l.sW.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return; +this.xR(H,N,Q);if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.sq=function(){l.mh.call(this,[10,0],l.Tz,"tools/brush"); +this.Ua="draw"};l.sq.prototype=new l.mh;l.sq.prototype.cL=function(H,N,Q,c,_){if(this.hQ(c,N,_))return; +this.Pa(H,Q,c,_,this.kS.flow);if(this.Uu==null)return;this.ue(H)};l.sq.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return; +this.xR(H,N,Q);if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.sB=function(){l.mh.call(this,[10,38],l.F_,"tools/pencil"); +this.Ua="draw"};l.sB.prototype=new l.mh;l.sB.prototype.cL=function(H,N,Q,c,_){if(this.hQ(c,N,_))return; +this.Pa(H,Q,c,_,this.kS.flow);if(this.Uu==null)return;this.ue(H)};l.sB.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return; +this.xR(H,N,Q);if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.sZ=function(){l.mh.call(this,[10,22],l.hq,"tools/burn"); +this.Ua="burn"};l.sZ.prototype=new l.mh;l.sZ.prototype.cL=function(H,N,Q,c,_){this.Pa(H,Q,c,_,this.kS.expo/Math.E); +if(this.Uu==null)return;this.ue(H)};l.sZ.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return;this.xR(H,N,Q); +if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.rv=function(){l.mh.call(this,[10,1],l.mg,"tools/clone"); +this.Ua="clone";this.xQ=null;this.oX=null;this.M=null;this.VR=0};l.rv.prototype=new l.mh;l.rv.prototype.cL=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y); +this.xQ=O;if(c.l(K.kz)||c.l(K.j$)){this.oX=H.n.kp(_.x,_.y);this.M=null;return}if(this.oX==null){if(Date.now()-this.VR>1e3){alert(tg.get([15,7,0])); +this.VR=Date.now()}return}this.Pa(H,Q,c,_,this.kS.flow);if(this.Uu==null)return;if(this.M==null||!this.kS.algnd)this.M=new E(Math.round(O.x-this.oX.x),Math.round(O.y-this.oX.y)); +this.ue(H)};l.rv.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return;this.xR(H,N,Q);if(!_.Vv||this.oX==null)return; +this.Mq(H,Q,c,_);this.ue(H)};l.rv.prototype.mo=function(){return this.M};l.rv.prototype.disable=function(H,N,Q,c){this.oX=null; +this.M=null};l.$p=function(){l.NY.call(this,[10,2],l.Wz,"tools/crop");this.vr={CF:{yC:0,x:0,y:0}};this.nl=null; +this.cursor=null;this.Vr=0};l.$p.prototype=new l.NY;l.$p.prototype.mW=function(H){return this.nl&&this.nl.QW()}; +l.$p.prototype.cL=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y),L=this.vr.CF,s=L.yC==1?L.x/L.y:null;if(this.nl==null)this.nl=new ro(null,!0,!1,!1,!0,L.yC==1); +this.nl.cL(H,Q,c,O,s)};l.$p.prototype.Hf=function(H){var N=new k(z.E.Y,!0);N.data={X:z.m.gM,Ut:this.cursor}; +H.N(N)};l.$p.prototype.enable=function(H,N,Q,c){this.cursor="crosshair";this.Hf(N)};l.$p.prototype.XY=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y); +if(!_.Vv){var L="crosshair";if(this.nl&&this.nl.lr(O,H.n.s))L=this.nl.lr(O,H.n.s);else if(this.nl){if(this.nl.w$(O))L="default"; +else L="default"}if(L!=this.cursor){this.cursor=L;this.Hf(N)}}if(this.nl==null)return;this.nl.XY(H,Q,c,O)}; +l.$p.prototype.Nu=function(H,N,Q,c,_){if(this.nl==null)return;var O=H.n.kp(_.x,_.y);this.nl.Nu(H,Q,c,O); +this.Mf(N,z.E.Y,{X:z.m.nv,c:this.id,VJ:!0});var L=this.nl.az();if(Math.abs(L[0]-L[4])<2||Math.abs(L[1]-L[5])<2){this.disable(H,N,null,c); +return}if(Date.now()-this.Vr<200&&this.nl.w$(O)){this.wS(H,Q);this.disable(H,N,Q,c);return}this.Vr=Date.now()}; +l.$p.prototype.FJ=function(H,N,Q,c){if(c.l(K.BV)){this.wS(H,Q);this.disable(H,N,Q,c)}else if(c.l(K._f)){this.disable(H,N,Q,c)}else if(this.nl)this.nl.FJ(H,Q,c)}; +l.$p.prototype.Ly=function(H,N,Q,c,_){var O,L=new p(0,0,Q.$,Q.z),s=[11,3],r=Q.go,u=Q.$/2,V=Q.z/2,C=!1; +if(H.X=="imgsize"){L=new p(0,0,H.vg,H.vF);if(H.vm)r=H.vm;C=H.Et==0}else if(H.X=="canvsize"){var T=H.iP!=null?H.iP:0; +L=new p(0,0,H.vg,H.vF);var e=Q.$-H.vg,t=Q.z-H.vF,Y=Math.round(e/2),A=Math.round(t/2);if(T==1||T==4||T==7)L.x=Y; +if(T==2||T==5||T==8)L.x=e;if(T==3||T==4||T==5)L.y=A;if(T==6||T==7||T==8)L.y=t;if(H.M){L.x=H.M.x;L.y=H.M.y}}else if(H.X=="rot"&&H.R!=Math.PI){L=new p(u-Q.z/2,V-Q.$/2,Q.z,Q.$); +if((Q.$+Q.z&1)==1){u=Math.floor(u);V=Math.floor(V);L=new p(u-Math.floor(Q.z/2),V-Math.floor(Q.$/2),Q.z,Q.$); +if((Q.$&1)==1&&H.R!=-Math.PI/2)L.y--;if((Q.z&1)==1&&H.R==-Math.PI/2)L.x--}}else if(H.X=="trim"){s=[11,12]; +var G=Q.b[Q.g[0]];L=$.Wr(G.buffer,G.rect);if(L.km())L=G.rect.clone()}if(H.X=="imgsize"||H.X=="rot"||H.X=="scl"){var j=new Jo; +if(H.X=="imgsize"){s=[11,10];j.scale(H.vg/Q.$,H.vF/Q.z)}else{j.translate(-u,-V);if(H.X=="rot")j.rotate(H.R); +if(H.X=="scl")j.scale(H.R.x,H.R.y);j.translate(u,V);s=H._F}O=this.Ww(Q,_,j,C)}var d=new Jj(s,this);d.data={Gi:new p(0,0,Q.$,Q.z),SO:L,Vd:Q.go,vm:r,iY:O,Iw:j}; +Q.Af(d);this.wD(d.data,Q)};l.$p.prototype.Ww=function(H,N,Q,c){var _={b:[],Eu:null,gT:null};for(var O=0; +O>2); +$.rY(T,e,3);$.a.sF($.kh(L.rect.f()),L.rect,e,u,L.channel,u,1);$.kw(e,T,3)}else{var t=$.I(L.rect.f()),Y=_.ze>>16&255,A=_.ze>>8&255,G=_.ze>>0&255; +$.set(t,Math.round($.YK(Y,A,G)));$.a.sF(t,L.rect,T,u,L.channel,u,1)}}var j=new Jj([2,2],this);j.data={X:"putbrush",i:Q.g[0],qx:O.G,Ge:u,tY:C,tB:T}; +Q.Af(j);this.wD(j.data,Q)}if(H.X=="stroke"){var d=H.ttS,L=Q.t;if(L==null){L={rect:O.rect.clone(),channel:$.I(O.rect.f())}; +$.rY(O.buffer,L.channel,3)}var w=Ja.wI(d),f=l.nk.Xj(L,Math.ceil(w[0]),Math.ceil(w[1])),b=$.e.NG(d.Clr.v),Y=Math.round(b.T),A=Math.round(b.q),G=Math.round(b.H); +this.Wy(Q,O,f,Y,A,G,Math.round(255*d.Opct.v.val/100),ta.FC(d.Md.v.BlnM),[14,9])}if(H.X=="fill"){var b=[_.AF,_.ze,0,16777215][H.uV],Y=b>>16&255,A=b>>8&255,G=b>>0&255; +this.Wy(Q,O,Q.t,Y,A,G,255,"norm",[2,3])}if(H.X=="fillBMP"){this.WD(Q,O,Q.t,H.eu,H.UY,H._F)}if(H.X=="paste"){var F=H.lD,n=JL.l$.OI(F,Q); +this.rD(Q);this.ps(Q,"draw",F.buffer,n,n);this.r(Q,n);this.finish(Q,n,"Paste")}};l.gF.prototype.Wy=function(H,N,Q,c,_,O,L,s,r){var u=Q==null?new p(0,0,H.$,H.z):Q.rect,V=L<<24|O<<16|_<<8|c<<0,C=$.I(u.f()*4); +$.Mw(C,V);this.WD(H,N,Q,C,s,r)};l.gF.prototype.WD=function(H,N,Q,c,_,O){var L=N.G<=0?null:N.G==1?N.Ab():N.hy(H).d,s=N.G<=0?N.rect:L.rect,r=Q==null?new p(0,0,H.$,H.z):Q.rect,u=Q==null?$.cb(H.$*H.z):Q.channel,V=r.f(),C,T,e=null; +if(N.G<=0){C=$.I(V*4);T=$.I(V*4);$.Pg(N.buffer,N.rect,C,r);$.Pg(N.buffer,N.rect,T,r)}else{C=$.I(V);T=$.I(V); +L.extend(r);$.Jg(L.channel,L.rect,C,r);$.Jg(L.channel,L.rect,T,r)}if(Q!=null)$.tV$(u,c);if(N.G>0){e=$.I(V); +$.BS(c,e)}if(N.JJ(H,Q)){var t=N.UM.nI,Y=$.clone(N.UM.nI);if(N.G<=0)$.sa(c,Y);else $.sa(e,Y);var A=new Jj([2,3],this); +A.data={X:"drawtemp",i:H.g[0],qx:N.G,tRF:t,ttC:Y};H.Af(A);this.wD(A.data,H)}else{if(N.G<=0)$.a.MR(_,c,r,T,r,r,1); +else $.a.sF(e,r,T,r,u,r,1);var A=new Jj(O,this);A.data={X:"putbrush",i:H.g[0],qx:N.G,Ge:r,tY:C,tB:T}; +H.Af(A);this.wD(A.data,H)}};l.iR=function(){l.MV.call(this,[10,4],l.hw,"tools/eselect");this.Sx="crosshair"}; +l.iR.prototype=new l.MV;l.iR.prototype.fI=function(H,N,Q,c){if(!c.Vv||!this.IY)return;var _=this.AK(H,Q); +H.S.rX=l.iR.Wc(_);H.un=!0};l.iR.prototype.Ub=function(H,N,Q,c){H.S.rX=null;H.un=!0;this.finish(H,N,Q,c)}; +l.iR.prototype.getSelection=function(H,N,Q,c){if(this.uc.v$(this.kt)||!this.IY)return null;var _=this.AK(H,Q); +if(!_.p$(new p(0,0,H.$,H.z)))return null;return this._A(l.iR.Wc(_))};l.iR.Wc=function(H){var N=H.x,Q=H.y,c=H.x+H.$,_=H.y+H.z,O=(N+c)/2,L=(Q+_)/2,s=(N-c)/2,r=(Q-_)/2,u=.5522848,V={Z:[O,L-r],lX:["M","C","C","C","C"]}; +V.Z.push(O+u*s,L-r,O+s,L-u*r,O+s,L);V.Z.push(O+s,L+u*r,O+u*s,L+r,O,L+r);V.Z.push(O-u*s,L+r,O-s,L+u*r,O-s,L); +V.Z.push(O-s,L-u*r,O-u*s,L-r,O,L-r);return V};l.uS=function(){l.NY.call(this,[10,5],l.hx,"tools/eyedropper"); +this.sl=!1;this.Cs=1};l.uS.prototype=new l.NY;l.uS.prototype.mW=function(H){return H.Vv};l.uS.prototype.Ly=function(H,N,Q,c,_){if(H.X=="pickhere")this.On(Q,N,_,c,H.tRa)}; +l.uS.prototype.cL=function(H,N,Q,c,_){this.sl=!0;this.On(H,N,Q,c,_)};l.uS.prototype.XY=function(H,N,Q,c,_){if(this.sl)this.On(H,N,Q,c,_)}; +l.uS.prototype.Nu=function(H,N,Q,c,_){this.sl=!1};l.uS.prototype.On=function(H,N,Q,c,_){var O=l.uS.WL(H,_,this.Cs),L=new k(z.E.Y); +L.data={X:z.m.u_,gg:JG.nc,gE:0,R:O};N.N(L)};l.uS.WL=function(H,N,Q){var c=H.n.kp(N.x,N.y),_=Math.floor(c.x),O=Math.floor(c.y),L=(Q-1)/2,s=Math.max(0,_-L),r=Math.max(0,O-L),u=Math.min(H.$,_+L+1),V=Math.min(H.z,O+L+1),C=(u-s)*(V-r),T=H.cn(),e=0,t=0,Y=0; +for(var _=s;_2){var e;if(H.t)e=H.t.rect;else e=new p(0,0,H.$,H.z);var t=$.I(e.f()*4),Y=this.kS.style;if(Y!="Lnr"){V*=2; +r=this.hC}$.e.AH(this.kS.e,t,e,[T*1/V,C*1/V,-C*1/V,T*1/V],r.x,r.y,this.kS.reverse,B.e.types.indexOf(Y),Q.AF,Q.ze); +var A=Math.round(this.kS.opacity*256),G=t.length;if(A!=256)for(var j=0;j>>8; +var d=new k(z.E.W);d.c=l.so;d.data={X:"fillBMP",eu:t,UY:this.kS.Vg,_F:this.name};N.N(d)}H.S.rX=null; +H.S.Lg=[];H.un=!0;this.$b=!1};l.Aa.Ol=function(H,N){if(H.v$(N))return H;var Q=N.x-H.x,c=N.y-H.y,_=Math.abs(Q),O=Math.abs(c); +if(_>O)O=_/2>O?0:_;if(O>_)_=O/2>_?0:O;_=Q>0?_:-_;O=c>0?O:-O;var L=Math.sqrt(Q*Q+c*c)/Math.sqrt(_*_+O*O); +return new E(H.x+_*L,H.y+O*L)};l.Aa.uU=function(H,N,Q,c,_,O,L){if(L==null)L=z.B("canvas","");var s=L.getContext("2d"); +L.width=N;L.height=Q;var r=new p(0,0,N,Q),u=$.I(N*Q*4);$.by(u,N,Q,4,0,0);var V=Math.sin(c),C=Math.cos(c),T=$.I(N*Q*4); +$.e.AH(H,T,r,[C*1/N,V*1/N,-V*1/Q,C*1/Q],N/2,Q/2,!1,0,_,O);$.a.MR("norm",T,r,u,r,r,1);var e=s.getImageData(0,0,N,Q); +$.sa(u,e.data);s.putImageData(e,0,0);return L.toDataURL()};l.Aa.tRR=function(H,N,Q){var c=JSON.parse(JSON.stringify(H)); +for(var _=0;_>16&255,q:s>>8&255,H:s&255})}}return c};l.am=function(){l.NY.call(this,[10,7],l.mS,"tools/hand"); +this.VH=new E(0,0);this.VT=new E(0,0)};l.am.prototype=new l.NY;l.am.prototype.Ly=function(H,N,Q,c,_){var O=H.X; +if(O=="scroll"&&!c.l(K.kz)){if(c.l(K.sf))this.Of(Q,Q.n.M.x-H.or.y,Q.n.M.y-H.or.x);else this.Of(Q,Q.n.M.x-H.or.x,Q.n.M.y-H.or.y)}}; +l.am.prototype.enable=function(H,N,Q,c){var _=new k(z.E.Y,!0);_.data={X:z.m.gM,Ut:"grab; cursor:-moz-grab; cursor:-webkit-grab;"}; +N.N(_)};l.am.prototype.cL=function(H,N,Q,c,_){this.VT.py(H.n.M);this.VH.kR(_.x,_.y)};l.am.prototype.XY=function(H,N,Q,c,_){if(!_.Vv)return; +this.Of(H,this.VT.x+(_.x-this.VH.x),this.VT.y+(_.y-this.VH.y))};l.am.prototype.Of=function(H,N,Q){var c=H.n.s; +if(H.$*c=0;Q--){var c=H.b[Q];if(c.add.TySh&&c.rect.Eo(N)&&H.jA(Q)){var _=c.FT(2)||c.FT(31); +return _?-2:Q}}return-1};l.fl.prototype.cL=function(H,N,Q,c,_){this.Ti=H;this.le=Q;this.caller=N;var O=H.n.kp(_.x,_.y),L=this.ER==null; +if(L){var s=this.WM(H,O);if(s==-2){alert(tg.get([6,57,0]));return}if(s>=0)this.su(H,N,Q,[s]);else{this.hd=!0; +this.Pw=_;return}}if(this.nl&&this.nl.cL(H,Q,c,O)&&$.UB.vn(this.ER.add.TySh.O$)||!L&&$.K.Cb(O,this.ER.rect)>20/H.n.s&&X.gG(this.ER.add.TySh.Bd)==0){this.uC=!0; +this.ud=O;this.VQ=this.ER.add.TySh.UC.clone()}else{this.co=!0;this.NF=this.nq=this.qP(O);var r=Date.now(); +if(r-this.VW>300)this.Tq=0;this.Tq++;this.VW=r;if(this.Tq==2){this.tRy();this.co=!1}if(this.Tq==3){this.tRL(); +this.co=!1}}this.iN(H)};l.fl.prototype.su=function(H,N,Q,c){var _=H.b[c[0]];this.ER=_;this.Mf(N,z.E.Y,{X:z.m.nv,c:this.id,Lc:"showactive"}); +this.TZ=c;H.g=c.slice(0);H.Ku();H.EV=!0;var O=_.add.TySh;this.cx=this.u$(H,c);if(X.gG(O.Bd)==1){var L=X.BR(O.Bd); +L=new p(0,0,L[2]-L[0],L[3]-L[1]);var s=[L.x,L.y,L.x+L.$,L.y,L.x+L.$,L.y+L.z,L.x,L.y+L.z];$.K.UC(s,O.UC,s); +this.nl=new ro(s,!1,!1,!1,!0)}this.ix(H,Q)};l.fl.prototype.tRy=function(){var H=X.Fk(this.ER.add.TySh.Bd); +this.NF=this.Wi(H,this.NF);this.nq=this.We(H,this.NF)};l.fl.prototype.Wi=function(H,N){var Q=" \t\n,.?!_-+=@#$%^&*'\"(){}[]\\/<>:;|",c=[]; +for(var _=0;_=0;_--)if(c.indexOf(H.charAt(_))!=-1==O)return _+1; +return 0};l.fl.prototype.We=function(H,N){var Q=" \t\n,.?!_-+=@#$%^&*'\"(){}[]\\/<>:;|",c=[];for(var _=0; +_20/H.n.s)s="move";else if(this.WM(H,O)>=0)s="text"; +if(s!=this.oH){this.oH=s;this.Hf(N)}}if(this.hd&&E.Ln(this.Pw,_)>4){this.hd=!1;this.WN(H,N,Q,c,_);L=this.ER; +X.kN(L.add.TySh.Bd,1);this.uC=!0;this.nl=new ro(null,!1,!1,!1,!0);this.nl.cL(H,Q,c,H.n.kp(this.Pw.x,this.Pw.y))}if(this.uC){var r=L.add.TySh; +if(this.nl){this.nl.XY(H,Q,c,O);var u=r.UC.clone(),V=Math.atan2(u.H,u.o);u.rotate(V);var C=$.F.od($.F.tn(this.nl.az())),T=Math.atan2(C.H,C.o); +C.rotate(T);if(!isNaN(C.o)&&C.o*C.KI-C.H*C.lA!=0){var e=new p(0,0,C.o/u.o,C.KI/u.KI);X.Yc(r.Bd,[0,0,Math.round(e.$),Math.round(e.z)]); +r.UC=$.F.od($.F.tn(this.nl.az(),e));this.ix(H,Q)}}else{var t=O.x-this.ud.x,Y=O.y-this.ud.y;r.UC=this.VQ.clone(); +var A=new E(r.UC.DX+t,r.UC.Ug+Y);A=l.UP.ep(H,A,Q);r.UC.DX=A.x;r.UC.Ug=A.y;this.ix(H,Q)}}if(this.co)this.nq=this.qP(O); +if(this.uC||this.co)this.iN(H)};l.fl.prototype.WN=function(H,N,Q,c,_){var O=H.Zs();O.add.lnsr="rend"; +var L=H.b.slice(0);O.Vp("Text layer "+L.length);this.ER=O;var s=H.g.length==0?H.b.length-1:H.g[H.g.length-1],r=s+1; +if(L[s].add.lsct==tR.Gp)r--;this.cx={zh:L.slice(0),Ud:H.g.slice(0)};L.splice(r,0,O);H.g=[r];this.NF=this.nq=0; +H.rM(L);this.cx._b=L.slice(0);this.cx._k=H.g.slice(0);this.Mf(N,z.E.Y,{X:z.m.nv,c:this.id,Lc:"showactive"}); +_=H.n.kp(_.x,_.y);O.add.TySh=X.YD(_.x,_.y,Q.iJ);return O};l.fl.prototype.Nu=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y); +if(this.hd){this.hd=!1;this.WN(H,N,Q,c,_);X.kN(this.ER.add.TySh.Bd,0);this.co=!0}if(this.uC||this.co){this.iN(H); +this.OK()}if(this.uC&&this.nl)this.nl.Nu(H,Q,c,O);this.uC=this.co=!1;this.nS.focus()};l.fl.prototype.OK=function(){var H=Math.min(this.NF,this.nq),N=Math.max(this.NF,this.nq),Q,c; +if(H==N){var _=this.Vy&&this.Vy.Ym(H-1);if(H==0||_&&_.oQ=="\n")Q=c=H;else Q=c=H-1}else{Q=H;c=N-1}var O=this.ER.add.TySh,L=X.Sr(O.Bd,Q,c); +X.bO(L,l._.ka(O.UC));this.qJ(this.caller,L)};l.fl.prototype.qJ=function(H,N){this.Mf(H,z.E.Y,{X:z.m.u_,gg:JG.vw,iJ:N})}; +l.fl.prototype.FJ=function(H,N,Q,c){if(c.l(K._f))this.ua(H,N)};l.fl.prototype.disable=function(H,N,Q,c){if(this.ER)this.qM(H,N); +else this.ua(H,N)};l.fl.prototype.sG=function(H,N,Q,c,_){if(H.Lc=="commit")this.qM(Q,N);if(H.Lc=="cancel")this.ua(Q,N); +if(H.Lc=="showwarp"){if(Q==null)return;if(this.ER==null){var O=Q.b[Q.g[0]],L=O.add.TySh;if(L==null)return; +this.su(Q,N,_,[Q.g[0]]);this.nS.focus();this.VO=!0}this.Vi=this.ER.add.TySh.O$;var s=new k(z.E.Y,!0); +s.data={X:z.m.gI,gL:"textwarp"};N.N(s)}};l.fl.prototype.qB=function(H,N){this.le=H;var Q=this.Ti;if(Q==null)return; +if(N!=JG.hP&&N!=JG.vw&&N!=JG.IL)return;if(this.Vx){this.Vx=!1;var c=this.TZ;for(var _=0;_0&&c.charAt(this.NF-1)!=_.charAt(this.NF-1))this.NF--}var s=c.substring(0,this.NF),r=c.substring(this.nq,c.length),u=_.substring(this.NF,_.length-r.length); +X.bw(Q.Bd,this.NF,this.nq);X.el(Q.Bd,this.NF,u);X.zX(Q.Bd,this.NF,this.NF+u.length-1,this.Oz(this.le,Q)); +this.NF=this.nq=s.length+u.length;var V=this.Ti;this.ix(V,this.le,!0);this.iN(V,!0)};l.fl.prototype.ttV=function(H){if(this.ER==null)return; +var N=K,Q=0,c=0,r=!1;if(N.Kd(H.code,N.OE))Q=1;if(N.Kd(H.code,N.Ov))Q=-1;if(N.Kd(H.code,N.fS))c=-1;if(N.Kd(H.code,N.fO))c=1; +var _=H.ctrlKey||H.metaKey,O=N.Kd(H.code,K.trG),L=N.Kd(H.code,K.trK),s=X.Fk(this.ER.add.TySh.Bd);if(Q!=0||c!=0||O||L){H.preventDefault(); +var u=this.NF;if(Q!=0){if(_&&Q==-1)u=this.Wi(s,this.NF-1);else if(_&&Q==1)u=this.We(s,this.NF);else u=this.NF+Q}else if(c!=0){var V=this.Vy.Ii(this.NF); +if(c==-1&&V.Pc==0)u=0;else if(c==1&&V.Pc==this.Vy.VF-1)u=99999999999;else u=this.Vy.YM(new E(V.rect.x+V.rect.$/2,0),V.Pc+c)}else if(O){var C=this.NF-1; +while(C>0&&s.charCodeAt(C)!=10)C--;u=C==0?0:C+1}else if(L){var C=this.NF;while(Ct.x+t.$/2||e.on==1&&_.x"; +this.fV=[{name:H+" PNG"},{name:H+" SVG",wN:!0},{name:"Copy CSS",V:function(Q){return{cg:tg.get([5,1])+" CSS"}}}]; +this.Nc=new rq(this.fV);this.Nc.O("select",this.aQ,this);this.VY=[];for(var N=0;N<$.VU.ip.length;N++)this.VY.push({name:$.VU.ip[N],V:function(Q,c,_){return{cU:c.sS.eJ==_}}}); +this.Kw=new rq(this.VY);this.Kw.O("select",this.ttp,this)};l.UP.prototype=new l.NY;l.NY.prototype.mW=function(H){return this.$b&&this.X!=2}; +l.UP.prototype.hR=function(){return this.$b&&this.X==0};l.UP.prototype.hH=function(H,N,Q,c){this.t$(H,-this.BM.x,-this.BM.y); +this.BM.kR(0,0);this.tw(H,null,Q);this.qK(H)};l.UP.prototype.Nm=function(){var H=this.kS;return[H.EP?1:0,H.MT?1:0,H.Nf?1:0]}; +l.UP.prototype.E_=function(H,N,Q){var c=this.kS;if(H&&H[0]!=null)c.EP=H[0]==1;if(H&&H[1]!=null)c.MT=H[1]==1; +if(H&&H[2]!=null)c.Nf=H[2]==1;var _=new k(z.E.Y,!0);_.data={X:z.m.nv,c:this.id,ex:c,ttv:N};Q.N(_)};l.UP.pJ=function(H,N,Q,c,_){var O=H.MC(null,_),L=H.jS(O)[0]; +if(Q!=1){var s=new p(0,0,Math.round(L.$*Q),Math.round(L.z*Q));l.$p.tt(L,s);var r=[];for(var u=0;u")t++;var Y=Q.root.oo(t),A=Y; +while(Y.parent!=null){Y=Y.parent;if(r.indexOf(Y.index)!=-1)A=Y}var G=C.indexOf(A.index);if(G==-1){G=C.length; +C.push(A.index)}V[e]=G}var j=[],d=[],w=[];for(var e=0;e_.y)O.push(r,_.y,r,c.y); +if(s<_.y+_.z)O.push(r,s,r,_.y+_.z);if(c.x>_.x)O.push(_.x,u,c.x,u);if(L<_.x+_.$)O.push(L,u,_.x+_.$,u)}H.un=!0}}if(this.X==3&&this.$b){var f=$.K.DK(this.VK); +if(H.S.rX==null)H.S.rX=f;else $.K.concat(H.S.rX,f);H.un=!0}};l.UP.prototype.pr=function(H,N){var Q=H.$,c=H.z,_=H.x+Math.floor(Q*.2),O=H.y+Math.floor(c*.2); +N.push(_,H.y,_,H.y+c);N.push(H.x,O,H.x+Q,O)};l.UP.prototype.Hf=function(H,N){var Q={X:z.m.gM,Ut:H},c=new k(z.E.Y,!0); +c.data=Q;N.N(c)};l.UP.prototype.aQ=function(H){var N=this.Nc.pa()[0],Q=this.$c;if(N<2)this.Ok(Q,["png","svg"][N],1,this.Sn,this.E$); +if(N==2){var c=Q.b[Q.g[0]],_=CSS.bL(c);_=_.join(";\n")+";";var O=z.B("textarea");O.value=_;document.body.appendChild(O); +O.select();document.execCommand("copy");document.body.removeChild(O)}};l.UP.prototype.ttp=function(H){var N=JSON.parse(JSON.stringify(this.Sn.sS)); +N.eJ=this.Kw.pa()[0];var Q=new k(z.E.Y,!0);Q.data={X:z.m.u_,gg:JG.lz,UG:N};this.E$.N(Q)};l.UP.prototype.OH=function(H,N,Q,c,_){this.$c=H; +this.Sn=Q;this.E$=N;var O=H.n.kp(_.x,_.y);this.iX(H,O,c);var L=this.Nc,s=this.fV;if(l.UP.ig(Q,_)){L=this.Kw; +s=this.VY}L.parent=N;L.update(H,s,Q);var r=new k(z.E.Y,!0);r.data={X:z.m.Fe,AB:L,x:_.ttk+1,y:_.tVr+1}; +N.N(r)};l.UP.prototype.cL=function(H,N,Q,c,_){this.xU.kR(_.x,_.y);this.xk=H.n.kp(_.x,_.y);this.St=new tL(this.xk); +this.uJ(H,N,c,Q,!0)};l.UP.ig=function(H,N){return H.Td&&(N.x<$.VU.oK||0>2);$.rY(Y.UM.nI,w,3)}else w=$.clone(H.t.channel); +var f={rect:Y.UM.SB.clone(),channel:w};this.MJ=new Jj(A?[12,53]:[12,54],this);this.MJ.data={X:1,i:H.g[0],UM:Y.UM,Xy:j,Jo:d,Ud:H.t,_k:f,KI:new E(0,0)}; +H.Af(this.MJ);H.t=f;H.Ow=!0}}this.$b=!0;this.Ew=l._.AK(H)};l.UP.prototype.iX=function(H,N,Q){var c=H.root.oc(new E(Math.floor(N.x),Math.floor(N.y))); +if(c){if(c.i.add.vmsk)H.un=!0;var _=H.b.indexOf(c.i);if(Q.l(K.Yz)){var O=H.g.indexOf(_);if(O==-1)H.g.push(_); +else if(H.g.length>1)H.g.splice(O,1)}else if(H.g.indexOf(_)==-1){c.i.G=0;H.g=[_];H.Ku();H.EV=!0}}return c!=null}; +l.UP.prototype.XY=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y),T,e;if(this.St)O=this.St.Kj(O,c);if(!this.$b){if(Q.kk&&Q.sS.UL){var L=this.iB(H,O),s="default"; +if(L)s=["col-resize","row-resize"][L[0]];else if(this.nl){var r=this.nl.lr(O,H.n.s);if(r)s=r}this.Hf(s,N)}this.qK(H,O); +return}var u=this.xk,V=Math.round(O.x-u.x)-this.BM.x,C=Math.round(O.y-u.y)-this.BM.y;if(this.Ew){e=this.Ew.clone(); +e.offset(this.BM.x+V,this.BM.y+C);T=l.UP.tg(H,e,Q);V+=Math.round(T[0]);C+=Math.round(T[1])}this.BM.x+=V; +this.BM.y+=C;this.t$(H,V,C,O,null,c.l(K.Yz));this.qK(H,O);if(T)l.UP.tG(H,e,T)};l.UP.prototype.iB=function(H,N){N=[N.x,N.y]; +for(var Q=0;Q<2;Q++)for(var c=0;c0){var d=V.add.GdFl;if(d==null)d=V.add.PtFl;if(V.TT()&&!V.Vw()&&V.add.vmsk!=null&&$.A.eQ(V.add.vmsk.L)&&V.add.vmsk.JU==255&&(d==null||d.Algn&&d.Algn.v)){V.rect.offset(r,u)}else V.Sa(H); +var w=H.root.KS(V.vo(H),H,N[O]);L=L.Fv(w);w.offset(-r,-u);L=L.Fv(w);if(V.add.SoCo||V.add.GdFl||V.add.PtFl||JO.get(V.add)!=null)L=L.Fv(s); +V.ft()}}H.r(L)};l.UP.ob=function(H,N){var Q=[];for(var c=0;c>>1),N.x+N.$],[N.y,N.y+(N.z>>>1),N.y+N.z]],Q); +return c};l.UP.oZ=function(H,N,Q){var c=[0,0,1e9,1e9];if(!Q.PB||!Q.kk)return c;for(var _=0;_<2;_++){var O=1e9,L=N[_],s=0; +for(var r=0;r<3;r++){var u=l.UP.ttn(H,L[r],_,Q);if(u!=1e9&&Math.abs(u-L[r])>>1,C>>>1,V,C];for(var r=0;r<6; +r+=2)if(Math.abs(T[r+Q]-N)H.$||N.y<0||N.y>H.z)return null; +var _=new p(0,0,H.$,H.z),O=_.$,L=_.z,s=O*L,r=$.I(s*4),u=c.G<=0?null:c.G==1?c.Ab():c.hy(H).d;if(u==null)$.Pg(c.buffer,c.rect,r,_); +else l.mh.gb(u.channel,u.rect,u.color,r,_);r=new Uint32Array(r.buffer);var V=Math.round(N.x-.5-_.x),C=Math.round(N.y-.5-_.y); +if(!_.Eo(N))V=C=0;var T=C*O+V,e=r[T],t=e&255,Y=e>>8&255,A=e>>16&255,G=e>>24&255,j=$.I(O*L),d=Q.GS,w=1/d; +if(Q.Gh){var f=$.I(j.length);f[T]=2;var b=[V,C];while(b.length>0){var F=b.pop(),n=b.pop(),J=F*O+n;f[J]=2; +var Z=l.QV.n$(r[J],t,Y,A,G);if(Z>d){j[J]=Math.round(255*(1-Math.max(0,Math.min(1,(Z-d)*w))));continue}j[J]=255; +if(n>0){if(F>0&&f[J-O-1]==0){b.push(n-1,F-1);f[J-O-1]=1}if(F0&&f[J-O+1]==0){b.push(n+1,F-1);f[J-O+1]=1}if(F0&&f[J-O]==0){b.push(n,F-1);f[J-O]=1}if(Fd)continue;else j[J]=255}if(d>0)for(var J=0; +J0&&j[J-1]==255||n0&&j[J-O]==255||F>8&255,s=H>>16&255,r=H>>24&255; +if(_==0)return r<5?0:255;var u=Math.max(Math.abs(O-N),Math.max(Math.abs(L-Q),Math.abs(s-c)));return r==0?255:u}; +l.nf=function(){l.mh.call(this,[10,26],l.hM,"tools/patch");this.XW=null;this.I_=null;this.M=null;this.Vn=null; +this.$y=new E;this.$P=null};l.nf.prototype=new l.mh;l.nf.prototype.cL=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y); +if(H.t&&$.oc(O,H.t.channel,H.t.rect)){if(!H.FS())return;this.rD(H);this.Vn=O;this.$y=new E(O.x-H.t.rect.x,O.y-H.t.rect.y); +this.$P=$.I(H.t.rect.f()*4);$.set(this.$P,4294967295);if(this.kS.patch==1){var L=H.b[H.g[0]];L.jp(H,H.t,!0)}}else{this.I_={Z:[O.x,O.y],lX:["M"]}; +this.XW=O}};l.nf.prototype.XY=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y);if(this.Vn){if(this.kS.patch==1){var L=H.b[H.g[0]].UM,s=O.x-this.$y.x,r=O.y-this.$y.y; +l.UP.tJ(H,H.g[0],Math.round(s-L.SB.x),Math.round(r-L.SB.y))}else this.Xt(H,O,"clone")}if(this.XW){this.I_.lX.push("L"); +this.I_.Z.push(O.x,O.y);this.XW=O;H.S.rX=this.I_;H.un=!0}};l.nf.prototype.Nu=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y); +if(this.Vn){this.Xt(H,O,"heal");this.finish(H,H.t.rect);this.Vn=null}if(this.XW){var L=this.kS.setop,s=c.l(K.Yz),r=c.l(K.kz); +if(s)L="union";if(r)L="difference";if(s&&r)L="intersection";var u=new k(z.E.W,!0);u.c=l.sQ;if(this.I_.Z.length<=4)u.data={X:"deselect"}; +else u.data={X:"polygon",$D:L,EA:this.I_,_F:[10,26]};N.N(u);this.XW=null;H.S.rX=null;H.un=!0}};l.nf.prototype.mo=function(){return this.M}; +l.nf.prototype.sG=function(H,N,Q,c,_){l.mh.prototype.sG.call(this,H,N,Q,c,_);this.Hf(N,_,c)};l.nf.prototype.Hf=function(H,N,Q){var c="auto;"; +if(Q!=null&&Q.l(K.Yz)&&!Q.l(K.kz)||this.kS.setop=="union")c="copy";var _=new k(z.E.Y,!0);_.data={X:z.m.gM,Ut:c}; +if(H)H.N(_)};l.nf.prototype.Xt=function(H,N,Q){var c=new E(Math.round(this.Vn.x-N.x),Math.round(this.Vn.y-N.y)); +if(this.kS.patch==1)c.kR(-c.x,-c.y);this.M=c;this.ps(H,Q,this.$P,H.t.rect,H.t.rect);this.r(H,H.t.rect)}; +l.V$=function(){l.mh.call(this,[10,13],l.tPn,"tools/pbucket")};l.V$.prototype=new l.mh;l.V$.prototype.enable=function(H,N,Q,c){var _=new k(z.E.Y,!0); +_.data={X:z.m.gM,Ut:"default"};N.N(_)};l.V$.prototype.qB=function(H,N){};l.V$.prototype.Nu=function(H,N,Q,c,_){if(!H.FS())return; +var O=H.n.kp(_.x,_.y),L=l.QV.ok(H,O,this.kS.wconf);if(L==null)return;var s=$.I(L.rect.f()*4);$.Mw(s,(Q.AF&255)<<16|(Q.AF>>8&255)<<8|(Q.AF>>16&255)<<0); +$.kw(L.channel,s,3);this.rD(H);this.ps(H,"draw",s,L.rect,L.rect);this.r(H,L.rect);this.finish(H,L.rect)}; +l.jn=function(){l.MV.call(this,[10,14],l.tTw,"tools/plasso");this.Sx="crosshair";this.cT=[];this.I_=null; +this.$d=0};l.jn.prototype=new l.MV;l.jn.prototype.disable=function(H,N,Q,c){this.VZ(H)};l.jn.prototype.nZ=function(H,N,Q,c){this.cT=[K.nC,K.ff]}; +l.jn.prototype.jV=function(H){return this.cT.indexOf(H)!=-1};l.jn.prototype.fI=function(H,N,Q,c){if(this.I_==null)return; +var _=this.I_.Z.length-2;this.I_.Z[_]=this.kt.x;this.I_.Z[_+1]=this.kt.y;H.S.rX=this.I_;H.un=!0};l.jn.prototype.Ub=function(H,N,Q,c){var _=Date.now(); +if(this.I_==null)this.I_={Z:[this.kt.x,this.kt.y,this.kt.x,this.kt.y],lX:["M","L"]};else{this.fI(H,N,Q,c); +this.I_.lX.push("L");this.I_.Z.push(this.kt.x,this.kt.y);H.S.rX=this.I_;if(_-this.$d<250||E.Ln(this.kt,new E(this.I_.Z[0],this.I_.Z[1]))<4/H.n.s){this.finish(H,N,Q,c); +this.VZ(H)}}this.$d=_;H.S.rX=this.I_};l.jn.prototype.VZ=function(H){this.I_=null;this.cT=[];if(H!=null){H.S.rX=null; +H.un=!0}};l.jn.prototype.FJ=function(H,N,Q,c){if(this.I_==null)return;if(c.l(K.nC)||c.l(K.ff)){this.I_.Z.pop(); +this.I_.Z.pop();this.I_.lX.pop();this.fI(H,Q,c)}if(c.l(K.BV)){if(this.I_.Z.length>4)this.finish(H,Q,c); +this.I_=null}if(c.l(K._f)){this.I_=null}H.S.rX=this.I_;H.un=!0};l.jn.prototype.getSelection=function(H,N,Q,c){return this._A(this.I_)}; +l.Ic=function(){l.MV.call(this,[10,10],l.tTK,"tools/mlasso");this.Sx="crosshair";this.cT=[];this.wR={eH:3}; +this.L=[];this.dR=[];this.KX=[];this.dt=null;this.ux=null;this.MN=null;this.gC=0};l.Ic.prototype=new l.MV; +l.Ic.prototype.disable=function(H,N,Q,c){this.clear(H)};l.Ic.prototype.jV=function(H){return this.cT.indexOf(H)!=-1}; +l.Ic.prototype.nZ=function(H,N,Q,c){this.cT=[K.nC];var _=this._w(this.uc,H);if(this.L.length!=0&&(E.Ln(_,this.L[0])<4*z.h()/H.n.s||Date.now()-this.gC<300)){this._H(H,this.L[0]); +this.finish(H,N,Q);this.clear(H);return}this.gC=Date.now();if(this.L.length!=0)_=this.nG(_,H,this.wR.eH); +else{var O=H.$,L=H.z,s=$.I(O*L),r=H.cn(),u=O*L*4;for(var V=0;V>>2]=$.qi(Math.round(.3*r[V]+.6*r[V+1]+.1*r[V+2])*r[V+3]); +this.dt=$.Px.twP(s,O,L);this.MN=new Uint16Array(s.length)}this._H(H,_);this.Uz(H)};l.Ic.prototype._H=function(H,N){var Q=this.L; +this.dR[Q.length]=this.KX.length;if(Q.length!=0){$.Px.qD(this.ux,N.y*H.$+N.x);var c=this.nd(H,N);c.reverse(); +var _=this.Xo(H,c);this.KX=this.KX.concat(_)}Q.push(N);this.XJ(H)};l.Ic.prototype.XJ=function(H){var N=this.L[this.L.length-1],Q=N.y*H.$+N.x; +this.ux=$.Px.twx(this.dt.eo,this.dt.NK,Q);$.set(this.MN,0)};l.Ic.prototype._w=function(H,N){return new E(Math.floor(Math.max(0,Math.min(N.$-1,H.x))),Math.floor(Math.max(0,Math.min(N.z-1,H.y))))}; +l.Ic.prototype.clear=function(H){this.KX=[];this.L=[];this.dR=[];this.dt=null;this.ux=null;this.MN=null; +if(H!=null){H.S.rX=null;H.S.Lg=[];H.un=!0}this.cT=[]};l.Ic.prototype.fI=function(H,N,Q,c){if(this.L.length==0)return; +var _=this.nG(this._w(this.kt,H),H,this.wR.eH),O=this.nd(H,_);for(var L=0;L30&&E.Ln(r,this.L[this.L.length-1])>20){this._H(H,r);return}this.MN[s]++}this.Uz(H)};l.Ic.prototype.Uz=function(H){var N=this.nG(this._w(this.kt,H),H,this.wR.eH),Q=this.nd(H,N); +Q.reverse();var c=this.Xo(H,Q),_=this.KX.concat(c);H.S.rX=this.XC(_);H.S.Lg=[];for(var O=0;O5e3){console.log(O);throw"e"}}return O};l.Ic.prototype.Xo=function(H,N){var Q=[],c=H.$; +for(var _=0;_=c||V<0||V>=_)continue;$.Px.qD(this.ux,V*c+u);if(this.ux.SL[V*c+u]>2); +$.rY(r.buffer,u,3);s={channel:u,rect:r.rect.clone()}}else{var V=r.Ab(),u,C;if(V.NG()==0){C=V.AK();if(C.f()==0)return; +u=V.Lu()}else{C=new p(0,0,Q.$,Q.z);u=$.I(C.f());V.Qd(C,u)}s={channel:u,rect:C}}if(H.tVC&&Q.t)s=$.lO.Zh(Q.t,s,"union"); +L=new Jj("Selection from layer",this)}if(O=="inverse"){if(Q.t==null){alert("No selection!");return}s={channel:$.I(Q.$*Q.z),rect:new p(0,0,Q.$,Q.z)}; +$.Jg(Q.t.channel,Q.t.rect,s.channel,s.rect);$.UK(s.channel);L=new Jj([7,2],this)}if(O=="expand"){var T=Q.t.rect.clone(); +T.FA(H.R,H.R);s={channel:$.I(T.f()),rect:T};var e=$.I(s.channel.length);$.Jg(Q.t.channel,Q.t.rect,e,s.rect); +$.style.stroke(e,s.channel,s.rect,H.R);L=new Jj([7,4],this)}if(O=="contract"){var t=Q.t.rect.clone(); +t.FA(1,1);var e=$.I(t.f()),Y=$.I(e.length);$.Jg(Q.t.channel,Q.t.rect,e,t);$.UK(e);$.style.stroke(e,Y,t,H.R); +$.UK(Y);s={channel:null,rect:Q.t.rect.clone()};s.rect.FA(-H.R,-H.R);s.channel=$.I(s.rect.f());$.Jg(Y,t,s.channel,s.rect); +var L=new Jj([7,5],this)}if(O=="feather"){var A=Math.ceil(2.6*H.R);s={channel:null,rect:Q.t.rect.clone()}; +s.rect.FA(A,A);s.channel=$.I(s.rect.f());var e=$.I(s.channel.length);$.Jg(Q.t.channel,Q.t.rect,e,s.rect); +$.blur.ur(e,s.channel,s.rect,H.R);var L=new Jj([7,6],this)}if(O=="border"){s=l.nk.Xj(Q.t,H.R/2,H.R/2); +L=new Jj([7,9],this)}if(s!=null&&$.Wt(s.channel,0)){s=null;L.name=[7,1]}if(s)$.hJ(s);L.data={X:"changesel",Ud:Q.t,_k:s}; +Q.Af(L);this.wD(L.data,Q)};l.nk.Xj=function(H,N,Q){var c=Math.max(1,Math.ceil(Q)),_=H.rect.clone();_.FA(c,c); +var O=_.f(),L={channel:$.I(O),rect:_},s=$.I(O);$.Jg(H.channel,H.rect,s,L.rect);if(Q!=0)$.style.stroke(s,L.channel,L.rect,Q); +else $.sa(s,L.channel);var r=$.I(O);$.UK(s);if(N!=0)$.style.stroke(s,r,L.rect,N);else $.sa(s,r);$.lO.sj(L.channel,r,L.channel); +return L};l.Qz=function(){l.NY.call(this,[10,36],l.tTu,"tools/ruler");this.x_=null;this.up=null;this.$x=null; +this.$i=null};l.Qz.prototype=new l.NY;l.Qz.prototype.mW=function(H){return H.Vv};l.Qz.prototype.disable=function(H,N,Q,c){this.x_=this.up=null; +if(H)this.qK(H)};l.Qz.prototype.cL=function(H,N,Q,c,_){var O=H.n.s/z.h(),L=H.n.kp(_.x,_.y);L.x=Math.round(L.x); +L.y=Math.round(L.y);var s=this.x_;if(s&&E.Ln(L,s[0])*O<6)this.up=[0];else if(s&&E.Ln(L,s[1])*O<6)this.up=[1]; +else if(s&&l.Qz.t$p(s[0],s[1],L)*O<6&&Math.min(s[0].x,s[1].x)-5<=L.x&&L.x<=Math.max(s[0].x,s[1].x)+5&&Math.min(s[0].y,s[1].y)-5<=L.y&&L.y<=Math.max(s[0].y,s[1].y)+5){this.up=[0,1]; +this.$i=[s[0].clone(),s[1].clone()];this.$x=L}else{this.x_=[L.clone(),L.clone()];this.up=[1]}};l.Qz.prototype.XY=function(H,N,Q,c,_){if(this.up==null)return; +var O=this.x_,L=this.up,s=H.n.kp(_.x,_.y);s.x=Math.round(s.x);s.y=Math.round(s.y);if(L.length==2){var r=s.x-this.$x.x,u=s.y-this.$x.y; +O[0]=this.$i[0].clone();O[0].offset(r,u);O[1]=this.$i[1].clone();O[1].offset(r,u)}else{O[L[0]].kR(s.x,s.y); +if(c.l(K.Yz)){O[L[0]]=l.Aa.Ol(O[1-L[0]],O[L[0]])}}this.qK(H);this.Mf(N,z.E.Y,{X:z.m.nv,c:this.id,tVP:O[0],tVG:O[1]})}; +l.Qz.prototype.Nu=function(H,N,Q,c,_){this.up=null};l.Qz.prototype.Mf=function(H,N,Q){var c=new k(N,!0); +c.data=Q;H.N(c)};l.Qz.prototype.qK=function(H){var N=this.x_;if(N==null){H.S.rX=null;H.S.Lg=[]}else{var Q=[N[0].x,N[0].y,N[1].x,N[1].y]; +H.S.rX={lX:["M","L"],Z:Q};H.S.Lg=Q}H.un=!0};l.Qz.t$p=function(H,N,Q){var c=N.x-H.x,_=N.y-H.y,O=Math.abs(_*Q.x-c*Q.y+N.x*H.y-N.y*H.x),L=Math.sqrt(c*c+_*_); +return O/L};l._p=function(){l.mh.call(this,[10,19],l._h,"tools/sharpen");this.Ua="copy"};l._p.prototype=new l.mh; +l._p.prototype.cL=function(H,N,Q,c,_){var O=this.kS.pdetail?Jf.IR:Jf._h;if(c.l(K.kz))O=Jf._x;this.Pa(H,Q,c,_,this.kS.strn,O); +if(this.Uu==null)return;this.ue(H)};l._p.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return;this.xR(H,N,Q); +if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.rk=function(){l.mh.call(this,[10,24],l.Fj,"tools/shbrush"); +this.Ua="draw";this.kS.opacity=.5};l.rk.prototype=new l.mh;l.rk.prototype.cL=function(H,N,Q,c,_){this.Pa(H,Q,c,_,1); +if(this.Uu==null)return;this.ue(H)};l.rk.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return;this.xR(H,N,Q); +if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.rk.prototype.Nu=function(H,N,Q,c,_){if(this.Uu==null)return; +this.ps(H,"sheal2",this.Uu.GE(),this.Uu.AK(),this.Uu.AK(),null);this.r(H,this.Uu.AK());l.mh.prototype.Nu.call(this,H,N,Q,c,_)}; +l.rk.prototype.Ly=function(H,N,Q,c,_){if(H.X&&H.X.slice(0,4)=="heal"){if(Q.t==null){alert("Select an area to heal first."); +return}if(!Q.FS())return;this.rD(Q);var O=Q.t,L=$.I(O.rect.f()*4);$.kw(O.channel,L,3);this.ps(Q,"s"+H.X,L,O.rect,O.rect); +this.r(Q,O.rect);this.finish(Q,O.rect)}else l.mh.prototype.Ly.call(this,H,N,Q,c,_)};l._i=function(){l.mh.call(this,[10,20],l.MY,"tools/smudge"); +this.Ua="copy"};l._i.prototype=new l.mh;l._i.prototype.cL=function(H,N,Q,c,_){this.Pa(H,Q,c,_,this.kS.strn,Jf.MY); +if(this.Uu==null)return;this.ue(H)};l._i.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return;this.xR(H,N,Q); +if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l._j=function(){l.mh.call(this,[10,23],l.hp,"tools/sponge"); +this.Ua="sponge"};l._j.prototype=new l.mh;l._j.prototype.cL=function(H,N,Q,c,_){this.Pa(H,Q,c,_,this.kS.flow); +if(this.Uu==null)return;this.ue(H)};l._j.prototype.XY=function(H,N,Q,c,_){if(this.Uu==null)return;this.xR(H,N,Q); +if(!_.Vv)return;this.Mq(H,Q,c,_);this.ue(H)};l.He=function(){l.NY.call(this,[10,17],l.ML,"tools/zoom"); +this.UK=!1;this.FL=!0;this.hC=null;this.$o=0;this.yo=null};l.He.prototype=new l.NY;l.He.prototype.enable=function(H,N,Q,c){this.nQ(N)}; +l.He.prototype.cL=function(H,N,Q,c,_){this.hC=new E(_.x,_.y);this.$o=H.n.s;this.yo=H.n.M.clone()};l.He.prototype.XY=function(H,N,Q,c,_){if(this.hC==null)return; +var O=Math.round((_.x-this.hC.x)/16);if(O==0)return;var L=l.He.X_(this.$o),s=l.He.Vk[Math.max(0,Math.min(l.He.Vk.length-1,L-O))]; +H.n.s=this.$o;H.n.M=this.yo.clone();this.Ly({X:"zoom",s:s,qR:this.hC},N,H,c,Q)};l.He.prototype.Nu=function(H,N,Q,c,_){if(E.Ln(this.hC,_)<4){var O=this.FL; +if(this.UK)O=!O;this.Ly({X:"zoom",FL:O,qR:_},N,H,c,Q)}this.hC=null};l.He.Vk=[32,16,12,8,7,6,5,4,3,2,1,2/3,1/2,1/2*(2/3),1/4,1/4*(2/3),1/8,1/8*(2/3),1/16,1/16*(2/3),1/32,1/32*(2/3),1/64]; +l.He.Xz=function(H,N,Q,c){var _=1;while(H*_*1/2>Q||N*_*1/2>c)_*=1/2;if(H*_*2/3>Q||N*_*2/3>c)_*=1/2;else if(H*_>Q||N*_>c)_*=2/3; +return _};l.He.tJX=function(H,N){var Q=l.He.X_(H);if(N&&Q==0)return H;if(!N&&Q==l.He.Vk.length-1)return H; +return l.He.Vk[N?Q-1:Q+1]};l.He.X_=function(H){var N=0;while(l.He.Vk[N]>H)N++;return N};l.He.Qr=function(H,N,Q,c){var _=H.Ti; +if(c==0||c==null){c=l.He.tJX(H.s,Q);if(c==H.s)return}var O=H.kp(N.x,N.y);if(_.$*c<=H.C.$&&_.z*c<=H.C.z)H.M.kR(0,0); +else{H.M.x=Math.round(_.$*c/2-O.x*c+(N.x-H.C.$/2));H.M.y=Math.round(_.z*c/2-O.y*c+(N.y-H.C.z/2))}H.s=c}; +l.He.prototype.Ly=function(H,N,Q,c,_){var O=0,L=!1,s=null;if(H.X=="adapt"){var r=0;if(H.R=="pixel")r=1; +if(H.R=="fitscr"){var r=0,u=Q.n.C.$,V=Q.n.C.z;if(Q.$<=u&&Q.z<=V){var C=1;while(Q.$*(C+1)<=u&&Q.z*(C+1)<=V)C++; +r=C}else{r=l.He.Xz(Q.$,Q.z,u,V)}}s=new E(Math.round(Q.n.C.$/2),Math.round(Q.n.C.z/2));O=r}if(H.X=="scroll"){s=H.qR; +L=H.or.y<0}if(H.X=="zoom"){s=H.qR?H.qR:new E(Math.round(Q.n.C.$/2),Math.round(Q.n.C.z/2));if(H.s!=null)O=H.s; +else L=H.FL}if(H.X=="mskView"&&Q.n.uQ!=H.R){Q.n.uQ=H.R;Q.un=!0}if(s==null)return;l.He.Qr(Q.n,s,L,O); +Q.kJ=!0};l.He.prototype.FJ=function(H,N,Q,c){if(this.UK!=c.l(K.kz)){this.UK=c.l(K.kz);var _={X:z.m.nv,c:this.id,UK:this.UK},O=new k(z.E.Y,!0); +O.data=_;N.N(O);this.nQ(N)}};l.He.prototype.nQ=function(H){var N=new k(z.E.Y,!0),Q=this.FL;if(this.UK)Q=!Q; +N.data={X:z.m.gM,Ut:Q?"zoom-in":"zoom-out"};H.N(N)};l.He.prototype.sG=function(H,N,Q,c){if(H.action){var _={X:"adapt",R:H.action}; +this.Ly(_,N,Q,c,null)}else{this.FL=H.FL;this.nQ(N)}};l.HC=function(H,N,Q){l.NY.call(this,H,N,Q);this.Al=null; +this.E$=null;this.$Y=0};l.HC.prototype=new l.NY;l.HC.prototype.xz=function(H,N,Q,c){if(H.g.length==0)return; +var _=H.b[H.g[0]],O=_.add.vmsk,L=_.add.vstk,s=l.HC.Qw(H,H.g[0]);this.Al=H;this.E$=N;if(_.TT()&&O!=null&&(JSON.stringify(L)!=JSON.stringify(Q.ga)||JSON.stringify(s)!=JSON.stringify(Q.gq))){this.$Y=Date.now(); +var r=new k(z.E.Y,!0);r.data={X:z.m.u_,gg:JG.IZ,R:s};N.N(r);r.data={X:z.m.u_,gg:JG.JL,R:L};N.N(r)}}; +l.HC.prototype.qB=function(H,N){if(this.Al==null)return;if(N==JG.hP||N==JG.IZ||N==JG.JL){if(Date.now()-this.$Y<50)return; +var Q=N==JG.IZ,c=this.Al,_=Q?H.gq:H.ga,O=[];for(var L=0;L0){var O=["SoCo","GdFl","PtFl"][_-1];for(var L=0;L<3;L++)delete H.add[["SoCo","GdFl","PtFl"][L]]; +H.add[O]=N.uL}};l.rG=function(H,N,Q,c){l.HC.call(this,H,N,Q);this.kS={tmode:1,shape:null,pshape:0,binop:0,crad:0,irad:40,length:4,sides:5,width:5,tolr:5,cstr:{yC:0}}; +this.tVS=c;this.QS=null;this.$O=null;this.dV=null};l.rG.prototype=new l.HC;l.rG.prototype.mW=function(H){return H.Vv&&this.id!=l.hX}; +l.rG.prototype.enable=function(H,N,Q,c,_){var O=new k(z.E.Y,!0);O.data={X:z.m.gM,Ut:"crosshair"};N.N(O)}; +l.rG.prototype.Ne=function(H,N,Q,c){};l.rG.prototype.cL=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y);O=l.UP.ep(H,O,Q); +var L=this.kS.tmode,s=H.b[H.g[0]],r=s?s.add.vmsk:null;if(L==0&&r==null){alert("Paths can be added to existing shapes only."); +return}if(L==2&&!H.FS())return;if(L==1){var u=new k(z.E.W,!0);u.c=l.uh;u.data={X:R.fL,pZ:1};N.N(u);s=H.b[H.g[0]]; +r=s.add.vmsk}this.dV=[O.x,O.y];this.QS=O;this.$O=new E(0,0)};l.rG.prototype.Qy=function(H,N,Q){var c=[this.QS.clone(),N.clone()]; +c[0].x=Math.floor(c[0].x);c[0].y=Math.floor(c[0].y);c[1].x=Math.ceil(c[1].x);c[1].y=Math.ceil(c[1].y); +if(this.tVS)c=l.rG.QL(c[0],c[1],Q,!1,this.kS.cstr);H.n._E=new p(c[0].x,c[0].y,c[1].x-c[0].x,c[1].y-c[0].y); +return this.Ne(c[0],c[1],Q.l(K.Yz),this.dV)};l.rG.prototype.Qc=function(H,N,Q){var c=H.n.kp(N.x,N.y),_=this.kS.cstr; +if(_.yC==2){var O=new p(c.x-_.x,c.y-_.y,_.x,_.y),L=l.UP.tg(H,O,Q);c.x+=L[0];c.y+=L[1];l.UP.tG(H,O,L)}else c=l.UP.ep(H,c,Q); +return c};l.rG.prototype.XY=function(H,N,Q,c,_){if(this.QS==null)return;var O=this.Qc(H,_,Q);if(c.l(K.JW))this.QS=O.Tr(this.$O); +else this.$O=O.Tr(this.QS);this.dV.push(O.x,O.y);if(this.kS.shape==null)this.kS.shape=Q.aI[0];var L=this.Qy(H,O,c)[0],s=$.K.Cp(L); +H.S.rX=s;H.un=!0};l.rG.prototype.Nu=function(H,N,Q,c,_){if(this.QS==null)return;var O=this.Qc(H,_,Q),L=this.kS.binop,s=this.kS.tmode; +if(this.dV.length!=2){var r=this.Qy(H,O,c),u=r[0];if(s==0)u[2].AY=[1,2,3,0][L];if(s!=2){var V=H.b[H.g[0]],C=V.add.vmsk,T=V.add.vogk,e=C.clone(),t=C.clone(),Y=JSON.stringify(T); +t.L=t.L.concat(u.slice(2));t.g=[$.A.qh(t.L)-1];T.push(r[1]);this.aJ(H,V,t,T);if(s==0)this._M(H,this.name,H.g[0],e,t,null,Y,JSON.stringify(T))}else{var t=new R.hT; +t.L=t.L.concat(u.slice(2));var A=t.Ab(),G=$.I(A.rect.f()*4);$.Mw(G,(Q.AF&255)<<16|(Q.AF>>8&255)<<8|(Q.AF>>16&255)<<0); +$.kw(A.channel,G,3);var j=new k(z.E.W,!0);j.c=l.Tz;j.data={X:"draw",txf:G,txl:A.rect,_F:this.name};N.N(j)}}this.QS=null; +H.S.rX=null;H.S.iG=null;H.n._E=null;H.un=!0};l.rG.prototype.sG=function(H,N,Q,c,_){for(var Q in H)this.kS[Q]=H[Q]}; +l.rG.QL=function(H,N,Q,c,_){var O=H.x,L=H.y,s=N.x,r=N.y;if(_&&_.yC==2){O=s-_.x;L=r-_.y}else{var u=0; +if(_&&_.yC==1)u=_.y/_.x;else if(Q&&Q.l(K.Yz))u=1;if(u!=0){var V=Math.abs(s-O),C=Math.abs(r-L),T=V;if(C/VO?O+T:O-T;r=r>L?L+T*u:L-T*u}if(Q&&Q.l(K.kz)){O-=s-O;L-=r-L}}if(c){if(O>s){var e=O;O=s;s=e}if(L>r){var e=L; +L=r;r=e}O=Math.floor(O);L=Math.floor(L);s=Math.ceil(s);r=Math.ceil(r)}return[new E(O,L),new E(s,r)]}; +l.au=function(){l.HC.call(this,[10,29],l.tPB,"tools/pen");this.we=null;this.bp=null;this.$n=1;this.rn=0}; +l.au.prototype=new l.HC;l.au.prototype.mW=function(H){return this.we!=null};l.au.prototype.cL=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y),V,C; +O.x=Math.round(O.x);O.y=Math.round(O.y);var L=l.UP.ep(H,O,Q),s=H.b[H.g[0]],r=s?s.add.vmsk:null;if(this.$n==0&&r==null){alert("Paths can be added to existing shapes only."); +return}var u=4*z.h()/H.n.s;if(r)V=$.A.oc(r.L,O,!0,u);if(this.$n==1&&(r==null||(r.Pv.length==0||r.Pv[0]!=r.L.length-1)&&V.U_==-1)){var T=new k(z.E.W,!0); +T.c=l.uh;T.data={X:R.fL,pZ:1};N.N(T);s=H.b[H.g[0]];r=s.add.vmsk}var e=s.add.vogk;this.we=r.clone();this.bp=JSON.stringify(e); +var t=r.L,Y=$.A.qh(t);C=$.A.ot(r.L,new p(O.x-u,O.y-u,u*2,u*2));V=$.A.oc(r.L,O,!0,u);if(V.U_!=-1&&C[0].length==0){var A=$.A.T_(t,V.U_); +t[A].length++;t.splice(A+2+V.mX,0,{type:4,kM:L.clone(),P:L.clone(),kq:L.clone()});r.Pv=[A+2+V.mX]}else{var G=0; +if(r.Pv.length!=1){r.g=[Y];t.push({type:3,length:1,AY:[1,2,3,0][this.rn],Fz:0,ev:0,Nb:0});G=t.length; +e.push($.FU.kh())}else{var j=r.Pv[0],d=$.A.TY(t,j),A=$.A.T_(t,d);if(j==A+t[A].length&&E.Ln(O,t[A+1].P)1?[]:Y.g,s)}Y.jQ*=u; +C.add.vmsk=Y;if(C.add.vogk)$.FU.pB(C.add.vogk,C.add.vmsk)}if(T[3]){var j=T[3].clone();j.concat(r);C.add.TySh.UC=j; +var d=new tH(C.add.TySh.Bd,N.LS),w=ru.Iq(d,C.add.TySh);C.rect=w.rect;C.buffer=w.nn}if(T[4]){var f=C.add.SoLd,b=l._.HV(T[4].nonAffineTransform); +$.F.apply(O,b);var F=$.K.TD(b);if(ro.lc(b)){if(L){var n=$.K.jm($.UB.cq(T[4].warp.v)),J=$.F.tn(b,n),Z=$.K.jm($.UB.cq(L)); +b=[Z.x,Z.y,Z.x+Z.$,Z.y,Z.x+Z.$,Z.y+Z.z,Z.x,Z.y+Z.z];$.F.apply(J,b);f.warp.v=L}var P=$.F.tn(b),M=b;if(!$.F.CI(P)){P[6]=P[7]=0; +M=[0,0,1,0,1,1,0,1];$.F.apply(P,M)}f.Trnf=l._.Sz(M);f.nonAffineTransform=l._.Sz(b);C.fc(H,_)}}if(T[5])l._.Qa(H,T[5],C.hy(H).d,_,O,L); +if(_==!1)C.hJ();C.Sa(H);C.r()}H.r()};l._.Qk=function(H,N,Q,c,_,O){if(Q==null)Q=!1;return l._.SJ(H,Q,$.F.Wq(N),null,c,_,O)}; +l._.SJ=function(H,N,Q,c,_,O,L){var s={},C=0;if(c&&!$.UB.vn(c)){var r=$.UB.cq(c);$.F.apply(Q,r);s.rect=$.K.TD(r); +s.buffer=$.I(s.rect.f()*4);$.nH.drawImage(r,H[0],H[1].$,H[1].z,s.buffer,s.rect,N);return s}$.cG(H);var u=H[0],V=H[1]; +while(C+33e4||s.rect.z>3e4)return null;var A=s.rect.f()*4;if(_&&_.byteLength>=A&&A>=_.byteLength>>2){s.buffer=new Uint8Array(_)}else{s.buffer=$.I(A)}$.F.drawImage(t,u,V.$,V.z,s.buffer,s.rect,N,O); +if(s.buffer)return s};l._.Qa=function(H,N,Q,c,_,O){if(N.color==255)$.UK(N.channel);var L=N.rect,s=$.I(L.f()*4); +$.kw(N.channel,s,3);var r=l._.SJ([s,L],c,_,O);if(r){Q.rect=r.rect;Q.channel=$.I(r.rect.f());$.rY(r.buffer,Q.channel,3); +Q.rb=!0}if(N.color==255){$.UK(N.channel);if(r)$.UK(Q.channel)}};l._.HV=function(H){var N=[],Q=H.v.length; +for(var c=0;cH.index;_--)this.lG(Q);if(H.index>Q.ei)for(var _=Q.ei;_1)Q.g.splice(y,1);Q.g.sort(function(r,VP){return r-VP})}else if(c.l(K.Yz)&&H.rg>0){O=H.rg==1?R.v_:H.rg==2?R.CK:R.rA; +escape=!0}else if(c.l(K.Yz)&&Q.g.length>0){var a=Math.min(L,Q.g[0]),g=Math.max(L,Q.g[Q.g.length-1]); +Q.g=[];for(var t=a;t<=g;t++)Q.g.push(t)}else{Q.g=[L]}if(!escape){if(Q.g.length==1){var U=Q.g[0];for(var t=0; +t")Jg++;var r=new Jj([6,31],this); +r.data={X:R.uD,zh:Q.b.slice(0),_b:Jy,Fn:Q.g.slice(0),sX:[Jg]};Q.Af(r);this.wD(r.data,Q)}if(O==R.JA){var J=Q.g,Jn=0,ty=!1; +if(J.length==0)return;if(J.length==1&&Q.b[J[0]].nb==0){alert(tg.get([15,7,5]));return}var Jq=[];for(var t=0; +t0){if(JZ.add.lnk2==null)JZ.add.lnk2=[]; +for(var t=0;t.5}else{var tN=H.gE;tX=tN>1;if(tN==0){rh=Q.b.length-1}if(tN==1){rh=HT[HT.length-1]+1;var Vc=Q.wK(rh); +if(Vc.indexOf(HH)==-1)rh+=Vc.length-1}if(tN==2){rh=HT[0]-1;var Vc=Q.wK(rh);if(Vc.indexOf(HH)==-1)rh-=Vc.length-1}if(tN==3){rh=0}if(rh<0||rh>Q.b.length-1)return; +Q.EV=!0}if(HT.indexOf(rh)!=-1)return;var Hx=Q.b[rh],Jy=[];if(Hg)Jy=Q.b.slice(0);else for(var t=0;t.8)Hf-=Q.wK(rh).length-1; +var Vr=[];for(var t=0;t>t;if((Y&1)==1)Y--; +else Y++;e.capturedInfo.v=(Y<255)u=255-Math.round((L-255)*255/(L-_))}return[Math.max(_,0),Math.min(L,255),r,u,100]};JL.sU.prototype.Ly=function(H,N,Q,c,_){var O=H.X; +if(O=="auto"){var L=H.cC,s=JL.sU.getData(Q);for(var r=0;r>16,q:H>>8&255,H:H&255}};JL.lf.prototype.tJu=function(H,N,Q){if(this.gT==null)this.gT=JL.sU.getData(N,!0); +if(H.X=="edit"){for(var c=0;c1)s=1+Math.tan(Math.PI/2*_/100);var r=(1-s)/2,u=$.Iw.Am(L,L,L),V=[s,0,0,r,0,s,0,r,0,0,s,r,0,0,0,1],C=$.Iw.multiply(u,V),T=new $.wf(256); +for(var e=0;e<256;e++)T.T[e]=e;$.Iw.transform(T,T,C);Q={type:"remap",oB:T.T,oF:T.T,UY:T.T,yR:!1,yj:!1}}else{var t=1024,Y=-30+60*(_+100)/200,A=[],j; +for(var e=0;e<4;e++)A.push($.kv.oS(e/3*255,e/3*255,!0));A[1].v.Hrzn.v=64;A[1].v.Vrtc.v=64-Y;A[2].v.Hrzn.v=128+64; +A[2].v.Vrtc.v=128+64+Y;A.sort(function(VI,rN){return VI.v.Hrzn.v-rN.v.Hrzn.v});var G=$.kv.__(A,t);A=[]; +for(var e=0;e<3;e++)A.push($.kv.oS(e/2*255,e/2*255,!0));if(c<0){var d=128+10*c/150,w=128-120*c/150;A[1].v.Hrzn.v=w; +A[1].v.Vrtc.v=d;j=$.kv.__(A,t);for(var e=0;e0){N=Math.max(i/Math.E,N); +N=N*Math.exp(i/1.75+h/Math.PI);N=(1-Jx)*N+Jx*1}else{N=N*Math.exp(-i*1.75+h/Math.PI);N=N+-Jx*1.14}N=Math.pow(N,1/JI); +N=Math.max(0,Math.min(1,N));f[e]=Math.round(N*255)}Q={type:"remap",oB:f,oF:f,UY:f,yR:!1,yj:!1}}if(H=="vibA"){Q={type:"vibrance",gg:N}}if(H=="hue2"){N=JSON.parse(JSON.stringify(N)); +var Jd=[],JC=[],JM=[];for(var e=0;e<256;e++){Jd[e]=e/255;JC[e]=0;JM[e]=0}var Jh=N.bc?N.qq:N.ry,Jv=1+Jh[2]/100,JW=Jv<1?1:0,Ji=JW*Jv+1-JW,Jc=(1-JW)*(Jv-1); +if(N.bc){var JT=Jh[0]/360,Jy=Math.tan(Math.PI/2*Jh[1]/100);for(var e=0;e<256;e++){Jd[e]=JT;JC[e]=Jy}}else{for(var e=0; +e<256;e++){var Jg=Jd[e],Jn=JC[e];Jd[e]+=Jh[0]/360;var Jq=Jh[1]/100;if(Jq>0)Jq=Math.tan(Math.PI/2*Jh[1]/100); +for(var v=0;v<6;v++){var tJ=N.gV[v].fY,ty=N.gV[v].gX,Jx=0;for(var JA=1;JA<4;JA++)if(ty[JA]0)s=Math.tan(Math.PI/2*tJ[1]/100); +Jd[e]+=Jx*tJ[0]/360;JC[e]+=Jx*s;JM[e]+=Jx*tJ[2]/100}}for(var e=0;e<256;e++){JC[e]=(1+JC[e])*(1+Jq)-1; +JM[e]=Math.max(-1,Math.min(1,JM[e]))}}var rL=new Uint8Array(256),Ju=new Uint8Array(256),JZ=new Uint8Array(256); +for(var e=0;e<256;e++){Jd[e]-=Math.floor(Jd[e]);var Jl=JC[e];if(Jl<0)JC[e]=(1+JC[e])*.5;else JC[e]=.5+.49*Math.atan2(JC[e],1)/(Math.PI/2); +JM[e]=(1+JM[e])/2;rL[e]=Math.round(255*Jd[e]);Ju[e]=Math.round(255*JC[e]);JZ[e]=Math.round(255*JM[e])}Q={type:"remapHSL",tz:rL,pe:Ju,tZ:JZ,xT:Ji,xP:Jc,tm:N.bc?1:0}}if(H=="nvrt"){var f=new Uint8Array(256); +for(var e=0;e<256;e++)f[e]=255-e;Q={type:"remap",oB:f,oF:f,UY:f,yR:!1,yj:!1}}if(H=="grdm"){var rV=N[0],rD=$.e.zp(rV.Clrs.v,0,0),t=1024,tb=$.e.CT(rV,rD,t),rv=$.I(t),rG=$.I(t),Js=$.I(t); +$.rY(tb,rv,0);$.rY(tb,rG,1);$.rY(tb,Js,2);if(N[1]){rv.reverse();rG.reverse();Js.reverse()}Q={type:"remap",oB:rv,oF:rG,UY:Js,yR:!0,yj:!1}}if(H=="selc"){var rI=new Float32Array(9*3*2),tv=N.uF,tt=N.ir; +for(var v=1;v<10;v++){var rE=(v-1)*6,rX=tv[v][0]/100,rQ=tv[v][1]/100,ra=tv[v][2]/100,rx=tv[v][3]/100; +if(tt){rI[rE]=rI[rE+1]=rI[rE+2]=1;rI[rE+3]=rX*(1+rx)+rx;rI[rE+4]=rQ*(1+rx)+rx;rI[rE+5]=ra*(1+rx)+rx}else{rI[rE+0]=(1+rX)*(1+rx); +rI[rE+1]=(1+rQ)*(1+rx);rI[rE+2]=(1+ra)*(1+rx)}}Q={type:"selc",uH:rI}}if(H=="blwh"){var rU=[],rO=0,rg=0; +for(var e=0;e<6;e++)rU.push((N[e]-50)/50);var rJ=$.e.NG(N[7]);rJ.T/=255;rJ.q/=255;rJ.H/=255;var tG=$.sM(rJ.T,rJ.q,rJ.H),rT=$.If($.En(tG.ht,1,.5)),JR=tG._u*tG.Dq; +if(rT==.5)rO=rg=.5;else{rO=JR*(.5-rT)/(.5/rT-1);rg=1-JR*(.5-rT)-1/(2*(1-rT));rg/=1-1/(2*(1-rT))}Q={type:"blwh",DB:rU,Lv:N[6]?1:0,DZ:tG.ht,If:rT,cJ:JR,Tk:rO,cD:rg}}if(H=="blnc"){var F=[]; +for(var e=0;e<3;e++){var rc=N.fY[e][0]/100,rm=N.fY[e][1]/100,rn=N.fY[e][2]/100,rK=N.If?rK=(Math.min(rc,rm,rn)+Math.max(rc,rm,rn))/2:0; +F[e]=[rc-rK,rm-rK,rn-rK]}var W=[$.I(256),$.I(256),$.I(256)];for(var v=0;v<3;v++)for(var e=0;e<256;e++){var Vc=e*(1/255),rb=0,Y=0,rl=0; +Y=F[2][v];rl=Math.abs(Y);if(Y<0)rb=Math.pow(Vc,Math.SQRT2);else rb=1.63*(Math.pow(Vc+.04,.5)-.2);Vc=rl*rb+(1-rl)*Vc; +Y=F[1][v];rl=Math.abs(Y);if(Y<0)rb=Math.pow(Vc,2);else rb=Math.min(2.35*(Math.pow(Vc+.09,.5)-.3),Math.pow(Vc,1/2)); +Vc=rl*rb+(1-rl)*Vc;Y=F[0][v];rl=Math.abs(Y);if(Y<0)rb=Vc<.4?0:Math.pow((Vc-.4)/.6,Math.SQRT2);else rb=Math.pow(Vc,Math.SQRT2/2); +Vc=rl*rb+(1-rl)*Vc;Vc=Math.max(0,Math.min(1,Vc));W[v][e]=Math.round(Vc*255)}Q={type:"remap",oB:W[0],oF:W[1],UY:W[2],yR:!1,yj:!1}}if(H=="phfl"){var rB=[N.qq.Rd.v/255,N.qq.Grn.v/255,N.qq.Bl.v/255],HI=N.mC/100,W=[$.I(256),$.I(256),$.I(256)]; +for(var v=0;v<3;v++)for(var e=0;e<256;e++){var Vc=e*(1/255),Hw=Vc*rB[v];Hw=Math.max(0,Math.min(1,Hw)); +Vc=HI*Hw+(1-HI)*Vc;W[v][e]=Math.round(Vc*255)}Q={type:"remap",oB:W[0],oF:W[1],UY:W[2],yR:!1,yj:N.uT}}if(H=="thrs"){var f=$.I(256); +for(var e=N;e<256;e++)f[e]=255;Q={type:"remap",oB:f,oF:f,UY:f,yR:!0,yj:!1}}if(H=="mixr"){var C=[];for(var e=0; +e>>8&255)*(1/255),T=(q>>>16&255)*(1/255),S=q>>>24,Jd; +V=H.xT*V+H.xP*(1-V);C=H.xT*C+H.xP*(1-C);T=H.xT*T+H.xP*(1-T);var e=$.pI(V,C,T),I=e.ht,v=e._u,h=e.NK,i=H.tz[Math.round(I*255)]*(1/255),JI=H.pe[Math.round(I*255)]*(1/255)*2-1,Jx=H.tZ[Math.round(I*255)]*(1/255)*2-1; +if(H.tm==1)Jd=JI;else{if(JI>0)JI=Math.tan(Math.PI/2*JI);var Jd=Math.min(v*(1+JI),1)}var JC=Math.abs(Jx),JM=$.En(i,Jd*(1-JC),h+(Jx>0?1:-1)*Math.min(h,1-h)*v),j=$.En(i,Jd,h); +V=j.T*(1-JC)+JM.T*JC;C=j.q*(1-JC)+JM.q*JC;T=j.H*(1-JC)+JM.H*JC;m[u]=S<<24|T*255<<16|C*255<<8|V*255}}if(H.type=="vibrance"){var W=new Uint32Array(N.buffer),m=new Uint32Array(Q.buffer),r=W.length,Jh=H.gg[0]/100,Jv=H.gg[1]/100; +for(var u=0;u>>8&255)*(1/255),T=(q>>>16&255)*(1/255),S=q>>>24,e=$.sM(V,C,T),I=e.ht,v=e._u,h=e.Dq,JW=0,Ji=45/360,Jc=IO?u:(116*r-16)/_,e=s>O?s:(116*L-16)/_,t=C>O?C:(116*V-16)/_,Y=t*96.72,A=e*100,G=T*81.427,j=$.Iw.US($.Iw.pR,[Y/100,A/100,G/100,0]); +for(var d=0;d<4;d++)j[d]=Math.max(0,Math.min(255,$.hU(j[d])*255));return j};JO.lB=function(H){for(var N=0; +N<4;N++)H[N]=$.tVM(H[N]/255);var Q=$.Iw.US($.Iw.UK($.Iw.pR),H),c=100*Q[0]/96.72,_=100*Q[1]/100,O=100*Q[2]/81.427; +if(c>.008856)c=Math.pow(c,1/3);else c=7.787*c+16/116;if(_>.008856)_=Math.pow(_,1/3);else _=7.787*_+16/116; +if(O>.008856)O=Math.pow(O,1/3);else O=7.787*O+16/116;var L=116*_-16,s=500*(c-_),r=200*(_-O);return[L*100,s*100,r*100,0]}; +JO.cP=function(H,N){if(H=="blwh"){var Q="Rd Yllw Grn Cyn Bl Mgnt".split(" "),c=[];for(var _=0;_<6;_++)c.push(N[Q[_]].v); +c.push(N.useTint.v,N.tintColor.v);return c}if(H=="brit")return[N.Brgh.v,N.Cntr.v,N.useLegacy?N.useLegacy.v:!0]; +if(H=="vibA")return[N.vibrance?N.vibrance.v:0,N.Strt?N.Strt.v:0]};JO.write=function(H,N,Q){console.log(Q); +if(H=="blwh"){var c="Rd Yllw Grn Cyn Bl Mgnt".split(" ");for(var _=0;_<6;_++)Q[c[_]].v=N[_];Q.useTint.v=N[6]; +Q.tintColor.v=N[7]}};JO.qY=function(H,N){var Q=JO.get(N);if(Q=="brit"){if(!H[2]){N.CgEd={classID:"null",Vrsn:{t:"long",v:1},Brgh:{t:"long",v:H[0]},Cntr:{t:"long",v:H[1]},means:{t:"long",v:127},Lab:{t:"bool",v:!1},useLegacy:{t:"bool",v:!1},Auto:{t:"bool",v:!1}}; +N.brit={Pk:0,dy:0,ul:0,uz:0}}else{delete N.CgEd;N.brit.Pk=H[0];N.brit.dy=H[1]}}else if(Q=="levl"){for(var c=0; +c<4;c++)N[Q][c]=JSON.parse(JSON.stringify(H[c]))}else if(Q=="curv"){if(H[0].length==256)N[Q]=H;else{var _=[]; +for(var c=0;c<4;c++){var O=H[c],L=[];_.push(L);for(var s=0;sN.x)N.x=L;if(s>N.y)N.y=s}return N};VJ.kn=function(H,N,Q,c,_,O,L){if(O==null)O={buffer:$.I(N.buffer.length),rect:N.rect.clone()}; +$.sa(N.buffer,O.buffer);if(H=="Avrg"){var s=0,r=0,u=0,V=0,C=1;for(var T=0;T0)f=Math.max(0,f-j); +else f=Math.min(0,f+j);O.buffer[T]=Math.max(0,Math.min(255,d+f))}}if(H=="HghP")for(var T=0;T0?Jy:0;V$=Jy>0?n:n+Jy;rK=Jg>0?0:Jg+J; +Vc=Jg>0?Jg:J;rb=Jg>0?0:n*(J-1);for(var JT=rK;JT0?0:n+Jy;V$=Jy>0?Jy:n;rK=Jg>0?Jg:0;Vc=Jg>0?J:J+Jg;rb=Jy>0?0:n-1;for(var JT=rK;JT=0&&Jg>=0){rn=0;V$=Jy;rK=0;Vc=Jg;rb=0}if(Jy>=0&&Jg<0){rn=0; +V$=Jy;rK=J+Jg;Vc=J;rb=n*(J-1)}if(Jy<0&&Jg>=0){rn=n+Jy;V$=n;rK=0;Vc=Jg;rb=n-1}if(Jy<0&&Jg<0){rn=n+Jy; +V$=n;rK=J+Jg;Vc=J;rb=n*J-1}for(var JT=rK;JT>16,q:N.AF>>8&255,H:N.AF&255},c={T:N.ze>>16,q:N.ze>>8&255,H:N.ze&255},_=VJ.names[H]; +if(_==null)_=JO.names[H];var O=H;for(var L in JO.ys)if(JO.ys[L]==H)O=L;var s={t:"Objc",v:{classID:"filterFX",Nm:{t:"TEXT",v:tg.get(_)},blendOptions:{t:"Objc",v:{classID:"blendOptions",Opct:{t:"UntF",v:{type:"#Prc",val:100}},Md:{t:"enum",v:{BlnM:"Nrml"}}}},enab:{t:"bool",v:!0},hasoptions:{t:"bool",v:!0},FrgC:{t:"Objc",v:$.e.Ta(Q)},BckC:{t:"Objc",v:$.e.Ta(c)},filterID:{t:"long",v:x.twj(O)}}}; +if(JD[H]||JE[H])s.v.Fltr={t:"Objc",v:VJ.vI(H)};return s};function ta(){}ta.XL=[2,5,5,7,4,4];ta.Cj="norm,diss,dark,mul ,idiv,lbrn,dkCl,lite,scrn,div ,lddg,lgCl,over,sLit,hLit,vLit,lLit,pLit,hMix,diff,smud,fsub,fdiv,hue ,sat ,colr,lum ".split(","); +ta.io="Nrml Dslv Drkn Mltp CBrn linearBurn darkerColor Lghn Scrn CDdg linearDodge lighterColor Ovrl SftL HrdL vividLight linearLight pinLight hardMix Dfrn Xclu blendSubtraction blendDivide H Strt Clr Lmns".split(" "); +ta.ln="Normal,Dissolve,Darken,Multiply,Color Burn,Linear Burn,Darker Color,Lighten,Screen,Color Dodge,Linear Dodge,Lighter Color,Overlay,Soft Light,Hard Light,Vivid Light,Linear Light,Pin Light,Hard Mix,Difference,Exclusion,Subtract,Divide,Hue,Saturation,Color,Luminosity".split(","); +ta.l_=["normal",null,"darken","multiply","color-burn",null,null,"lighten","screen","color-dodge",null,null,"overlay","soft-light","hard-light",null,null,null,null,"difference","exclusion",null,null,"hue","saturation","color","luminosity"]; +ta.FC=function(H){if(H=="passThrough")return"pass";return ta.Cj[ta.io.indexOf(H)]};ta.tyC=function(H){if(H=="pass")return"passThrough"; +return ta.io[ta.Cj.indexOf(H)]};ta.getName=function(H){return ta.ln[ta.Cj.indexOf(H)]};function R(){this.rect=null; +this.kE="norm";this.opacity=255;this.fB=!1;this._c=0;this.nb=0;this.gA=[0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535,0,65535]; +this.name=null;this.add={};this.buffer=null;this.Gy=null;this._P=null;this.d=null;this.qz=null;this.cS=0; +this.Fd=z.B("canvas","").getContext("2d");this.LJ=z.B("canvas","").getContext("2d");this.LL=z.B("canvas","").getContext("2d"); +this.Ld=z.B("canvas","").getContext("2d");this.G=0;this.uv=!1;this.UM=null;this.D=new R.jx}R.jx=function(){this.W$=!0; +this._$=!0;this.Jx=$.I(0);this.LG=$.I(0);this.jj=null;this.B_={};this.C$=null;this.JM=null;this.Gt=null; +this.FG=null;this.PD=null;this.Ca=null;this.wa=null;this.OU=null;this.Th=null;this.G$=null;this.WF=null; +this.JS=null;this.PL=!1};R.jx.prototype.fR=function(){this.W$=!1;this._$=!1;this.jj=null;this.PL=o.Yv}; +R.jx.prototype.tyS=function(){Ja.KL(this.B_);this.Jx=$.I(0);this.LG=$.I(0);if(this.FG)this.FG.delete(); +if(this.PD)this.PD.delete();this.FG=null;this.PD=null;var H=[this.Ca,this.wa,this.OU,this.Th,this.G$,this.WF]; +for(var N=0;N<6;N++)if(H[N]!=null&&H[N]instanceof o.wf)H[N].delete();this.Ca=null;this.wa=null;this.OU=null; +this.Th=null;this.G$=null;this.WF=null};R.prototype.r=function(H){if(H==null)H=this.rect.clone();if(this.D.jj==null)this.D.jj=H; +else this.D.jj=this.D.jj.Fv(H)};R.prototype.oP=function(){return this.add.lsct==tR.Gp||this.add.lsct==tR.Vc}; +R.prototype.TT=function(){var H=this.add;return H.SoCo!=null||H.GdFl!=null||H.PtFl!=null};R.prototype.ft=function(){var H=this.add.lmfx; +if(H==null)return;var N=["GrFl","patternFill"];for(var Q=0;Q>2);$.rY(Q.nI,_,3);if(!$.v$(N.channel,_))return!1;var O=$.I(c.$*c.z*4);$.Pg(Q.SZ,Q.sv,O,c); +$.a.MR("norm",Q.nI,Q.SB,O,c,c,1);return $.v$(O,this.buffer)}if(Q.G==1||Q.G==3){var L=Q.G==1?this.Ab():this.hy(H).d; +if(!c.v$(L.rect))return!1;var s=$.I(c.f());$.set(s,L.color);$.Jg(Q.SZ,Q.sv,s,c);$.a.sF(Q.nI,Q.SB,s,c,N.channel,c,1); +return $.v$(s,L.channel)}};R.prototype.cX=function(H,N,Q,c){var _=this.UM;_.SB.offset(N,Q);var O=_.sv.Fv(_.SB); +if(_.G<=0){var L=$.I(O.f()*4);$.Pg(_.SZ,_.sv,L,O);$.a.MR("norm",_.nI,_.SB,L,O,O,1);this.buffer=L;this.rect=O; +this.r()}else{var s=this.G==1?this.Ab():this.hy(H).d,r=$.I(O.f());$.set(r,s.color);$.Jg(_.SZ,_.sv,r,O); +$.a.sF(_.nI,_.SB,r,O,c.channel,O,1);s.channel=r;s.rect=O.clone();if(this.G==1){s.rb=!0;this.Sa(H)}if(this.G==3)this.r()}}; +R.prototype.fp=function(){var H=[-1,0,1,2];if(this.d)H.push(-2);if(this.qz)H.push(-3);return H};R.prototype.getName=function(){return this.add.luni?this.add.luni:this.name}; +R.prototype.Vp=function(H){this.add.luni=this.name=H};R.prototype.jK=function(H){var N=this.add.lnsr,Q=this.add.TySh; +if(N=="rend"&&Q)this.Vp(X.Fk(Q.Bd).replace(/(?:\r\n|\r|\n)/g," ").slice(0,255))};R.prototype.op=function(){return(this._c&1<<1)==0}; +R.prototype.XX=function(){return(this._c&1<<4)==0};R.prototype.Jq=function(){return(this._c&1<<5)!=0}; +R.prototype.FT=function(H){var N=this.add.lspf;return N==null?!1:(N>>H&1)!=0};R.prototype.cE=function(H){if(H&&!this.op())this._c-=2; +if(!H&&this.op())this._c+=2};R.prototype.JP=function(){var H=this.add.lmfx;if(H==null)return!1;for(var N in H){if(N=="masterFXSwitch")continue; +if(N=="Scl")continue;if(N=="classID")continue;if(H[N].v.length>0)return!0}return!1};R.prototype.kl=function(){return this.add.SoLd!=null&&this.add.SoLd.filterFX!=null}; +R.prototype.oa=function(){var H=this.add.lmfx;if(H==null)return!1;if(!H.masterFXSwitch.v)return!1;for(var N in H){if(N=="masterFXSwitch")continue; +if(N=="Scl")continue;if(N=="classID")continue;var Q=H[N].v;for(var c=0;c5||c.type==0||c.type==3)N.push(JSON.parse(JSON.stringify(c)));else N.push({type:c.type,kM:c.kM.clone(),P:c.P.clone(),kq:c.kq.clone()})}return N}; +R.hT.tyB=function(H,N,Q){if(H.length!=N.length)return!1;for(var c=2;c=0;Q--){var c=this.children[Q],_=c.oc(H);if(_)return _}return null}else if(N.add.TySh&&N.rect.Eo(H))return this; +else if($.ttj(H,N.buffer,N.rect))return this;return null};rk.prototype.jR=function(H){var N=this.i;if(!N.op())return null; +var Q=N.add.vmsk;if(Q&&Q.isEnabled){var c=$.A.oc(Q.L,H).U_;if(c!=-1)return{tVv:this,$l:c}}if(N.oP()){for(var _=this.children.length-1; +_>=0;_--){var O=this.children[_],L=O.jR(H);if(L)return L}return null}return null};rk.prototype.jJ=function(H,N){H.push(this.index); +if(this.i.oP()){H.push(this.TI);if(N)if(this.i.G==1&&this.i.Ab().WZ==!1)return;for(var Q=0;QN.z){_=Q;O=Math.floor(Q*(N.z/N.$))}else{_=Math.floor(Q*(N.$/N.z));O=Q}var L=O;if(c.TT()&&c.add.vmsk){var s=c.rect.clone(),r,u; +if(s.km())s=new p(0,0,20,20);if(s.$>s.z){r=Q;u=Math.floor(Q*(s.z/s.$))}else{r=Math.floor(Q*(s.$/s.z)); +u=Q}if(r*u==0)r=u=16;$.kg.Ze(c.Fd,r,u,s,c.buffer,c.rect,!1);$.kg.tDT(c.Fd,r,u);L=u}else if(c.add.SoCo){L=Math.max(16,Math.min(_,O)); +$.kg.tcD(c.Fd,L,L,c.add.SoCo)}else if(c.add.GdFl){$.kg.tCq(c.Fd,L,L,c.add.GdFl)}else if(c.add.PtFl){$.kg.td$(c.Fd,L,L,c.add.PtFl,H)}else if(c.add.TySh){$.kg.tcf(c.Fd,L,L,c.add.TySh)}else if(JO.get(c.add)!=null){$.kg.tLY(c.Fd,L,L,c.add)}else if(c.add.SoLd){$.kg.Ze(c.Fd,_,O,N,c.buffer,c.rect,!1); +$.kg.tDc(c.Fd,_,O,c.add.SoLd)}else if(c.oP()){L=16}else{if(c.XX())$.kg.Ze(c.Fd,_,O,N,c.buffer,c.rect,!1); +else{$.kg.tcj(c.Fd,L,L)}}var V=c.Ab();if(V)$.kg.ib(c.LJ,_,O,N,V);if(c.kl()&&c.hy(H)&&c.hy(H).d){var C=c.hy(H).d; +$.kg.ib(c.Ld,_,O,N,C)}if(c.add.vmsk){$.kg.ib(c.LL,_,O,N,c.add.vmsk.Ab(),!0)}if(c.add.vmsk||V)L=Math.max(L,O); +c.cS=Math.max(L,16);if(c.oP()&&c.add.lsct==tR.Gp)for(var T=0;T0||L.fill!=1||O.oa())){this.ru(H,N,Q,c); +return}var r=O.oP()&&O.kE=="pass"&&(_.length>0||L.fill!=1||O.oa()),u=O.rect,V=O.buffer;if(O.oP()){u=this.AK(c,!1); +var T=$.I(u.f()*4);C=$.I(u.f());this.ru(T,u,Q,c);$.rY(T,C,3)}else if(s){u=N.clone();C=$.I(u.f());$.set(C,255)}else{u=O.rect; +C=$.I(u.f());$.rY(V,C,3)}if(O.Vw()){var e=O.d.Qd(u);$.Yj(e,C)}if(O.oa())t=Ja.KC(O.add.lmfx,O.add.fxrp,C,u,c); +if(O.oa())Ja.Kg(O.add.lmfx,t,u,H,N,Q);if(O.oP()){V=$.I(u.f()*4);if(O.kE=="pass")$.Pg(H,N,V,u);if(r){var T=$.I(u.f()*4); +this.ru(T,u,Q,c);var Y=$.I(u.f());$.rY(T,Y,3);$.Sm(Y,u,V,u)}this.ru(V,u,Q,c)}if(s){V=$.clone(H);$.Mw(V,4278190080,16777215); +var A=JO.get(O.add),G=JO.yz(A,JO.cV(O.add));JO.kn(G,V,V)}var j=$.clone(V);$.Mw(j,4278190080,16777215); +for(var d=0;d<_.length;d++)_[d].jy(j,u,Q,c,[]);var w=$.I(u.f()*4);$.Pg(H,N,w,u);if(s)L.VE=!0;$.a.MR(O.kE=="pass"?"norm":O.kE,j,u,w,u,Q,1,L); +if(O.oa()){var f=O.D.B_.type.FrFX,b=null;if(f.length!=0){b=f[0];for(var d=0;db.$C.$)b=f[d]; +var F=$.I(b.$C.$*b.$C.z*4);$.Pg(H,N,F,b.$C)}Ja.Ka(O.add.lmfx,t,u,H,N,Q,w,F,b?b.$C:null)}$.a.fX(w,u,H,N,C,u,0,Q,1,O.kE=="diss")}; +rk.prototype.ru=function(H,N,Q,c){var _=this.children;for(var O=0;O<_.length;O++){var L=[];for(var s=O+1; +s<_.length;s++)if(_[s].i.fB)L.push(_[s]);else break;_[O].jy(H,N,Q,c,L);O+=L.length}};rk.Hr={delete:function(H){if(H&&H.$)H.delete()},I:function(H,N){return o.Yv?new o.wf(H,N):$.I(H*N*4)},$X:function(H,N,Q){if(o.Yv){if(H==null||H.$!=N||H.z!=Q){rk.Hr.delete(H); +return new o.wf(N,Q)}}else{if(H==null||!(H instanceof Uint8Array)||H.length!=N*Q*4){rk.Hr.delete(H); +return $.I(N*Q*4)}}return H},Jg:function(H,N,Q,c,_){(o.Yv?o.h_:$.Pg)(H,N,Q,c,_)},fX:function(H,N,Q,c,_,O,L,s,r,u){(o.Yv?o.a.Ak:$.a.fX)(H,N,Q,c,_,O,L,s,r,u)},MR:function(H,N,Q,c,_,O,L,s){if(o.Yv)o.a.dv(H,N,Q,c,_,O,L,s); +else $.a.MR(H,N,Q,c,_,O,L,s)},Mw:function(H,N,Q){if(o.Yv){o.jl(H);o.sk(N,Q)}else $.Mw(H,N,Q)},tye:function(H,N,Q,c,_){if(o.Yv){o.a.Ak(null,null,c,_,H,N,Q,_,1,!1)}else{if(Q==255)$.Sm(H,N,c,_); +else{var O=$.I(N.f());$.he(c,_,O,N);$.Yj(H,O);$.Mw(c,0,16777215);$.cl(O,N,c,_)}}},WJ:function(H,N,Q,c){if(o.Yv)o.a.Ak(null,null,Q,c,H,N,0,c,1,!1); +else $.WJ(H,N,Q,c)}};rk.prototype.Kf=function(H,N,Q,c,_,O){var L=typeof O=="number";if(!this.i.oP()&&(L&&this.index>O||!L&&O.indexOf(this.index)==-1)){return}var s=this.i,r=Ja.oW(s),u=rk.Hr,V=s.TT()?s.Ab():s.d; +if(!s.op())return;if(s.Vw()&&V.rect.km()){return}if(s.add.vstk==null&&this.AK(c,!1).km()){return}var C=this.AK(c,!0).sj(Q); +if(!N.v$(Q)&&!Q.p$(C))return;if(s.oP()&&s.add.artb)Q=Q.sj(s.As());var T=rk.jC(s,_);if(!T){this.jT(H,N,Q,c,_,O); +return}s.D.Ca=u.$X(s.D.Ca,C.$,C.z);u.Jg(H,N,s.D.Ca,C,Q);this.jT(s.D.Ca,C,Q,c,_,O);u.fX(s.D.Ca,C,H,N,null,null,0,Q,s.opacity/255,s.kE=="diss")}; +rk.jC=function(H,N){return H.opacity!=255&&(N.length!=0||H.oP()||H.oa())};rk.prototype.jT=function(H,N,Q,c,_,O){var L=this.i,s=Ja.oW(L),r=JO.get(L.add)!=null,u=rk.Hr,V=rk.jC(L,_),C=V?1:L.opacity/255,T=L.TT()?L.Ab():L.d,e=L.oP()&&L.kE=="pass"&&!(_.length>0||s.fill!=1||L.oa()),t=!L.oP()&&!r&&!L.oa()&&_.length==0,Y=r&&!L.oa()&&_.length==0,w=null,f=null,b=null,Z; +if(e||t||Y){var A=H,G=N;if(L.Vw()){G=this.AK(c,!1);A=L.D.Th=u.$X(L.D.Th,G.$,G.z);u.Jg(H,N,L.D.Th,G)}if(e)this.KY(A,G,Q,c,O); +if(t)u.MR(L.kE,L.fH(c),L.rect,A,G,Q,C,s);if(Y){var j=L.Vw()&&T.NG()==0?T.AK().clone():G.clone();L.D.OU=this.jP(A,G,L.D.OU,j,L.add); +s.VE=!0;u.MR(L.kE,L.D.OU,j,A,G,Q,C,s)}if(L.Vw())u.fX(A,G,H,N,L.fr(),T.AK(),T.NG(),Q,1,L.kE=="diss"); +L.D.fR();return}var d=L.oP()&&L.kE=="pass"&&(_.length>0||s.fill!=1||L.oa()),j=L.rect;if(L.oP()){j=this.AK(c,!1); +b=L.D.OU=u.$X(L.D.OU,j.$,j.z);u.Mw(b,0);this.KY(b,j,j,c,O);f=u.$X(L.D.wa,j.$,j.z);u.Jg(b,j,f,j)}else if(r){j=L.Vw()&&T.NG()==0?T.AK().clone():N.clone(); +f=u.$X(L.D.wa,j.$,j.z);u.Mw(f,4294967295)}else{j=L.rect;w=L.fH(c);f=u.$X(L.D.wa,j.$,j.z);u.Jg(w,j,f,j)}L.D.wa=f; +if(L.Vw())u.tye(L.fr(),T.AK(),T.NG(),f,j);if(L.oa())if(L.D.jj||L.D._$||L.D.PL!=o.Yv||L.D.W$||L.oP()){var F=f; +if(o.Yv){F=$.I(j.$*j.z*4);f.get(F)}var n=$.I(j.$*j.z);$.rY(F,n,3);if(L.D._$||L.D.PL!=o.Yv||!$.v$(n,L.D.Jx)){var J=null; +if(L.TT()&&L.add.vmsk&&L.add.vmsk.isEnabled&&L.add.vmsk.Ab().color==0)J=L.add.vmsk.Ab().rect;Ja.tcg(L.D.B_,n,j,L.add.lmfx,L.add.fxrp,c,J); +L.D.Jx=$.clone(n)}}if(L.oa())Ja.Kg(L.add.lmfx,L.D.B_,j,H,N,Q);if(L.oP()){w=u.$X(L.D.Th,j.$,j.z);u.Mw(w,0); +if(L.kE=="pass")u.Jg(H,N,w,j);if(d)u.WJ(b,j,w,j);this.KY(w,j,Q,c,O);L.D.Th=w}if(r){w=L.D.Th=this.jP(H,N,L.D.Th,j,L.add)}if(L.oP()||r)Z=w; +else{Z=u.$X(L.D.Th,j.$,j.z);u.Jg(w,j,Z,j,Q);L.D.Th=Z}u.Mw(Z,4278190080,16777215);for(var P=0;P<_.length; +P++)_[P].Kf(Z,j,Q,c,[],O);var M=L.D.G$=u.$X(L.D.G$,j.$,j.z);u.Jg(H,N,M,j,Q);if(r)s.VE=!0;u.MR(L.kE=="pass"?"norm":L.kE,Z,j,M,j,Q,1,s); +if(L.oa()){var y=L.D.B_.type.FrFX,a=null;if(y.length!=0){a=y[0];for(var P=0;Pa.$C.$)a=y[P]; +L.D.WF=u.$X(L.D.WF,a.$C.$,a.$C.z);u.Jg(H,N,L.D.WF,a.$C,Q);L.D.JS=u.$X(L.D.JS,a.$C.$,a.$C.z)}Ja.Ka(L.add.lmfx,L.D.B_,j,H,N,Q,M,L.D.WF,L.D.JS,a?a.$C:null)}if(!o.Yv){var g=$.I(j.f()); +$.rY(f,g,3);f=g}u.fX(M,j,H,N,f,j,0,Q,1,L.kE=="diss");L.D.fR()};rk.prototype.jP=function(H,N,Q,c,_){var O=rk.Hr; +Q=O.$X(Q,c.$,c.z);O.Jg(H,N,Q,c);var L=JO.get(_),s=JO.yz(L,JO.cV(_));if(s!=null){if(o.Yv){var r=c.clone(); +r.x=r.y=0;JO.tyw(s,Q,r)}else JO.kn(s,Q,Q)}return Q};rk.prototype.KY=function(H,N,Q,c,_){var O=this.children; +for(var L=0;L");H.add.lsct=tR.JQ;H._c=24; +return H};rw.prototype.KF=function(){return this.ei!=this.aE};rw.prototype.Af=function(H){while(this.history.length>this.ei+1)this.history.pop(); +if(this.aE>this.ei)this.aE=-1;if(H.c.id!=l.mq){this.Jd=!0;if(this.qO.lastAppliedComp){delete this.qO.lastAppliedComp; +this.qf=!0}}this.history.push(H);this.ei++;this.kJ=!0;var N=0;for(var Q=this.history.length-1;Q>=0;Q--){var c=this.history[Q]; +if(c.JG)continue;N++;if(N==30){this.ei-=Q;this.history=this.history.slice(Q);break}}};rw.prototype.lk=function(){if(this.ei!=this.history.length-1)return null; +return this.history[this.history.length-1]};rw.prototype.MC=function(H,N){if(H==null)H=!1;var Q=N!=null?[N]:this.g.slice(0),c=[]; +for(var _=0;_0)N=H.solidFillMulti.v[0].v; +if(H.gradientFillMulti.v.length>0)Q=H.gradientFillMulti.v[0].v;if(N&&(N.enab.v==!1||N.Opct.v.val!=100||N.Md.v.BlnM!="Nrml"))N=null; +if(Q&&(Q.enab.v==!1||Q.Opct.v.val!=100||Q.Md.v.BlnM!="Nrml"))Q=null}return[N,Q]};Ja.Kc=function(H,N){var Q=["Sz","blur","Sftn","Dstn"]; +for(var c=0;c0&&e.blur.v.val>0)L=Math.max(L,Math.ceil(e.Ckmt.v.val*e.blur.v.val/100)); +if(u=="OrGl"&&e.enab.v&&e.Ckmt.v.val>0&&e.blur.v.val>0&&e.GlwT.v.BETE=="SfBL")L=Math.max(L,Math.ceil(e.Ckmt.v.val*e.blur.v.val/100)); +if(u=="OrGl"&&e.enab.v&&e.blur.v.val>0&&e.GlwT.v.BETE=="PrBL")L=Math.max(L,e.blur.v.val);if(u=="FrFX"&&e.enab.v&&e.Sz.v.val>0){if(e.Styl.v.FStl=="OutF")L=Math.max(L,e.Sz.v.val); +if(e.Styl.v.FStl=="CtrF")L=Math.max(L,Math.ceil(e.Sz.v.val/2));s=Math.max(s,Ja.wI(e)[1])}}}var t=new Ja.eS(Q,c,L),Y={type:{},all:[]}; +for(var A=0;A=0;G--){var j=H[V].v[G].v;if(!j.enab.v)continue;var d=j.blur?j.blur.v.val:0,w=j.Ckmt?j.Ckmt.v.val/100:0,f=d*w; +if(u=="DrSh"){var b=t.Gg(f,d-f,!0),F=b.y_,n=b.lU;n.offset(-t.rect().x-1,-t.rect().y-1);Ja.wc(F,j);Ja.It(n,j,_,0); +var J=$.I(n.f()*4);Ja.Sy(J,j.Clr.v);$.kw(F,J,3);var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100,Tm:j.layerConceals.v}; +Y.type[u].push(Z);Y.all.push(Z)}if(u=="IrSh"){var b=t.Gg(f,d-f,!1);Ja.It(b.lU,j,_,0);var n=t.rect().clone(),F=$.I(n.f()); +$.set(F,255);$.Jg(b.y_,b.lU,F,n);Ja.wc(F,j);var J=$.I(n.f()*4);Ja.Sy(J,j.Clr.v);$.kw(F,J,3);n.offset(-t.rect().x-1,-t.rect().y-1); +var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100};Y.type[u].push(Z);Y.all.push(Z)}if(u=="GrFl"){var J=$.I(t.rect().f()*4); +Ja.Gw(j,J,t.rect(),_,null,O);var n=t.rect().clone();n.offset(-t.rect().x-1,-t.rect().y-1);var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100}; +Y.type[u].push(Z);Y.all.push(Z)}if(u=="SoFi"){var J=$.I(t.y_().length*4);Ja.Sy(J,j.Clr.v);var n=t.rect().clone(); +n.offset(-t.rect().x-1,-t.rect().y-1);var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100};Y.type[u].push(Z); +Y.all.push(Z)}if(u=="ebbl"){var P=!1,S=1;if(P)console.log(j);var M=Date.now(),y=j.bvlS.v.BESl;if(y=="strokeEmboss"){var a=H.frameFXMulti.v; +if(a.length==0)continue;a=a[0].v;if(!a.enab.v)continue;var g=a.Styl.v.FStl;if(g=="OutF")y="OtrB";if(g=="CtrF")y="Embs"; +if(g=="InsF")y="InrB"}var d=j.blur.v.val;if(d==0)d=.7;if(y=="Embs"||y=="PlEb")d/=2;var U=["OtrB","InrB","Embs","PlEb","strokeEmboss"],D=["SfBL","PrBL","Slmt"],W=["In","Out"],m=j.bvlT.v.bvlT!="SfBL"?d:d*.45,q=Math.round(d); +d*=S;m*=S;q*=S;var I=t.rect().clone();I.x*=S;I.y*=S;I.$*=S;I.z*=S;var v=I.clone();v.FA(q,q);var h=v.$,i=v.z,JI=h*i,Jx=t.rect().$,Jd=t.rect().z,JC=$.I(Jx*Jd*S*S); +$.scale.in(t.y_(),Jx,Jd,JC,Jx*S,Jd*S,S);var JM=$.I(JI);$.Jg(JC,I,JM,v);var Jh=new Float64Array(JI),Jv=new Float64Array(JI); +$.style.td(JM,Jh,h,i);$.UK(JM);$.style.td(JM,Jv,h,i);if(P)console.log("distTransform computed",Date.now()-M); +var JW=Jv;Jv=new Float64Array(JI);for(var r=0;rm)JW[r]=m}if(P)console.log("summing + cropping",Date.now()-M);if(j.bvlT.v.bvlT=="SfBL"){$.blur.Wl(JW,Jh,v,Math.max(2,Math.pow(d*.21,1.22))); +var Jc=JW;JW=Jh;Jh=Jc}if(P)console.log("blurring",Date.now()-M);var JT=new Float64Array(JI);$.sa(JW,JT); +if(j.useShape.v){var Jg=Math.min(100,j.Inpr.v.val+1)/100;if(y!="OtrB"&&y!="InrB")Jg=1;var Jn=$.kv.__(j.MpgS.v.Crv.v,2e3),Jq=Math.round(2e3/Jg); +Jn=$.kv.tJt(Jn,Jq,y=="InrB");var tJ=.5/m;for(var r=0;r0)Jl[rv]=tt;if(rE>0)rD[rv]=rE}if(P)console.log("raycasting",Date.now()-M); +if(j.Sftn.v.val!=0){$.blur.Wl(Jl,Jh,v,j.Sftn.v.val*.43);var Jc=Jh,Jh=Jl,Jl=Jc;if(tb){$.blur.Wl(rD,Jh,v,j.Sftn.v.val*.43); +var Jc=Jh,Jh=rD,rD=Jc}else $.sa(Jl,rD)}if(P)console.log("softening",Date.now()-M);var Jn=$.kv.__(j.TrnS.v.Crv.v,1024); +for(var r=0;r>2];if($u<32)J[r+3]=Math.max(0,$u-1)<<3}}n.offset(-t.rect().x-1,-t.rect().y-1); +var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100};Y.type[u].push(Z);Y.all.push(Z)}if(u=="IrGl"){var b; +if(j.GlwT.v.BETE=="SfBL")b=t.Gg(f,d-f,!1);else b=t.KQ(d,w,!1);var F=b.y_,n=b.lU;Ja.Kp(F,j);Ja.wc(F,j); +if(j.glwS.v.IGSr=="SrcC")$.UK(F);var J=$.I(n.f()*4);if(j.Grad==null){Ja.Sy(J,j.Clr.v);$.kw(F,J,3)}else{var rZ={TR:F,oG:255,uA:0,EK:n}; +Ja.Gw(j,J,n,_,rZ)}n.offset(-t.rect().x-1,-t.rect().y-1);var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100}; +Y.type[u].push(Z);Y.all.push(Z)}if(u=="FrFX"){var rz=Ja.wI(j),Hy=rz[0],HR=rz[1],n=t.rect().clone(),tq=null,HH=null; +n.FA(Math.ceil(s),Math.ceil(s));if(HR>0){var b=t.Gg(HR,0,!0);HH=b.y_;if(HH.length0){var b=t.Gg(Hy,0,!1);tq=$.I(n.f());$.set(tq,255);$.Jg(b.y_,b.lU,tq,n)}n.offset(-t.rect().x-1,-t.rect().y-1); +var J=$.I(n.f()*4),rh=j.PntT.v.FrFl;if(rh=="SClr")Ja.Sy(J,j.Clr.v);if(rh=="GrFl")Ja.Gw(j,J,n,_,t.tcQ(Hy,HR)); +if(rh=="Ptrn")Ja.vh(j,J,n,_,N);var Z={nn:J,wq:n,UY:ta.FC(j.Md.v.BlnM),uy:j.Opct.v.val/100,Sh:HH,Sv:tq}; +Y.type[u].push(Z);Y.all.push(Z)}}}return Y};Ja._o=function(H){var N=1/Math.sqrt(H.x*H.x+H.y*H.y+H.Xh*H.Xh); +H.x*=N;H.y*=N;H.Xh*=N};Ja.tyn=function(H,N){return{x:H.y*N.Xh-H.Xh*N.y,y:H.Xh*N.x-H.x*N.Xh,Xh:H.x*N.y-H.y*N.x}}; +Ja.tDP=function(H,N){return H.x*N.x+H.y*N.y+H.Xh*N.Xh};Ja.oW=function(H){var N=Ja.wU();return{fill:H.add.iOpa!=null?H.add.iOpa/255:N.fill,PE:H.add.brst!=null?H.add.brst:N.PE,Pq:H.add.knko!=null?H.add.knko:N.Pq,style:!1,VE:!1}}; +Ja.wU=function(){return{fill:1,PE:[1,1,1],Pq:0,style:!1,VE:!1}};Ja.bE=function(H,N){if(N==null)return null; +var Q=H.Idnt.v,c=null;for(var _=0;_c){var _=$.kv.tH(N.TrnS.v.Crv.v,256,!0);$.vs(H,_)}if(N.Nose.v.val>0)$.style.tDI(H,N.Nose.v.val/100)}; +Ja.Sy=function(H,N,Q){if(Q==null)Q=255;var c=$.e.NG(N),_=Q<<24|c.H<<16|c.q<<8|c.T;$.Mw(H,_)};Ja.It=function(H,N,Q,c){var _=N.uglg&&N.uglg.v?Q.Ej():N.lagl.v.val; +_=_*Math.PI/180+c;var O=Math.cos(_)*N.Dstn.v.val,L=Math.sin(_)*N.Dstn.v.val;H.x-=Math.round(O);H.y+=Math.round(L)}; +Ja.Yq=function(H){if(H==null)return null;var N=H.frameFXMulti.v;if(N.length==0)return null;N=N[0].v; +var Q=JSON.parse(JSON.stringify(B.nO.default));Ja.Ki(N,Q);return Q};Ja.Ki=function(H,N){var Q=B.stroke.YI.indexOf(H.PntT.v.FrFl),c=[B.IS,B.fT,B.fP][Q],_=N.strokeStyleContent.v={classID:B.nO.aw[Q]}; +for(var O=0;O=6)this.Yb(this.KZ(_))};Jf.prototype.KB=function(H){if(H==null)H=1; +H=Math.max(.05,Math.min(5,H));if(isNaN(H)){alert("Pressure is not a number");throw"e"}return H};Jf.prototype.Yb=function(H){this.MD=H; +this.Jz=this.Jz.Fv(H)};Jf.prototype.finish=function(){var H=this.vO,N=H.length,Q;if(N==4)Q=this.Ke(H[N-2],H[N-1],this.GM[(N>>1)-1],!0); +if(N>4)Q=this.KZ(N+2);if(Q)this.Yb(Q)};Jf.prototype.KZ=function(H){var N=this.vO,Q=this.GM,c=N[H-6],_=N[H-5],O=N[H-4],L=N[H-3],s=Q[(H>>1)-3],r=Q[(H>>1)-2],u=new E(0,0),V=new E(0,0); +if(8<=H)u=Jf.KA(N[H-8],N[H-7],c,_,O,L);if(H<=N.length)V=Jf.KA(N[H-2],N[H-1],O,L,c,_);var C=c+u.x,T=_+u.y,e=O+V.x,t=L+V.y,Y=new p; +for(var A=0;A<10;A++){var G=(A+1)*.1,j=1-G,d=j*j*j*c+3*G*j*j*C+3*G*G*j*e+G*G*G*O,w=j*j*j*_+3*G*j*j*T+3*G*G*j*t+G*G*G*L,f=this.Ke(d,w,s+G*(r-s)); +Y=Y.Fv(f)}return Y};Jf.KA=function(H,N,Q,c,_,O){var L=H-Q,s=N-c,r=_-Q,u=O-c,V=Math.sqrt(L*L+s*s),C=Math.sqrt(r*r+u*u),T=Math.acos((L*r+s*u)/(V*C))/Math.PI,e=.35,t=.1; +T=t+T*(e-t);var Y=_-H,A=O-N,G=Math.sqrt(Y*Y+A*A),j=T*C/G;return new E(Y*j,A*j)};Jf.prototype.Ke=function(H,N,Q,c){var _=new p,O=this.oN.tRh; +if(O==null)O=0;if(O==0||c){_=this.KN(H,N,Q);return _}var L=this.kt,s=H-L.x,r=N-L.y,u=Math.sqrt(s*s+r*r); +s/=u;r/=u;if(u>O){var V=L.x+s*(u-O),C=L.y+r*(u-O);_=this.KN(V,C,Q);this.kt.kR(V,C)}return _};Jf.prototype.KN=function(H,N,Q){var c=new p,_=new E(H,N),O=this.H.Brsh.v.Dmtr.v.val,L=this.oN.tX,s=_.Tr(this.yd); +s.normalize(1);var r=E.Ln(this.yd,_),u=-this.Pm,V=this.yd.clone();while(!0){var C=this.K_()*(this.Gc+(Q-this.Gc)*(Math.max(0,u)/r)),T=this.tLt()*(C+this.Ps)/2; +if(L==Jf.MY)T=1;if(u+T0?1:-1;var Y=V.clone();Y.y+=s.y>0?1:-1;if(E.Ln(t,e)1)s._u=1-(s._u-1);s.Dq=s.Dq+L;if(s.Dq<0)s.Dq=-s.Dq; +if(s.Dq>1)s.Dq=1-(s.Dq-1);N=$.pq(s.ht,s._u,s.Dq)}return N};Jf.prototype._o=function(H){return Math.max(0,Math.min(1,H))}; +Jf.prototype.Ux=function(){this.dP++;return Jf.hash(this.dP)};Jf.YJ=function(H){return{T:(H>>16&255)/255,q:(H>>8&255)/255,H:(H>>0&255)/255}}; +Jf.hash=function(H){H=H^61^H>>16;H=H+(H<<3);H=H^H>>4;H=H*668265261;H=H^H>>15;return(H&16777215)/16777215}; +Jf.Kq=[];Jf.prototype.tL$=function(H,N){var Q=null,L;for(var c=0;c1e4){L=r;break}}if(L){L.rect.x=Math.round(L.Gi.x-L.om.DX+H.DX);L.rect.y=Math.round(L.Gi.y-L.om.Ug+H.Ug)}else{var u=Math.round(this.H.Brsh.v.Dmtr.v.val),V; +if(O&&u<=3){V={buffer:$.I(u*u*4),rect:new p(Math.round(N.x-u/2),Math.round(N.y-u/2),u,u)};$.Mw(V.buffer,4278190080)}else V=l._.Qk([this.n_._K,this.n_.AM],H); +if(O){for(var c=0;c127?255:0}if(V==null)V={buffer:$.I(0),rect:new p}; +var C=H.DX-Math.floor(H.DX),T=H.Ug-Math.floor(H.Ug);L={_K:V.buffer,JZ:$.I(V.rect.f()),rect:V.rect,Gi:V.rect.clone(),om:H,Vn:Jf.YC(H.DX,H.Ug)}; +$.rY(L._K,L.JZ,3);_.push(L);if(_.length>200)_=_.slice(100)}Q.tV=_;Q.Je=Date.now();Jf.Kq.push(Q);Jf.Kq.sort(function(e,t){return t.Je-e.Je}); +while(Jf.Kq.length>3)Jf.Kq.pop();return L};Jf.YC=function(H,N){return new E(H-Math.floor(H),N-Math.floor(N))}; +Jf.tLc=function(H,N){var Q=N.x,c=N.y,_=Math.abs(Q-H.x),O=Math.abs(c-H.y);if(Math.abs(Q-1-H.x)<_)Q--; +else if(Math.abs(Q+1-H.x)<_)Q++;if(Math.abs(c-1-H.y)L*2){var J=new p(_.x,_.y,Math.floor(_.$/2),Math.floor(_.z/2)),Z=l._.Qk([n,_],new Jo(J.$/_.$,0,0,J.z/_.z,0,0)); +O*=J.$/_.$;_=Z.rect;n=Z.buffer}return{P_:O,AM:_,_K:n}};Jf.Ye=[];Jf.tLG=function(H){if(Jf.Ye[H])return Jf.Ye[H]; +var N=Math.pow(H,.55),Q=new Float64Array(2e3);for(var c=0;c<2e3;c++)Q[c]=Jf.tLo(c*(1/1e3)*1.55,N);Jf.Ye[H]=Q; +return Q};Jf.tLo=function(H,N){var Q=H=3){var u=$.I(c.f()); +$.t.tPM(s.o,u,c);var V=$.I(c.f());$.blur.ur($.clone(u),V,c,1);$.sk(s,255);$.sa(V,s.o);for(var C=0;C0)w+=f[0].lineHeight;this.re[L].Vn.y=w;this.VF+=f.length;if(Q)for(var b=0;bY)Y=A}var G=[];for(var u=0;u1424)G=C(t,V);for(var u=0;u2&&(m==6||!D))this.tCl(U,this.gY,Q,W,V); +for(var u=U.start;u=H.start;O--)if(N[O].PG||N[O].vb)c-=N[O].rect.$; +else break;if(Q==1)for(var O=H.start;O=H.start;u--)if(N[u].PG||N[u].vb){if(N[u].PG){s--}}else break; +if(_==1)for(var u=H.start;u"},{_0:"i40",_1:"s\u201E",_2:"s\u201C",_3:"s\u201A",_4:"s\u2018"},{_0:"i41",_1:"s\xAB",_2:"s\xBB",_3:"s<",_4:"s>"},{_0:"i42",_1:"s\u201E",_2:"s\u201C",_3:"s\u201A",_4:"s\u2018"},{_0:"i43",_1:"s\u201C",_2:"s\u201D",_3:"s\u2018",_4:"s\u2019"},{_0:"i44",_1:"s\xAB",_2:"s\xBB",_3:"s\u2039",_4:"s\u203A"},{_0:"i45",_1:"s\u201C",_2:"s\u201D",_3:"s\u2018",_4:"s\u2019"}],_15:{_0:"sWinSoft"},_16:!1}; +var rW={};rW.tdG=function(H){return rW.bm(H,rW.ck)};rW.tDg=function(H){return rW.B$(H,rW.ck)};rW.bm=function(H,N){var Q; +if(typeof H=="string")return H;if(H instanceof Array){Q=[];for(var c=0;c0)L.push("border-radius: "+Math.round(r)+"px")}else if(O){var u=O.Bd;if(X.gG(u)==1){var s=X.BR(u); +L.push("width: "+Math.round(s[2])+"px");L.push("height: "+Math.round(s[3])+"px")}CSS.bC(L,X.Sr(u,0,0),O.UC,!1)}if(_&&_.dropShadowMulti.v.length!=0){var V=_.dropShadowMulti.v[0].v; +if(V.enab.v){var C=V.Dstn.v.val,T=V.lagl.v.val*Math.PI/180,e=C*Math.cos(T),t=C*Math.sin(T);L.push("box-shadow: "+(e==0?"0 ":CSS._X(-e)+"px ")+(t==0?"0 ":CSS._X(t)+"px ")+V.blur.v.val+"px "+CSS.YP(V.Clr.v,V.Opct.v.val/100)+"")}}var Y=Ja.Yy(_),A=Y[0],G=Y[1]; +if(N.SoCo&&G==null||A){var j=CSS.YP((A?A:N.SoCo).Clr.v,H.add.iOpa!=null?H.add.iOpa/255:1);L.push("background-color: "+j)}else if(N.GdFl||G){var d=CSS.NH(G?G:N.GdFl); +L.push("background-image: "+d)}if(c==null||!c.strokeEnabled.v)c=Ja.Yq(_);if(c&&c.strokeEnabled.v){var w=c.strokeStyleContent.v,f=w.classID,b=B.nO.Ky.indexOf(c.strokeStyleLineCapType.v.strokeStyleLineCapType),F=B.nO.join.indexOf(c.strokeStyleLineJoinType.v.strokeStyleLineJoinType),n=c.strokeStyleOpacity.v.val/100,J=c.strokeStyleLineWidth.v.val,Z=""; +if(f=="solidColorLayer")Z=CSS.YP(w.Clr.v,n);L.push("border: "+J+"px solid "+Z)}return L};CSS.tdK={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",rebeccapurple:"#663399",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"}; +CSS._X=function(H){return""+parseFloat(H.toFixed(3))};CSS.bI=function(H){if(H==null)return{T:0,q:0,H:0}; +if(H.slice(0,4)=="rgb("){var N=H.slice(4,H.length-1).split(",").map(parseFloat);return{T:N[0],q:N[1],H:N[2]}}if(H.charAt(0)!="#"){var Q=CSS.tdK; +if(Q[H])H=Q[H];else console.log("unknown color "+H)}H=H.slice(1);if(H.length==3)H=H[0]+H[0]+H[1]+H[1]+H[2]+H[2]; +H=parseInt(H,16);return{T:H>>16&255,q:H>>8&255,H:H&255}};CSS.YP=function(H,N){return CSS.tdZ($.e.NG(H),N)}; +CSS.tdZ=function(H,N){if(N==null)N=1;var Q=Math.round(H.T),c=Math.round(H.q),_=Math.round(H.H),O=Q<<16|c<<8|_; +return N==1?"#"+$.fM(O):"rgba("+Q+","+c+","+_+","+N+")"};CSS.NH=function(H){var N=H.Grad.v;if(N.Clrs==null)return""; +var Q=N.Clrs.v.slice(0),c=N.Trns.v.slice(0),_=H.Ofst.v,O=H.Type.v.GrdT=="Rdl"?1:0,L=(O==1?"radial":"linear")+"-gradient",s=O==0?Math.round(-H.Angl.v.val+90)+"deg":"circle at center",r=H.Rvrs.v; +if(r){Q.reverse();c.reverse()}for(var u=0;u")return H>N; +else if(Q=="==")return H==N;else if(Q=="<=")return H<=N;else if(Q==">=")return H>=N;else if(Q=="!=")return H!=N; +else if(Q=="!==")return H!==N;else if(Q=="<<")return H<>")return H>>N;else console.log(Q)}; +JB.bP=function(H,N){if(N=="-")return-H;else if(N=="!")return!H;else if(N=="~")return~H;else console.log(obj)}; +JB.rz=function(H,N,Q){var c=H.type;if(c=="Identifier")return JB.tGR(H.name,N,Q);else return JB.eval(H,N,Q)}; +JB.tGR=function(H,N,Q){if(H=="undefined")return undefined;else if(Q.hasOwnProperty(H))return Q[H];else if(H=="app")return{kj:"Application"}; +else if(JB.Lx.tGv.indexOf(H)!=-1)return JB.Lx.aO({kj:"Application"},H,N,Q);else if(window[H])return window[H]; +else{Q[H]=null;return null}};JB.Lx={};JB.Lx.tGc=function(H,N,Q,c){if(H=="SolidColor")return{kj:"SolidColor",R:[1,0,0,0]}}; +JB.Lx.tGv=["activeDocument","documents","fonts","preferences","displayDialogs"];JB.Lx.aO=function(H,N,Q,c){if(!1){}else if(N=="typename"){if(H.kj=="Layer")return H.R.oP()?"LayerSet":"ArtLayer"; +else return H.kj}else if(["Document","Layer"].indexOf(H.kj)!=-1&&["layers","artLayers","layerSets"].indexOf(N)!=-1){var _=Q.Ns(),O=_.root,L={kj:"Layers",R:[]}; +if(H.kj=="Layer")O=_.root.oo(_.b.indexOf(H.R));for(var s=0;s1e3){Q=N==0?100:N*10}else{if(H%10!=0)H*=10;Q=(H+N)%100}z.bG=Date.now();return Q}; +z.oA=function(H,N){if(window.PointerEvent){H.addEventListener("pointerdown",N,!1);return}H.addEventListener("mousedown",N,!1); +H.addEventListener("touchstart",N,!1)};z.ny=function(H,N){if(window.PointerEvent){H.addEventListener("pointermove",N,!1); +return}H.addEventListener("mousemove",N,!1);H.addEventListener("touchmove",N,!1)};z.nL=function(H,N){if(window.PointerEvent){H.addEventListener("pointerup",N,!1); +return}H.addEventListener("mouseup",N,!1);H.addEventListener("touchend",N,!1)};z.tDf=function(H,N){if(window.PointerEvent){H.removeEventListener("pointerdown",N,!1); +return}H.removeEventListener("mousedown",N,!1);H.removeEventListener("touchstart",N,!1)};z.vD=function(H,N){if(window.PointerEvent){H.removeEventListener("pointermove",N,!1); +return}H.removeEventListener("mousemove",N,!1);H.removeEventListener("touchmove",N,!1)};z.cQ=function(H,N){if(window.PointerEvent){H.removeEventListener("pointerup",N,!1); +return}H.removeEventListener("mouseup",N,!1);H.removeEventListener("touchend",N,!1)};z.FW=function(H){H.addEventListener("touchstart",z.qX,!1); +H.addEventListener("touchmove",z.qX,!1);H.addEventListener("touchend",z.qX,!1)};z.UZ=function(H,N,Q,c){var _=z.h(); +H.width=Math.floor(N*_);H.height=Math.floor(Q*_);H.style.width=H.width/_+"px";H.style.height=H.height/_+"px"; +if(c)c.setTransform(_,0,0,_,0,0)};z.gx=function(H,N,Q){H.setAttribute("style","width:"+N/z.h()+"px; height:"+Q/z.h()+"px")}; +z.qF=function(H,N){if(N==null)N=H.currentTarget;var Q=N.getBoundingClientRect();if(H.touches)H=H.touches.item(0); +return{x:H.clientX-Q.left,y:H.clientY-Q.top}};z.h=function(H){return window.devicePixelRatio||1};z.qX=function(H){H.preventDefault()}; +z.IX=function(H){var N=64/z.h(),Q=64*z.h();return"url("+H+") "+64+" "+64+", auto; cursor: -webkit-image-set( url("+H+") "+z.h()+"x ) "+N+" "+N+", auto;"}; +z.Ur=function(H,N,Q){Q=Q?Q:"";if(PIMG["__"+H]==null)Q+=" gsicon";return"\""+(N?N:"")+"\""}; +z.bg=function(H,N,Q,c){var _=H.dataTransfer.getData("text/uri-list");if(_!=null&&_.startsWith("http")){var O=new k(z.E.Y,!0); +O.data={X:z.m.UF,gg:{url:_,Go:!0,sN:Q,vB:c}};N.N(O)}if(H.dataTransfer.files.length==0)return;var O=new k(z.E.Y,!0); +O.data={X:z.m.bi,data:H.dataTransfer.files,sN:Q,vB:c};N.N(O)};var k=function(H,N){if(!N)N=!1;this.type=H; +this.target=null;this.currentTarget=null;this.bubbles=N;this.c=null;this.MI=!1};z.E={W:"0",Y:"1",p:"2",pH:"3",ba:"4",Gn:"5"}; +z.m={BC:"10",Fe:"11",Il:"12",BG:"13",gM:"14",bS:"14.1",UF:"15",pD:"16",Bx:"17",bv:"18",G_:"19",bh:"20",Bv:"21",yL:"22",Bo:"22.5",yT:"23",yP:"24",gI:"25",IA:"26",pL:"27",Bn:"28",bW:"28.5",bq:"29",bi:"30",mG:"31",bo:"32",q$:"33",nv:"34",u_:"35",yQ:"37",bX:"38",bQ:"39",bl:"40",Bl:"41",bf:"42",Ie:"43",bj:"44",bK:"45",bY:"46"}; +var HJ={};HJ.bb=function(H){var N=HJ.Us[H],Q=document.documentElement.style,_=20;Q.setProperty("--bg-color","#"+$.fM(N["--bg-color"])); +Q.setProperty("--bg-panel","#"+$.fM(N["--bg-panel"]));Q.setProperty("--bg-canvas","#"+$.fM(N["--bg-canvas"])); +Q.setProperty("--bg-input","#"+$.fM(N["--bg-input"]));Q.setProperty("--bg-bbtn","#"+$.fM(N["--bg-bbtn"])); +Q.setProperty("--bg-bbtnOver","#"+$.fM(N["--bg-bbtnOver"]));Q.setProperty("--brdr","#"+$.fM(N["--brdr"])); +Q.setProperty("--text-color","#"+$.fM(N["--text-color"]));Q.setProperty("--brdrLgt","rgba(255,255,255,"+N["--brdrLgt"]+")"); +Q.setProperty("--brdrDrk","rgba( 0, 0, 0,"+N["--brdrDrk"]+")");Q.setProperty("--alphaDark",""+N["--alphaDark"]); +Q.setProperty("--gs-invert",""+N["--gs-invert"]);var c=N["--sh-clr"];Q.setProperty("--sh-clr","rgba("+(c>>16)+","+(c>>8&255)+","+(c&255)+", 0.45)"); +Q.setProperty("--sh-dy",""+N["--sh-dy"]+"px");if(10?-1:1,H.shiftKey)}; +Vh.prototype.bk=function(H,N){var Q=this.Ey,c=H*(Q==null||Q==0?1:.1);if(N)c*=10;var _=this.v()+c;if(!this.Gf)_=Math.min(this.uA,_); +this.Q(_);this.lN()};Vh.prototype.tRD=function(H){var N=Date.now()-this.qn;this.qn=Date.now();if(N>300)return; +var Q=(this.uA+this.oG)/2;if(this.oG<0&&this.uA>0)Q=0;else if(this.oG<1&&this.uA>1&&this.uA<10)Q=1;this.Q(Q); +this.lN()};Vh.prototype.tRO=function(H){z.ny(document,this.dw);z.nL(document,this.dI);this.Gj=z.qF(H,document.body).x; +this.GB=this.v()};Vh.prototype.tRK=function(H){var N=this.oG==this.uA,Q=z.qF(H,document.body).x,c=(Q-this.Gj)*(N?1:1/120*(this.uA-this.oG)),_=this.GB+c; +if(N)_=Math.round(_);if(!N){if(!0){_=Math.max(this.oG,_);if(_==this.oG){this.Gj=Q;this.GB=this.oG}}if(!this.Gf){_=Math.min(this.uA,_); +if(_==this.uA){this.Gj=Q;this.GB=this.uA}}}this.Q(_);this.lN()};Vh.prototype.tRY=function(H){z.vD(document,this.dw); +z.cQ(document,this.dI)};function Hq(H,N){JS.call(this);this.UT=[];this.Os=-1;this.tHr=H;if(N){this.lt=[{name:[5,4]}]; +this.TA=new rq(this.lt);this.TA.parent=this;this.TA.O("select",this.aQ,this)}this.J=z.B("div","imageset scrollable"); +this.J.addEventListener("contextmenu",z.qX,!1)}Hq.prototype=new JS;Hq.prototype.w=function(){if(this.TA)this.TA.w()}; +Hq.prototype.aQ=function(H){this.N(new k("del"))};Hq.prototype.mx=function(H,N,Q,c){this.UT=[];this.J.innerHTML=""; +for(var _=0;_>16&255,q:H>>8&255,H:H&255};this.zD()};VW.prototype.Q=function(H){this.Fa=$.e.NG(H); +this.zD()};VW.prototype.zD=function(){var H=this.Fa,N=H.T,Q=H.q,c=H.H;if(this.rw)N=Q=c=Math.round($.YK(N,Q,c)); +var _=N<<16|Q<<8|c;this.J.setAttribute("style","background-color:#"+$.fM(_))};function tn(H){JS.call(this); +this.J=z.B("span","fitem cswatch");this.dC=0;this.qb=[];this.$G=[];var N=this.ttU.bind(this);for(var Q=0; +Q0&&c.uL==null)c.uL=JSON.parse(JSON.stringify(B.Ks[Q-1]));if(this.qs)this.Q(this.$c,c,this.qs)}if(N==this.xD)this.sb.kI(N.v()); +this.N(new k(z.E.p,!1))};te.prototype.Fu=function(H){var N=this.rP.getBoundingClientRect(),Q=new k(z.E.Y,!0); +Q.data={X:z.m.Fe,AB:this.aC,x:N.left,y:N.top+N.height+4};this.N(Q);this.xD.Q(this.sb.zy())};te.prototype.Q=function(H,N,Q){this.qs=Q; +this.$c=H;var c=[[13,1,0],[13,0],[12,37],[12,62]],_=this.dT,O=this.dd,L=!1,C;for(var s=0;s<4;s++){var r={uV:s,uL:Q[s]},u=te.BH(r); +if(O[s]==u)continue;L=!0;var V=te.Bw(null,r,this.Sn,this.$c,22,22,!1);_[s]=""; +O[s]=u}if(L)this.rL.ea(_,c);this.rL.Q(N.uV);var u=te.BH(N);if(u!=this.dG)te.Bw(this._m,N,this.Sn,this.$c,30,23,!0); +this.dG=u;var T=N.uV;if(T==0){C=this.tHn}if(T==1){this.sb.Q(N.uL.Clr.v);C=this.lP}if(T==2){this.uE.update(H,N.uL); +C=this.EM}if(T==3){this.uo.update(H,N.uL);C=this.Eg}if(C!=this.xy){if(this.xy!=null){this.aC.J.removeChild(this.xy)}this.aC.J.appendChild(C); +this.xy=C}};te.prototype.v=function(){var H={uV:this.rL.v()};if(H.uV==1){H.uL=JSON.parse(JSON.stringify(B.Ks[0])); +H.uL.Clr.v=this.sb.v()}if(H.uV==2){H.uL=this.uE.v()}if(H.uV==3){H.uL=this.uo.v()}return H};te.BH=function(H){var N=H.uV,Q=H.uL,c="empty"; +if(N==1){c=$.e.NG(Q.Clr.v);c=c.T+","+c.q+","+c.H}if(N==2)c=JSON.stringify(Q.Grad.v);if(N==3)c=Q.Ptrn.v.Idnt.v; +return c};te.Bw=function(H,N,Q,c,_,O,L){if(H==null)H=te._m;var s=Math.floor(_*z.h()),r=Math.floor(O*z.h()),u=H.canvas,V; +u.width=s;u.height=r;z.gx(u,s,r);var C=N.uV;if(C==0){H.fillStyle="#ffffff";H.fillRect(0,0,s,r);H.strokeStyle="#ff0000"; +H.lineWidth=2;H.moveTo(0,0);H.lineTo(s,r);H.moveTo(0,r);H.lineTo(s,0);H.stroke()}if(C==1){var T=N.uL.Clr.v; +T=$.e.NG(T);H.fillStyle="#"+$.fM(T.T<<16|T.q<<8|T.H);H.fillRect(0,0,s,r)}if(C==2){l.Aa.uU(N.uL.Grad.v,s,r,0,Q.AF,Q.ze,u)}if(C==3){var e=N.uL.Ptrn.v,t; +if(c!=null)t=Ja.bE(e,c.add.Patt);if(t==null)t=Ja.bE(e,Q.wg);tl.uU(t,s,r,u)}if(L){H.beginPath();H.strokeStyle="#000000"; +H.fillStyle="#ffffff";H.lineWidth=2;var Y=s*.7,A=Math.floor(r*.7),G=7*z.h();H.moveTo(Y,A);H.lineTo(Y+G,A); +H.lineTo(Y+G/2,A+G/2);H.closePath();H.stroke();H.fill()}if(H==te._m)return u.toDataURL()};te._m=z.B("canvas").getContext("2d"); +function tl(H){Vu.call(this,H,!1,"patternbutton",18,10,JG.Sd)}tl.prototype=new Vu;tl.prototype.pS=function(H){var N=this.TM[this.ut.v()]; +this.M$={classID:"Ptrn",Nm:{t:"TEXT",v:N.name},Idnt:{t:"TEXT",v:N.id}};this.N(new k(z.E.p));this.fC()}; +tl.prototype._I=function(){if(!this.ia)return;var H=this.TM,N=Math.floor(34*z.h()),Q=Math.floor(34*z.h()),c=[],_=[]; +for(var O=0;O255||c<0||c>255)C=!1; +if(C&&O.indexOf(this.Ko)==-1)O.push(this.Ko);if(!C&&O.indexOf(this.Ko)!=-1&&O.length>2&&(!L||!r))O.splice(O.indexOf(this.Ko),1); +if(O[0].v.Hrzn.v==O[1].v.Hrzn.v)if(O[0].v.Hrzn.v==0)O[1].v.Hrzn.v=1;else O[0].v.Hrzn.v--;O.sort(function(j,d){return j.v.Hrzn.v-d.v.Hrzn.v})}else{Q=Math.max(0,Math.min(255,Q)); +c=Math.max(0,Math.min(255,c));var e=this.yd.x,t=Q,Y=this.yd.y,A=c;if(Q0)this.J.removeChild(this.Fr.pop().J);this.Ev=H;for(var Q=0; +Q"); +this.xG=new JQ("");this.xM=new JQ(""); +this.xg=new JQ("");this.xS=new JQ(""); +this.xE=new JQ("");this.xW=new JQ(""); +var H=[this.xC,this.xG,this.xM,this.xg,this.xS,this.xE,this.xW];for(var N=0;N");this.rW=new JQ(""); +this.rm=new JQ("");this.dM=new JQ(""); +this.dg=new JQ("");this.da=new JQ(""); +this.dS=new JQ("");this.px=[this.rT,this.rW,this.rm,this.dM,this.dg,this.da,this.dS]; +for(var N=0;N ");this.EZ=new ry(c[0],-20,20,"px"); +this.EZ.O(z.E.p,this.Py,this);this.EZ.parent=this;this.EU=new ry(c[1],-20,20,"px");this.EU.O(z.E.p,this.Py,this); +this.EU.parent=this;this.Em=new ry(c[2],-20,20,"px");this.Em.O(z.E.p,this.Py,this);this.Em.parent=this; +this.h$=new ry(c[3],-20,20,"px");this.h$.O(z.E.p,this.Py,this);this.h$.parent=this;this.ha=new ry(c[4],-20,20,"px"); +this.ha.O(z.E.p,this.Py,this);this.ha.parent=this;this.pv=new r_([12,33],["Abc ...","... \u0623\u064A \u0628\u064A"]); +this.pv.O(z.E.p,this.Py,this);this.pv.parent=this}$s.prototype=new JS;$s.prototype.w=function(){this.li.w(); +this.lm.w();this.fJ.w();this.jc.w();this.pc.w();this.pv.w()};$s.prototype.zc=function(H){this.iJ=JSON.parse(JSON.stringify(H.iJ)); +var N=this.iJ,Q=N.hj,c=N.re;this.xC.Q(Q.FauxItalic);this.xG.Q(Q.FontCaps==2);this.xM.Q(Q.FontCaps==1); +this.xS.Q(Q.FontBaseline==1);this.xg.Q(Q.FontBaseline==2);this.xE.Q(Q.Underline);this.xW.Q(Q.Strikethrough); +this.li.Q(Q.Font==null?null:N.vT[Q.Font].Name,H.LS,H.xq);var _=Q.FontSize==null?20:Q.FontSize;this.lm.Q(_); +this.jc.Q(Q.Tracking);if(Q.AutoLeading)this.fJ.Q("Auto");else this.fJ.Q(Q.Leading);this.EB.Q(Q.VerticalScale*100); +this.Ez.Q(Q.HorizontalScale*100);this.pc.Q(Q.BaselineShift);if(Q.FillColor){var O=X.NG(Q);this.jO.kI(Math.round(O.T)<<16|Math.round(O.q)<<8|Math.round(O.H))}else this.jO.kI(0); +var L=c._Direction?c._Direction:0,s=X.Io(c);for(var r=0;r>16&255)/255,(N>>8&255)/255,(N>>0&255)/255]}; +for(var c=0;c<4;c++)Q.Values[c]=Math.round(Q.Values[c]*1e3)/1e3;this.iJ.hj.FillColor=Q;this.Id()};function $n(){JS.call(this); +this.J=z.B("span","fontinput");this.FQ=null;this.rs=null;this.jk=null;this.pW=[];this.pi=[];this.po=""; +this.UT={};this.dW={};this.r_=!1;this.Kt=z.B("button","fitem");this.Kt.setAttribute("style","width:9em;"); +this.Kt.textContent="Family Name \u25BC";this.J.appendChild(this.Kt);this.Kt.addEventListener("mousedown",this.By.bind(this),!1); +this.pQ=new JS;this.pQ.J=z.B("div","floatcont");var H=z.B("div","flexrow");this.pQ.J.appendChild(H); +var N=z.B("div",""),Q=z.B("div","");H.appendChild(N);H.appendChild(Q);this.BX=[];for(var c=0;c0&&s[0].toLowerCase().indexOf(this.po)==-1)u=!1; +else if(this.pW[s[4]]==0)u=!1;else if(this.pf.Tv()&&!r)u=!1;else for(var V=0;V>>V&1)==0)u=!1; +var C=this.UT[O];if(C==null){var C=this.Bc(s,O,_,!0);this.UT[O]=C;this.xp.appendChild(C)}var T=u?"":"display:none; ",e="opacity: "+(r?"1":"0.2"); +if(H&&H[0]==O){T+="background-color:rgba(0,0,0,0.13);";Q=C}if(this.dW[O]!=T+e){C.setAttribute("style",T); +C.firstChild.setAttribute("style",e);this.dW[O]=T+e}}if(Q&&!this.r_)this.xp.scrollTop=Q.offsetTop-210; +this.r_=!1};$n.prototype.Bc=function(H,N,Q,c){var _=z.B("div","fontitem"),r="";_.addEventListener("click",Q,!1); +if(c)_.appendChild(z.B("button","star"));var O=z.B("span","label");O.setAttribute("title",N);O.textContent=N; +_.appendChild(O);var L=z.h(),s=1/L,u=rr.Ek*s,V=rr.jg*s;if(11){var r=s/Q;c*=r;_*=r}Q=s}if(this.pm.Tv()){if(H&&H.target==this.fQ)_=c*(N.y/N.x);else c=_*(N.x/N.y)}c=Math.max(Math.abs(c),1); +_=Math.max(Math.abs(_),1);this.ew=new E(Math.round(c),Math.round(_));this.hv=Q;this.cj();this.N(new k(z.E.p,!1))}; +$r.prototype.tru=function(H){this.pb.Q(H);this.cj()};$r.prototype.Q=function(H,N){this.TF=H.clone(); +this.ew=H.clone();this.twy=N;this.hv=N;this.cj()};$r.prototype.cj=function(){var H=this.ew.x,N=this.ew.y,Q=this.hv,c=(H/N).toFixed(3); +while(c.charAt(c.length-1)=="0")c=c.substring(0,c.length-1);if(c.charAt(c.length-1)==".")c=c.substring(0,c.length-1); +this.di.Q(" "+c+" : 1");if(this.hi.v()){H-=this.TF.x;N-=this.TF.y}var _=this.pb.v();if(_==1){H=100*H/this.TF.x; +N=100*N/this.TF.y}H=Math.round(H);N=Math.round(N);var O=[1,1,25.4/Q,1/Q][_];H*=O;N*=O;var L=_>2?2:0; +this.fQ.bU(L);this.ET.bU(L);this.fQ.Q(H);this.ET.Q(N);this.hh.Q(Q)};$r.prototype.v=function(){return this.ew.clone()}; +$r.prototype.zi=function(){return this.hv};function VT(){JS.call(this);this.Hg=0;this.twp=[0,0,1,1,100,100]; +this.J=z.B("span","fitem");this.hu=new J_(null,[[12,89,0],[12,89,1],[12,89,2]]);this.J.appendChild(this.hu.J); +this.hu.O(z.E.p,this.pw,this);this.fQ=new rd("W",null,3);this.fQ.Q(0);this.J.appendChild(this.fQ.J); +this.fQ.O(z.E.p,this.pw,this);this.ET=new rd("H",null,3);this.ET.Q(0);this.J.appendChild(this.ET.J); +this.ET.O(z.E.p,this.pw,this);this.Q({yC:0,x:0,y:0})}VT.prototype=new JS;VT.prototype.w=function(){this.fQ.$v(tg.get([12,41]).charAt(0)); +this.ET.$v(tg.get([12,42]).charAt(0));this.hu.w()};VT.prototype.pw=function(H){if(H.target==this.hu){var N=this.v(),Q=this.twp; +Q[this.Hg*2]=N.x;Q[this.Hg*2+1]=N.y;this.Hg=N.yC;this.Q({yC:N.yC,x:Q[N.yC*2],y:Q[N.yC*2+1]})}this.N(new k(z.E.p,!1))}; +VT.prototype.Q=function(H){this.hu.Q(H.yC);this.fQ.Q(H.x);this.ET.Q(H.y);if(H.yC==0){this.fQ.uI();this.ET.uI()}else{this.fQ.qQ(); +this.ET.qQ()}};VT.prototype.v=function(){return{yC:this.hu.v(),x:parseInt(this.fQ.v()),y:parseInt(this.ET.v())}}; +function $J(H,N){JS.call(this);this.Do=H;this.J=z.B("span","labelitem fitem"+(N?" spread":""));this.w()}$J.prototype=new JS; +$J.prototype.Q=function(H){this.J.textContent=H};$J.prototype.v=function(){return this.J.textContent}; +$J.prototype.qQ=function(){this.J.removeAttribute("disabled")};$J.prototype.uI=function(){this.J.setAttribute("disabled","")}; +$J.prototype.$v=function(H){this.J.textContent=H};$J.prototype.w=function(){var H=typeof this.Do=="string"?this.Do:tg.get(this.Do); +this.J.textContent=H};$J.prototype.BP=function(){return this.Do};function VY(H){JS.call(this);this.J=z.B("span",""); +this.dX=H;this.K$=new tc("Off X",-100,100,H?"%":"px",0,!1);this.Yt=new tc("Off Y",-100,100,H?"%":"px",0,!1); +this.K$.O(z.E.p,this.pw,this);this.Yt.O(z.E.p,this.pw,this);this.J.appendChild(this.K$.J);this.J.appendChild(this.Yt.J)}VY.prototype=new JS; +VY.prototype.w=function(){this.K$.w();this.Yt.w()};VY.prototype.pw=function(H){this.N(new k(z.E.p,!1))}; +VY.prototype.tHP=function(H){this.K$.Q(H.x);this.Yt.Q(H.y)};VY.prototype.tHv=function(){return new E(this.K$.v(),this.Yt.v())}; +VY.prototype.Q=function(H){var N=H.Hrzn.v,Q=H.Vrtc.v;if(this.dX){N=N.val;Q=Q.val}this.K$.Q(N);this.Yt.Q(Q)}; +VY.prototype.v=function(){var H=this.K$.v(),N=this.Yt.v();if(this.dX)return{classID:"Pnt",Hrzn:{t:"UntF",v:{type:"#Prc",val:H}},Vrtc:{t:"UntF",v:{type:"#Prc",val:N}}}; +else return{classID:"Pnt",Hrzn:{v:H,t:"doub"},Vrtc:{v:N,t:"doub"}}};function ry(H,N,Q,c,_,O,L){Vh.call(this,H,N,Q,c,_,!0,O); +z.wj(this.J,"rangedropinput");this.J.appendChild(this.TC);this.IT.setAttribute("style","width:3.3em"); +this.J.appendChild(this.IT);this.dQ=z.B("span","rangecont");this.dQ.appendChild(this.Nz);this.Hh=z.B("button"); +this.Hh.innerHTML="\u25BC";this.Hh.addEventListener("click",this.tHE.bind(this),!1);if(L!=!0)this.J.appendChild(this.Hh); +this.VV=new JS;this.VV.J=this.dQ}ry.prototype=new Vh;ry.prototype.tHE=function(H){var N=this.J.getBoundingClientRect(); +this.Nz.setAttribute("style","width:"+N.width+"px;");var Q=new k(z.E.Y,!0);Q.data={X:z.m.Fe,AB:this.VV,x:N.left,y:N.top+N.height}; +this.N(Q)};function HZ(){JS.call(this);this.J=z.B("span","fitem strokebutton");this.dO=[{strokeStyleLineDashSet:{t:"VlLs",v:[]}},{strokeStyleLineCapType:{t:"enum",v:{strokeStyleLineCapType:"strokeStyleButtCap"}},strokeStyleLineDashSet:{t:"VlLs",v:[{t:"UntF",v:{type:"#Nne",val:4}},{t:"UntF",v:{type:"#Nne",val:2}}]}},{strokeStyleLineCapType:{t:"enum",v:{strokeStyleLineCapType:"strokeStyleRoundCap"}},strokeStyleLineAlignment:{t:"enum",v:{strokeStyleLineAlignment:"strokeStyleAlignCenter"}},strokeStyleLineDashSet:{t:"VlLs",v:[{t:"UntF",v:{type:"#Nne",val:0}},{t:"UntF",v:{type:"#Nne",val:2}}]}}]; +this.Hp=null;this.hO=z.B("button");this.J.appendChild(this.hO);this.hO.addEventListener("click",this.Fu.bind(this),!1); +var H=z.B("canvas","gsicon");z.UZ(H,40,16);this._m=H.getContext("2d");this.hO.appendChild(H);var N=z.B("span"); +N.textContent=" \u25BC";this.hO.appendChild(N);this.aC=new JS;this.aC.J=z.B("div","floatcont form"); +this.aC.J.setAttribute("style","width: 12em;");this.aC.parent=this;this.UT=[new J_([12,40],[[19,5,2],[19,5,1],[19,5,0]]),new J_("Caps",["Butt","Round","Square"]),new J_("Corners",["Miter","Round","Bevel"]),new rd("Gaps")]; +for(var Q=0;Q",!1); +c.O("click",this.tHo,this);this.J.appendChild(c.J);this.Aj.push(c)}this.Aj[0].PT()}tk.prototype=new JS; +tk.prototype.v=function(){return this.hB[this.Hm]};tk.prototype.Q=function(H){this.Hm=this.hB.indexOf(H); +for(var N=0;N";var H=Math.floor(114*z.h()),N=Math.floor(23*z.h()); +z.gx(this.X.firstChild,H,N)};tj.prototype.v=function(){return this.WO[this.WT]};tj.prototype.Q=function(H){this.WT=this.WO.indexOf(H); +this.fC()};function Vx(H,N,Q){JS.call(this);if(H==null)H=!1;if(N==null)N=!1;if(Q==null)Q=!1;this.twN=N; +this.UB=null;this.Me=new tj("Style:",Q);this.Me.parent=this;this.Me.O(z.E.p,this.Id,this);this.VG=new J_("Orientation:",["Horizontal","Vertical"]); +this.VG.O(z.E.p,this.Id,this);var c=H?ry:Jb;this.$j=new c("Bend:",-100,100,"%");this.$N=new c("Horizontal Distortion:",-100,100,"%"); +this.Jf=new c("Vertical Distortion:",-100,100,"%");this.$j.parent=this.$N.parent=this.Jf.parent=this; +this.$j.O(z.E.p,this.Id,this);this.$N.O(z.E.p,this.Id,this);this.Jf.O(z.E.p,this.Id,this)}Vx.prototype=new JS; +Vx.prototype.w=function(){var H=this.twN?1:100;this.Me.$v(tg.get([12,22])+":");this.Me.w();this.VG.$v(tg.get([22,0])+":"); +this.VG.ea([tg.get([22,4,0]),tg.get([22,4,1])]);this.$j.$v(tg.get([22,1])+":");this.$N.$v(tg.get([22,2]).substring(0,H)+":"); +this.Jf.$v(tg.get([22,3]).substring(0,H)+":")};Vx.prototype.Id=function(){var H=this.UB,N=this.Me.v(),Q=H.warpStyle.v.warpStyle; +if(N=="warpCustom")$.UB.P$($.UB.cq(H),H);else delete H.customEnvelopeWarp;H.warpStyle.v.warpStyle=this.Me.v(); +H.warpRotate.v.Ornt=["Hrzn","Vrtc"][this.VG.v()];H.warpValue.v=this.$j.v();H.warpPerspective.v=this.$N.v(); +H.warpPerspectiveOther.v=this.Jf.v();if(N=="warpNone"||N=="warpCustom"){H.warpValue.v=0;H.warpPerspective.v=0; +H.warpPerspectiveOther.v=0}else if(Q=="warpNone"||Q=="warpCustom")H.warpValue.v=50;this.N(new k(z.E.p,!1)); +this.Q(H)};Vx.prototype.v=function(H){return JSON.parse(JSON.stringify(this.UB))};Vx.prototype.Q=function(H){this.UB=JSON.parse(JSON.stringify(H)); +this.Me.Q(H.warpStyle.v.warpStyle);this.VG.Q(H.warpRotate.v.Ornt=="Hrzn"?0:1);this.$j.Q(H.warpValue.v); +this.$N.Q(H.warpPerspective.v);this.Jf.Q(H.warpPerspectiveOther.v);var N=H.warpStyle.v.warpStyle,Q=N=="warpNone"||N=="warpCustom",c=[this.VG,this.$j,this.$N,this.Jf]; +for(var _=0;_=1)_={nn:c,rect:Q.MD}; +else _=$.Yp(c,Q.MD,H);this.wV.push(_)}};$$.prototype.yY=function(){clearTimeout(this.dn)};$$.prototype.Uz=function(){if(this.dU==null)return; +var H=this.dU[this.rj],N=this.wV[this.rj],Q=this.n,c,_;if(Q.s<=1){var O=N.rect.clone();O.x=Q.M.x+Math.floor((Q.C.$-N.rect.$)/2); +O.y=Q.M.y+Math.floor((Q.C.z-N.rect.z)/2);c=N.nn;_=O}else{var L=Q.Yr(),s=Q.Pi(),r=new p(0,0,L.$*Q.s,L.z*Q.s); +r.x=L.x*Q.s+s.x;r.y=L.y*Q.s+s.y;if(Q.wY==null||Q.wY.length!=L.f()*4){Q.wY=$.I(L.f()*4)}if(Q.Ot==null||Q.Ot.length!=r.f()*4){Q.Ot=$.I(r.f()*4)}$.Mw(Q.wY,0); +$.Pg(N.nn,N.rect,Q.wY,L);$.scale.ke(Q.wY,L.$,L.z,Q.Ot,r.$,r.z,Q.s);c=Q.Ot;_=r}var s=Q.Pi();$.by(this.MG.data,Q.C.$,Q.C.z,8,-s.x,-s.y); +$.a.MR("norm",c,_,this.MG.data,Q.C,Q.C,1);this._m.setTransform(1,0,0,1,0,0);this._m.putImageData(this.MG,0,0); +var u=this.ck;if(u){this._m.fillStyle="#00ff00";this._m.lineWidth=1;var V=this.dU[0].MD,C=Q.s*V.$/u.JX; +this._m.beginPath();this._m.strokeStyle="#ff6600";for(var T=0;T1){this.n.s=1;this.n.M.kR(0,0);this.Uz()}if(this.Hu&&this.Mx==this.lZ&&!this.WY)this.N(new k("mouseup"))}; +$$.prototype.cZ=function(){return this.n.kp(this.Md.x,this.Md.y)};function Vj(){JS.call(this);this.J=z.B("span","fitem"); +this.$$=!1;this.wy=new JQ("No",!1,"Cancel");this.Di=new JQ("Yes",!1,"Confirm");this.J.appendChild(this.wy.J); +this.J.appendChild(this.Di.J);this.wy.O("click",this.ki,this);this.Di.O("click",this.ki,this);this.w()}Vj.prototype=new JS; +Vj.prototype.w=function(){this.wy.$v(z.Ur("cross",null,"autoscale"));this.Di.$v(z.Ur("checkmark",null,"autoscale"))}; +Vj.prototype.ki=function(H){this.$$=H.target==this.Di;this.N(new UIEvent("click"))};Vj.prototype.v=function(){return this.$$}; +function JE(){JS.call(this);this.J=z.B("div")}JE.prototype=new JS;JE.prototype.fi=function(){return!1}; +JE.prototype.Tc=function(H,N){};JE.prototype.Q=function(H){};JE.prototype.yb=function(H){};JE.prototype.Id=function(H){this.N(new k(z.E.p))}; +JE.prototype.w=function(){};JE.prototype.qB=function(H,N){};JE.blnc=function(){JE.call(this);var H=this.J; +this.$$=null;this.si=new J_([12,12],[[19,6,0],[19,6,1],[19,6,2]]);this.si.O(z.E.p,this.k_,this);H.appendChild(this.si.J); +this.fY=[];for(var N=0;N<3;N++){var Q=new Jb(["Red","Green","Blue"][N],-100,100);Q.O(z.E.p,this.Id,this); +this.fY.push(Q);H.appendChild(Q.J)}this.gy=new JF("Preserve Luminosity");this.gy.O(z.E.p,this.Id,this); +H.appendChild(this.gy.J)};JE.blnc.prototype=new JE;JE.blnc.prototype.w=function(){this.si.w()};JE.blnc.prototype.Q=function(H){this.$$=JSON.parse(JSON.stringify(H)); +this.k_()};JE.blnc.prototype.v=function(H){var N=this.$$.fY[this.si.v()];for(var Q=0;Q<3;Q++)N[Q]=this.fY[Q].v(); +this.$$.If=this.gy.v();return JSON.parse(JSON.stringify(this.$$))};JE.blnc.prototype.k_=function(H){var N=this.$$.fY[this.si.v()]; +for(var Q=0;Q<3;Q++)this.fY[Q].Q(N[Q]);this.gy.Q(this.$$.If)};JE.brit=function(){JE.call(this);var H=this.J; +this.qT=new Jb([12,2],-150,150,"");this.qT.O(z.E.p,this.Id,this);H.appendChild(this.qT.J);this.qg=new Jb([12,3],-100,100,""); +this.qg.O(z.E.p,this.Id,this);H.appendChild(this.qg.J);this.Ma=new JF("Old Way");this.Ma.O(z.E.p,this.Id,this); +H.appendChild(this.Ma.J)};JE.brit.prototype=new JE;JE.brit.prototype.w=function(){this.qT.w();this.qg.w()}; +JE.brit.prototype.Q=function(H){this.qT.Q(H[0]);this.qg.Q(H[1]);this.Ma.Q(H[2])};JE.brit.prototype.v=function(H){return[this.qT.v(),this.qg.v(),this.Ma.v()]}; +JE.curv=function(){JE.call(this);this.value=null;var H=this.J;this.bx=new J_("...",["RGB","Red","Green","Blue"]); +this.bx.O(z.E.p,this.Uz,this);H.appendChild(this.bx.J);this.hu=new J_(null,["Spline","Sketch"]);this.hu.O(z.E.p,this.twq,this); +H.appendChild(this.hu.J);var N=new JQ("Reset");N.O("click",this.Bi,this);H.appendChild(N.J);this.uW=new tS; +this.uW.O(z.E.p,this.zz,this);H.appendChild(this.uW.J)};JE.curv.prototype=new JE;JE.curv.prototype.w=function(){this.bx.$v(tg.get([12,4])+": ")}; +JE.curv.prototype.Bi=function(H){var N=this.hu.v();this.value=[];if(N==0)for(var Q=0;Q<4;Q++){this.value.push([$.kv.oS(0,0,!0),$.kv.oS(255,255,!0)])}else for(var Q=0; +Q<4;Q++){var c=[];this.value.push(c);for(var _=0;_<256;_++)c.push(_)}this.Uz();this.Id()};JE.curv.prototype.twq=function(H){var N=this.value[0].length==256?1:0,Q=this.hu.v(); +if(N==Q)return;this.Bi()};JE.curv.prototype.zz=function(){this.value[this.bx.v()]=this.uW.v();this.Id()}; +JE.curv.prototype.Uz=function(){var H=this.value[0].length==256?1:0;this.hu.Q(H);this.uW.Q(this.value[this.bx.v()])}; +JE.curv.prototype.Q=function(H){this.value=H;this.Uz()};JE.curv.prototype.v=function(H){return this.value}; +JE.expA=function(){JE.call(this);var H=this.J;this.qv=new Jb([12,5],-20,20,null,3);this.qv.O(z.E.p,this.Id,this); +H.appendChild(this.qv.J);this.qp=new Jb([12,6],-.5,.5,null,3);this.qp.O(z.E.p,this.Id,this);H.appendChild(this.qp.J); +this.qN=new Jb([12,7],.01,6.99,null,3);this.qN.O(z.E.p,this.Id,this);H.appendChild(this.qN.J)};JE.expA.prototype=new JE; +JE.expA.prototype.w=function(){this.qv.w();this.qp.w();this.qN.w()};JE.expA.prototype.Q=function(H){this.qv.Q(H[0]); +this.qp.Q(H[1]);this.qN.Q(H[2])};JE.expA.prototype.v=function(H){return[this.qv.v(),this.qp.v(),this.qN.v()]}; +JE.grdm=function(){JE.call(this);var H=this.J;this.YA=new J$(!0,null,!0);H.appendChild(this.YA.J);this.YA.O(z.E.p,this.Id,this); +this.YA.parent=this;this.pT=new JF([12,23]);H.appendChild(this.pT.J);this.pT.O(z.E.p,this.Id,this)}; +JE.grdm.prototype=new JE;JE.grdm.prototype.qB=function(H,N){this.YA.zE(H.AF,H.ze);if(N==JG.nc||N==JG.wB)this.YA.aA(H.MS)}; +JE.grdm.prototype.w=function(){this.pT.w()};JE.grdm.prototype.Q=function(H){this.YA.Q(H[0]);this.pT.Q(H[1])}; +JE.grdm.prototype.v=function(H){return[this.YA.v(),this.pT.v()]};JE.selc=function(){JE.call(this);var H=this.J; +this.gP=[];this.gU=null;this.si=new J_("Colors","Reds,Yellows,Greens,Cyans,Blues,Magentas,Whites,Neutrals,Blacks".split(",")); +this.si.O(z.E.p,this.lN,this);H.appendChild(this.si.J);for(var N=0;N<4;N++){var Q=new Jb(["Cyan","Magenta","Yellow","Black"][N],-100,100,"%"); +Q.O(z.E.p,this.lN,this);this.gP.push(Q);H.appendChild(Q.J)}this.pP=new JF("Absolute");H.appendChild(this.pP.J); +this.pP.O(z.E.p,this.lN,this)};JE.selc.prototype=new JE;JE.selc.prototype.w=function(){this.si.w();this.pP.w(); +for(var H=0;H<4;H++)this.gP[H].w()};JE.selc.prototype.Q=function(H){this.gU=JSON.parse(JSON.stringify(H)); +this.k_()};JE.selc.prototype.v=function(H){return JSON.parse(JSON.stringify(this.gU))};JE.selc.prototype.lN=function(H){if(H.target!=this.si){var N=this.gU,Q=N.uF[this.si.v()+1]; +for(var c=0;c<4;c++)Q[c]=this.gP[c].v();N.ir=this.pP.v()}this.k_();this.Id()};JE.selc.prototype.k_=function(){var H=this.gU,N=H.uF[this.si.v()+1]; +for(var Q=0;Q<4;Q++)this.gP[Q].Q(N[Q]);this.pP.Q(H.ir)};JE.blwh=function(){JE.call(this);var H=this.J; +this.Mp=new JF([12,11]);this.Mp.O(z.E.p,this.Id,this);H.appendChild(this.Mp.J);this.nx=new VW;this.nx.parent=this; +this.nx.O(z.E.p,this.Id,this);H.appendChild(this.nx.J);this.wC=[];var N="Red Yellow Green Cyan Blue Magenta".split(" "); +for(var Q=0;Q<6;Q++){var c=new Jb(N[Q]+"s",-200,300);c.O(z.E.p,this.Id,this);this.wC.push(c);H.appendChild(c.J)}}; +JE.blwh.prototype=new JE;JE.blwh.prototype.Q=function(H){for(var N=0;N<6;N++)this.wC[N].Q(H[N]);this.Mp.Q(H[6]); +this.nx.Q(H[7])};JE.blwh.prototype.v=function(){var H=[];for(var N=0;N<6;N++)H.push(this.wC[N].v()); +H.push(this.Mp.v());H.push(this.nx.v());return H};JE.hue2=function(){JE.call(this);this.value=null;var H=this.J; +this.si=new J_([12,12],"Master Red Yellow Green Cyan Blue Magenta".split(" "));this.si.O(z.E.p,this.Uz,this); +H.appendChild(this.si.J);this.PW=new Jb([12,8],-180,180);this.PW.O(z.E.p,this.zF,this);H.appendChild(this.PW.J); +this.GY=new Jb([12,9],-100,100);this.GY.O(z.E.p,this.zF,this);H.appendChild(this.GY.J);this.pd=new Jb([12,10],-100,100); +this.pd.O(z.E.p,this.zF,this);H.appendChild(this.pd.J);this.pE=new JF([12,11]);this.pE.O(z.E.p,this.twK,this); +H.appendChild(this.pE.J);this.dj=new $J("...",!0);H.appendChild(this.dj.J)};JE.hue2.prototype=new JE; +JE.hue2.prototype.w=function(){this.PW.w();this.GY.w();this.pd.w();this.pE.w();this.si.w()};JE.hue2.prototype.twK=function(H){this.value.bc=this.pE.v(); +this.Uz();this.Id()};JE.hue2.prototype.zF=function(H){var N=this.BQ();N[0]=this.PW.v();var Q=this.GY.v(); +N[1]=this.value.bc?Math.max(0,Q):Q;N[2]=this.pd.v();this.Uz();this.Id()};JE.hue2.prototype.BQ=function(){var H=this.value; +if(H.bc)return H.qq;var N=this.si.v();return N==0?H.ry:H.gV[N-1].fY};JE.hue2.prototype.Uz=function(){var H=this.value,Q=""; +this.pE.Q(H.bc);if(H.bc)this.si.uI();else this.si.qQ();var N=this.BQ();this.PW.Q(N[0]);this.GY.Q(N[1]); +this.pd.Q(N[2]);if(!H.bc){Q+="Apply to hue interval: ";var c=this.si.v();if(c==0)Q+="full";else{var _=H.gV[c-1].gX; +Q+=_}}this.dj.Q(Q)};JE.hue2.prototype.Q=function(H){this.value=JSON.parse(JSON.stringify(H));this.Uz()}; +JE.hue2.prototype.v=function(H){return JSON.parse(JSON.stringify(this.value))};JE.levl=function(){JE.call(this); +this.value=null;this.tV=null;this.XW=[new E(0,0),new E(0,0),new E(0,0),new E(0,0),new E(0,0)];this.xV=-1; +this.t_=this.Ll.bind(this);this.Vt=this.uZ.bind(this);var H=this.J;this.bx=new J_("Channel: ",["RGB","Red","Green","Blue"]); +this.bx.O(z.E.p,this.Uz,this);H.appendChild(this.bx.J);var N=new JQ("Reset");N.O("click",this.twY,this); +H.appendChild(N.J);var Q=z.B("div","");H.appendChild(Q);var c=z.B("div","");H.appendChild(c);this.rP=z.B("canvas"); +Q.appendChild(this.rP);this._m=this.rP.getContext("2d");this.iy=new E(256,120);this.rP.setAttribute("style","display:block"); +z.UZ(this.rP,this.iy.x,this.iy.y,this._m);z.FW(this.rP);z.oA(this.rP,this.uB.bind(this));this.nM=z.B("canvas",""); +c.appendChild(this.nM);this.Mh=this.nM.getContext("2d");this.MQ=new E(this.iy.x,40);this.nM.setAttribute("style","display:block"); +z.UZ(this.nM,this.MQ.x,this.MQ.y,this.Mh);z.FW(this.nM);z.oA(this.nM,this.twB.bind(this));var _=this.dK=[]; +for(var O=0;O<5;O++){var L=new rd(null,null,3);_.push(L);L.O(z.E.p,this.twb,this);(O<2||O==4?Q:c).appendChild(L.J)}Q.appendChild(_[1].J); +_[4].J.setAttribute("style","margin: 0 4.7em");_[3].J.setAttribute("style","margin:0 0 0 13em")};JE.levl.prototype=new JE; +JE.levl.prototype.w=function(){this.bx.$v(tg.get([12,4])+": ")};JE.levl.prototype.twY=function(H){var N=this.tV; +this.Q([[0,255,0,255,100],[0,255,0,255,100],[0,255,0,255,100],[0,255,0,255,100]]);this.yb(N);this.Id()}; +JE.levl.prototype.twb=function(H){var N=this.value[this.bx.v()];for(var Q=0;Q<4;Q++){var c=255,_=1;if(Q==4){c=999; +_=100}N[Q]=Math.max(0,Math.min(c,parseInt(this.dK[Q].v())*_))}this.Uz();this.Id()};JE.levl.prototype.Uz=function(H){var N=this.value[this.bx.v()]; +for(var Q=0;Q<5;Q++)this.dK[Q].Q(N[Q]/(Q==4?100:1));var c=this.iy.x,_=this.iy.y,O=this._m;O.clearRect(0,0,c,_); +O.fillStyle="#cccccc";O.fillRect(8,8,c-16,_-16-8);if(this.tV){var L=this.tV[this.bx.v()],s=0;for(var Q=0; +Q0)this.AZ--; +this.ck.map=Q[this.AZ].slice(0);this.k_(null)}else this.view.FJ(H)};JD.LqFy.prototype.twZ=function(H){if(H.data.X==z.m.mG){this.c=H.data.c; +this.My.VL(this.c)}};JD.LqFy.prototype.twA=function(H){var N=H.currentTarget,Q=this.Dw.indexOf(N),c=this.iM.Brsh.v; +if(Q==0){c.Dmtr.v.val=N.v();this.Hf()}if(Q>2)this.k_(null)};JD.LqFy.prototype.c_=function(){var H=this.BK; +this.AZ++;H[this.AZ]=this.ck.map.slice(0);while(H.length>this.AZ+1)H.pop();while(H.length>50){H=H.slice(1); +this.AZ--}};JD.LqFy.prototype.nZ=function(H){this.ye();this.Lk=this.view.cZ();this.tIp=new E(0,0);this.O(z.E.Gn,this.LR,this)}; +JD.LqFy.prototype.fI=function(H){var N=this.view.cZ(),Q=new E(N.x-this.Lk.x,N.y-this.Lk.y);if(this.c==0||this.c==6)this.BY(Q); +this.Lk=N};JD.LqFy.prototype.Ub=function(H){this.c_();this.ye()};JD.LqFy.prototype.ye=function(){if(this.tHp(z.E.Gn,this.LR))this.removeEventListener(z.E.Gn,this.LR,this)}; +JD.LqFy.prototype.LR=function(H){if(this.c!=0&&this.c!=6)this.BY(new E(0,0))};JD.LqFy.prototype.BY=function(H){var N=this.ck,Q=N.JX/this.EK.$,c=this.Lk,_=this.iM.Brsh.v,O=_.Dmtr.v.val,L=Date.now(),s=N.JX,r=N.ht,u=Math.sqrt(H.x*H.x+H.y*H.y),V=Math.max(1,Math.ceil(u/2)),C=H.x/V,T=H.y/V,e=c.clone(),t=this.c,Y=this.Dw[1].v()/100,A=this.Dw[2].v()/100,G=[.005,.015,0,0,.2,.2,.01,.01,.05,.35,.1,.1,.005,.015],j=G[t*2],d=G[t*2+1],w=(1-Y)*j+Y*d,f=O*Q/2; +for(var b=0;b450){c.style.marginLeft="1em"; +this.lT.removeChild(Q);this.view.Tc(H-238-45,N)}else{c.style.marginLeft="";this.lT.removeChild(c);this.view.Tc(H-40,N)}}; +JD.LqFy.prototype.w=function(){this.My.w();for(var H=0;H"+H+""; +this.Mt.appendChild(this.wo);var N=PIMG.__cross==null?"filter:invert(1);":"";this.wo.setAttribute("style","background-image:url("+PIMG.cross+");"+N)}; +Jp.prototype.cL=function(H,N,Q,c,_){};Jp.prototype.XY=function(H,N,Q,c,_){};Jp.prototype.Nu=function(H,N,Q,c,_){}; +Jp.prototype.OH=function(H,N,Q,c,_){};Jp.prototype.FJ=function(H,N,Q,c){};Jp.prototype.jV=function(H){return!1}; +Jp.prototype.mv=function(H,N){return!0};Jp.prototype.aK=function(H,N,Q){};Jp.prototype.qB=function(H,N){}; +Jp.prototype.fi=function(){return!1};Jp.prototype._S=function(H,N){return H<450||N<450?new E(0,0):new E(150,150)}; +Jp.prototype.Tc=function(){};Jp.prototype.close=function(){this.N(new k(z.E.pH))};Jp.prototype.tIv=function(H){this.wW=z.qF(H,this.J); +z.ny(window,this.dA);z.nL(window,this.GV)};Jp.prototype.tIh=function(H){var N=this.J.parentNode,Q=z.qF(H,N); +this.J.style.left=Math.round(Q.x-this.wW.x)+"px";this.J.style.top=N.offsetTop+Math.max(0,Math.min(window.innerHeight-36,Math.round(Q.y-this.wW.y)))+"px"}; +Jp.prototype.ty$=function(H){z.vD(window,this.dA);z.cQ(window,this.GV)};Jp.prototype.BB=function(H){this.N(new k("closebtn")); +this.close()};function tr(){Jp.call(this,[0,13,0],"account");this.AA=z.B("div","form padded scrollable"); +this.AA.setAttribute("style","max-width:42em; max-height:33em;");this.body.appendChild(this.AA);this.ii=[new tr.vS,new tr.xj]; +for(var H=0;HFreePremium \t\t\t\t PSD import and export\u2713\u2713 \t\t\t\t Advanced editing tools\u2713\u2713 \t\t\t\t No Ads \u2713 \t\t\t\t Helping us improve PP \u2713 \t\t\t\t\t\t\t\t\t"; +H.appendChild(Q);var _=[9,20,30,80,100,240,40,80,100,200,200,400];this.Mg=[];for(var O=0;O<_.length; +O++)this.Mg.push(new JQ("Buy: $"+_[O],!1,null,!0));for(var O=0;O60){alert("Too long email address"); +return}if(c.length>600){alert("Too many team members");return}c=c.split(",").join(" ").trim();c=c.replace(/\s+/g," "); +if(c=="")c=[];else c=c.split(" ");var _=JX.jf();if(_==null)_={};if(_.acc==null)_.acc={};_.acc.team={jin:N,ldr:Q,mmb:c}; +JX.hn(_,this.ZD.bind(this));alert("Saved!");this.aK()};tr.vS.prototype.tyv=function(H){var N=this.gQ.v().trim(); +if(N.length==0){alert("Domain is empty.");return}if(!JX.TQ()){alert("You have to log in first.");return}if(JX.PS().distrib=="0"){alert("Order a distributor account first."); +return}var Q=JX.jf();if(Q==null)Q={};if(Q.acc==null)Q.acc={};Q.acc.dname=N;JX.hn(Q,this.ZD.bind(this)); +alert("Saved!");this.aK()};tr.vS.prototype.aK=function(){if(JX.TQ()){var H=JX.PS();if(H==null)return; +this.wQ.innerHTML=""+H.name+" "+H.email+"
"}else this.wQ.innerHTML="Logging In is free. Your environment settings will be synchronized across all devices.
"; +var N=JX.TQ()&&H.premium*1e3>Date.now();this.Mk.J.style.display=N?"block":"none";if(N){var Q=parseInt(H.premium)-Date.now()/1e3,c=parseInt(H.ptype),_; +if(c==-1)_="member of a team";else if(c==1)_="Single user";else _="Team of "+c;this.Mk.$v("Premium active for "+Math.round(Q/(60*60*24))+" more days! ("+_+")")}var O=JX.TQ()&&H.distrib*1e3>Date.now(); +this.gv.J.style.display=O?"block":"none";if(O){var Q=parseInt(H.distrib)-Date.now()/1e3,c=parseInt(H.ptype); +this.gv.$v("Distributor active for "+Math.round(Q/(60*60*24))+" more days! ("+c+" visitos)")}var L=JX.jf(); +if(L&&L.acc&&L.acc.team){var s=L.acc.team;this.Hi.Q(s.jin);this.iL.Q(!s.jin);this.gd.Q(s.ldr);this._L.value=s.mmb.join(", ")}else{this.Hi.Q(!0); +this.iL.Q(!1);this.gd.Q("");this._L.value=""}if(L&&L.acc&&L.acc.dname)this.gQ.Q(L.acc.dname);else this.gQ.Q("")}; +tr.vS.prototype.BN=function(H){var N=z.B("table","");N.innerHTML="\t\t\t\t\t\t\t\t\t\t\t\t\t
30 days90 days
\t\t\t"; +for(var Q=0;Q";_=z.B("td");c.appendChild(_);_.appendChild(H[Q+1].J);_=z.B("td");c.appendChild(_); +_.appendChild(H[Q+2].J)}return N};tr.vS.prototype.tyE=function(H){var N=this.Mg.indexOf(H.currentTarget); +if(!JX.TQ()){alert("You must log in before buying Premium");return}if(this.xw.v()==!1&&N<6){alert("You must accept Terms of Service"); +return}var Q=(N&1)==0?30:90,c=[1,5,20,1e3,5e3,2e4][Math.floor(N/2)],_=JX.TQ()&&JX.PS().premium*1e3>Date.now(); +if(_&&c<1e3){alert("You already have premium.");return}JX.order(Q,c,this.ZD.bind(this));this.Zc()};tr.vS.prototype.ZD=function(H){if(JX.TQ()&&JX.PS().msg)alert(JX.PS().msg); +this.aK();this.Zc()};tr.vS.prototype.hg=function(H){if(JX.TQ()){JX.tRn();this.Zc();this.aK(null,null,null)}else JX.hg(this.tyf.bind(this))}; +tr.vS.prototype.tyf=function(){var H=new k(z.E.Y,!0);H.data={X:z.m.tIk};this.N(H)};tr.vS.prototype.Zc=function(){var H=new k(z.E.Y,!0); +H.data={X:z.m.bX};this.N(H)};tr.xj=function(){JS.call(this);this.J=z.B("div");var H=this.J,N=this.tIF=new JQ([0,13,2],!1,null,!0); +N.O("click",this.tyZ,this);H.appendChild(N.J);var Q=z.B("div","");Q.innerHTML=tr.xj.tys;H.appendChild(Q)}; +tr.xj.prototype=new JS;tr.xj.prototype.tyZ=function(H){var N=new k("showpage",!0);N.data={U_:0};this.N(N)}; +tr.xj.prototype.w=function(){this.tIF.w()};tr.xj.tys="\t\t

Terms of Service

\t\t\t\t

What are these Terms?

\t\t

\t\tThese terms form a binding contract between you and us (\"these Terms\") regarding your access to and use of any of our web sites, \t\tweb applications, services, products and Software that contain a link to these Terms (individually and collectively, the \"Service\"). \t\t

\t\t\t\t

Changes to the Service or these Terms

\t\t

\t\tWe may make changes to, update (or not update) or discontinue any part, element, functionality, availability or offering of the Service.\t\tWe may also make changes or updates to these Terms at any time and for any reason in our sole discretion, including complying with applicable law. \t\tIf we make any material changes to these Terms, we\u2019ll provide notice to you in any way we deem reasonable including, for example, \t\tby posting a notice of the change on our web site(s) or in-service, or by sending a notice to your email address if you\u2019ve given it to us.\t\t

\t\t\t\t

Your content

\t\t

\t\tThese Terms don\u2019t grant us (and we don\u2019t claim) any ownership rights in Your Content.\t\t

\t\t

\t\tPosting Your Content. By sharing, publishing (e.g. through Imgur), distributing or allowing others to \t\taccess Your Content through the Service You are solely responsible for the consequences of doing so and you acknowledge \t\tand agree that Your Content may be viewed worldwide. If you choose to make your personal information publicly available through the Service, \t\tyou do so at your own risk. You warrant that you have obtained all necessary licenses, \t\trights and permissions to use and grant all of the rights granted in these Terms\t\tto Your Content and that you will comply with any requirements or restrictions imposed by them.\t\t

\t\t\t\t\t\t

Registering for the Service

\t\t

\t\tYou may be required or permitted to register with us to access the Service or certain areas of the Service.\t\tYou agree to immediately notify us of any unauthorized use of your registration information (including all purchases). \t\tYou may also be able to sign into the Service by using a third-party social networking platform account \t\t(such as Facebook, Google+ or Twitter). Your registration information (including your user name and password, \t\tand any social networking account with which you sign into the Service) is for your personal use only, and not for use by any other person. \t\tYou are responsible for maintaining the confidentiality of any password you may use to access the Service, and agree not to transfer your password or user name\t\tto any third party. You are fully responsible for all use of your registration information, \t\tand to ensure that you \"log out\"/exit from your account with the Service (if applicable) \t\tat the end of each session. We are not liable for any loss or damage arising from your failure to comply with any of the foregoing obligations. \t\t

\t\t\t\t

Privacy Policy

\t\t\t\t

\t\tBy voluntarily providing us with Personal Data, you are consenting to our use of it in accordance with this Privacy Policy. \t\tIf you provide Personal Data to the Service, you acknowledge and agree that such Personal Data may be transferred from your current location to our servers.\t\t

\t\t

Computer information collected:

\t\t\t\t
    \t\t\t\t
  • Third party tracking tools. We use third party tracking tools to improve the performance and features of the Service (e.g. Google Analytics).\t\t\t\tSuch tools are created and managed by parties outside our control. As such, we are not responsible for what information is actually captured by such third parties \t\t\t\tor how such third parties use and protect that information.
  • \t\t\t\t\t\t\t\t
  • Name and email for the authorization. You may use third-party services (such as Facebook or Google) to log into the Service. \t\t\t\tIn such case, we store your name and email address, that were provided to us by third-party services.
  • \t\t\t\t\t\t\t\t
  • Environment settings. When you use the Service, environment settings (e.g. current language, current color theme) \t\t\t\tare stored at your computer in \"localData\".\t\t\t\tIt helps us provide you the same environment when you visit the Service next time.
    \t\t\t\tWhen you log into the Service, your environemnt settings are stored at our server. \t\t\t\t
  • \t\t\t\t\t\t\t\t
  • Payer information. When you make an order inside the Service and you pay through a third-party service (e.g. PayPal), \t\t\t\twe may store the information about the payer, that we may receive from the third-party service \t\t\t\t(it usually contains the name, the email address and the physical address of the payer, but no card nambers or passwords).
  • \t\t
\t\t\t\t"; +function tB(H){Jp.call(this,JO.names[H],"adjust_"+H);this.qd=H;this.wZ=null;this.AA=z.B("div","form"); +this.AA.setAttribute("style","width:24em");this.body.appendChild(this.AA);this.uW=new JE[H];this.uW.O(z.E.p,this.Id,this); +this.AA.appendChild(this.uW.J);this.uW.parent=this;this.Di=new JQ("OK",!0,null,!0);this.Di.O("click",this.wS,this); +this.AA.appendChild(this.Di.J);this.O("closebtn",this.eA,this)}tB.prototype=new Jp;tB.prototype.ZQ=function(){return!0}; +tB.prototype.mv=function(H,N){return H!=null};tB.prototype.w=function(){Jp.prototype.w.call(this);if(this.uW)this.uW.w()}; +tB.prototype.Id=function(H){this.oe({X:"edit",Dq:this.uW.v()})};tB.prototype.eA=function(H){this.oe({X:"cancel"})}; +tB.prototype.wS=function(H){this.wZ=this.uW.v();this.oe({X:"confirm"});this.close()};tB.prototype.aK=function(H,N,Q,c){if(c.l(K.kz)&&this.wZ)this.uW.Q(this.wZ); +else{var _={};JO.jw(this.qd,_);var O=JO.cV(_);this.uW.Q(O)}var L=JL.sU.getData(H),s=$.Yk(L[0].gk);this.uW.yb(s); +this.Id(null)};tB.prototype.qB=function(H,N){this.uW.qB(H,N)};tB.prototype.oe=function(H){var N=new k(z.E.W,!0); +H.qd=this.qd;N.data=H;N.c=l.nP;N.MI=!0;this.N(N)};function re(){Jp.call(this,[11,0],"camera");this.data=null; +this.wA=new E(1,1);this.AA=z.B("div","form hbar");this.body.appendChild(this.AA);this.tcH=new J_(null,[]); +this.zd=new r_([21,0],[[21,2],[21,1]]);this.AA.appendChild(this.zd.J);this.wk=new JQ([11,0],!1,null,!0); +this.wk.O("click",this.tDt,this);this.AA.appendChild(this.wk.J);this.xs=new $J("");this.AA.appendChild(this.xs.J); +this.stream=null;this.aV=z.B("video","");this.aV.setAttribute("autoplay","true");this.body.appendChild(this.aV); +this.gH=this.tDQ.bind(this);this.vU=this.tDZ.bind(this);this.tIs=this.Bu.bind(this);this.O("closebtn",this.tDk,this)}re.prototype=new Jp; +re.prototype.w=function(){Jp.prototype.w.call(this);this.zd.w();this.wk.w();this.Bu()};re.prototype.cn=function(){var H=this.aV.videoWidth,N=this.aV.videoHeight,Q=z.B("canvas",""); +Q.width=H;Q.height=N;var c=Q.getContext("2d");c.drawImage(this.aV,0,0,H,N);var _=c.getImageData(0,0,H,N); +return{MD:new p(0,0,H,N),data:_.data.buffer}};re.prototype.tDt=function(H){if(this.zd.v()==0)this.tDp(); +else this.tDL()};re.prototype.tDL=function(){var H=this.cn(),N={buffer:new Uint8Array(H.data),rect:H.MD},Q=new k(z.E.W,!0); +Q.MI=!0;Q.c=l.uh;Q.data={X:R.rh,lD:N};this.N(Q);alert(tg.get([21,4]))};re.prototype.tDp=function(){var H=this.cn(),N=tM.Uc("camera",[H]),Q=new k(z.E.Y,!0); +Q.data={X:z.m.pL,Ti:N};this.N(Q);alert(tg.get([21,5]))};re.prototype.aK=function(H,N,Q){var c={video:{width:{ideal:6e3},height:{ideal:6e3}}}; +if(navigator.mediaDevices.getUserMedia)navigator.mediaDevices.getUserMedia(c).then(this.gH).catch(this.vU); +else navigator.webkitGetUserMedia(c,this.gH,this.vU)};re.prototype.tDQ=function(H){this.stream=H;this.aV.srcObject=H; +this.aV.addEventListener("loadedmetadata",this.tIs,!1)};re.prototype.Bu=function(H){var N=this.aV.videoWidth,Q=this.aV.videoHeight; +this.xs.Q(tg.get([21,3])+": "+N+" x "+Q+" px");this.wA.kR(N,Q);this.Tc(this.JX,this.ht)};re.prototype._S=function(H,N){return Math.min(H,N)<500?new E(0,0):new E(100,100)}; +re.prototype.Tc=function(H,N){this.JX=H;this.ht=N;var Q=H-28,c=N-28-38,_=this.wA.x/this.wA.y;if(Q/c>_)Q=c*_; +else c=Q/_;this.aV.setAttribute("style","display: block; width: "+Math.round(Q)+"px; height:"+Math.round(c)+"px;")}; +re.prototype.tDZ=function(H){console.log("error",H);alert(tg.get([21,6]));this.close()};re.prototype.tDk=function(H){if(this.stream!=null){this.stream.getTracks()[0].stop(); +this.aV.src="";this.stream=null}};function ts(){Jp.call(this,[7,8],"crange");this.Ho=null;this.wF=0; +this.w_=0;this.hF=null;this.AA=z.B("div","form");this.AA.setAttribute("style","width:18em");this.body.appendChild(this.AA); +this.gn=new Jb("Fuzziness",0,200);this.gn.Q(40);this.gn.O(z.E.p,this.k_,this);this.AA.appendChild(this.gn.J); +this.ql=z.B("canvas");this.AA.appendChild(this.ql);this.gO=new JQ("OK",!0,null,!0);this.gO.O("click",this.create,this); +this.body.appendChild(this.gO.J)}ts.prototype=new Jp;ts.prototype.mv=function(H,N){return H!=null};ts.prototype.Zy=function(){return!0}; +ts.prototype.cL=function(H,N,Q,c,_){var O=H.n.kp(_.x,_.y);this.wF=Math.max(0,Math.min(H.$-1,Math.floor(O.x))); +this.w_=Math.max(0,Math.min(H.z-1,Math.floor(O.y)));this.k_()};ts.prototype.w=function(){Jp.prototype.w.call(this)}; +ts.prototype.create=function(H){var N=new k(z.E.W,!0);N.c=l.sQ;N.data={X:"setsel",_F:[7,8],t:{rect:new p(0,0,this.Ho.$,this.Ho.z),channel:this.hF}}; +N.MI=!0;this.N(N);this.close()};ts.prototype.aK=function(H,N){this.Ho=H;this.wF=0;this.w_=0;this.k_()}; +ts.prototype.k_=function(){var H=this.Ho,N=this.wF,Q=this.w_,c=this.ql,_=c.getContext("2d"),O=Math.floor(230*z.h()),L=Math.floor(O*(H.z/H.$)); +c.width=O;c.height=L;z.gx(c,O,L);var s=new p(0,0,H.$,H.z),r=H.$*H.z,u=H.cn(),V=this.hF=$.I(r),C=(Q*H.$+N)*4,T=1/255,e=u[C]*T,t=u[C+1]*T,Y=u[C+2]*T,A=$.pI(e,t,Y),G=this.gn.v()/200,j=1/G,d=1/Math.sqrt(3); +for(var w=0;w>8&255,O=Q>>16&255;this.oE={T:O/255,q:_/255,H:c/255}; +this.update()};tV.prototype.tDm=function(H){var N=this.I$,Q=this._o(parseInt(N[0].v())),c=this._o(parseInt(N[1].v())),_=this._o(parseInt(N[2].v())); +this.oE={T:Q/255,q:c/255,H:_/255};this.update()};tV.prototype.tcR=function(H){var N=this.IJ,Q=this.Lt(parseInt(N[0].v())/360),c=this.Lt(parseInt(N[1].v())/100),_=this.Lt(parseInt(N[2].v())/100); +this.oE=$.pq(Q,c,_);this.ZV.y=(1-Q)*255;this.update()};tV.prototype.ZC=function(H){var N;if(H.currentTarget==this.iQ)N=this.iQ.v(); +else{N=H.currentTarget==this.ET?this.ET.v():this.iW.value;if(N.charAt(0)=="#")N=N.slice(1);if(N.length==3)N=N[0]+N[0]+N[1]+N[1]+N[2]+N[2]; +N=$.ttO(N)}this.oE={T:(N>>16&255)/255,q:(N>>8&255)/255,H:(N&255)/255};this.update()};tV.prototype.tct=function(H){z.ny(window,this.tQ); +z.nL(window,this.tO);this.zt(H)};tV.prototype.tcx=function(H){z.vD(window,this.tQ);z.cQ(window,this.tO)}; +tV.prototype.zt=function(H){var N=z.qF(H,this.rP);N.x=N.x*(256/parseFloat(this.rP.style.width));this.MH.kR(this._o(N.x),this._o(N.y)); +this.oE=this.z$();this.update()};tV.prototype.z$=function(){var H=$.pq((255-this._o(this.ZV.y))/255,this.Lt(this.MH.x/255),this.Lt(1-this.MH.y/255)); +return{T:H.T,q:H.q,H:H.H}};tV.prototype.tcO=function(H){z.ny(window,this.WV);z.nL(window,this.WP);this.zr(H)}; +tV.prototype.tcY=function(H){z.vD(window,this.WV);z.cQ(window,this.WP)};tV.prototype.zr=function(H){var N=z.qF(H,this.nM); +this.ZV.kR(this._o(N.x),this._o(N.y));this.oE=this.z$();this.update()};tV.prototype.DD=function(H){var N=H.T,Q=H.q,c=H.H; +return Math.round(N*255)<<16|Math.round(Q*255)<<8|Math.round(c*255)};tV.prototype._O=function(H){this.zH(); +var N=this.DD(this.oE);this.iQ.Q(N);this.aj(N);this.close()};tV.prototype.eA=function(H){this.zH();if(this.ZR)this.aj(this.DD(this.iT))}; +tV.prototype.zH=function(H){var N=new k(z.E.Y,!0);N.data={X:z.m.bS};this.N(N)};tV.prototype.aK=function(H,N){var Q=new k(z.E.Y,!0); +Q.data={X:z.m.gM,Ut:"crosshair",push:!0};this.N(Q);this.gl=!1;this.aj=N.rI;this.ZR=!1;this.Ga=N.rc;var c=N.nx; +this.oE={T:(c>>16&255)/255,q:(c>>8&255)/255,H:(c>>0&255)/255};this.iT=JSON.parse(JSON.stringify(this.oE)); +this.WG.setAttribute("style","height:3em;background-color:#"+$.fM(c)+";");this.update()};tV.prototype.update=function(){var H=this.oE,N=this.DD(H),Q=this.I$; +Q[0].Q(Math.round(H.T*255));Q[1].Q(Math.round(H.q*255));Q[2].Q(Math.round(H.H*255));this.ET.Q($.fM(N)); +this.iW.value="#"+$.fM(N);this.Wd.setAttribute("style","height:3em;background-color:#"+$.fM(N)+";"); +var c=$.sM(H.T,H.q,H.H);if(c.Dq==0)c._u=this.MH.x/255;if(c._u==0||c.Dq==0)c.ht=(255-this._o(this.ZV.y))/255; +Q=this.IJ;Q[0].Q(Math.round(c.ht*360));Q[1].Q(Math.round(c._u*100));Q[2].Q(Math.round(c.Dq*100));if(c.Dq!=0)this.MH.x=c._u*255; +this.MH.y=(1-c.Dq)*255;this.ZV.y=(1-c.ht)*255;var _=this._m.getImageData(0,0,256,256);this.tcB(_.data,256,256,c.ht); +this._m.putImageData(_,0,0);this._m.strokeStyle="#000000";this._m.beginPath();this._m.arc(this.MH.x+1,this.MH.y+1,5,0,2*Math.PI); +this._m.stroke();this._m.strokeStyle="#ffffff";this._m.beginPath();this._m.arc(this.MH.x,this.MH.y,5,0,2*Math.PI); +this._m.stroke();var _=this.Mh.getImageData(0,0,20,256);this.tcZ(_.data,20,256);this.Mh.putImageData(_,0,0); +this.Mh.strokeStyle="#ffffff";this.Mh.beginPath();this.Mh.moveTo(0,this.ZV.y);this.Mh.lineTo(20,this.ZV.y); +this.Mh.lineWidth=2;this.Mh.stroke();if(this.Ga){this.aj(this.DD(this.oE));this.ZR=!0}};tV.prototype.tcB=function(H,N,Q,c){for(var _=0; +_.
";H.appendChild(N); +this.iK=z.B("span");H.appendChild(this.iK);H.appendChild(z.B("br"));this.aR=new tF([12,50],["PNG","JPG","SVG"]); +this.aR.Q([!0,!1,!1]);H.appendChild(this.aR.J);this.at=new tF([12,14],["1x","2x","3x","4x"]);this.at.Q([!0,!1,!1,!1]); +H.appendChild(this.at.J);this.gO=new JQ([1,9],!0,null,!0);this.gO.O("click",this.DG,this);H.appendChild(this.gO.J); +this.O("closebtn",this.Zp,this)}HQ.prototype=new Jp;HQ.prototype.Zp=function(H){this.Al=null};HQ.prototype.w=function(){Jp.prototype.w.call(this); +this.aR.w();this.at.w();this.gO.w()};HQ.prototype.aK=function(H,N,Q){var c=[];for(var _=0;_0)if(Math.abs((_[V-1].v.Lctn.v+(C.Lctn.v-_[V-1].v.Lctn.v)*C.Mdpn.v/100)/4096-Q)<.01)r=V}if(c>0)for(var V=0; +V0)if(Math.abs((O[V-1].v.Lctn.v+(T.Lctn.v-O[V-1].v.Lctn.v)*T.Mdpn.v/100)/4096-Q)<.01)u=V}if(s==null&&L==null&&r==-1&&u==-1){if(c<0){var C={t:"Objc",v:{classID:"TrnS",Opct:{t:"UntF",v:{type:"#Prc",val:100}},Lctn:{t:"long",v:0},Mdpn:{t:"long",v:50}}}; +C.v.Lctn.v=Math.round(Q*4096);_.push(C);_.sort(this.Dv);L=C}if(c>1){var O=this.oE.Clrs.v,e=$.e.zp(O,this.wR.AF,this.wR.ze),t=$.e.rz(this.oE,e,Q),T={t:"Objc",v:{classID:"Clrt",Clr:{t:"Objc",v:$.e.Ta({T:t&255,q:t>>8&255,H:t>>16&255})},Type:{t:"enum",v:{Clry:"UsrS"}},Lctn:{t:"long",v:0},Mdpn:{t:"long",v:50}}}; +T.v.Lctn.v=Math.round(Q*4096);O.push(T);O.sort(this.Dv);s=T}}if(s!=null||L!=null||r>-1||u>-1){this.g$=L; +this.To=s;this.BE=r;this.uu=u;this.xK();this.Uz();z.ny(window,this.t_);z.nL(window,this.Vt)}};tT.prototype.Ll=function(H){var N=z.qF(H,this.rP),Q=z.h()*(N.x-this.VM.x)/this.VM.$,c=z.h()*(N.y-this.VM.y)/this.VM.z; +Q=Math.max(0,Math.min(1,Q));var _=this.oE.Trns.v,O=this.oE.Clrs.v;if(this.g$!=null){var L=this.g$.v; +L.Lctn.v=Math.round(4096*Q);var s=_.indexOf(this.g$);if(s!=-1&&c<-1&&_.length>2)_.splice(s,1);if(s==-1&&c>-1)_.push(this.g$); +_.sort(this.Dv)}if(this.To!=null){var r=this.To.v;r.Lctn.v=Math.round(4096*Q);var u=O.indexOf(this.To); +if(u!=-1&&c>1.5&&O.length>2)O.splice(u,1);if(u==-1&&c<1.5)O.push(this.To);O.sort(this.Dv)}if(this.BE>-1){var L=_[this.BE].v; +L.Mdpn.v=Math.max(5,Math.min(95,Math.round(100*(Q*4096-_[this.BE-1].v.Lctn.v)/(L.Lctn.v-_[this.BE-1].v.Lctn.v))))}if(this.uu>-1){var r=O[this.uu].v; +r.Mdpn.v=Math.max(5,Math.min(95,Math.round(100*(Q*4096-O[this.uu-1].v.Lctn.v)/(r.Lctn.v-O[this.uu-1].v.Lctn.v))))}if(this.g$!=null||this.To!=null||this.BE>-1||this.uu>-1){this.xK(); +this.Uz()}};tT.prototype.uZ=function(H){z.vD(window,this.t_);z.cQ(window,this.Vt);if(Date.now()-this.qn<300){if(this.uu!=-1||this.BE!=-1){var N=(this.uu!=-1?this.oE.Clrs.v[this.uu]:this.oE.Trns.v[this.BE]).v; +N.Mdpn.v=50;this.xK();this.Uz()}else if(this.To!=null)this.MB.ttq()}this.qn=Date.now()};tT.prototype.Dv=function(H,N){return H.v.Lctn.v-N.v.Lctn.v}; +function $M(){Jp.call(this,[11,10],"isize");this.AA=z.B("div","form");this.AA.setAttribute("style","width:20em"); +this.body.appendChild(this.AA);this.JB=new $r(!0,!0);this.AA.appendChild(this.JB.J);this.hu=new J_("Interpolate",["Nearest","Bilinear"]); +this.hu.Q(1);this.hu.O(z.E.p,this.AQ,this);this.AA.appendChild(this.hu.J);this.gO=new JQ("OK",!0,null,!0); +this.gO.O("click",this.create,this);this.body.appendChild(this.gO.J)}$M.prototype=new Jp;$M.prototype.mv=function(H,N){return H!=null}; +$M.prototype.w=function(){Jp.prototype.w.call(this);this.hu.w();this.JB.w()};$M.prototype.create=function(H){var N=this.JB.v(),Q=N.x,c=N.y,_=new k(z.E.W,!0); +_.c=l.Wz;_.data={X:"imgsize",vg:Q,vF:c,vm:this.JB.zi(),Et:this.hu.v()};_.MI=!0;this.N(_);this.close()}; +$M.prototype.aK=function(H,N){this.JB.Q(new E(H.$,H.z),H.go)};function $m(H,N,Q){JS.call(this);this.J=z.B("div",""); +this.io=H;this.Ju=null;this.ov=N==null?!1:N;this.aT=null;this.Au=Q;this.Ir=[];this.UA=[];this.oq=[]; +this.UT=[];this.oY=0;this.Ju=this.tLk($m.UT[H]);this.sA()}$m.prototype=new JS;$m.prototype.tcF=function(){for(var H=0; +H0)c.textContent="\u2003"; +c.appendChild(this.oq[Q].J);if(B.ju.indexOf(this.io)!=-1){var _=new JQ("+");_.PT();_.J.style.float="right"; +c.appendChild(_.J);var O=new JQ("\u2B0D");O.PT();O.J.style.float="right";O.J.style["margin-right"]="2px"; +c.appendChild(O.J)}c.addEventListener("click",N,!1);H.appendChild(c)}};$m.MM=function(H,N){var Q=N.getBoundingClientRect(); +return(H.clientY-Q.top)/Q.height};$m.prototype.tLD=function(H){var N=H.target.tagName.toLowerCase(); +if(N=="input"){return}if(N=="button"){var Q=new k(z.E.W,!0),c=H.target.textContent=="+",_=c?0:$m.MM(H,H.target)<.5?-1:1; +if(c)Q.data={X:"st_dupsingle",i:this.parent.data.i,pV:this.Au};else Q.data={X:"st_movsingle",i:this.parent.data.i,pV:this.Au,yA:_}; +Q.c=l.rt;Q.MI=!0;this.N(Q);Q=new k("redrawall",!0);Q.data={yA:_};this.N(Q);return}H.preventDefault(); +H.stopPropagation();this.Zi();this.oY=this.UT.indexOf(H.currentTarget);this.N(new k("showme"))};$m.prototype.Zi=function(){if(this.Ju.enab&&this.Ju.enab.v()==!1)this.oe({aO:"enab",R:!0})}; +$m.prototype.tLL=function(){var H=this.UT[this.oY];if(H)z.wj(H,"selected");return this.UA[this.oY]}; +$m.prototype.tLk=function(H){var N={};for(var Q=0;QN?Math.max(0,Math.min(150,(N-400)/2)):0)}; +tQ.prototype.Tc=function(H,N){var Q=this.tyi;if(H>N){z.wj(this.kr,"flexrow");Q.setAttribute("style","margin-left:1em; width:"+Math.min(430,H-260)+"px"); +this.kY.J.style.height=N>370?"":N-55+"px"}else{z.cd(this.kr,"flexrow");Q.setAttribute("style","margin-top:1em;"); +this.kY.J.style.height=N-260+"px"}};tQ.prototype.tCU=function(H){var N=this.kY.v(),Q=tQ.Ae[this.o_.v()].fY[N],c=Q[4]; +if(c==0)c=72;var _=Q[1],O=Q[2],L=["px","%","mm","in"].indexOf(Q[3]),s=[1,1,25.4/c,1/c][L];_/=s;O/=s; +this.JB.Q(new E(Math.round(_),Math.round(O)),c);this.JB.tru(L);this.kY.Du(N)};tQ.prototype.zq=function(H){var N=tQ.Ae[this.o_.v()].fY,Q=[],c=[],_=Math.round(100*z.h()),O=Math.round(100*z.h()),L=0; +for(var s=0;s