maps.nyc.gov

Source: ol/style/pattern.js

var nyc = nyc || {};
nyc.ol = nyc.ol || {};
nyc.ol.style = nyc.ol.style || {};

/**
 * @desc A class that provides a pattern fill style
 * @public
 * @class
 * @extends {ol.style.Fill}
 * @constructor
 * @param {nyc.ol.style.PatternFill.Options} options Constructor options
 * @fires nyc.ol.style.PatternFill#ready
 */
nyc.ol.style.PatternFill = function(options){
	ol.style.Fill.call(this, {});
	this.opacity = options.opacity !== undefined ? options.opacity : 1;
	this.loadImage(options.image);
};

ol.inherits(nyc.ol.style.PatternFill, ol.style.Fill);
nyc.inherits(nyc.ol.style.PatternFill, nyc.EventHandling);

nyc.ol.style.PatternFill.prototype.loaded = function(event){
	var img = event.target, w = img.width, h = img.height,
		cnv1 = document.createElement('canvas'), 
		cnv2 = document.createElement('canvas'), 
		ctx1 = cnv1.getContext('2d'), 
		ctx2 = cnv2.getContext('2d');
	cnv1.width = w;
	cnv1.height = h;
	ctx1.globalAlpha = this.opacity;
	ctx1.fillStyle = ctx1.createPattern(img, 'repeat');
	ctx1.fillRect(0, 0, cnv1.width, cnv1.height);
	this.setColor(ctx2.createPattern(cnv1, 'repeat'));
	this.trigger('ready', this);
};

nyc.ol.style.PatternFill.prototype.loadImage = function(img){
	var image;
	try {image = $(img).get(0);}catch(ignore){}
	if (image && image.nodeName == 'IMG'){
		this.loaded({target: image});
	}else{
		var image = new Image();
		image.onload = $.proxy(this.loaded, this);
		image.src = img;
	}
};

/**
 * @desc Object type to hold constructor options for {@link nyc.ol.style.PatternFill}
 * @public
 * @typedef {Object}
 * @property {string|Element|JQuery} image The image URL, data URI, selector or element to use for the pattern
 * @property {number} opacity An opacity value for the fill pattern
 */
nyc.ol.style.PatternFill.Options;


/**
 * @desc Enumeration for pattern fill image data URIs
 * @public
 * @enum {string}
 */
nyc.ol.style.PatternFill.Pattern = {
	DOT1: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwQqIh4Q5gAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAEElEQVQY02NgGBrg/1BwJAClqAEAGX8z+wAAAABJRU5ErkJggg==',
	DOT2: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwQE/sgdKQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAD0lEQVQI12NgIAf8J10LADM2AQC/LuX/AAAAAElFTkSuQmCC',
	DOT3: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwMjFIM+hQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAD0lEQVQI12NgwAL+Y4gAABIVAQBMqoVOAAAAAElFTkSuQmCC',
	DOT4: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwIsnScSVQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQY02NggID/DIMfDHo3AgDldgH/6mPSZwAAAABJRU5ErkJggg==',
	DOT5: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwIdzPkSbwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAIElEQVQY02NgYGDwYWBg+A+l8QKCCsgGRFk9wG4kbDwAw9gEX8L6AGEAAAAASUVORK5CYII=',
	DOT6: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREjsmcrQcxgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAPUlEQVQY02NgYGCYycDA8B9KYwXMUPoLAwPDZgYGhlsM5AJmLGI+DAwMxVA2TpMx3MiMQyHlbsTpcIIOBQCG5gyj0vBlTwAAAABJRU5ErkJggg==',
	DOT7: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRExgYDL4cOwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAEklEQVQI12NggID/DKQCEnUAAI/ZAf9KrFUzAAAAAElFTkSuQmCC',
	DOT8: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzA0YzvecgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAIElEQVQY02NkYGD4z0AAMDEQAWio6P///4zoYoyD0OEA13IFDa6LPl8AAAAASUVORK5CYII=',
	DOT9: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzEsaUx3ZQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAH0lEQVQI12NkYGD4z4AGmBiwALjg////GWFsRqK1AwArZAUFeAkaLAAAAABJRU5ErkJggg==',
	DOT10: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzIsQmEkpgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAHUlEQVQI103JoQEAAAgDIOb/P89ikEpQZ6BtIH8WaDkFAQe2LOEAAAAASUVORK5CYII=',
	DOT11: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzMrxR6ARAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAALElEQVQY083OMQoAIADDwMT//zlOLoIgTt6aDhWoUo0DgWNcBhfeR5W/fdpNA48KC01Lp/4AAAAASUVORK5CYII=',
	DOT12: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzUcK/mCzQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAOklEQVQY062OsQ0AMAzC3N5H/j+HTl2iJF2KxIIsZADZBhDgpvgBeF1yym72yEO+rxxLD31zKqGYoAOjhCZHFI4G0wAAAABJRU5ErkJggg==',
	DOT13: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzkiRi3QagAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAR0lEQVQY053OQQqAMAxE0ZfezwPWa/SAcVNEbOzCD2EgDMOHnpnQkdU1jIjoGD6I2d7Sit+Bc+bN22FxrJYWx99OZakUfXIBzUEcybiVFYUAAAAASUVORK5CYII=',
	DOT14: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzgWfoIVngAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAJ0lEQVQI14XKMQoAIADDwNP//zkuCjoZKKQQqILOxpaHeZ9qwL88LKBJC/yrf7BkAAAAAElFTkSuQmCC',
	LINE1: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREyYmjBoa7QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQI12NgYGD4z0AE+E+hAAD+agT8/W/V2QAAAABJRU5ErkJggg==',
	LINE2: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREyQJFf1FNgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAFElEQVQY02NgYGD4z0AF8H9UAQMAyMsI+AZ9wGUAAAAASUVORK5CYII=',
	LINE3: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREykeI4C+vAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQY02NgwA/+M4wqIBb8BwDIywj4/liVjwAAAABJRU5ErkJggg==',
	LINE4: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREygRqiSSbAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQI12NgQAX/GSgXwAb+AwD+agT8ZZqBPQAAAABJRU5ErkJggg==',
	LINE5: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAE3OSCe/wAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAJ0lEQVQI12P4//8/AwMDw39kzAhlwMH///8ZUVQh6cIQ+M+AReA/ADoYH+OWxwbfAAAAAElFTkSuQmCC',
	LINE6: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAIbINWh3wAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAN0lEQVQY04XKMQ7AMAzEMMn///N1K9DEtTnTJKhhIDCGJNYW1NQWAGoLbTrDlbrwSX/hTVMAeAByeCQNpdN1lQAAAABJRU5ErkJggg==',
	LINE7: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAMFw8Gt/QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAO0lEQVQY04XQSQoAIBADwc78/8/xpKDOknNBoAWYYrYlyTEBgJhAil7woQxcqAIHdQBAtukAgLpO+2UBvwMlCypIDE4AAAAASUVORK5CYII=',
	LINE8: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAMnFqHsGQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAO0lEQVQY04XQSQoAIBADwc78/8/xpKDOknNBoAWYYrYlyTEBgJhAil7woQxcqAIHdQBAtukAgLpO+2UBvwMlCypIDE4AAAAASUVORK5CYII='
};

nyc-lib: Source: ol/style/pattern.js

maps.nyc.gov

Source: ol/style/pattern.js

var nyc = nyc || {};
nyc.ol = nyc.ol || {};
nyc.ol.style = nyc.ol.style || {};

/**
 * @desc A class that provides a pattern fill style
 * @public
 * @class
 * @extends {ol.style.Fill}
 * @constructor
 * @param {nyc.ol.style.PatternFill.Options} options Constructor options
 * @fires nyc.ol.style.PatternFill#ready
 */
nyc.ol.style.PatternFill = function(options){
	ol.style.Fill.call(this, {});
	this.opacity = options.opacity !== undefined ? options.opacity : 1;
	this.loadImage(options.image);
};

ol.inherits(nyc.ol.style.PatternFill, ol.style.Fill);
nyc.inherits(nyc.ol.style.PatternFill, nyc.EventHandling);

nyc.ol.style.PatternFill.prototype.loaded = function(event){
	var img = event.target, w = img.width, h = img.height,
		cnv1 = document.createElement('canvas'), 
		cnv2 = document.createElement('canvas'), 
		ctx1 = cnv1.getContext('2d'), 
		ctx2 = cnv2.getContext('2d');
	cnv1.width = w;
	cnv1.height = h;
	ctx1.globalAlpha = this.opacity;
	ctx1.fillStyle = ctx1.createPattern(img, 'repeat');
	ctx1.fillRect(0, 0, cnv1.width, cnv1.height);
	this.setColor(ctx2.createPattern(cnv1, 'repeat'));
	this.trigger('ready', this);
};

nyc.ol.style.PatternFill.prototype.loadImage = function(img){
	var image;
	try {image = $(img).get(0);}catch(ignore){}
	if (image && image.nodeName == 'IMG'){
		this.loaded({target: image});
	}else{
		var image = new Image();
		image.onload = $.proxy(this.loaded, this);
		image.src = img;
	}
};

/**
 * @desc Object type to hold constructor options for {@link nyc.ol.style.PatternFill}
 * @public
 * @typedef {Object}
 * @property {string|Element|JQuery} image The image URL, data URI, selector or element to use for the pattern
 * @property {number} opacity An opacity value for the fill pattern
 */
nyc.ol.style.PatternFill.Options;


/**
 * @desc Enumeration for pattern fill image data URIs
 * @public
 * @enum {string}
 */
nyc.ol.style.PatternFill.Pattern = {
	DOT1: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwQqIh4Q5gAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAEElEQVQY02NgGBrg/1BwJAClqAEAGX8z+wAAAABJRU5ErkJggg==',
	DOT2: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwQE/sgdKQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAD0lEQVQI12NgIAf8J10LADM2AQC/LuX/AAAAAElFTkSuQmCC',
	DOT3: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwMjFIM+hQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAD0lEQVQI12NgwAL+Y4gAABIVAQBMqoVOAAAAAElFTkSuQmCC',
	DOT4: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwIsnScSVQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQY02NggID/DIMfDHo3AgDldgH/6mPSZwAAAABJRU5ErkJggg==',
	DOT5: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREwIdzPkSbwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAIElEQVQY02NgYGDwYWBg+A+l8QKCCsgGRFk9wG4kbDwAw9gEX8L6AGEAAAAASUVORK5CYII=',
	DOT6: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREjsmcrQcxgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAPUlEQVQY02NgYGCYycDA8B9KYwXMUPoLAwPDZgYGhlsM5AJmLGI+DAwMxVA2TpMx3MiMQyHlbsTpcIIOBQCG5gyj0vBlTwAAAABJRU5ErkJggg==',
	DOT7: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRExgYDL4cOwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAEklEQVQI12NggID/DKQCEnUAAI/ZAf9KrFUzAAAAAElFTkSuQmCC',
	DOT8: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzA0YzvecgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAIElEQVQY02NkYGD4z0AAMDEQAWio6P///4zoYoyD0OEA13IFDa6LPl8AAAAASUVORK5CYII=',
	DOT9: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzEsaUx3ZQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAH0lEQVQI12NkYGD4z4AGmBiwALjg////GWFsRqK1AwArZAUFeAkaLAAAAABJRU5ErkJggg==',
	DOT10: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAADCAYAAABWKLW/AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzIsQmEkpgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAHUlEQVQI103JoQEAAAgDIOb/P89ikEpQZ6BtIH8WaDkFAQe2LOEAAAAASUVORK5CYII=',
	DOT11: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzMrxR6ARAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAALElEQVQY083OMQoAIADDwMT//zlOLoIgTt6aDhWoUo0DgWNcBhfeR5W/fdpNA48KC01Lp/4AAAAASUVORK5CYII=',
	DOT12: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzUcK/mCzQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAOklEQVQY062OsQ0AMAzC3N5H/j+HTl2iJF2KxIIsZADZBhDgpvgBeF1yym72yEO+rxxLD31zKqGYoAOjhCZHFI4G0wAAAABJRU5ErkJggg==',
	DOT13: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzkiRi3QagAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAR0lEQVQY053OQQqAMAxE0ZfezwPWa/SAcVNEbOzCD2EgDMOHnpnQkdU1jIjoGD6I2d7Sit+Bc+bN22FxrJYWx99OZakUfXIBzUEcybiVFYUAAAAASUVORK5CYII=',
	DOT14: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREzgWfoIVngAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAJ0lEQVQI14XKMQoAIADDwNP//zkuCjoZKKQQqILOxpaHeZ9qwL88LKBJC/yrf7BkAAAAAElFTkSuQmCC',
	LINE1: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREyYmjBoa7QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQI12NgYGD4z0AE+E+hAAD+agT8/W/V2QAAAABJRU5ErkJggg==',
	LINE2: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREyQJFf1FNgAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAFElEQVQY02NgYGD4z0AF8H9UAQMAyMsI+AZ9wGUAAAAASUVORK5CYII=',
	LINE3: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREykeI4C+vAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQY02NgwA/+M4wqIBb8BwDIywj4/liVjwAAAABJRU5ErkJggg==',
	LINE4: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIREygRqiSSbAAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAE0lEQVQI12NgQAX/GSgXwAb+AwD+agT8ZZqBPQAAAABJRU5ErkJggg==',
	LINE5: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAE3OSCe/wAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAJ0lEQVQI12P4//8/AwMDw39kzAhlwMH///8ZUVQh6cIQ+M+AReA/ADoYH+OWxwbfAAAAAElFTkSuQmCC',
	LINE6: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAIbINWh3wAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAN0lEQVQY04XKMQ7AMAzEMMn///N1K9DEtTnTJKhhIDCGJNYW1NQWAGoLbTrDlbrwSX/hTVMAeAByeCQNpdN1lQAAAABJRU5ErkJggg==',
	LINE7: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAMFw8Gt/QAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAO0lEQVQY04XQSQoAIBADwc78/8/xpKDOknNBoAWYYrYlyTEBgJhAil7woQxcqAIHdQBAtukAgLpO+2UBvwMlCypIDE4AAAAASUVORK5CYII=',
	LINE8: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QIRFAMnFqHsGQAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAO0lEQVQY04XQSQoAIBADwc78/8/xpKDOknNBoAWYYrYlyTEBgJhAil7woQxcqAIHdQBAtukAgLpO+2UBvwMlCypIDE4AAAAASUVORK5CYII='
};