Pixelart
- full implementation
This commit is contained in:
parent
b43459232a
commit
86d8b49113
@ -220,6 +220,7 @@ function writeChunks(srcDir, specs, resultFile) {
|
|||||||
|
|
||||||
writeHtmlGzipped("wled00/data/index.htm", "wled00/html_ui.h", 'index');
|
writeHtmlGzipped("wled00/data/index.htm", "wled00/html_ui.h", 'index');
|
||||||
writeHtmlGzipped("wled00/data/simple.htm", "wled00/html_simple.h", 'simple');
|
writeHtmlGzipped("wled00/data/simple.htm", "wled00/html_simple.h", 'simple');
|
||||||
|
writeHtmlGzipped("wled00/data/pixart/pixart.htm", "wled00/html_pixart.h", 'pixart');
|
||||||
/*
|
/*
|
||||||
writeChunks(
|
writeChunks(
|
||||||
"wled00/data",
|
"wled00/data",
|
||||||
|
91
wled00/data/pixart/boxdraw.js
Normal file
91
wled00/data/pixart/boxdraw.js
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
function drawBoxes(inputPixelArray, widthPixels, heightPixels) {
|
||||||
|
|
||||||
|
// Get a reference to the canvas element
|
||||||
|
var canvas = document.getElementById('pixelCanvas');
|
||||||
|
|
||||||
|
// Get the canvas context
|
||||||
|
var ctx = canvas.getContext('2d');
|
||||||
|
|
||||||
|
// Set the width and height of the canvas
|
||||||
|
if (window.innerHeight < window.innerWidth) {
|
||||||
|
canvas.width = Math.floor(window.innerHeight * 0.98);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
canvas.width = Math.floor(window.innerWidth * 0.98);
|
||||||
|
}
|
||||||
|
//canvas.height = window.innerWidth;
|
||||||
|
|
||||||
|
let pixelSize = Math.floor(canvas.width/widthPixels);
|
||||||
|
|
||||||
|
//Set the canvas height to fit the right number of pixelrows
|
||||||
|
canvas.height = (pixelSize * heightPixels) + 10
|
||||||
|
|
||||||
|
//Iterate through the matrix
|
||||||
|
for (let y = 0; y < heightPixels; y++) {
|
||||||
|
for (let x = 0; x < widthPixels; x++) {
|
||||||
|
|
||||||
|
// Calculate the index of the current pixel
|
||||||
|
let i = (y*widthPixels) + x;
|
||||||
|
|
||||||
|
//Gets the RGB of the current pixel
|
||||||
|
let pixel = inputPixelArray[i];
|
||||||
|
|
||||||
|
let pixelColor = 'rgb(' + pixel[0] + ', ' + pixel[1] + ', ' + pixel[2] + ')';
|
||||||
|
let r = pixel[0];
|
||||||
|
let g = pixel[1];
|
||||||
|
let b = pixel[2];
|
||||||
|
let pos = pixel[4];
|
||||||
|
|
||||||
|
let textColor = 'rgb(128,128,128)';
|
||||||
|
|
||||||
|
// Set the fill style to the pixel color
|
||||||
|
ctx.fillStyle = pixelColor;
|
||||||
|
|
||||||
|
//Draw the rectangle
|
||||||
|
ctx.fillRect(x * pixelSize, y * pixelSize, pixelSize, pixelSize);
|
||||||
|
|
||||||
|
// Draw a border on the box
|
||||||
|
ctx.strokeStyle = '#888888';
|
||||||
|
ctx.lineWidth = 1;
|
||||||
|
ctx.strokeRect(x * pixelSize, y * pixelSize, pixelSize, pixelSize);
|
||||||
|
|
||||||
|
//Write text to box
|
||||||
|
ctx.font = "10px Arial";
|
||||||
|
ctx.fillStyle = textColor;
|
||||||
|
ctx.textAlign = "center";
|
||||||
|
ctx.textBaseline = 'middle';
|
||||||
|
ctx.fillText((pos + 1), (x * pixelSize) + (pixelSize /2), (y * pixelSize) + (pixelSize /2));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function drawBackground() {
|
||||||
|
const grid = document.createElement("div");
|
||||||
|
grid.id = "grid";
|
||||||
|
grid.classList.add("grid-class");
|
||||||
|
grid.style.cssText = "";
|
||||||
|
|
||||||
|
const boxSize = 20;
|
||||||
|
const boxCount = Math.ceil(window.innerWidth / boxSize) * Math.ceil(window.innerHeight / boxSize);;
|
||||||
|
|
||||||
|
for (let i = 0; i < boxCount; i++) {
|
||||||
|
const box = document.createElement("div");
|
||||||
|
box.classList.add("box");
|
||||||
|
box.style.backgroundColor = getRandomColor();
|
||||||
|
grid.appendChild(box);
|
||||||
|
}
|
||||||
|
grid.style.zIndex = -1;
|
||||||
|
document.body.appendChild(grid);
|
||||||
|
}
|
||||||
|
|
||||||
|
function getRandomColor() {
|
||||||
|
const letters = "0123456789ABCDEF";
|
||||||
|
let color = "rgba(";
|
||||||
|
for (let i = 0; i < 3; i++) {
|
||||||
|
color += Math.floor(Math.random() * 256) + ",";
|
||||||
|
}
|
||||||
|
color += "0.05)";
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
window.drawBackground = drawBackground;
|
BIN
wled00/data/pixart/favicon-16x16.png
Normal file
BIN
wled00/data/pixart/favicon-16x16.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 649 B |
BIN
wled00/data/pixart/favicon-32x32.png
Normal file
BIN
wled00/data/pixart/favicon-32x32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.8 KiB |
BIN
wled00/data/pixart/favicon.ico
Normal file
BIN
wled00/data/pixart/favicon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
303
wled00/data/pixart/getPixelValues.js
Normal file
303
wled00/data/pixart/getPixelValues.js
Normal file
@ -0,0 +1,303 @@
|
|||||||
|
function getPixelRGBValues(base64Image) {
|
||||||
|
httpArray = [];
|
||||||
|
fileJSON = JSONledStringStart + document.getElementById('brightnessNumber').value + JSONledStringMid1 + document.getElementById('targetSegment').value + JSONledStringMid2;
|
||||||
|
|
||||||
|
//const copyJSONledbutton = document.getElementById('copyJSONledbutton');
|
||||||
|
const JSONled = document.getElementById('JSONled');
|
||||||
|
const maxNoOfColorsInCommandSting = document.getElementById('colorLimitNumber').value;
|
||||||
|
|
||||||
|
let hybridAddressing = false;
|
||||||
|
let selectedIndex = -1;
|
||||||
|
|
||||||
|
let selector = document.getElementById("formatSelector");
|
||||||
|
selectedIndex = selector.selectedIndex;
|
||||||
|
const formatSelection = selector.options[selectedIndex].value;
|
||||||
|
|
||||||
|
selector = document.getElementById("ledSetupSelector");
|
||||||
|
selectedIndex = selector.selectedIndex;
|
||||||
|
const ledSetupSelection = selector.options[selectedIndex].value;
|
||||||
|
|
||||||
|
selector = document.getElementById("colorFormatSelector");
|
||||||
|
selectedIndex = selector.selectedIndex;
|
||||||
|
let hexValueCheck = true;
|
||||||
|
if (selector.options[selectedIndex].value == 'dec'){
|
||||||
|
hexValueCheck = false
|
||||||
|
}
|
||||||
|
|
||||||
|
selector = document.getElementById("addressingSelector");
|
||||||
|
selectedIndex = selector.selectedIndex;
|
||||||
|
let segmentValueCheck = true; //If Range or Hybrid
|
||||||
|
if (selector.options[selectedIndex].value == 'single'){
|
||||||
|
segmentValueCheck = false
|
||||||
|
} else if (selector.options[selectedIndex].value == 'hybrid'){
|
||||||
|
hybridAddressing = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
let segmentString = ''
|
||||||
|
let curlString = ''
|
||||||
|
let haString = ''
|
||||||
|
let haCommandCurlString = '';
|
||||||
|
|
||||||
|
|
||||||
|
let colorSeparatorStart = '\'';
|
||||||
|
let colorSeparatorEnd = '\'';
|
||||||
|
if (!hexValueCheck){
|
||||||
|
colorSeparatorStart = '[';
|
||||||
|
colorSeparatorEnd = ']';
|
||||||
|
}
|
||||||
|
// Warnings
|
||||||
|
let hasTransparency = false; //If alpha < 255 is detected on any pixel, this is set to true in code below
|
||||||
|
let imageInfo = '';
|
||||||
|
|
||||||
|
// Create an off-screen canvas
|
||||||
|
var canvas = document.createElement('canvas');
|
||||||
|
var context = canvas.getContext('2d');
|
||||||
|
|
||||||
|
// Create an image element and set its src to the base64 image
|
||||||
|
var image = new Image();
|
||||||
|
image.src = base64Image;
|
||||||
|
|
||||||
|
// Wait for the image to load before drawing it onto the canvas
|
||||||
|
image.onload = function() {
|
||||||
|
|
||||||
|
let scalePath = document.getElementById("scalePath");
|
||||||
|
let color = scalePath.getAttribute("fill");
|
||||||
|
let sizeX = document.getElementById("sizeX").value;
|
||||||
|
let sizeY = document.getElementById("sizeY").value;
|
||||||
|
|
||||||
|
if (color != accentColor || sizeX < 1 || sizeY < 1){
|
||||||
|
//image will not be rezised Set desitred size to original size
|
||||||
|
sizeX = image.width;
|
||||||
|
sizeY = image.height;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Set the canvas size to the same as the desired image size
|
||||||
|
canvas.width = sizeX;
|
||||||
|
canvas.height = sizeY;
|
||||||
|
|
||||||
|
imageInfo = '<p>Width: ' + sizeX + ', Height: ' + sizeY + ' (make sure this matches your led matrix setup)</p>'
|
||||||
|
|
||||||
|
// Draw the image onto the canvas
|
||||||
|
context.drawImage(image, 0, 0, sizeX, sizeY);
|
||||||
|
|
||||||
|
// Get the pixel data from the canvas
|
||||||
|
var pixelData = context.getImageData(0, 0, sizeX, sizeY).data;
|
||||||
|
|
||||||
|
// Create an array to hold the RGB values of each pixel
|
||||||
|
var pixelRGBValues = [];
|
||||||
|
|
||||||
|
// If the first row of the led matrix is right -> left
|
||||||
|
let right2leftAdjust = 1;
|
||||||
|
|
||||||
|
if (ledSetupSelection == 'l2r'){
|
||||||
|
right2leftAdjust = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Loop through the pixel data and get the RGB values of each pixel
|
||||||
|
for (var i = 0; i < pixelData.length; i += 4) {
|
||||||
|
var r = pixelData[i];
|
||||||
|
var g = pixelData[i + 1];
|
||||||
|
var b = pixelData[i + 2];
|
||||||
|
var a = pixelData[i + 3];
|
||||||
|
|
||||||
|
let pixel = i/4
|
||||||
|
let row = Math.floor(pixel/sizeX);
|
||||||
|
let led = pixel;
|
||||||
|
if (ledSetupSelection == 'matrix'){
|
||||||
|
//Do nothing, the matrix is set upp like the index in the image
|
||||||
|
//Every row starts from the left, i.e. no zigzagging
|
||||||
|
}
|
||||||
|
else if ((row + right2leftAdjust) % 2 === 0) {
|
||||||
|
//Setup is traditional zigzag
|
||||||
|
//right2leftAdjust basically flips the row order if = 1
|
||||||
|
//Row is left to right
|
||||||
|
//Leave led index as pixel index
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//Setup is traditional zigzag
|
||||||
|
//Row is right to left
|
||||||
|
//Invert index of row for led
|
||||||
|
let indexOnRow = led - (row * sizeX);
|
||||||
|
let maxIndexOnRow = sizeX - 1;
|
||||||
|
let reversedIndexOnRow = maxIndexOnRow - indexOnRow;
|
||||||
|
led = (row * sizeX) + reversedIndexOnRow;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the RGB values to the pixel RGB values array
|
||||||
|
pixelRGBValues.push([r, g, b, a, led, pixel, row]);
|
||||||
|
}
|
||||||
|
|
||||||
|
pixelRGBValues.sort((a, b) => a[5] - b[5]);
|
||||||
|
|
||||||
|
//Copy the values to a new array for resorting
|
||||||
|
let ledRGBValues = [... pixelRGBValues];
|
||||||
|
|
||||||
|
//Sort the array based on led index
|
||||||
|
ledRGBValues.sort((a, b) => a[4] - b[4]);
|
||||||
|
|
||||||
|
//Generate JSON in WLED format
|
||||||
|
let JSONledString = '';
|
||||||
|
let JSONledStringShort = '';
|
||||||
|
|
||||||
|
//Set starting values for the segment check to something that is no color
|
||||||
|
let segmentStart = -1;
|
||||||
|
let maxi = ledRGBValues.length;
|
||||||
|
let curentColorIndex = 0
|
||||||
|
let commandArray = [];
|
||||||
|
|
||||||
|
//For evry pixel in the LED array
|
||||||
|
for (let i = 0; i < maxi; i++) {
|
||||||
|
let pixel = ledRGBValues[i];
|
||||||
|
let r = pixel[0];
|
||||||
|
let g = pixel[1];
|
||||||
|
let b = pixel[2];
|
||||||
|
let a = pixel[3];
|
||||||
|
let segmentString = '';
|
||||||
|
let segmentEnd = -1;
|
||||||
|
|
||||||
|
if(segmentValueCheck){
|
||||||
|
if (segmentStart < 0){
|
||||||
|
//This is the first led of a new segment
|
||||||
|
segmentStart = i;
|
||||||
|
} //Else we allready have a start index
|
||||||
|
|
||||||
|
if (i < maxi - 1){
|
||||||
|
|
||||||
|
let iNext = i + 1;
|
||||||
|
let nextPixel = ledRGBValues[iNext];
|
||||||
|
|
||||||
|
if (nextPixel[0] != r || nextPixel[1] != g || nextPixel[2] != b ){
|
||||||
|
//Next pixel has new color
|
||||||
|
//The current segment ends with this pixel
|
||||||
|
segmentEnd = i + 1 //WLED wants the NEXT LED as the stop led...
|
||||||
|
if (segmentStart == i && hybridAddressing){
|
||||||
|
//If only one led/pixel, no segment info needed
|
||||||
|
if (JSONledString == ''){
|
||||||
|
//If addressing is single, we need to start every command with a starting possition
|
||||||
|
segmentString = '' + i + ',';
|
||||||
|
//Fixed to b2
|
||||||
|
} else{
|
||||||
|
segmentString = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
segmentString = segmentStart + ',' + segmentEnd + ',';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
//This is the last pixel, so the segment must end
|
||||||
|
segmentEnd = i + 1;
|
||||||
|
|
||||||
|
if (segmentStart + 1 == segmentEnd && hybridAddressing){
|
||||||
|
//If only one led/pixel, no segment info needed
|
||||||
|
if (JSONledString == ''){
|
||||||
|
//If addressing is single, we need to start every command with a starting possition
|
||||||
|
segmentString = '' + i + ',';
|
||||||
|
//Fixed to b2
|
||||||
|
} else{
|
||||||
|
segmentString = ''
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
segmentString = segmentStart + ',' + segmentEnd + ',';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else{
|
||||||
|
//Write every pixel
|
||||||
|
if (JSONledString == ''){
|
||||||
|
//If addressing is single, we need to start every command with a starting possition
|
||||||
|
JSONledString = i
|
||||||
|
//Fixed to b2
|
||||||
|
}
|
||||||
|
|
||||||
|
segmentStart = i
|
||||||
|
segmentEnd = i
|
||||||
|
//Segment string should be empty for when addressing single. So no need to set it again.
|
||||||
|
}
|
||||||
|
|
||||||
|
if (a < 255){
|
||||||
|
hasTransparency = true; //If ANY pixel has alpha < 255 then this is set to true to warn the user
|
||||||
|
}
|
||||||
|
|
||||||
|
if (segmentEnd > -1){
|
||||||
|
//This is the last pixel in the segment, write to the JSONledString
|
||||||
|
//Return color value in selected format
|
||||||
|
let colorValueString = r + ',' + g + ',' + b ;
|
||||||
|
|
||||||
|
if (hexValueCheck){
|
||||||
|
const [red, green, blue] = [r, g, b];
|
||||||
|
colorValueString = `${[red, green, blue].map(x => x.toString(16).padStart(2, '0')).join('')}`;
|
||||||
|
} else{
|
||||||
|
//do nothing, allready set
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if start and end is the same, in which case remove
|
||||||
|
|
||||||
|
JSONledString = JSONledString + segmentString + colorSeparatorStart + colorValueString + colorSeparatorEnd;
|
||||||
|
fileJSON = JSONledString + segmentString + colorSeparatorStart + colorValueString + colorSeparatorEnd;
|
||||||
|
|
||||||
|
curentColorIndex = curentColorIndex + 1; // We've just added a new color to the string so up the count with one
|
||||||
|
|
||||||
|
if (curentColorIndex % maxNoOfColorsInCommandSting === 0 || i == maxi - 1) {
|
||||||
|
|
||||||
|
//If we have accumulated the max number of colors to send in a single command or if this is the last pixel, we should write the current colorstring to the array
|
||||||
|
commandArray.push(JSONledString);
|
||||||
|
JSONledString = ''; //Start on an new command string
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
//Add a comma to continue the command string
|
||||||
|
JSONledString = JSONledString + ','
|
||||||
|
}
|
||||||
|
//Reset segment values
|
||||||
|
segmentStart = - 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
JSONledString = ''
|
||||||
|
|
||||||
|
//For evry commandString in the array
|
||||||
|
for (let i = 0; i < commandArray.length; i++) {
|
||||||
|
let thisJSONledString = JSONledStringStart + document.getElementById('brightnessNumber').value + JSONledStringMid1 + document.getElementById('targetSegment').value + JSONledStringMid2 + commandArray[i] + JSONledStringEnd;
|
||||||
|
httpArray.push(thisJSONledString);
|
||||||
|
|
||||||
|
let thiscurlString = curlStart + document.getElementById('curlUrl').value + curlMid1 + thisJSONledString + curlEnd;
|
||||||
|
|
||||||
|
//Aggregated Strings That should be returned to the user
|
||||||
|
if (i > 0){
|
||||||
|
JSONledString = JSONledString + '\n';
|
||||||
|
curlString = curlString + ' && ';
|
||||||
|
}
|
||||||
|
JSONledString = JSONledString + thisJSONledString;
|
||||||
|
curlString = curlString + thiscurlString;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
haString = haStart + document.getElementById('haID').value + haMid1 + document.getElementById('haName').value + haMid2 + document.getElementById('haUID').value + haMid3 +curlString + haMid3 + document.getElementById('curlUrl').value + haEnd;
|
||||||
|
|
||||||
|
if (formatSelection == 'wled'){
|
||||||
|
JSONled.value = JSONledString;
|
||||||
|
} else if (formatSelection == 'curl'){
|
||||||
|
JSONled.value = curlString;
|
||||||
|
} else if (formatSelection == 'ha'){
|
||||||
|
JSONled.value = haString;
|
||||||
|
} else {
|
||||||
|
JSONled.value = 'ERROR!/n' + formatSelection + ' is an unknown format.'
|
||||||
|
}
|
||||||
|
|
||||||
|
fileJSON = fileJSON + JSONledStringEnd;
|
||||||
|
|
||||||
|
let infoDiv = document.getElementById('image-info');
|
||||||
|
let canvasDiv = document.getElementById('image-info');
|
||||||
|
if (hasTransparency){
|
||||||
|
imageInfo = imageInfo + '<p><b>WARNING!</b> Transparency info detected in image. Transparency (alpha) has been ignored. To ensure you get the result you desire, use only solid colors in your image.</p>'
|
||||||
|
}
|
||||||
|
|
||||||
|
infoDiv.innerHTML = imageInfo;
|
||||||
|
canvasDiv.style.display = "block"
|
||||||
|
|
||||||
|
|
||||||
|
//Drawing the image
|
||||||
|
drawBoxes(pixelRGBValues, sizeX, sizeY);
|
||||||
|
}
|
||||||
|
}
|
266
wled00/data/pixart/pixart.css
Normal file
266
wled00/data/pixart/pixart.css
Normal file
@ -0,0 +1,266 @@
|
|||||||
|
|
||||||
|
.box {
|
||||||
|
border: 2px solid white;
|
||||||
|
}
|
||||||
|
body {
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
background-color: #151515;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-part {
|
||||||
|
width: 600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
.container {
|
||||||
|
max-width: 100% -40px;
|
||||||
|
border-radius: 0px;
|
||||||
|
padding: 20px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h1 {
|
||||||
|
font-size: 2.3em;
|
||||||
|
color: rgb(126, 76, 128);
|
||||||
|
margin: 1px 0;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
line-height: 0.5;
|
||||||
|
/*text-align: center;*/
|
||||||
|
}
|
||||||
|
h2 {
|
||||||
|
font-size: 1.1em;
|
||||||
|
color: rgba(126, 76, 128, 0.61);
|
||||||
|
margin: 1px 0;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
line-height: 0.5;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
h3 {
|
||||||
|
font-size: 0.7em;
|
||||||
|
color: rgba(126, 76, 128, 0.61);
|
||||||
|
margin: 1px 0;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
line-height: 1.4;
|
||||||
|
text-align: center;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
font-size: 1.2em;
|
||||||
|
color: rgb(119, 119, 119);
|
||||||
|
line-height: 1.5;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#fieldTable {
|
||||||
|
font-size: 1 em;
|
||||||
|
color: #777;
|
||||||
|
line-height: 1;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#scaleTable {
|
||||||
|
font-size: 1 em;
|
||||||
|
color: #777;
|
||||||
|
line-height: 1;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
#drop-zone {
|
||||||
|
display: block;
|
||||||
|
width: 100%-40px;
|
||||||
|
border: 3px dashed #7E4C80;
|
||||||
|
border-radius: 0px;
|
||||||
|
text-align: center;
|
||||||
|
padding: 20px;
|
||||||
|
margin: 0px;
|
||||||
|
cursor: pointer;
|
||||||
|
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
|
||||||
|
#file-picker {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
* select {
|
||||||
|
background-color: #333333;
|
||||||
|
color: #C0C0C0;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
margin-bottom: 0.5em;
|
||||||
|
padding: 0em;
|
||||||
|
width: 100%;
|
||||||
|
height: 27px;
|
||||||
|
font-size: 15px;
|
||||||
|
color: rgb(119, 119, 119);
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
* input[type=range] {
|
||||||
|
-webkit-appearance:none;
|
||||||
|
flex-grow: 1;
|
||||||
|
border-radius: 0px;
|
||||||
|
background: linear-gradient(to right, #333333 0%, #333333 100%);
|
||||||
|
color: #C0C0C0;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
margin-top: 0.5em;
|
||||||
|
margin-left: 0em;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="range"]::-webkit-slider-thumb{
|
||||||
|
-webkit-appearance:none;
|
||||||
|
width: 25px;
|
||||||
|
height:25px;
|
||||||
|
background:#7E4C80;
|
||||||
|
position:relative;
|
||||||
|
z-index:3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rangeNumber{
|
||||||
|
width: 20px;
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fullTextField[type=text] {
|
||||||
|
background-color: #333333;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
padding-inline-start: 5px;
|
||||||
|
margin-top: 10px;
|
||||||
|
width: 100%;
|
||||||
|
height: 24px;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
color: rgb(119, 119, 119);
|
||||||
|
}
|
||||||
|
|
||||||
|
* input[type=submit] {
|
||||||
|
background-color: #333333;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
padding: 0.5em;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
font-size: 1.3em;
|
||||||
|
color: rgb(119, 119, 119);
|
||||||
|
}
|
||||||
|
|
||||||
|
* button {
|
||||||
|
background-color: #333333;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
padding-inline: 5px;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
font-size: 1em;
|
||||||
|
color: rgb(119, 119, 119);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
grid-row: 1 / 2;
|
||||||
|
width: 100%;
|
||||||
|
height: 200px;
|
||||||
|
background-color: #333333;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
|
||||||
|
color: #777;
|
||||||
|
}
|
||||||
|
.hide {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
.grids-class{
|
||||||
|
position: fixed;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100vw;
|
||||||
|
height: 100vh;
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, 20px);
|
||||||
|
grid-template-rows: repeat(auto-fill, 20px);
|
||||||
|
grid-gap: 0px;
|
||||||
|
}
|
||||||
|
.svg-icon {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
.buttondiv-class {
|
||||||
|
flex: 1;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttondivmid-class {
|
||||||
|
width: 10px;
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
#image-container {
|
||||||
|
display: grid;
|
||||||
|
grid-template-rows: 1fr 1fr;
|
||||||
|
}
|
||||||
|
#button-container {
|
||||||
|
display: flex;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.buttonclass {
|
||||||
|
flex: 1;
|
||||||
|
padding-top: 5px;
|
||||||
|
padding-bottom: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gap {
|
||||||
|
width: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#submitConvert::before {
|
||||||
|
content: "";
|
||||||
|
display: inline-block;
|
||||||
|
background-image: url('data:image/svg+xml;utf8, <svg style="width:24px;height:24px" viewBox="0 0 24 24" <path fill="currentColor" d="M12,6V9L16,5L12,1V4A8,8 0 0,0 4,12C4,13.57 4.46,15.03 5.24,16.26L6.7,14.8C6.25,13.97 6,13 6,12A6,6 0 0,1 12,6M18.76,7.74L17.3,9.2C17.74,10.04 18,11 18,12A6,6 0 0,1 12,18V15L8,19L12,23V20A8,8 0 0,0 20,12C20,10.43 19.54,8.97 18.76,7.74Z" /></svg>');
|
||||||
|
width: 36px;
|
||||||
|
height: 36px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#sizeDiv * {
|
||||||
|
display: inline-block;
|
||||||
|
}
|
||||||
|
.sizeInputFields{
|
||||||
|
width: 50px;
|
||||||
|
background-color: #333333;
|
||||||
|
border: 1px solid #C0C0C0;
|
||||||
|
padding-inline-start: 5px;
|
||||||
|
margin-top: -5px;
|
||||||
|
height: 24px;
|
||||||
|
border-radius: 0px;
|
||||||
|
font-family: 'Arcade', Arial, sans-serif;
|
||||||
|
font-size: 15px;
|
||||||
|
color: rgb(119, 119, 119);
|
||||||
|
}
|
||||||
|
a:link {
|
||||||
|
color: rgba(126, 76, 128, 0.61);
|
||||||
|
background-color: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:visited {
|
||||||
|
color: rgba(126, 76, 128, 0.61);
|
||||||
|
background-color: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:hover {
|
||||||
|
color: rgb(126, 76, 128);
|
||||||
|
background-color: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
a:active {
|
||||||
|
color: rgba(126, 76, 128, 0.61);
|
||||||
|
background-color: transparent;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
214
wled00/data/pixart/pixart.htm
Normal file
214
wled00/data/pixart/pixart.htm
Normal file
@ -0,0 +1,214 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||||
|
<meta http-equiv="Pragma" content="no-cache">
|
||||||
|
<meta http-equiv="Expires" content="0">
|
||||||
|
<title>WLED Pixel Art Converter</title>
|
||||||
|
<link rel="stylesheet" href="pixart.css">
|
||||||
|
<link rel="shortcut icon" href="favicon-16x16.png">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<body>
|
||||||
|
<div class="top-part" >
|
||||||
|
<div style="display: flex; justify-content: center;">
|
||||||
|
<h1 style="display: flex; align-items: center;">
|
||||||
|
<svg style="width:36px;height:36px" id="logomatrix" viewBox="0 0 24 24">
|
||||||
|
<path fill="#7e4c80" d="M6,5 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc1"/>
|
||||||
|
<path fill="#7e4c80" d="M12,5 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc2"/>
|
||||||
|
<path fill="#7e4c80" d="M18,5 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc3"/>
|
||||||
|
<path fill="#7e4c80" d="M6,11 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc4"/>
|
||||||
|
<path fill="#7e4c80" d="M12,11 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc5"/>
|
||||||
|
<path fill="#7e4c80" d="M18,11 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc6"/>
|
||||||
|
<path fill="#7e4c80" d="M6,17 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc7"/>
|
||||||
|
<path fill="#7e4c80" d="M12,17 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc8"/>
|
||||||
|
<path fill="#7e4c80" d="M18,17 a2,2 0 1,0 4,0 a2,2 0 1,0 -4,0" id="sc9"/>
|
||||||
|
</svg>
|
||||||
|
WLED Pixel Art Converter
|
||||||
|
</h1>
|
||||||
|
</div>
|
||||||
|
<h2>Convert image to WLED JSON (pixel art on WLED matrix)</h2>
|
||||||
|
<p>
|
||||||
|
<table id="fieldTable" style="width: 100%; table-layout: fixed; align-content: center;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="ledSetupSelector">Led setup:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<select id="ledSetupSelector">
|
||||||
|
<option value="matrix" selected>2D Matrix</option>
|
||||||
|
<option value="r2l">Serpentine, first row right to left <-</option>
|
||||||
|
<option value="l2r">Serpentine, first row left to right -></option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="formatSelector">Output format:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<select id="formatSelector">
|
||||||
|
<option value="wled" selected>WLED JSON</option>
|
||||||
|
<option value="curl">CURL</option>
|
||||||
|
<option value="ha">Home Assistant YAML</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="colorFormatSelector">Color code format:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<select id="colorFormatSelector">
|
||||||
|
<option value="hex" selected>HEX (#f4f4f4)</option>
|
||||||
|
<option value="dec">DEC (244,244,244)</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="addressingSelector">Addressing:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<select id="addressingSelector">
|
||||||
|
<option value="hybrid" selected>Hybrid (#f0f0f0,10, 17, #f4f4f4)</option>
|
||||||
|
<option value="range">Range (10, 17, #f4f4f4)</option>
|
||||||
|
<option value="single">Single (#f4f4f4)</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="brightnessNumber">Brightness:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle; display: flex; align-items: center;">
|
||||||
|
<input type="range" id="brightnessNumber" min="1" max="255" value="255">
|
||||||
|
<span id="brightnessValue">255</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="colorLimitNumber">Max no of colors/JSON:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle; display: flex; align-items: center;">
|
||||||
|
<input type="range" id="colorLimitNumber" min="1" max="512" value="256">
|
||||||
|
<span id="colorLimitValue" >256</span>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="ha-hide">
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="haID">HA Device ID:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<input class="fullTextField" type="text" id="haID" value="pixel_art_controller_001">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="ha-hide">
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="haUID">HA Device Unique ID:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<input class="fullTextField" type="text" id="haUID" value="pixel_art_controller_001a">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr class="ha-hide">
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="haName">HA Device Name:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<input class="fullTextField" type="text" id="haName" value="Pixel Art Kitchen">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="curlUrl">Device IP/host name:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<input class="fullTextField" type="text" id="curlUrl" value="">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<label for="targetSegment">Target segment id:</label>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<select id="targetSegment">
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table class= "scaleTableClass" id="scaleTable" style="width: 100%; table-layout: fixed; align-content: center;">
|
||||||
|
<tr>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<div id="scaleDiv">
|
||||||
|
<svg id="scaleToggle" style="width:36px;height:36px" viewBox="0 0 24 24" onclick="switchScale()">
|
||||||
|
<path id="scaleTogglePath" fill="currentColor" d="M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z" />
|
||||||
|
</svg>
|
||||||
|
|
||||||
|
<svg id="scaleSvg" style="width:36px;height:36px" viewBox="0 0 24 24" onclick="switchScale()">
|
||||||
|
<path id="scalePath" fill="currentColor" d="M21,15H23V17H21V15M21,11H23V13H21V11M23,19H21V21C22,21 23,20 23,19M13,3H15V5H13V3M21,7H23V9H21V7M21,3V5H23C23,4 22,3 21,3M1,7H3V9H1V7M17,3H19V5H17V3M17,19H19V21H17V19M3,3C2,3 1,4 1,5H3V3M9,3H11V5H9V3M5,3H7V5H5V3M1,11V19A2,2 0 0,0 3,21H15V11H1M3,19L5.5,15.79L7.29,17.94L9.79,14.72L13,19H3Z" />
|
||||||
|
</svg>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
<td style="vertical-align: middle;">
|
||||||
|
<div id="sizeDiv" style="display: none;">
|
||||||
|
<label for="sizeX">X : </label> <input class="sizeInputFields" type="number" id="sizeX" value="0">
|
||||||
|
|
||||||
|
<label for="sizeY">Y : </label> <input class="sizeInputFields" type="number" id="sizeY" value="0">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<label for="file-picker">
|
||||||
|
<div id="drop-zone">
|
||||||
|
Drop image here <br>or <br>
|
||||||
|
Click to select a file
|
||||||
|
</div>
|
||||||
|
</label>
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<input type="file" id="file-picker" style="display: none;">
|
||||||
|
<div style="width: 100%; text-align: center;">
|
||||||
|
<img id="preview" style="display: block; margin: 0 auto;">
|
||||||
|
<img id="newimage" style="display: block; margin: 0 auto;"><br>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="submitConvertDiv" style="display: none;">
|
||||||
|
<button id="convertbutton" class="buttonclass"></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="raw-image-container" style="display: none">
|
||||||
|
<img id="image" src="" alt="RawImage image">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<div id="image-container" style="display: none;">
|
||||||
|
<div id="image-info" style="display: none"></div>
|
||||||
|
<textarea id="JSONled"></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="button-container" style="display: none;">
|
||||||
|
<button id="copyJSONledbutton" class="buttonclass"></button>
|
||||||
|
<div id="gap1" class="gap"></div>
|
||||||
|
<button id="sendJSONledbutton" class="buttonclass"></button>
|
||||||
|
<div id = "gap2" class="gap"></div>
|
||||||
|
<button id="fileJSONledbutton" class="buttonclass"></button>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h3><div id="version">Version 1.0.4</div> - <a href="https://github.com/werkstrom/WLED-PixelArtConverter/blob/main/README.md" target="_blank">Help/About</a></h3>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id=bottom-part style="display: none" class=bottom-part></div>
|
||||||
|
<canvas id="pixelCanvas"></canvas>
|
||||||
|
</div>
|
||||||
|
<script src="statics.js" type="text/javascript"></script>
|
||||||
|
<script src="getPixelValues.js" type="text/javascript"></script>
|
||||||
|
<script src="boxdraw.js" type="text/javascript"></script>
|
||||||
|
<script src="pixart.js" type="text/javascript"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
320
wled00/data/pixart/pixart.js
Normal file
320
wled00/data/pixart/pixart.js
Normal file
@ -0,0 +1,320 @@
|
|||||||
|
//Start up code
|
||||||
|
document.getElementById('curlUrl').value = location.host;
|
||||||
|
|
||||||
|
let devMode = false;
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
if(urlParams.has('dev')){
|
||||||
|
devMode = true;
|
||||||
|
}
|
||||||
|
if(devMode){
|
||||||
|
console.log('Developer mode active. Experimental and unstable functions active.')
|
||||||
|
} else{
|
||||||
|
console.log('Developer mode inactive. Append "?dev" to the URL.')
|
||||||
|
}
|
||||||
|
|
||||||
|
if(devMode){
|
||||||
|
document.getElementById("fileJSONledbutton").style.display = 'buttonclass'
|
||||||
|
document.getElementById("gap2").style.display = 'gap'
|
||||||
|
} else {
|
||||||
|
document.getElementById("fileJSONledbutton").style.display = 'none'
|
||||||
|
document.getElementById("gap2").style.display = 'none'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
let httpArray = [];
|
||||||
|
let fileJSON = '';
|
||||||
|
|
||||||
|
|
||||||
|
//On submit button pressed =======================
|
||||||
|
|
||||||
|
|
||||||
|
document.getElementById("convertbutton").addEventListener("click", function() {
|
||||||
|
|
||||||
|
let base64Image = document.getElementById('preview').src;
|
||||||
|
if (isValidBase64Gif(base64Image)) {
|
||||||
|
document.getElementById('image').src = base64Image;
|
||||||
|
getPixelRGBValues(base64Image);
|
||||||
|
document.getElementById('image-container').style.display = "block"
|
||||||
|
document.getElementById("button-container").style.display = "";
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
let infoDiv = document.getElementById('image-info');
|
||||||
|
let imageInfo = '<p><b>WARNING!</b> File does not appear to be a valid image</p>'
|
||||||
|
infoDiv.innerHTML = imageInfo;
|
||||||
|
infoDiv.style.display = "block"
|
||||||
|
document.getElementById('image-container').style.display = "none";
|
||||||
|
document.getElementById('JSONled').value = '';
|
||||||
|
console.log("The string '" + base64Image + "' is not a valid base64 image.");
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// Code for copying the generated string to clipboard
|
||||||
|
|
||||||
|
copyJSONledbutton.addEventListener('click', async () => {
|
||||||
|
let JSONled = document.getElementById('JSONled');
|
||||||
|
JSONled.select();
|
||||||
|
try {
|
||||||
|
await navigator.clipboard.writeText(JSONled.value);
|
||||||
|
} catch (err) {
|
||||||
|
try {
|
||||||
|
await document.execCommand("copy");
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Failed to copy text: ', err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
sendJSONledbutton.addEventListener('click', async () => {
|
||||||
|
if (window.location.protocol === "https:") {
|
||||||
|
alert('Will only be available when served over http (or WLED is run over https)');
|
||||||
|
} else {
|
||||||
|
postPixels();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
fileJSONledbutton.addEventListener('click', async () => {
|
||||||
|
if (window.location.protocol === "https:") {
|
||||||
|
alert('Will only be available when served over http (or WLED is run over https)');
|
||||||
|
} else {
|
||||||
|
let JSONFileName = 'TheName.json'
|
||||||
|
let urlString = 'http://'+document.getElementById('curlUrl').value+'/upload'
|
||||||
|
|
||||||
|
sendAsFile(fileJSON, JSONFileName, urlString);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
async function postPixels() {
|
||||||
|
for (let i of httpArray) {
|
||||||
|
try {
|
||||||
|
console.log(i);
|
||||||
|
console.log(i.length);
|
||||||
|
const response = await fetch('http://'+document.getElementById('curlUrl').value+'/json/state', {
|
||||||
|
method: 'POST',
|
||||||
|
headers: {
|
||||||
|
'Content-Type': 'application/json'
|
||||||
|
//'Content-Type': 'text/html; charset=UTF-8'
|
||||||
|
},
|
||||||
|
body: i
|
||||||
|
});
|
||||||
|
const data = await response.json();
|
||||||
|
console.log(data);
|
||||||
|
} catch (error) {
|
||||||
|
console.error(error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//File uploader code
|
||||||
|
const dropZone = document.getElementById('drop-zone');
|
||||||
|
const filePicker = document.getElementById('file-picker');
|
||||||
|
const preview = document.getElementById('preview');
|
||||||
|
|
||||||
|
// Listen for dragenter, dragover, and drop events
|
||||||
|
dropZone.addEventListener('dragenter', dragEnter);
|
||||||
|
dropZone.addEventListener('dragover', dragOver);
|
||||||
|
dropZone.addEventListener('drop', dropped);
|
||||||
|
dropZone.addEventListener('click', zoneClicked);
|
||||||
|
|
||||||
|
// Listen for change event on file picker
|
||||||
|
filePicker.addEventListener('change', filePicked);
|
||||||
|
|
||||||
|
// Handle zone click
|
||||||
|
function zoneClicked(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
//this.classList.add('drag-over');
|
||||||
|
//alert('Hej');
|
||||||
|
filePicker.click();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle dragenter
|
||||||
|
function dragEnter(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
this.classList.add('drag-over');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle dragover
|
||||||
|
function dragOver(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle drop
|
||||||
|
function dropped(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
this.classList.remove('drag-over');
|
||||||
|
|
||||||
|
// Get the dropped file
|
||||||
|
const file = e.dataTransfer.files[0];
|
||||||
|
updatePreview(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Handle file picked
|
||||||
|
function filePicked(e) {
|
||||||
|
// Get the picked file
|
||||||
|
const file = e.target.files[0];
|
||||||
|
updatePreview(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the preview image
|
||||||
|
function updatePreview(file) {
|
||||||
|
// Use FileReader to read the file
|
||||||
|
const reader = new FileReader();
|
||||||
|
reader.onload = function() {
|
||||||
|
// Update the preview image
|
||||||
|
preview.src = reader.result;
|
||||||
|
document.getElementById("submitConvertDiv").style.display = "";
|
||||||
|
};
|
||||||
|
reader.readAsDataURL(file);
|
||||||
|
}
|
||||||
|
|
||||||
|
function isValidBase64Gif(string) {
|
||||||
|
// Use a regular expression to check that the string is a valid base64 string
|
||||||
|
/*
|
||||||
|
const base64gifPattern = /^data:image\/gif;base64,([A-Za-z0-9+/:]{4})*([A-Za-z0-9+/:]{3}=|[A-Za-z0-9+/:]{2}==)?$/;
|
||||||
|
const base64pngPattern = /^data:image\/png;base64,([A-Za-z0-9+/:]{4})*([A-Za-z0-9+/:]{3}=|[A-Za-z0-9+/:]{2}==)?$/;
|
||||||
|
const base64jpgPattern = /^data:image\/jpg;base64,([A-Za-z0-9+/:]{4})*([A-Za-z0-9+/:]{3}=|[A-Za-z0-9+/:]{2}==)?$/;
|
||||||
|
const base64webpPattern = /^data:image\/webp;base64,([A-Za-z0-9+/:]{4})*([A-Za-z0-9+/:]{3}=|[A-Za-z0-9+/:]{2}==)?$/;
|
||||||
|
*/
|
||||||
|
//REMOVED, Any image appear to work as long as it can be drawn to the canvas. Leaving code in for future use, possibly
|
||||||
|
if (1==1 || base64gifPattern.test(string) || base64pngPattern.test(string) || base64jpgPattern.test(string) || base64webpPattern.test(string)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
//Not OK
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById("brightnessNumber").oninput = function() {
|
||||||
|
document.getElementById("brightnessValue").textContent = this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById("colorLimitNumber").oninput = function() {
|
||||||
|
document.getElementById("colorLimitValue").textContent = this.value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var formatSelector = document.getElementById("formatSelector");
|
||||||
|
var hideableRows = document.querySelectorAll(".ha-hide");
|
||||||
|
for (var i = 0; i < hideableRows.length; i++) {
|
||||||
|
hideableRows[i].classList.add("hide");
|
||||||
|
}
|
||||||
|
formatSelector.addEventListener("change", function() {
|
||||||
|
for (var i = 0; i < hideableRows.length; i++) {
|
||||||
|
hideableRows[i].classList.toggle("hide", this.value !== "ha");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function switchScale() {
|
||||||
|
let scalePath = document.getElementById("scalePath");
|
||||||
|
let scaleTogglePath = document.getElementById("scaleTogglePath");
|
||||||
|
let color = scalePath.getAttribute("fill");
|
||||||
|
let d = ''
|
||||||
|
if (color === accentColor) {
|
||||||
|
color = accentTextColor;
|
||||||
|
d = scaleToggleOffd
|
||||||
|
document.getElementById("sizeDiv").style.display = "none";
|
||||||
|
// Set values to actual XY of image, if possible
|
||||||
|
} else {
|
||||||
|
color = accentColor;
|
||||||
|
d = scaleToggleOnd
|
||||||
|
document.getElementById("sizeDiv").style.display = "";
|
||||||
|
}
|
||||||
|
scalePath.setAttribute("fill", color);
|
||||||
|
scaleTogglePath.setAttribute("fill", color);
|
||||||
|
scaleTogglePath.setAttribute("d", d);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function sendAsFile(jsonStringInput, fileName, urlString) {
|
||||||
|
//var jsonString = JSON.stringify({name: "value"});
|
||||||
|
var file = new Blob([jsonStringInput], {type: 'application/json'});
|
||||||
|
console.log(jsonStringInput)
|
||||||
|
console.log(fileName);
|
||||||
|
console.log(urlString);
|
||||||
|
|
||||||
|
var formData = new FormData();
|
||||||
|
formData.append('file', file, fileName);
|
||||||
|
|
||||||
|
var xhr = new XMLHttpRequest();
|
||||||
|
xhr.open('POST', urlString, true);
|
||||||
|
xhr.onload = function() {
|
||||||
|
if (xhr.status === 200) {
|
||||||
|
console.log('File uploaded successfully!');
|
||||||
|
} else {
|
||||||
|
console.log('File upload failed!');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
xhr.send(formData);
|
||||||
|
}
|
||||||
|
|
||||||
|
function generateSegmentOptions(array) {
|
||||||
|
//This function is prepared for a name property on each segment for easier selection
|
||||||
|
//Currently the name is generated generically based on index
|
||||||
|
var select = document.getElementById("targetSegment");
|
||||||
|
select.innerHTML = "";
|
||||||
|
for (var i = 0; i < array.length; i++) {
|
||||||
|
var option = document.createElement("option");
|
||||||
|
option.value = array[i].value;
|
||||||
|
option.text = array[i].text;
|
||||||
|
select.appendChild(option);
|
||||||
|
if(i === 0) {
|
||||||
|
option.selected = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Initial population of segment selection
|
||||||
|
function generateSegmentArray(noOfSegments) {
|
||||||
|
var arr = [];
|
||||||
|
for (var i = 0; i < noOfSegments; i++) {
|
||||||
|
arr.push({
|
||||||
|
value: i,
|
||||||
|
text: "Segment index " + i
|
||||||
|
});
|
||||||
|
}
|
||||||
|
return arr;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Animate matrix
|
||||||
|
var matrixcircles = document.querySelectorAll("#logomatrix path");
|
||||||
|
var intervalId;
|
||||||
|
// Function that changes the color of a random circle to a lighter purple
|
||||||
|
function changeColorOfDot() {
|
||||||
|
// Get a random number between 0 and the number of circles
|
||||||
|
var randomIndex = Math.floor(Math.random() * matrixcircles.length);
|
||||||
|
// Get the circle at the random index
|
||||||
|
var randomCircle = matrixcircles[randomIndex];
|
||||||
|
|
||||||
|
|
||||||
|
// Store the current fill color
|
||||||
|
var currentColor = randomCircle.getAttribute("fill");
|
||||||
|
// Change the color of the circle
|
||||||
|
randomCircle.setAttribute("fill", "#bb8fbc");
|
||||||
|
setTimeout(() => {
|
||||||
|
randomCircle.setAttribute("fill", currentColor);
|
||||||
|
clearInterval(intervalId);
|
||||||
|
intervalId = setInterval(changeColorOfDot, randomInterval());
|
||||||
|
}, 500);
|
||||||
|
}
|
||||||
|
|
||||||
|
function randomInterval() {
|
||||||
|
var interval = Math.floor(Math.random() * (5 - 1 + 1)) + 1;
|
||||||
|
return interval * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
// call the function changeColorOfDot every 10 seconds
|
||||||
|
intervalId = setInterval(changeColorOfDot, randomInterval());
|
||||||
|
|
||||||
|
var segmentData = generateSegmentArray(10);
|
||||||
|
|
||||||
|
generateSegmentOptions(segmentData);
|
||||||
|
|
||||||
|
document.getElementById("fileJSONledbutton").innerHTML =
|
||||||
|
'<svg style="width:36px;height:36px" viewBox="0 0 24 24"><path fill="currentColor" d="M20 18H4V8H20M20 6H12L10 4H4A2 2 0 0 0 2 6V18A2 2 0 0 0 4 20H20A2 2 0 0 0 22 18V8A2 2 0 0 0 20 6M16 17H14V13H11L15 9L19 13H16Z" /></svg> File to device'
|
||||||
|
document.getElementById("convertbutton").innerHTML =
|
||||||
|
'<svg style="width:36px;height:36px" viewBox="0 0 24 24"><path fill="currentColor" d="M12,6V9L16,5L12,1V4A8,8 0 0,0 4,12C4,13.57 4.46,15.03 5.24,16.26L6.7,14.8C6.25,13.97 6,13 6,12A6,6 0 0,1 12,6M18.76,7.74L17.3,9.2C17.74,10.04 18,11 18,12A6,6 0 0,1 12,18V15L8,19L12,23V20A8,8 0 0,0 20,12C20,10.43 19.54,8.97 18.76,7.74Z" /> </svg> Convert to WLED JSON ';
|
||||||
|
document.getElementById("copyJSONledbutton").innerHTML =
|
||||||
|
'<svg class="svg-icon" style="width:36px;height:36px" viewBox="0 0 24 24"> <path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z" /> </svg> Copy to clipboard';
|
||||||
|
document.getElementById("sendJSONledbutton").innerHTML =
|
||||||
|
'<svg class="svg-icon" style="width:36px;height:36px" viewBox="0 0 24 24"> <path fill="currentColor" d="M6.5 20Q4.22 20 2.61 18.43 1 16.85 1 14.58 1 12.63 2.17 11.1 3.35 9.57 5.25 9.15 5.88 6.85 7.75 5.43 9.63 4 12 4 14.93 4 16.96 6.04 19 8.07 19 11 20.73 11.2 21.86 12.5 23 13.78 23 15.5 23 17.38 21.69 18.69 20.38 20 18.5 20H13Q12.18 20 11.59 19.41 11 18.83 11 18V12.85L9.4 14.4L8 13L12 9L16 13L14.6 14.4L13 12.85V18H18.5Q19.55 18 20.27 17.27 21 16.55 21 15.5 21 14.45 20.27 13.73 19.55 13 18.5 13H17V11Q17 8.93 15.54 7.46 14.08 6 12 6 9.93 6 8.46 7.46 7 8.93 7 11H6.5Q5.05 11 4.03 12.03 3 13.05 3 14.5 3 15.95 4.03 17 5.05 18 6.5 18H9V20M12 13Z" /> </svg> Send to device';
|
19
wled00/data/pixart/site.webmanifest
Normal file
19
wled00/data/pixart/site.webmanifest
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"name": "WLED Pixel Art Convertor",
|
||||||
|
"short_name": "ledconv",
|
||||||
|
"icons": [
|
||||||
|
{
|
||||||
|
"src": "/favicon-32x32.png",
|
||||||
|
"sizes": "32x322",
|
||||||
|
"type": "image/png"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"src": "/favicon-32x32.png",
|
||||||
|
"sizes": "32x32",
|
||||||
|
"type": "image/png"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"theme_color": "#ffffff",
|
||||||
|
"background_color": "#ffffff",
|
||||||
|
"display": "standalone"
|
||||||
|
}
|
25
wled00/data/pixart/statics.js
Normal file
25
wled00/data/pixart/statics.js
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
var curlStart = 'curl -X POST "http://';
|
||||||
|
var curlMid1 = '/json/state" -d \'';
|
||||||
|
var curlEnd = '\' -H "Content-Type: application/json"';
|
||||||
|
|
||||||
|
const haStart = '#Uncomment if you don\'t allready have these defined in your switch section of your configuration.yaml\n#- platform: command_line\n #switches:\n ';
|
||||||
|
const haMid1 = '\n friendly_name: ';
|
||||||
|
const haMid2 = '\n unique_id: ';
|
||||||
|
const haMid3= '\n command_on: >\n ';
|
||||||
|
const haMid4 = '\n command_off: >\n curl -X POST "http://';
|
||||||
|
const haEnd = '/json/state" -d \'{"on":false}\' -H "Content-Type: application/json"';
|
||||||
|
const haCommandLeading = ' ';
|
||||||
|
|
||||||
|
const JSONledStringStart = '{"on":true,"bri":';
|
||||||
|
const JSONledStringMid1 = ',"seg":{"id":';
|
||||||
|
const JSONledStringMid2 = ',"i":[';
|
||||||
|
// const JSONledShortStringStart = '{';
|
||||||
|
// const JSONledShortStringMid1 = '"seg":{"i":[';
|
||||||
|
const JSONledStringEnd = ']}}';
|
||||||
|
|
||||||
|
var accentColor = '#7E4C80';
|
||||||
|
var accentTextColor = '#777';
|
||||||
|
|
||||||
|
var scaleToggleOffd = "M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M7,15A3,3 0 0,1 4,12A3,3 0 0,1 7,9A3,3 0 0,1 10,12A3,3 0 0,1 7,15Z";
|
||||||
|
var scaleToggleOnd = "M17,7H7A5,5 0 0,0 2,12A5,5 0 0,0 7,17H17A5,5 0 0,0 22,12A5,5 0 0,0 17,7M17,15A3,3 0 0,1 14,12A3,3 0 0,1 17,9A3,3 0 0,1 20,12A3,3 0 0,1 17,15Z";
|
||||||
|
|
File diff suppressed because one or more lines are too long
519
wled00/html_pixart.h
Normal file
519
wled00/html_pixart.h
Normal file
@ -0,0 +1,519 @@
|
|||||||
|
/*
|
||||||
|
* Binary array for the Web UI.
|
||||||
|
* gzip is used for smaller size and improved speeds.
|
||||||
|
*
|
||||||
|
* Please see https://kno.wled.ge/advanced/custom-features/#changing-web-ui
|
||||||
|
* to find out how to easily modify the web UI source!
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Autogenerated from wled00/data/pixart/pixart.htm, do not edit!!
|
||||||
|
const uint16_t PAGE_pixart_L = 8106;
|
||||||
|
const uint8_t PAGE_pixart[] PROGMEM = {
|
||||||
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x0a, 0xe5, 0x3c, 0xf9, 0x73, 0xda, 0x48,
|
||||||
|
0xb3, 0xbf, 0xfb, 0xaf, 0x98, 0x28, 0xf5, 0xc5, 0x28, 0x08, 0x21, 0x89, 0xd3, 0x60, 0x39, 0x85,
|
||||||
|
0x31, 0x36, 0x4e, 0x7c, 0x5f, 0xb1, 0xe3, 0x75, 0x6d, 0x09, 0x34, 0x80, 0x6c, 0x21, 0x11, 0x49,
|
||||||
|
0x80, 0xb1, 0xc3, 0xff, 0xfe, 0xba, 0x67, 0x24, 0x10, 0x97, 0x8f, 0x6c, 0xf6, 0x7b, 0xaf, 0xea,
|
||||||
|
0x6d, 0xd6, 0x20, 0x8d, 0x7a, 0x7a, 0xfa, 0x9a, 0x9e, 0xee, 0x9e, 0x11, 0x9b, 0x1f, 0x76, 0x8e,
|
||||||
|
0xab, 0x17, 0x37, 0x27, 0x35, 0xd2, 0x09, 0xba, 0xf6, 0x16, 0xd9, 0x8c, 0xbe, 0xa8, 0x61, 0xc2,
|
||||||
|
0x57, 0x97, 0x06, 0x06, 0x3c, 0x09, 0x7a, 0x29, 0xfa, 0xb3, 0x6f, 0x0d, 0x74, 0xa1, 0x6a, 0x34,
|
||||||
|
0x3b, 0x34, 0x55, 0x75, 0x9d, 0xc0, 0x73, 0x6d, 0x81, 0xac, 0x35, 0xe1, 0x8a, 0x3a, 0x81, 0x2e,
|
||||||
|
0x38, 0x6e, 0xaa, 0x89, 0xcf, 0x24, 0x02, 0x57, 0x7e, 0xe0, 0x7a, 0x70, 0xd5, 0xed, 0xfb, 0x41,
|
||||||
|
0xca, 0xa3, 0x03, 0xc3, 0xb6, 0x4c, 0x23, 0xa0, 0xc2, 0x32, 0x84, 0x27, 0x9e, 0xd1, 0xee, 0x1a,
|
||||||
|
0xcb, 0x30, 0x2d, 0x05, 0xaf, 0x3d, 0xf6, 0x2c, 0x8f, 0xfa, 0x02, 0x99, 0x80, 0x2b, 0x08, 0x17,
|
||||||
|
0x58, 0x81, 0x4d, 0xb7, 0xd6, 0xbe, 0x1f, 0xd4, 0x76, 0xc8, 0x89, 0xf5, 0x48, 0x6d, 0x52, 0xf1,
|
||||||
|
0x02, 0x02, 0x64, 0x0e, 0xa8, 0x17, 0x50, 0x6f, 0x33, 0xcd, 0x01, 0xc8, 0xa6, 0x1f, 0x8c, 0x10,
|
||||||
|
0x50, 0x6e, 0xb8, 0x8f, 0xcf, 0x0d, 0xd7, 0x33, 0xa9, 0x57, 0xd2, 0x7a, 0x8f, 0xc4, 0x77, 0x81,
|
||||||
|
0x44, 0xf2, 0xb1, 0xd5, 0x6a, 0x8d, 0x1b, 0xae, 0x39, 0x7a, 0x6e, 0x01, 0xf6, 0x54, 0xcb, 0xe8,
|
||||||
|
0x5a, 0xf6, 0xa8, 0x54, 0xf1, 0x9a, 0x86, 0x49, 0xa5, 0x8a, 0x67, 0x19, 0xb6, 0xe4, 0x1b, 0x8e,
|
||||||
|
0x9f, 0xf2, 0xa9, 0x67, 0xb5, 0xca, 0x0d, 0xa3, 0xf9, 0xd0, 0xf6, 0xdc, 0xbe, 0x63, 0xa6, 0x9a,
|
||||||
|
0xae, 0xed, 0x7a, 0xa5, 0x8f, 0x6a, 0x0e, 0xff, 0x8d, 0xe5, 0xc0, 0xed, 0xa5, 0x7a, 0x86, 0x17,
|
||||||
|
0x3c, 0x0f, 0x2d, 0x33, 0xe8, 0x94, 0xf2, 0x8a, 0xd2, 0x7b, 0x2c, 0x77, 0x0d, 0xaf, 0x6d, 0x39,
|
||||||
|
0x25, 0x85, 0x18, 0xfd, 0xc0, 0x1d, 0xcb, 0x48, 0xbf, 0x61, 0x39, 0xd4, 0x7b, 0xee, 0x1a, 0x8f,
|
||||||
|
0x29, 0x0e, 0xa8, 0x2a, 0xca, 0x7f, 0x48, 0x2a, 0x8b, 0xd0, 0x9c, 0xb6, 0x94, 0x67, 0x98, 0x56,
|
||||||
|
0xdf, 0x2f, 0x29, 0xe5, 0x9e, 0x61, 0x9a, 0x96, 0xd3, 0x2e, 0x69, 0xf8, 0x30, 0xa0, 0x8f, 0x41,
|
||||||
|
0x0a, 0x84, 0xda, 0x76, 0x4a, 0x4d, 0x90, 0x01, 0xf5, 0xc6, 0x1d, 0x95, 0x93, 0xec, 0x5b, 0x4f,
|
||||||
|
0xb4, 0xa4, 0xc9, 0x19, 0xda, 0x2d, 0x87, 0x34, 0x15, 0x68, 0xb6, 0x59, 0x54, 0xa2, 0xd1, 0x55,
|
||||||
|
0xe0, 0x55, 0x29, 0xbf, 0x85, 0x3b, 0x1b, 0x68, 0x4b, 0x75, 0xa8, 0xd5, 0xee, 0x04, 0x25, 0x39,
|
||||||
|
0x37, 0xee, 0x68, 0xb1, 0x01, 0x54, 0x59, 0x9d, 0x0c, 0xe0, 0xb5, 0x1b, 0x46, 0x42, 0xd5, 0xf2,
|
||||||
|
0x52, 0x21, 0x2f, 0xa9, 0x5a, 0x51, 0x92, 0xf3, 0xaa, 0xf8, 0x4f, 0x47, 0x5b, 0xc6, 0x60, 0x26,
|
||||||
|
0x36, 0xbe, 0x5c, 0xf8, 0x17, 0x87, 0x57, 0xe5, 0xec, 0xe2, 0xf8, 0x65, 0x76, 0x93, 0xb2, 0x02,
|
||||||
|
0xda, 0xf5, 0xa3, 0xa6, 0x7b, 0xb0, 0x6e, 0xab, 0x35, 0x4a, 0x85, 0x96, 0x18, 0x35, 0x9b, 0x96,
|
||||||
|
0xdf, 0xb3, 0x8d, 0x51, 0xa9, 0x65, 0xd3, 0xc7, 0x71, 0x6f, 0x46, 0x6a, 0x5a, 0x4c, 0x2d, 0x85,
|
||||||
|
0xc2, 0xdc, 0xa8, 0xb9, 0xb7, 0x50, 0x3a, 0xfe, 0xd8, 0xb2, 0xa8, 0x6d, 0x5e, 0x18, 0x0d, 0x9b,
|
||||||
|
0xc6, 0x51, 0x93, 0x17, 0x30, 0xbf, 0x0d, 0xaf, 0xdf, 0x34, 0x6c, 0xfa, 0x2f, 0xe0, 0x35, 0x3d,
|
||||||
|
0x98, 0x0c, 0x4f, 0xae, 0x43, 0x9f, 0x23, 0xc1, 0x34, 0x6c, 0xb7, 0xf9, 0x50, 0x9e, 0x5a, 0x7c,
|
||||||
|
0xdc, 0xe0, 0x4b, 0x19, 0xd0, 0x99, 0x69, 0xf8, 0x1d, 0x0a, 0xb3, 0x31, 0x34, 0xdd, 0xf9, 0xa9,
|
||||||
|
0xb0, 0xa8, 0x9c, 0x99, 0xc9, 0x11, 0xcd, 0xb3, 0x72, 0xb3, 0xef, 0xf9, 0x40, 0x78, 0xcf, 0xb5,
|
||||||
|
0x18, 0xd0, 0x5b, 0xec, 0x20, 0xc6, 0x79, 0x0e, 0x50, 0x4d, 0x39, 0x47, 0xb9, 0xdb, 0x34, 0xd5,
|
||||||
|
0xb3, 0x9a, 0x0f, 0x30, 0x63, 0x23, 0x4e, 0x1c, 0x60, 0x6b, 0xfc, 0x99, 0xf8, 0xd4, 0xa6, 0xcd,
|
||||||
|
0xe0, 0x79, 0xd1, 0x1f, 0x64, 0x32, 0x99, 0x10, 0x87, 0x6f, 0xd9, 0xe0, 0x89, 0x22, 0x26, 0xd5,
|
||||||
|
0x89, 0xc7, 0x09, 0xdb, 0x39, 0xcd, 0x29, 0xf0, 0x1b, 0x60, 0xfd, 0x20, 0xf2, 0xf0, 0xbe, 0xe1,
|
||||||
|
0x06, 0x81, 0xdb, 0xe5, 0x4d, 0x11, 0x8f, 0x4a, 0x4c, 0x72, 0xe5, 0x50, 0x15, 0x5a, 0x01, 0x88,
|
||||||
|
0x5d, 0x49, 0xfb, 0xbc, 0x00, 0x81, 0x62, 0xcb, 0xe9, 0xf5, 0x83, 0xdb, 0x60, 0xd4, 0xa3, 0xba,
|
||||||
|
0x67, 0x38, 0x6d, 0x7a, 0xf7, 0x9c, 0x1a, 0xd2, 0xc6, 0x83, 0x05, 0x72, 0xed, 0xf5, 0xa8, 0x01,
|
||||||
|
0x6d, 0x4d, 0xca, 0xb8, 0x2b, 0xa3, 0x15, 0xa7, 0x80, 0xab, 0x21, 0xe8, 0x7b, 0x5e, 0x11, 0x53,
|
||||||
|
0x86, 0x4b, 0x68, 0x18, 0x86, 0x07, 0x80, 0xf0, 0x0c, 0x74, 0x92, 0x08, 0x5c, 0xe2, 0x21, 0x69,
|
||||||
|
0x12, 0xca, 0x80, 0x28, 0xfc, 0x0b, 0x49, 0x16, 0xff, 0x91, 0x40, 0x6c, 0xda, 0x0a, 0x80, 0x81,
|
||||||
|
0x05, 0xf2, 0x4b, 0xa5, 0x88, 0x7e, 0x1f, 0x90, 0x00, 0x8d, 0x41, 0xa7, 0xdf, 0x6d, 0xac, 0x64,
|
||||||
|
0x8a, 0x4b, 0x50, 0x43, 0x31, 0x45, 0x12, 0xc4, 0xeb, 0x18, 0x3f, 0x91, 0xed, 0xf5, 0x5c, 0xdf,
|
||||||
|
0x0a, 0x2c, 0xd7, 0x29, 0x79, 0xd4, 0x36, 0x02, 0x6b, 0x40, 0xcb, 0x4f, 0x29, 0xcb, 0x31, 0xe9,
|
||||||
|
0x63, 0x29, 0x33, 0x96, 0xd9, 0xd8, 0x47, 0x30, 0x10, 0x98, 0x44, 0x88, 0x12, 0x0d, 0x10, 0x97,
|
||||||
|
0x1c, 0x0b, 0x66, 0x53, 0x68, 0xa3, 0x5d, 0xcb, 0x34, 0x6d, 0x3a, 0x96, 0x5b, 0x7d, 0xdb, 0xbe,
|
||||||
|
0x00, 0xd3, 0xdd, 0xc5, 0x09, 0xcc, 0x89, 0x47, 0x4b, 0xbe, 0x5b, 0x61, 0x37, 0xab, 0x24, 0x13,
|
||||||
|
0xda, 0x01, 0x50, 0xc1, 0x26, 0xa3, 0x1f, 0xc0, 0x3a, 0x53, 0xca, 0x4d, 0xec, 0x9e, 0x89, 0x4c,
|
||||||
|
0x45, 0x32, 0x96, 0x98, 0x49, 0x76, 0xc9, 0xc2, 0xf2, 0xcf, 0xa6, 0xc5, 0x8c, 0x29, 0xf9, 0xfd,
|
||||||
|
0x46, 0xd7, 0xfa, 0x5d, 0x86, 0xb8, 0x9e, 0x63, 0x44, 0xff, 0x43, 0x42, 0x67, 0xd6, 0x40, 0x46,
|
||||||
|
0x69, 0xa3, 0x0f, 0xb3, 0xc9, 0xf9, 0x47, 0xe2, 0x66, 0x82, 0xfe, 0x73, 0x34, 0xce, 0x3a, 0xd7,
|
||||||
|
0xf8, 0xc2, 0xf1, 0x8e, 0xf5, 0x66, 0xd6, 0xcd, 0x8d, 0xd1, 0xa6, 0x0c, 0x8f, 0x1a, 0xcf, 0x6d,
|
||||||
|
0xcf, 0x32, 0x53, 0x6c, 0xe2, 0xa6, 0xb5, 0x65, 0xc6, 0xc0, 0x82, 0x92, 0xf7, 0x09, 0x23, 0x26,
|
||||||
|
0x4e, 0xb9, 0x03, 0xf3, 0x6c, 0xd6, 0x11, 0xca, 0x38, 0xa2, 0x9f, 0x6a, 0xda, 0x86, 0xef, 0x3f,
|
||||||
|
0x4f, 0x26, 0x4e, 0x0b, 0xa2, 0x31, 0xb3, 0x8c, 0x56, 0xa9, 0x94, 0xf9, 0xf4, 0x9d, 0x12, 0x33,
|
||||||
|
0x18, 0x46, 0xd4, 0xe0, 0x4d, 0x67, 0x22, 0x01, 0x44, 0x54, 0x66, 0xf4, 0x03, 0xff, 0xd0, 0x12,
|
||||||
|
0x50, 0xa4, 0xae, 0xdf, 0x75, 0x7c, 0x98, 0x87, 0x30, 0x95, 0x83, 0x04, 0xc6, 0x50, 0x29, 0x70,
|
||||||
|
0xc9, 0xb6, 0x84, 0x53, 0x4e, 0x9c, 0x03, 0x06, 0xae, 0x5f, 0x86, 0x6c, 0x1b, 0x40, 0xce, 0x58,
|
||||||
|
0xf6, 0x07, 0xa0, 0x58, 0x10, 0xe7, 0xf3, 0x8a, 0x29, 0xcb, 0x2d, 0xc6, 0xb4, 0x06, 0x21, 0x53,
|
||||||
|
0xa8, 0x19, 0xf0, 0x83, 0x11, 0x99, 0xe1, 0x14, 0x64, 0xeb, 0x59, 0x0c, 0x18, 0x7a, 0x87, 0xf0,
|
||||||
|
0x11, 0xa3, 0x20, 0xe8, 0xa5, 0x7d, 0x3e, 0x5a, 0x5d, 0xa3, 0x4d, 0x53, 0xd3, 0x50, 0xf0, 0x05,
|
||||||
|
0x01, 0x30, 0x9e, 0xd4, 0x96, 0x47, 0xe0, 0x6f, 0xfc, 0x91, 0x0f, 0xb6, 0xa4, 0x27, 0x33, 0x9e,
|
||||||
|
0xc8, 0x68, 0xc3, 0xf5, 0x83, 0x11, 0x10, 0xb5, 0x45, 0xfe, 0x21, 0x22, 0x78, 0x86, 0xb3, 0x38,
|
||||||
|
0x50, 0xae, 0xb7, 0x80, 0x28, 0x87, 0xdd, 0x40, 0x76, 0x31, 0xc6, 0x20, 0x70, 0x60, 0xb3, 0x3e,
|
||||||
|
0x0c, 0xb5, 0x4b, 0xa5, 0x06, 0x6d, 0x41, 0xec, 0xff, 0x1c, 0x19, 0xa9, 0x20, 0x2c, 0x65, 0x3d,
|
||||||
|
0x6e, 0x78, 0x4c, 0x08, 0xa5, 0xbe, 0x67, 0x27, 0xd6, 0x21, 0x4b, 0x30, 0x4a, 0xec, 0x3e, 0x0d,
|
||||||
|
0xba, 0x49, 0x3e, 0x76, 0xed, 0x72, 0x3f, 0x68, 0x15, 0x25, 0x88, 0xdb, 0x07, 0x6d, 0xc2, 0x62,
|
||||||
|
0x77, 0x5d, 0x08, 0x5d, 0x6d, 0x36, 0xe6, 0xbd, 0xe1, 0x5a, 0x20, 0x03, 0x8b, 0x0e, 0xb7, 0xdd,
|
||||||
|
0x47, 0xc8, 0x08, 0x88, 0x42, 0xb4, 0x2c, 0xfc, 0x2f, 0x90, 0xcd, 0x9e, 0x11, 0x74, 0x08, 0xaa,
|
||||||
|
0x5f, 0x17, 0x60, 0xa2, 0x78, 0x40, 0x52, 0x15, 0x8d, 0x58, 0x20, 0xa6, 0x2e, 0x1c, 0xaa, 0x9a,
|
||||||
|
0x94, 0xbf, 0xda, 0x38, 0x50, 0xf3, 0x52, 0xee, 0x00, 0xae, 0xd5, 0xab, 0x6c, 0xa5, 0x28, 0x15,
|
||||||
|
0xa1, 0xb7, 0x22, 0x29, 0x24, 0x0b, 0xf1, 0x64, 0x15, 0x3e, 0x32, 0x72, 0xae, 0x40, 0xb2, 0x72,
|
||||||
|
0x16, 0xe2, 0xcb, 0x9c, 0xac, 0x64, 0x48, 0x4e, 0xd6, 0xa0, 0x35, 0x2f, 0x6b, 0xf9, 0x83, 0xbc,
|
||||||
|
0x5c, 0x90, 0xd4, 0xac, 0x5c, 0xac, 0xc2, 0x5d, 0x0e, 0x21, 0x37, 0x0a, 0x04, 0xc0, 0x32, 0xf8,
|
||||||
|
0xa1, 0x55, 0xf2, 0x52, 0x9e, 0xa1, 0x52, 0x09, 0x8e, 0x73, 0xa8, 0x16, 0x65, 0x88, 0x51, 0x0b,
|
||||||
|
0x72, 0x21, 0x7b, 0xa0, 0x16, 0xe4, 0x8c, 0xb4, 0x21, 0x6b, 0x55, 0x15, 0x6f, 0x25, 0x55, 0x91,
|
||||||
|
0x95, 0x2c, 0x51, 0x8b, 0x92, 0xaa, 0xb2, 0xcf, 0xb9, 0xae, 0x6a, 0xf1, 0x4a, 0xcd, 0x1d, 0x40,
|
||||||
|
0xfb, 0x06, 0x12, 0xa9, 0x65, 0xae, 0x34, 0x25, 0x46, 0xa6, 0xa6, 0x20, 0x9d, 0xf8, 0xa9, 0xc8,
|
||||||
|
0x59, 0x58, 0x63, 0x37, 0xe4, 0x5c, 0x56, 0x2a, 0x22, 0x25, 0xd3, 0x01, 0x7f, 0x08, 0x24, 0xbd,
|
||||||
|
0xb5, 0x89, 0x22, 0xdd, 0x5a, 0x17, 0xc3, 0xe9, 0x97, 0xc9, 0x4f, 0xe5, 0x87, 0xd7, 0xa0, 0x48,
|
||||||
|
0xf0, 0x49, 0x3b, 0xd6, 0x80, 0x7c, 0x7e, 0x5e, 0x6e, 0xe0, 0xf8, 0x7c, 0x1f, 0xbd, 0x3d, 0x5b,
|
||||||
|
0xc1, 0x22, 0xeb, 0xce, 0xbd, 0xdf, 0x8d, 0xbc, 0x65, 0x09, 0x4b, 0xe5, 0x66, 0xd5, 0xfb, 0x87,
|
||||||
|
0xd7, 0x2d, 0x03, 0x23, 0x96, 0x87, 0xe7, 0x17, 0x72, 0x88, 0x05, 0x96, 0x02, 0x58, 0xee, 0x7d,
|
||||||
|
0xc8, 0xea, 0xc0, 0x84, 0x78, 0x08, 0x6a, 0xd2, 0xa6, 0xeb, 0x19, 0xcc, 0xc9, 0x31, 0xff, 0x67,
|
||||||
|
0x94, 0x06, 0x16, 0x38, 0x3d, 0x6a, 0xfe, 0x69, 0xb4, 0x1d, 0x17, 0xa4, 0xf6, 0x3c, 0x9b, 0xcf,
|
||||||
|
0xfd, 0x0e, 0x1e, 0xa3, 0x89, 0x11, 0xcc, 0x9f, 0xa5, 0x6e, 0x0d, 0xcc, 0x8a, 0xa5, 0xd4, 0x64,
|
||||||
|
0x13, 0x25, 0x4a, 0x20, 0x4e, 0xd2, 0x05, 0xbf, 0xe3, 0x7a, 0x41, 0xb3, 0x1f, 0x10, 0x74, 0xae,
|
||||||
|
0x90, 0xda, 0x77, 0x3c, 0xda, 0xd2, 0x85, 0xd8, 0xe4, 0xee, 0x39, 0x6d, 0x18, 0xcb, 0xa7, 0xf9,
|
||||||
|
0xac, 0x64, 0x5d, 0x6d, 0x1f, 0x9f, 0x0d, 0x95, 0x6f, 0x7b, 0x6d, 0xb7, 0x02, 0xff, 0x1d, 0x9d,
|
||||||
|
0x5f, 0x76, 0x6a, 0x97, 0x6d, 0xb8, 0xda, 0xc6, 0xdb, 0xca, 0x69, 0xb5, 0x72, 0x83, 0xdf, 0xad,
|
||||||
|
0x62, 0x7a, 0xa3, 0xc3, 0x5a, 0xae, 0x8f, 0xce, 0xcf, 0x94, 0xfd, 0x8a, 0xe7, 0x67, 0x9b, 0xf9,
|
||||||
|
0x53, 0xb8, 0x7f, 0x38, 0xfa, 0x7a, 0x56, 0xdb, 0xbd, 0x3c, 0xae, 0x25, 0xed, 0x4b, 0x3f, 0x38,
|
||||||
|
0xd6, 0xd4, 0xca, 0xa5, 0x53, 0x3f, 0xf2, 0x77, 0x95, 0xab, 0xa4, 0x52, 0xbb, 0xbe, 0xb2, 0x06,
|
||||||
|
0x95, 0xeb, 0x56, 0x85, 0x16, 0x7e, 0xda, 0x07, 0x85, 0xda, 0x8f, 0x5a, 0xf3, 0x34, 0xd7, 0x3c,
|
||||||
|
0x2d, 0x3a, 0xd5, 0xfd, 0x6a, 0x63, 0xe7, 0xeb, 0x6e, 0xe1, 0xc2, 0x1b, 0x74, 0x0c, 0x3f, 0x7f,
|
||||||
|
0xd3, 0x18, 0xed, 0x98, 0xdb, 0x7d, 0xad, 0x73, 0xfe, 0x50, 0x78, 0xb0, 0x3a, 0x7e, 0xf3, 0x9b,
|
||||||
|
0xda, 0xba, 0xdc, 0x50, 0xeb, 0x67, 0xdf, 0xbe, 0x19, 0xbb, 0x2d, 0xf5, 0xb1, 0xe3, 0x9d, 0x14,
|
||||||
|
0xe9, 0xfd, 0xa1, 0x53, 0xad, 0x17, 0x73, 0xca, 0x49, 0x3a, 0x39, 0x48, 0x37, 0xab, 0xda, 0xcf,
|
||||||
|
0xe6, 0xcf, 0x61, 0xb6, 0xed, 0xef, 0xed, 0x64, 0xea, 0x0f, 0xe9, 0x3d, 0x2d, 0x93, 0x6c, 0x0c,
|
||||||
|
0xce, 0xcd, 0x61, 0xc1, 0x79, 0x50, 0xbf, 0x15, 0x8b, 0x85, 0x6d, 0x5a, 0x3d, 0xcd, 0x56, 0xf6,
|
||||||
|
0x0e, 0x2b, 0x56, 0xed, 0xbe, 0xb9, 0x67, 0x6c, 0x17, 0xda, 0x8e, 0x59, 0x6b, 0x75, 0xce, 0x7e,
|
||||||
|
0x9a, 0x67, 0xa7, 0xe7, 0xd5, 0x0d, 0xa7, 0x79, 0x6a, 0x3d, 0x54, 0xae, 0x2c, 0xbf, 0xf2, 0x7d,
|
||||||
|
0x6f, 0x7b, 0xb7, 0xdd, 0x3e, 0xcb, 0x9d, 0x0e, 0x4e, 0x0b, 0x97, 0xcd, 0x8b, 0x23, 0x73, 0xa3,
|
||||||
|
0x7b, 0x30, 0xd8, 0x31, 0xab, 0x5a, 0x4f, 0xf3, 0x3a, 0xfb, 0x47, 0xda, 0x5e, 0xf6, 0x32, 0x3d,
|
||||||
|
0x38, 0x6b, 0x38, 0x74, 0x34, 0x72, 0x9e, 0x3a, 0x3d, 0xbf, 0xa0, 0xb8, 0x95, 0x13, 0xbb, 0x73,
|
||||||
|
0x74, 0x72, 0x70, 0xff, 0xc3, 0x31, 0xd4, 0x41, 0x36, 0xfd, 0x78, 0xd5, 0x0d, 0x4e, 0xeb, 0x97,
|
||||||
|
0xc5, 0xe0, 0xe9, 0xf4, 0xfa, 0x38, 0x53, 0xad, 0x3e, 0x64, 0x1d, 0xef, 0x64, 0xa7, 0x78, 0x78,
|
||||||
|
0x70, 0x94, 0xcc, 0xff, 0x34, 0x8b, 0xb4, 0x55, 0xa4, 0xde, 0x70, 0xfb, 0xdb, 0xa0, 0x5e, 0xc8,
|
||||||
|
0x29, 0xd7, 0xdf, 0xd4, 0xeb, 0x51, 0xd6, 0xb6, 0x36, 0xd2, 0xad, 0xd3, 0x5d, 0x6f, 0xb8, 0x71,
|
||||||
|
0x52, 0xd9, 0x3b, 0xdf, 0x69, 0x17, 0x8d, 0xa7, 0xfe, 0xf0, 0xeb, 0xce, 0x51, 0xfe, 0xbe, 0xd1,
|
||||||
|
0xa7, 0xbd, 0x82, 0x91, 0xdc, 0xdb, 0xdd, 0xcd, 0xd0, 0xa7, 0x23, 0x85, 0x3a, 0xb9, 0xd6, 0xce,
|
||||||
|
0xcf, 0xe2, 0x69, 0xcb, 0x49, 0x5e, 0xfe, 0xbc, 0x6a, 0xdf, 0x77, 0xbe, 0xe7, 0x1a, 0xf4, 0xa4,
|
||||||
|
0x37, 0xac, 0x7e, 0x1b, 0x5e, 0xd6, 0xef, 0xf3, 0x86, 0x56, 0xa9, 0xde, 0x14, 0x9e, 0xbc, 0xaa,
|
||||||
|
0x59, 0xad, 0x66, 0xb2, 0x97, 0xf7, 0xde, 0x53, 0x3f, 0xb8, 0x3f, 0xf8, 0x61, 0x9d, 0x56, 0xd3,
|
||||||
|
0x0f, 0x1d, 0xa5, 0x6e, 0x8f, 0x4e, 0x46, 0xfd, 0x8d, 0xe0, 0xdb, 0xd3, 0x61, 0xd6, 0xda, 0x3b,
|
||||||
|
0x69, 0x15, 0xfa, 0x7b, 0x39, 0x7f, 0xa7, 0x36, 0xfc, 0xde, 0xbb, 0xf9, 0x3e, 0xf0, 0x3a, 0xc5,
|
||||||
|
0xdc, 0xd9, 0x8f, 0x1b, 0xd0, 0xee, 0x7e, 0xaf, 0x90, 0xbc, 0x36, 0x46, 0x47, 0xc1, 0xcf, 0x51,
|
||||||
|
0x70, 0x4d, 0x0f, 0x7e, 0x7e, 0x6f, 0xdc, 0x5f, 0x5e, 0x1e, 0x35, 0x0f, 0xaa, 0xc9, 0x56, 0x7f,
|
||||||
|
0x4f, 0xeb, 0xf6, 0x0e, 0xfa, 0x85, 0xe0, 0xc4, 0xce, 0xf9, 0x3f, 0x76, 0x2a, 0x4e, 0xef, 0xe0,
|
||||||
|
0x41, 0xe9, 0x3e, 0xed, 0xee, 0x58, 0x5e, 0x72, 0x7b, 0xf7, 0xab, 0xfd, 0x50, 0xad, 0x55, 0x8d,
|
||||||
|
0x6f, 0xbb, 0xfd, 0xf3, 0xed, 0x9b, 0x73, 0xbb, 0x92, 0xed, 0x1d, 0x7c, 0x0f, 0xac, 0xb3, 0xfb,
|
||||||
|
0xda, 0xa8, 0xbd, 0x3f, 0xaa, 0x79, 0xbb, 0x4f, 0xa3, 0xfd, 0x6f, 0xf7, 0x1e, 0xbd, 0xb9, 0xb0,
|
||||||
|
0x1b, 0x3f, 0xbe, 0xb5, 0x8d, 0xba, 0x77, 0x66, 0x3f, 0xb9, 0x75, 0x37, 0x18, 0xd2, 0x6b, 0x5a,
|
||||||
|
0xe9, 0xd4, 0x3a, 0xfb, 0x8f, 0x27, 0xdb, 0x17, 0x3b, 0xdb, 0x9d, 0xd3, 0x9b, 0x76, 0xed, 0xa6,
|
||||||
|
0x73, 0xd4, 0x18, 0x35, 0xf6, 0x8f, 0x3a, 0x8f, 0x37, 0xaa, 0xdf, 0x38, 0x1f, 0x0e, 0x1f, 0x1a,
|
||||||
|
0xf5, 0xe3, 0x1f, 0xde, 0x93, 0x9f, 0xb9, 0x3a, 0xeb, 0xde, 0x77, 0x9d, 0xe3, 0x87, 0x7c, 0xe3,
|
||||||
|
0xf8, 0xc1, 0xfb, 0xf9, 0x78, 0x58, 0xbf, 0xd8, 0x18, 0x55, 0x7f, 0x8e, 0x1e, 0x8f, 0x46, 0x8d,
|
||||||
|
0xca, 0xee, 0x61, 0x5b, 0xed, 0x7e, 0x3f, 0xdb, 0xde, 0xbb, 0xb1, 0xdb, 0x1a, 0x6d, 0xb8, 0xc7,
|
||||||
|
0xe7, 0xbb, 0x7b, 0xe6, 0x45, 0x72, 0x7f, 0x78, 0x98, 0xa9, 0x59, 0x76, 0xfe, 0x69, 0x7b, 0x78,
|
||||||
|
0xfd, 0x63, 0x57, 0x7d, 0x7c, 0x38, 0xff, 0xfe, 0x70, 0x6c, 0xe4, 0x7f, 0x06, 0x75, 0x48, 0x14,
|
||||||
|
0x69, 0xff, 0x74, 0x50, 0x4d, 0xb6, 0xb3, 0xbd, 0x1f, 0xd7, 0x96, 0x71, 0x1c, 0x6c, 0xdc, 0x8f,
|
||||||
|
0x76, 0x1a, 0x5a, 0xf6, 0x54, 0xfb, 0xf9, 0xad, 0x9a, 0xbb, 0xbe, 0x38, 0x1f, 0x78, 0xf6, 0xb7,
|
||||||
|
0xcc, 0x8f, 0xfa, 0xe1, 0x77, 0x25, 0xeb, 0x1c, 0x98, 0x87, 0x27, 0xdf, 0x82, 0xd3, 0xe3, 0xc3,
|
||||||
|
0x27, 0x77, 0xef, 0xe2, 0xe9, 0xe4, 0x29, 0xbf, 0x71, 0x73, 0x74, 0xa2, 0x0d, 0xac, 0xc2, 0x8e,
|
||||||
|
0xaa, 0xb6, 0x82, 0xc1, 0xe9, 0xf7, 0x9b, 0xea, 0xd3, 0x28, 0x28, 0xdc, 0xb7, 0x86, 0xc7, 0xaa,
|
||||||
|
0x72, 0x71, 0xda, 0x3e, 0xc8, 0x75, 0x2e, 0xd8, 0x9c, 0xa8, 0x6c, 0x7f, 0x3d, 0xbb, 0xcc, 0xd5,
|
||||||
|
0xbc, 0x87, 0xaf, 0xed, 0x76, 0x5b, 0xd7, 0x85, 0xad, 0x35, 0xb2, 0x99, 0x0e, 0x4b, 0x7a, 0x58,
|
||||||
|
0xdf, 0x9a, 0x7e, 0x41, 0xbc, 0x42, 0x58, 0x08, 0xa0, 0x0b, 0x51, 0xd5, 0x4a, 0x08, 0x9b, 0xd7,
|
||||||
|
0xc2, 0xf5, 0x76, 0x26, 0xb4, 0x58, 0x1e, 0x84, 0x62, 0x97, 0x8e, 0xba, 0xbc, 0xc7, 0x62, 0x24,
|
||||||
|
0x8b, 0xd0, 0x0b, 0xeb, 0xf9, 0xfc, 0x7a, 0x04, 0x6e, 0x63, 0xc9, 0x82, 0xbe, 0x15, 0x5f, 0xd0,
|
||||||
|
0x43, 0x5f, 0x08, 0x90, 0xb8, 0x98, 0xe7, 0x49, 0xce, 0xd0, 0x88, 0x06, 0xa0, 0x2a, 0xfc, 0x65,
|
||||||
|
0xb1, 0x4b, 0x74, 0x97, 0x82, 0x3b, 0x58, 0xec, 0x5f, 0x03, 0x28, 0xbe, 0x02, 0x90, 0x27, 0xaa,
|
||||||
|
0xfa, 0xda, 0x10, 0xaf, 0x41, 0x14, 0x5f, 0x83, 0x80, 0x41, 0x0a, 0xaf, 0x0e, 0x52, 0x78, 0x75,
|
||||||
|
0x90, 0x17, 0x21, 0x84, 0xf4, 0xd6, 0x1a, 0x0f, 0x07, 0xc8, 0xaa, 0x8a, 0x29, 0xda, 0x8b, 0x0a,
|
||||||
|
0x7a, 0x4a, 0x83, 0x25, 0xa0, 0x72, 0xb5, 0xad, 0xb5, 0xf0, 0x19, 0x61, 0x2e, 0x9c, 0x40, 0x86,
|
||||||
|
0xcf, 0xfa, 0x7e, 0x3d, 0x3f, 0x3e, 0x22, 0x89, 0x1e, 0xc3, 0x00, 0xc6, 0x43, 0x5c, 0x87, 0xb7,
|
||||||
|
0x77, 0x8d, 0xc0, 0xb3, 0x1e, 0x45, 0x40, 0xa3, 0x41, 0xff, 0x1e, 0xd6, 0x68, 0xb1, 0xb8, 0x44,
|
||||||
|
0xd6, 0x2c, 0x50, 0xd6, 0xb4, 0x88, 0x25, 0xcc, 0x5a, 0x01, 0xcb, 0x50, 0x18, 0x60, 0x0a, 0x0c,
|
||||||
|
0xc8, 0xed, 0x07, 0x61, 0xfe, 0xc0, 0x8d, 0x68, 0xd1, 0xe8, 0x02, 0x0f, 0x4d, 0x3b, 0x30, 0x23,
|
||||||
|
0x2c, 0x4b, 0x03, 0x79, 0x04, 0xb4, 0x8d, 0x06, 0x10, 0x08, 0xa1, 0xa9, 0x2e, 0xd8, 0xd4, 0x3c,
|
||||||
|
0xa7, 0x41, 0xbf, 0x77, 0xce, 0xca, 0x36, 0x10, 0x0b, 0x6e, 0x1d, 0x50, 0x40, 0x80, 0x4d, 0x25,
|
||||||
|
0x10, 0x0b, 0x83, 0x44, 0xce, 0x03, 0x9c, 0x2d, 0x6f, 0x40, 0xcd, 0xcb, 0x3f, 0x04, 0xf9, 0x5a,
|
||||||
|
0x44, 0x0d, 0xd4, 0xb9, 0x3d, 0x5c, 0x2e, 0xc9, 0xc0, 0xb0, 0xfb, 0x80, 0x86, 0xcb, 0x45, 0x08,
|
||||||
|
0x8b, 0x46, 0x14, 0x3a, 0x45, 0x57, 0xc2, 0x96, 0xb6, 0x43, 0x0e, 0xd9, 0xe3, 0xcd, 0x34, 0xef,
|
||||||
|
0xb4, 0x35, 0xe9, 0xbd, 0x16, 0x76, 0xf7, 0x34, 0x5b, 0xd8, 0x3a, 0xa7, 0x5e, 0x0f, 0x44, 0x00,
|
||||||
|
0xc1, 0x93, 0x04, 0x53, 0xc1, 0xf3, 0x03, 0x02, 0xd9, 0x01, 0x2f, 0xb8, 0xa0, 0x5e, 0x30, 0xcd,
|
||||||
|
0x22, 0x9f, 0xec, 0xa0, 0x9c, 0x5a, 0x8d, 0xc7, 0xd6, 0xbc, 0x55, 0x78, 0x58, 0xf7, 0xa8, 0x80,
|
||||||
|
0x43, 0x52, 0x9f, 0xda, 0x41, 0x39, 0x86, 0x27, 0xcd, 0xc9, 0x8d, 0x04, 0x04, 0x02, 0x03, 0x1d,
|
||||||
|
0x30, 0x45, 0xbc, 0x57, 0x0f, 0xf0, 0x01, 0xc2, 0x88, 0x89, 0xea, 0xb8, 0x1f, 0x40, 0x74, 0x49,
|
||||||
|
0x78, 0x7b, 0xe9, 0xf7, 0x35, 0xc1, 0x4d, 0x6c, 0x0e, 0xfb, 0xbc, 0x1e, 0x86, 0xa0, 0xab, 0xe5,
|
||||||
|
0x5a, 0x98, 0x98, 0xf5, 0x84, 0xeb, 0x05, 0x25, 0x42, 0x2a, 0x01, 0x6a, 0xa8, 0x5e, 0x9e, 0x1d,
|
||||||
|
0x2c, 0x4a, 0x38, 0x04, 0xe9, 0x18, 0xc2, 0x56, 0xdd, 0xed, 0x52, 0x52, 0xf1, 0x7d, 0x0b, 0x42,
|
||||||
|
0x5c, 0x27, 0x20, 0x37, 0x95, 0xc3, 0x83, 0xb5, 0xd5, 0xa2, 0xfc, 0x2d, 0x49, 0xae, 0x31, 0x51,
|
||||||
|
0xb2, 0x60, 0x6d, 0x77, 0x8e, 0x63, 0x96, 0xe8, 0x90, 0xa6, 0x6b, 0xd2, 0x17, 0x44, 0xba, 0xf6,
|
||||||
|
0x0e, 0xeb, 0x5e, 0x3a, 0xca, 0x82, 0x65, 0x75, 0xe8, 0x0a, 0xeb, 0xae, 0xd7, 0xae, 0x49, 0xe2,
|
||||||
|
0x63, 0x2b, 0x8b, 0xff, 0xc4, 0x95, 0x72, 0x83, 0x00, 0x13, 0x4c, 0x61, 0xa7, 0x56, 0x25, 0x09,
|
||||||
|
0x2d, 0x9b, 0x95, 0xc2, 0x3f, 0xf1, 0xcd, 0x62, 0x5b, 0x7b, 0x87, 0x05, 0x42, 0x1e, 0xe2, 0x51,
|
||||||
|
0x50, 0x8f, 0xd3, 0x9e, 0xf2, 0x53, 0x99, 0xb4, 0xfd, 0x13, 0x67, 0xc0, 0x4c, 0x70, 0x19, 0xfa,
|
||||||
|
0x05, 0x33, 0x19, 0x35, 0x20, 0xcd, 0x5f, 0x2e, 0xb0, 0xb5, 0x3a, 0x7b, 0x88, 0x42, 0x53, 0xf0,
|
||||||
|
0x1f, 0xa4, 0x78, 0x12, 0x78, 0x76, 0x89, 0xbc, 0x2a, 0x44, 0x56, 0x99, 0x04, 0x04, 0x67, 0xf8,
|
||||||
|
0x4d, 0x12, 0x6f, 0xee, 0x87, 0xb4, 0x22, 0x1f, 0xe7, 0xec, 0x7b, 0xaa, 0xad, 0x7f, 0xc7, 0x6a,
|
||||||
|
0x1b, 0xcc, 0xc3, 0x38, 0x20, 0x22, 0x5e, 0x44, 0x15, 0xb6, 0xb6, 0x27, 0x2d, 0xef, 0xb6, 0xd5,
|
||||||
|
0xf2, 0x1b, 0x82, 0x0e, 0x56, 0xab, 0x24, 0x6b, 0xac, 0x58, 0x19, 0xca, 0x88, 0x19, 0xf6, 0x02,
|
||||||
|
0x21, 0xa4, 0x6b, 0x39, 0xba, 0xa0, 0xc2, 0xb7, 0x01, 0xe1, 0x87, 0x96, 0xcb, 0x09, 0x91, 0x84,
|
||||||
|
0xf0, 0x1a, 0xd5, 0xdc, 0x33, 0x1c, 0xae, 0xe4, 0x69, 0xdf, 0x2b, 0x84, 0x00, 0x27, 0x9e, 0xcb,
|
||||||
|
0x81, 0x8c, 0xe0, 0xf9, 0x1f, 0x30, 0x50, 0x36, 0xe3, 0x0e, 0xac, 0xae, 0x15, 0x44, 0x12, 0x5a,
|
||||||
|
0x3b, 0x34, 0x1e, 0x89, 0xe3, 0x12, 0xb7, 0x45, 0xd8, 0x43, 0x3f, 0x8d, 0x9e, 0xea, 0xbf, 0x2a,
|
||||||
|
0xad, 0x05, 0xa2, 0x66, 0xa5, 0x95, 0x53, 0xb5, 0x98, 0xb4, 0xf2, 0xb3, 0xd2, 0x9a, 0xf6, 0x9d,
|
||||||
|
0x48, 0x2b, 0xbf, 0x42, 0x5a, 0x51, 0x58, 0xda, 0x31, 0x52, 0x58, 0x6b, 0x14, 0xde, 0x2f, 0xbd,
|
||||||
|
0x8e, 0xb1, 0xbf, 0x03, 0x6e, 0xa7, 0x42, 0x76, 0xe8, 0xc0, 0x6a, 0x52, 0xb2, 0xbf, 0xb3, 0x44,
|
||||||
|
0x4e, 0x6b, 0xaf, 0x9a, 0x2c, 0x97, 0x43, 0x48, 0xcd, 0x4c, 0x15, 0x5f, 0x20, 0x5c, 0x38, 0x98,
|
||||||
|
0x19, 0x0b, 0x9c, 0x41, 0x36, 0x66, 0xc4, 0x3e, 0x8b, 0x8a, 0xfe, 0x86, 0xa8, 0xe8, 0xef, 0x26,
|
||||||
|
0xdf, 0x30, 0xb7, 0xa9, 0xf7, 0xb7, 0xa2, 0xa8, 0xc2, 0xdb, 0x98, 0x5d, 0x23, 0xef, 0x62, 0xf6,
|
||||||
|
0x72, 0x96, 0xdb, 0x4b, 0xc7, 0xfa, 0xd9, 0x9f, 0x65, 0x7a, 0xed, 0xed, 0x7e, 0xec, 0x25, 0xa6,
|
||||||
|
0xd7, 0xe2, 0x5c, 0x73, 0xa6, 0x2f, 0xdf, 0xc0, 0xb5, 0xb1, 0x84, 0xed, 0xb5, 0xa5, 0x4a, 0x7e,
|
||||||
|
0x17, 0xdb, 0x47, 0x46, 0x17, 0x5d, 0xdd, 0x94, 0x71, 0x6c, 0xf8, 0x9d, 0xe8, 0x21, 0xb4, 0xf7,
|
||||||
|
0xd7, 0x15, 0xcd, 0x59, 0x66, 0xe3, 0x46, 0x3c, 0x4f, 0x23, 0xe8, 0x6f, 0x56, 0xd0, 0xec, 0x50,
|
||||||
|
0x47, 0xf8, 0x03, 0x01, 0x12, 0x46, 0x19, 0x97, 0x18, 0x68, 0xac, 0x45, 0x06, 0x7c, 0x92, 0xee,
|
||||||
|
0xb8, 0x10, 0xa5, 0x39, 0xff, 0x0d, 0x0e, 0xa3, 0xd1, 0x39, 0x8b, 0x7f, 0xc0, 0x99, 0x05, 0x86,
|
||||||
|
0xd7, 0xa6, 0x10, 0x39, 0xb4, 0xbb, 0xe0, 0x62, 0x84, 0xad, 0x0b, 0x76, 0x0b, 0x0b, 0x1f, 0xbb,
|
||||||
|
0x87, 0x21, 0xff, 0x69, 0xf0, 0x3d, 0x87, 0x1f, 0x25, 0xbf, 0x74, 0xa9, 0x4a, 0xb3, 0xfc, 0x62,
|
||||||
|
0x92, 0x90, 0x84, 0xd2, 0x98, 0xee, 0x7f, 0x57, 0xb1, 0x81, 0xcb, 0x60, 0xda, 0x28, 0x4c, 0x58,
|
||||||
|
0xfd, 0xed, 0x44, 0xe5, 0x6d, 0x02, 0xc3, 0xcc, 0x7b, 0x32, 0xf4, 0x8e, 0x35, 0x88, 0x92, 0xe5,
|
||||||
|
0xb5, 0x57, 0xb2, 0xe5, 0x65, 0xd5, 0x6f, 0xac, 0xee, 0x5b, 0xcd, 0x07, 0x40, 0x36, 0x44, 0xab,
|
||||||
|
0x3c, 0x47, 0x94, 0x09, 0x31, 0x4c, 0xa2, 0xd7, 0x96, 0x96, 0xc5, 0x59, 0x2a, 0xad, 0x16, 0x48,
|
||||||
|
0xa1, 0x5e, 0x30, 0x72, 0x24, 0x87, 0x45, 0x66, 0xc8, 0x19, 0xf1, 0x6a, 0x72, 0x87, 0x57, 0x1d,
|
||||||
|
0x55, 0x31, 0x62, 0x0d, 0xa9, 0xd8, 0xe3, 0x14, 0xdc, 0x1d, 0x16, 0x88, 0x9a, 0x33, 0x32, 0x24,
|
||||||
|
0xc3, 0x9a, 0xd4, 0x54, 0x26, 0x85, 0xd7, 0xe1, 0x1d, 0x99, 0xbb, 0x23, 0xb1, 0x3b, 0x7c, 0xf2,
|
||||||
|
0x14, 0x4b, 0x4f, 0x3f, 0x39, 0x0d, 0xbf, 0x57, 0x8e, 0x7f, 0xfe, 0x76, 0xe9, 0xe0, 0x65, 0x69,
|
||||||
|
0xac, 0x16, 0x86, 0xa6, 0x02, 0x2f, 0x1d, 0x6d, 0xa0, 0x75, 0x52, 0xda, 0x20, 0xa5, 0x75, 0x21,
|
||||||
|
0x83, 0x8e, 0xdd, 0x69, 0xa4, 0x88, 0x57, 0x5a, 0x13, 0x13, 0x6d, 0x2d, 0xa5, 0xc2, 0x9f, 0x76,
|
||||||
|
0xa8, 0x02, 0x17, 0x21, 0xcc, 0x55, 0xa6, 0x5b, 0x24, 0x51, 0x87, 0xab, 0x02, 0xf6, 0x86, 0x4b,
|
||||||
|
0xad, 0xa9, 0xa4, 0x54, 0xf8, 0xa7, 0xa5, 0x18, 0x38, 0x29, 0x20, 0x40, 0x5d, 0x85, 0xe7, 0x6a,
|
||||||
|
0x7e, 0x82, 0x1e, 0xba, 0x82, 0x44, 0xf2, 0xd3, 0xc1, 0x0e, 0x01, 0x6d, 0x55, 0x03, 0x51, 0xa9,
|
||||||
|
0x90, 0xd2, 0xab, 0xa0, 0x04, 0x04, 0xc9, 0x13, 0x85, 0x75, 0xde, 0xb8, 0xca, 0x1c, 0xe6, 0xf8,
|
||||||
|
0xb0, 0xf5, 0x1c, 0xb4, 0x43, 0x9e, 0x5f, 0x1c, 0x14, 0xc3, 0x2a, 0x80, 0xc2, 0x2b, 0x00, 0x1d,
|
||||||
|
0x55, 0xbb, 0x52, 0xd5, 0xba, 0x8a, 0x54, 0xdb, 0x9a, 0x9c, 0x4b, 0x65, 0x64, 0xe4, 0x4e, 0x2e,
|
||||||
|
0x6c, 0x10, 0x4d, 0x56, 0x73, 0x24, 0x6c, 0xd2, 0x0e, 0x54, 0xdc, 0x48, 0xa8, 0xcf, 0x68, 0x22,
|
||||||
|
0xaa, 0x04, 0xbc, 0x79, 0x66, 0x4e, 0x0c, 0x99, 0x6f, 0x2b, 0x08, 0x0b, 0xd5, 0x21, 0xac, 0x1f,
|
||||||
|
0xcf, 0xb9, 0x08, 0x84, 0xbd, 0x16, 0xb6, 0xae, 0x49, 0x89, 0x4c, 0x7c, 0x01, 0x57, 0xfb, 0x9c,
|
||||||
|
0xef, 0x9a, 0xdb, 0x8b, 0x88, 0xbc, 0x97, 0x13, 0x06, 0x24, 0xd1, 0xb8, 0xd7, 0x13, 0x07, 0x8d,
|
||||||
|
0xa7, 0xc4, 0x96, 0x18, 0xd3, 0xda, 0xfc, 0xe8, 0x37, 0xc2, 0xd6, 0xcd, 0xca, 0xd1, 0x57, 0x0d,
|
||||||
|
0xbe, 0xb6, 0x7c, 0xf4, 0x9b, 0x99, 0xd1, 0x67, 0x05, 0x38, 0xe7, 0x8a, 0xd2, 0xbd, 0xb0, 0x48,
|
||||||
|
0x12, 0x8f, 0x8f, 0x63, 0x47, 0x4e, 0xe2, 0x02, 0x9d, 0x9c, 0xa8, 0x81, 0xc6, 0x1d, 0xb8, 0x0e,
|
||||||
|
0x0b, 0x32, 0x1d, 0xea, 0x51, 0xb2, 0xd9, 0xf0, 0xb6, 0x20, 0xe9, 0xc3, 0xaf, 0x35, 0x52, 0x45,
|
||||||
|
0x73, 0xc7, 0x4c, 0x3e, 0x74, 0x92, 0x06, 0x1a, 0x39, 0x9d, 0x12, 0x32, 0x71, 0xb6, 0xd1, 0xe0,
|
||||||
|
0x9c, 0x4b, 0xce, 0x0c, 0x82, 0x0a, 0x51, 0xb5, 0x66, 0x4a, 0x07, 0x59, 0xa1, 0x44, 0xc0, 0x31,
|
||||||
|
0x53, 0x34, 0x8c, 0x7b, 0xc9, 0xf9, 0xf3, 0x3a, 0x6c, 0x29, 0xea, 0xb6, 0x19, 0x33, 0x3d, 0x8f,
|
||||||
|
0xe2, 0x5c, 0x5d, 0xb4, 0x0e, 0xbe, 0x4d, 0x38, 0x73, 0x68, 0x0e, 0x06, 0xf7, 0x9a, 0xe1, 0x3e,
|
||||||
|
0x02, 0x22, 0x4d, 0xe3, 0x59, 0xc5, 0x68, 0x1f, 0x21, 0x42, 0xca, 0x28, 0x76, 0xe8, 0x90, 0x09,
|
||||||
|
0x65, 0x81, 0xdc, 0xf7, 0x63, 0x5d, 0x43, 0x59, 0x4e, 0x64, 0x36, 0x31, 0xea, 0xf8, 0xa6, 0x27,
|
||||||
|
0xb3, 0xee, 0x15, 0x72, 0xe1, 0x9b, 0xac, 0x51, 0xf0, 0xcb, 0xc0, 0x79, 0x93, 0x10, 0x59, 0x53,
|
||||||
|
0x6c, 0x1b, 0x16, 0x7c, 0x51, 0x9a, 0xdf, 0xce, 0x8e, 0xc8, 0x7a, 0x7b, 0xc6, 0x30, 0x35, 0xb7,
|
||||||
|
0x5f, 0xbc, 0x72, 0xd4, 0x48, 0xba, 0xa1, 0x10, 0xd6, 0x5e, 0xe2, 0x90, 0x18, 0x76, 0xa0, 0x0b,
|
||||||
|
0x67, 0xc6, 0x70, 0x9f, 0x99, 0x11, 0xef, 0x32, 0x1d, 0x1f, 0xf4, 0xca, 0xec, 0x63, 0x42, 0xc7,
|
||||||
|
0x5b, 0x69, 0x88, 0x44, 0xc5, 0xe1, 0x2d, 0xa7, 0xe5, 0xae, 0x72, 0x01, 0xd1, 0x50, 0xd1, 0xd1,
|
||||||
|
0x05, 0xd6, 0x0d, 0xd3, 0x1a, 0x2c, 0xd1, 0xc0, 0xd3, 0xa8, 0x7d, 0x89, 0x50, 0xe6, 0xf7, 0xc1,
|
||||||
|
0x5f, 0xd3, 0x03, 0x57, 0x43, 0x6f, 0x14, 0x62, 0x8f, 0x54, 0xb1, 0xf6, 0x8a, 0x2e, 0x22, 0x5e,
|
||||||
|
0xda, 0x46, 0x4f, 0x9d, 0x28, 0x0e, 0x6e, 0xa6, 0xb4, 0xc7, 0xf5, 0xec, 0x53, 0xc7, 0x9c, 0x1b,
|
||||||
|
0xe0, 0xed, 0xf8, 0xb5, 0x59, 0xfc, 0x6b, 0x73, 0x03, 0x44, 0xf3, 0xf1, 0x7d, 0xf8, 0xa7, 0x62,
|
||||||
|
0xc3, 0x5a, 0x56, 0x27, 0xb3, 0x35, 0x19, 0x11, 0x0c, 0xd2, 0x87, 0xbc, 0x5e, 0xd8, 0xba, 0xe2,
|
||||||
|
0x17, 0xb0, 0x1a, 0x28, 0x72, 0x96, 0x77, 0xe0, 0xbe, 0x2f, 0x15, 0xad, 0xbb, 0x46, 0xb4, 0x91,
|
||||||
|
0x87, 0xe7, 0x71, 0xfd, 0x52, 0x3a, 0xdd, 0xb6, 0x82, 0x4e, 0xbf, 0x21, 0x37, 0xdd, 0x6e, 0x7a,
|
||||||
|
0x48, 0xbd, 0x07, 0x1f, 0x62, 0xfd, 0x6e, 0x1a, 0xab, 0x67, 0x29, 0x16, 0x0e, 0x43, 0x34, 0x3c,
|
||||||
|
0x29, 0x27, 0xa7, 0x61, 0xe2, 0x35, 0xd2, 0x5d, 0xd0, 0x51, 0xfa, 0xac, 0x56, 0xd9, 0x39, 0xac,
|
||||||
|
0xc9, 0x5d, 0x96, 0x48, 0xb0, 0x90, 0x4d, 0x17, 0xfe, 0x6e, 0xd8, 0x86, 0xf3, 0x00, 0xd9, 0x0b,
|
||||||
|
0xb5, 0x7b, 0xe9, 0x4a, 0x03, 0xc2, 0xa9, 0xcd, 0xb4, 0x01, 0x0c, 0x00, 0xa5, 0x53, 0x77, 0x35,
|
||||||
|
0x3b, 0x03, 0xf9, 0x91, 0x04, 0xbe, 0x61, 0xb1, 0xdc, 0xae, 0x26, 0x42, 0x89, 0x41, 0x4e, 0xf4,
|
||||||
|
0xd5, 0x34, 0x9c, 0x81, 0xe1, 0x73, 0x17, 0x84, 0xc4, 0x56, 0xd9, 0x3d, 0x93, 0x37, 0x7f, 0x84,
|
||||||
|
0x61, 0x57, 0xd3, 0xb3, 0x7a, 0x41, 0x2c, 0x30, 0x4e, 0xdf, 0x1b, 0xf0, 0x84, 0xb5, 0x02, 0xe4,
|
||||||
|
0xc0, 0x80, 0xb4, 0x0d, 0x82, 0xe4, 0x73, 0xdc, 0xbf, 0xd6, 0xd7, 0xf1, 0x92, 0xa4, 0xae, 0xc9,
|
||||||
|
0xc9, 0xf1, 0xf9, 0x05, 0x61, 0x32, 0x02, 0x11, 0xad, 0x4b, 0xd8, 0x7c, 0x68, 0x99, 0xaa, 0x2e,
|
||||||
|
0xa4, 0xef, 0x7d, 0xd7, 0x49, 0xfb, 0x81, 0x11, 0xd0, 0xbf, 0x04, 0x92, 0x32, 0xc9, 0xba, 0xc0,
|
||||||
|
0x9e, 0xd6, 0x1c, 0x53, 0x5f, 0xff, 0x6b, 0x9d, 0xa4, 0xea, 0x44, 0xa8, 0xf2, 0xc0, 0x31, 0x75,
|
||||||
|
0x01, 0x63, 0x96, 0x88, 0xd1, 0xeb, 0x81, 0x0b, 0x67, 0xbb, 0xad, 0xac, 0xb3, 0xb0, 0x5e, 0x06,
|
||||||
|
0x4b, 0x87, 0x04, 0xa0, 0x63, 0xf0, 0x41, 0x85, 0x8f, 0x97, 0x0e, 0x88, 0x9f, 0x07, 0xd0, 0x2d,
|
||||||
|
0x02, 0x71, 0x28, 0x31, 0x5d, 0x67, 0x1d, 0x5c, 0xbd, 0x6d, 0xc3, 0x84, 0x31, 0x47, 0x00, 0x39,
|
||||||
|
0xa0, 0x24, 0xe8, 0x50, 0x9f, 0x12, 0x93, 0xb6, 0x60, 0x8a, 0x98, 0xc4, 0x72, 0x10, 0xd0, 0x23,
|
||||||
|
0x3c, 0x0c, 0x82, 0xc5, 0xa1, 0xc9, 0x4a, 0x40, 0x6e, 0x8b, 0x37, 0xc3, 0x08, 0x2d, 0xab, 0xdd,
|
||||||
|
0xe7, 0x9b, 0xbc, 0xf2, 0xc8, 0xe8, 0xda, 0x7f, 0x39, 0x1f, 0x53, 0x04, 0x4f, 0xa1, 0x60, 0x19,
|
||||||
|
0xb1, 0x44, 0x70, 0x40, 0xc3, 0x31, 0xff, 0xc6, 0xcd, 0xfb, 0xbf, 0x1c, 0x42, 0x3e, 0x72, 0x44,
|
||||||
|
0xd4, 0x2f, 0xe1, 0x1d, 0x21, 0x82, 0xd4, 0x31, 0x38, 0xc7, 0xfc, 0x9e, 0x90, 0x96, 0x67, 0xc1,
|
||||||
|
0x94, 0xb0, 0x47, 0x7f, 0xb3, 0xc4, 0x25, 0x02, 0xd0, 0xa6, 0x00, 0x7d, 0x96, 0xab, 0xfe, 0x0d,
|
||||||
|
0x39, 0x40, 0xf4, 0x30, 0x33, 0x7d, 0x18, 0x8d, 0xe7, 0x3a, 0x25, 0xb2, 0x15, 0x35, 0x4e, 0x86,
|
||||||
|
0xc9, 0x82, 0xec, 0xe6, 0x01, 0x5b, 0xad, 0x19, 0xc8, 0x15, 0x9a, 0xe9, 0x18, 0x4c, 0xf2, 0x31,
|
||||||
|
0xb5, 0x30, 0xad, 0xfc, 0xb5, 0xfe, 0x2c, 0x80, 0xa8, 0x4b, 0x2d, 0xc3, 0xf6, 0xe9, 0xf8, 0x8d,
|
||||||
|
0x7a, 0x01, 0x64, 0x55, 0x3e, 0xfa, 0x01, 0x88, 0xdd, 0x72, 0xda, 0xba, 0x30, 0xa5, 0x33, 0x9c,
|
||||||
|
0xab, 0xe7, 0x81, 0x87, 0xa5, 0x40, 0x6e, 0x2d, 0x7c, 0x8c, 0xc0, 0xeb, 0x53, 0x09, 0x4b, 0x48,
|
||||||
|
0x42, 0x69, 0x7d, 0x16, 0x8c, 0x09, 0x70, 0x5d, 0x02, 0x5f, 0xd2, 0x16, 0x4a, 0xcf, 0x82, 0x65,
|
||||||
|
0x2e, 0x83, 0xd0, 0x10, 0x02, 0xfa, 0xde, 0xce, 0x3d, 0x42, 0xbe, 0x84, 0xbb, 0xf1, 0x58, 0x28,
|
||||||
|
0xa3, 0x8d, 0x1a, 0xcd, 0x66, 0x14, 0xd2, 0xe2, 0x9e, 0x59, 0x2d, 0x5b, 0x2d, 0x2a, 0x82, 0xc4,
|
||||||
|
0x5b, 0x31, 0xff, 0x9b, 0x3c, 0x29, 0x14, 0x04, 0x89, 0x67, 0x3c, 0x6e, 0xbb, 0x6d, 0xd3, 0xe3,
|
||||||
|
0x56, 0x8b, 0x27, 0x03, 0x12, 0x24, 0x03, 0x95, 0x9c, 0x94, 0x8b, 0x4e, 0x9c, 0xe0, 0x09, 0x95,
|
||||||
|
0xe9, 0x6d, 0x41, 0x52, 0x0b, 0x75, 0x75, 0x06, 0x60, 0x0e, 0x02, 0x31, 0x1c, 0x02, 0x58, 0xae,
|
||||||
|
0x92, 0x91, 0x32, 0xe1, 0xb9, 0x16, 0x3c, 0x5d, 0x13, 0xbb, 0x2d, 0x48, 0x1b, 0xb1, 0x3b, 0x55,
|
||||||
|
0x99, 0x7f, 0xaa, 0xe6, 0x7e, 0xcc, 0xd2, 0xe6, 0xfc, 0x41, 0xd2, 0xd4, 0x39, 0xda, 0xd4, 0x39,
|
||||||
|
0xe2, 0xd4, 0x59, 0xea, 0x34, 0x65, 0xe1, 0x31, 0x92, 0x87, 0x81, 0x32, 0x73, 0x0d, 0xaf, 0x7b,
|
||||||
|
0x8e, 0x56, 0xdf, 0xe1, 0x73, 0x0e, 0x9c, 0x1f, 0x73, 0x95, 0x67, 0x7b, 0xdb, 0xac, 0x1e, 0xe6,
|
||||||
|
0x27, 0xa8, 0xf8, 0x8c, 0x06, 0x5a, 0xf1, 0x3c, 0x63, 0xa4, 0xdf, 0xde, 0x49, 0x91, 0xaf, 0xd7,
|
||||||
|
0x17, 0x8d, 0x28, 0x69, 0xba, 0xcd, 0x3e, 0x4e, 0x7d, 0x19, 0xd0, 0xd4, 0x6c, 0x8a, 0x97, 0xdb,
|
||||||
|
0xa3, 0x7d, 0x33, 0xb1, 0x58, 0xcf, 0x14, 0x65, 0x16, 0x88, 0x26, 0x17, 0x4c, 0x6c, 0x35, 0x8e,
|
||||||
|
0xd9, 0x6c, 0x7a, 0x15, 0x02, 0x2d, 0x74, 0x48, 0x81, 0xbe, 0x12, 0x51, 0xb4, 0x90, 0x8b, 0x92,
|
||||||
|
0xbd, 0x1a, 0x68, 0xa1, 0xa6, 0x18, 0x0e, 0x58, 0xb6, 0x69, 0x40, 0x1c, 0xfd, 0x83, 0x2a, 0x99,
|
||||||
|
0x7a, 0x4a, 0x95, 0x8c, 0xd5, 0x18, 0xe6, 0xf6, 0x7b, 0xc4, 0xb2, 0xa9, 0x1b, 0x72, 0x54, 0x4b,
|
||||||
|
0xdf, 0xc7, 0x23, 0xbb, 0x21, 0xa9, 0x2e, 0xb4, 0xf3, 0x62, 0xb6, 0x7f, 0x6b, 0xde, 0x85, 0xc3,
|
||||||
|
0xbc, 0x80, 0x78, 0x61, 0x4f, 0x4f, 0x94, 0x56, 0xa1, 0xf6, 0xde, 0x89, 0x7a, 0xd9, 0x86, 0xca,
|
||||||
|
0x32, 0xec, 0x28, 0x04, 0x4b, 0xff, 0xa0, 0x94, 0xd9, 0xee, 0x88, 0xbe, 0x64, 0x94, 0x4f, 0x9f,
|
||||||
|
0x12, 0x00, 0xa0, 0x8a, 0x2f, 0x49, 0x68, 0xc9, 0x76, 0xc4, 0xaa, 0xc1, 0xfa, 0x6c, 0xb0, 0x70,
|
||||||
|
0x37, 0x60, 0xd9, 0x78, 0x5f, 0x00, 0x42, 0x2d, 0x45, 0xbb, 0x17, 0x2b, 0x28, 0x02, 0xbd, 0x29,
|
||||||
|
0x22, 0xc3, 0xd7, 0xd5, 0x05, 0x58, 0xeb, 0xf0, 0x03, 0x1c, 0x23, 0x2c, 0x7b, 0x3e, 0x7e, 0x96,
|
||||||
|
0xad, 0x5f, 0xbf, 0x12, 0x70, 0x7f, 0xcb, 0xee, 0xef, 0x04, 0x0e, 0xda, 0x41, 0x65, 0x9f, 0x03,
|
||||||
|
0x28, 0xf3, 0x5d, 0xa3, 0x29, 0x3b, 0x4d, 0x58, 0xd0, 0x02, 0x1a, 0x72, 0x04, 0xb2, 0xe3, 0x0b,
|
||||||
|
0xb6, 0x28, 0xed, 0xeb, 0x23, 0x64, 0x95, 0x79, 0xe8, 0x47, 0x78, 0xa0, 0xa1, 0xa9, 0xd5, 0x74,
|
||||||
|
0x48, 0x01, 0x08, 0x8b, 0x68, 0xcb, 0x35, 0x19, 0xc3, 0x5f, 0x2a, 0xd5, 0x64, 0xd7, 0xb1, 0x5d,
|
||||||
|
0xc3, 0xd4, 0xa3, 0xe9, 0x97, 0x10, 0x9f, 0x71, 0x44, 0xba, 0x5a, 0x64, 0xcc, 0xe3, 0x9c, 0x18,
|
||||||
|
0x41, 0x07, 0xec, 0x11, 0x9e, 0x55, 0x02, 0xb0, 0x7b, 0x08, 0xaa, 0x68, 0x02, 0x63, 0x30, 0x9b,
|
||||||
|
0x89, 0x6f, 0x75, 0x5f, 0x96, 0x7f, 0x86, 0x76, 0xfc, 0x92, 0x5e, 0x78, 0xaa, 0x18, 0x19, 0x7c,
|
||||||
|
0x82, 0x7e, 0xd0, 0x63, 0x1e, 0xfb, 0xd7, 0x2f, 0x73, 0x53, 0xfd, 0xf5, 0xcb, 0xd8, 0x54, 0x45,
|
||||||
|
0x90, 0xa8, 0xa9, 0xd7, 0x64, 0x96, 0x59, 0x01, 0xbe, 0x9a, 0xcc, 0x4b, 0x1e, 0xa2, 0x34, 0xe2,
|
||||||
|
0x6d, 0xba, 0x09, 0x57, 0xbc, 0x4d, 0x37, 0x50, 0x84, 0x10, 0xbb, 0x7f, 0x67, 0x69, 0x18, 0x11,
|
||||||
|
0x92, 0x66, 0x52, 0x90, 0x48, 0x9d, 0xd7, 0x48, 0xe0, 0xd6, 0x48, 0x0a, 0x24, 0xd1, 0x35, 0x1e,
|
||||||
|
0x28, 0xf1, 0xfb, 0x1e, 0x06, 0x08, 0x96, 0x8f, 0x3b, 0xf6, 0xb8, 0x8a, 0xf3, 0x28, 0x00, 0xac,
|
||||||
|
0x3e, 0xdc, 0xc2, 0xe7, 0x3b, 0xe3, 0x22, 0x66, 0x01, 0x82, 0xb4, 0x2f, 0x9b, 0x5e, 0x98, 0x29,
|
||||||
|
0x24, 0x6a, 0x12, 0x78, 0x50, 0xc9, 0x94, 0x0c, 0x91, 0xa9, 0x6a, 0xa0, 0xef, 0x23, 0x6b, 0xec,
|
||||||
|
0xd9, 0x0e, 0xa4, 0x1a, 0x89, 0xe8, 0xa9, 0x8c, 0x89, 0x87, 0xd4, 0x03, 0x6f, 0xc6, 0x14, 0xbc,
|
||||||
|
0xad, 0xab, 0x65, 0xb6, 0xfd, 0xac, 0xeb, 0x1e, 0xb0, 0xb4, 0xad, 0x83, 0x8d, 0xc0, 0xe4, 0x4d,
|
||||||
|
0x20, 0x8e, 0x96, 0xae, 0x94, 0x5b, 0x9b, 0x03, 0xd9, 0xa6, 0x4e, 0x3b, 0xe8, 0x94, 0x5b, 0x49,
|
||||||
|
0x3d, 0x2b, 0x3e, 0xe3, 0x83, 0x23, 0x7d, 0x70, 0xdb, 0xba, 0x93, 0x8e, 0xf1, 0x2b, 0xa9, 0xde,
|
||||||
|
0x49, 0x5f, 0xd9, 0x85, 0x76, 0x27, 0x35, 0xd8, 0x45, 0x86, 0xa3, 0xa6, 0x7a, 0x2b, 0x9d, 0x95,
|
||||||
|
0x02, 0xfd, 0x10, 0x34, 0x26, 0xb7, 0x6c, 0x17, 0xb0, 0xd2, 0xb4, 0x89, 0x8e, 0x87, 0x96, 0xad,
|
||||||
|
0x56, 0x22, 0xda, 0x7b, 0x87, 0x81, 0xc5, 0x32, 0x85, 0xd5, 0x1d, 0x62, 0xa6, 0x44, 0x22, 0x48,
|
||||||
|
0x6e, 0x8b, 0xff, 0xd1, 0x74, 0x24, 0x03, 0xdb, 0x9e, 0x6d, 0x3d, 0xf8, 0x6c, 0x26, 0x13, 0x66,
|
||||||
|
0x4a, 0x4d, 0x25, 0xec, 0x14, 0x5c, 0x8b, 0xe2, 0xb8, 0x27, 0xf7, 0xfa, 0x7e, 0x27, 0x71, 0x7b,
|
||||||
|
0x24, 0x1d, 0x4b, 0x5f, 0xa5, 0x86, 0x64, 0x4b, 0x54, 0x0a, 0xee, 0xb0, 0xdd, 0x77, 0xbd, 0x20,
|
||||||
|
0x91, 0x80, 0x3b, 0x51, 0xdf, 0xa2, 0xb7, 0xb9, 0xbb, 0x54, 0x00, 0x1f, 0xdc, 0x92, 0x0f, 0xf5,
|
||||||
|
0x5b, 0x59, 0x96, 0x7b, 0x77, 0xe5, 0xc3, 0x39, 0xa8, 0x2c, 0x42, 0x65, 0x43, 0xa8, 0x47, 0x9c,
|
||||||
|
0x15, 0x43, 0x74, 0x6e, 0x67, 0xfa, 0x61, 0xc8, 0xb8, 0x54, 0xd1, 0x15, 0xe9, 0x02, 0x05, 0x86,
|
||||||
|
0x82, 0xe1, 0x9c, 0x29, 0x65, 0xba, 0x79, 0x56, 0xa6, 0xc9, 0x24, 0x37, 0x5a, 0x60, 0xf2, 0x96,
|
||||||
|
0xde, 0x81, 0xfd, 0x05, 0xb7, 0xca, 0x1d, 0x58, 0x43, 0x70, 0x0b, 0x52, 0x71, 0xe1, 0x0b, 0x64,
|
||||||
|
0xe2, 0xc1, 0x57, 0xe6, 0x4e, 0x0a, 0x27, 0x5d, 0x4a, 0x45, 0xde, 0xfb, 0x22, 0x7c, 0x0c, 0x37,
|
||||||
|
0x15, 0x90, 0xf8, 0x50, 0xa7, 0xa2, 0x04, 0xc8, 0x52, 0x6a, 0x0c, 0x15, 0x08, 0xb5, 0x8c, 0xa8,
|
||||||
|
0x74, 0xdd, 0xfc, 0xf4, 0x09, 0x91, 0xc1, 0x9c, 0xc6, 0x0b, 0x0d, 0x2e, 0x5c, 0x98, 0xa7, 0x30,
|
||||||
|
0x81, 0x92, 0x2a, 0xa0, 0x1c, 0xea, 0x3a, 0x4c, 0x6d, 0xe7, 0x8b, 0x00, 0x52, 0x7c, 0xfc, 0x42,
|
||||||
|
0xc1, 0xaa, 0x84, 0x92, 0x20, 0x94, 0x86, 0x78, 0x91, 0x6c, 0xe2, 0xa7, 0x38, 0x66, 0xa2, 0x9d,
|
||||||
|
0x74, 0x48, 0xaa, 0xba, 0xde, 0x7c, 0xb9, 0x0b, 0x13, 0x3c, 0x7b, 0x0c, 0xe4, 0x3d, 0x22, 0x79,
|
||||||
|
0x40, 0x23, 0x90, 0xce, 0xb4, 0xe6, 0x6d, 0x6a, 0xb9, 0x1c, 0xb4, 0x77, 0xd0, 0x9b, 0x48, 0xcd,
|
||||||
|
0xad, 0x29, 0xd9, 0x26, 0xc3, 0x60, 0xb0, 0x4f, 0x17, 0x41, 0x2d, 0xf1, 0x99, 0x39, 0xe2, 0x5b,
|
||||||
|
0x0a, 0x1a, 0x72, 0xee, 0xf4, 0x5b, 0x30, 0x3f, 0xc9, 0x05, 0xc6, 0x40, 0x12, 0xc9, 0xb0, 0x51,
|
||||||
|
0xee, 0x1a, 0xbd, 0x04, 0x05, 0x35, 0xc8, 0x81, 0xcb, 0x97, 0xb1, 0x84, 0x9a, 0x17, 0xe5, 0x9e,
|
||||||
|
0x61, 0xb2, 0x45, 0x35, 0xa1, 0x49, 0x82, 0x22, 0x88, 0xa2, 0x7c, 0xef, 0x5a, 0x4e, 0x42, 0x00,
|
||||||
|
0x6e, 0x1e, 0xf5, 0xc7, 0x64, 0x37, 0xd9, 0x4e, 0x06, 0x49, 0x7f, 0xba, 0x1a, 0x4f, 0x9b, 0x2a,
|
||||||
|
0x49, 0x5d, 0x95, 0x2a, 0xff, 0xb1, 0xc1, 0x80, 0x7e, 0xfd, 0xa2, 0xba, 0x0e, 0x62, 0xfd, 0x92,
|
||||||
|
0xb8, 0xe0, 0xf6, 0xf2, 0x28, 0x4a, 0xa8, 0x5e, 0xb1, 0xf4, 0x98, 0xd4, 0x81, 0x48, 0xa6, 0xe6,
|
||||||
|
0xf1, 0x18, 0x9b, 0xe6, 0x14, 0x7b, 0x11, 0x59, 0x7c, 0x4c, 0xbf, 0xff, 0x47, 0x17, 0xfc, 0xe4,
|
||||||
|
0x05, 0xd8, 0x5d, 0x72, 0x3e, 0xdc, 0x2c, 0x4f, 0x82, 0x16, 0xce, 0x79, 0xc0, 0x8d, 0xdb, 0xd6,
|
||||||
|
0x27, 0x09, 0xd2, 0xea, 0x81, 0xa3, 0x8d, 0x86, 0x68, 0xc8, 0x28, 0x63, 0x02, 0xf1, 0x86, 0xe9,
|
||||||
|
0x51, 0x99, 0x6e, 0xa1, 0xe1, 0xa2, 0x14, 0xff, 0x72, 0x04, 0xa9, 0x0b, 0xdf, 0xe4, 0xd3, 0x27,
|
||||||
|
0x02, 0xfe, 0x17, 0x9a, 0x02, 0xbc, 0xb7, 0xc7, 0x4d, 0x3d, 0x4c, 0x8a, 0x56, 0x0f, 0xc4, 0xf6,
|
||||||
|
0xe6, 0xa2, 0x51, 0x78, 0x8e, 0xf2, 0x12, 0x30, 0xdb, 0xe0, 0x99, 0x01, 0xd7, 0x5e, 0x02, 0xbf,
|
||||||
|
0x9c, 0x47, 0x9e, 0x01, 0x1b, 0x09, 0x2f, 0xde, 0xcc, 0x3b, 0xcb, 0x49, 0xa4, 0x40, 0x8e, 0x1f,
|
||||||
|
0x52, 0x81, 0x09, 0xf8, 0xe5, 0xb1, 0xc4, 0xcf, 0x9c, 0xe0, 0x75, 0xb7, 0x84, 0x87, 0x4b, 0xf0,
|
||||||
|
0xaa, 0x59, 0x12, 0x6a, 0x67, 0x67, 0xc7, 0x67, 0x1f, 0xd2, 0x0e, 0xcc, 0x00, 0x70, 0xe9, 0xe0,
|
||||||
|
0xc5, 0x0d, 0x07, 0xb2, 0xa9, 0x07, 0xc7, 0x1d, 0x3a, 0xe1, 0xa9, 0x0f, 0x59, 0x98, 0x98, 0x6d,
|
||||||
|
0x52, 0x5f, 0xd0, 0x1b, 0x6a, 0xe9, 0x61, 0xf5, 0xda, 0x14, 0x2b, 0xde, 0x88, 0xd2, 0xce, 0xdb,
|
||||||
|
0xe0, 0xca, 0x1d, 0xd0, 0xd5, 0x79, 0x92, 0xad, 0x3f, 0x9b, 0x8d, 0xad, 0xef, 0x95, 0xb3, 0xa3,
|
||||||
|
0xfd, 0xa3, 0xbd, 0x0f, 0x9b, 0xe9, 0xc6, 0x16, 0xb9, 0x98, 0x9c, 0x27, 0x6e, 0x8e, 0x08, 0x82,
|
||||||
|
0x43, 0x56, 0x1a, 0xb0, 0xe0, 0x03, 0xd3, 0x52, 0x86, 0x45, 0x9e, 0x05, 0x4a, 0x18, 0x76, 0xaf,
|
||||||
|
0x63, 0x88, 0x90, 0xc8, 0xfa, 0xa4, 0x41, 0x29, 0x00, 0xb5, 0x1d, 0xd7, 0xa3, 0x26, 0x80, 0xb9,
|
||||||
|
0x84, 0x3a, 0x6c, 0xf9, 0xc2, 0xbc, 0x17, 0xf7, 0x92, 0x20, 0xcf, 0x25, 0x10, 0xe2, 0xf4, 0xed,
|
||||||
|
0x80, 0xa7, 0xc2, 0xd4, 0xb7, 0xf0, 0x35, 0xe4, 0x3e, 0xb8, 0x23, 0x58, 0xfa, 0x47, 0xe1, 0x29,
|
||||||
|
0x74, 0xbe, 0x6f, 0x3e, 0x49, 0x83, 0xf9, 0xa0, 0x6c, 0x79, 0x13, 0xa5, 0x07, 0xd9, 0x72, 0x1c,
|
||||||
|
0xea, 0xd5, 0x2f, 0x0e, 0x0f, 0xf4, 0x73, 0x69, 0x47, 0x66, 0x75, 0x05, 0x39, 0x2c, 0x2b, 0xe8,
|
||||||
|
0x02, 0x2b, 0x1f, 0x0a, 0x12, 0xae, 0x81, 0xdb, 0xee, 0x23, 0x84, 0xeb, 0x3d, 0xb6, 0xc2, 0x8d,
|
||||||
|
0xc7, 0xbf, 0x13, 0xfc, 0x4f, 0xb1, 0x04, 0xb0, 0x9c, 0x38, 0x7c, 0xa1, 0x73, 0x57, 0xcb, 0x38,
|
||||||
|
0x5e, 0xa7, 0xc0, 0xc8, 0xc3, 0x5d, 0x08, 0x7b, 0xca, 0x43, 0xcb, 0x31, 0xdd, 0x61, 0xc8, 0x03,
|
||||||
|
0x5b, 0xec, 0x37, 0xe3, 0x4d, 0x2c, 0x1a, 0xf8, 0xe2, 0x86, 0xe1, 0x42, 0x6c, 0x95, 0x94, 0x37,
|
||||||
|
0x8a, 0x9f, 0x17, 0xfb, 0x8a, 0xa5, 0x37, 0x80, 0x32, 0x9c, 0x62, 0x18, 0xa2, 0xc6, 0xe0, 0xc2,
|
||||||
|
0xae, 0x69, 0x2a, 0x96, 0xdd, 0x28, 0x2a, 0xb1, 0x3e, 0x3b, 0x49, 0x55, 0x99, 0xf8, 0x3e, 0x17,
|
||||||
|
0x7c, 0x9f, 0xbb, 0xe9, 0x94, 0x5d, 0x70, 0x7a, 0x51, 0x9b, 0x03, 0x6d, 0xce, 0x26, 0x2d, 0x3b,
|
||||||
|
0x91, 0x23, 0x84, 0xe5, 0xf8, 0xd6, 0xfd, 0x4c, 0x93, 0x0e, 0xae, 0x6b, 0x82, 0xd7, 0x6e, 0x24,
|
||||||
|
0x84, 0xa4, 0x0d, 0x0b, 0x15, 0xc6, 0x33, 0x78, 0xa5, 0x4e, 0xae, 0x34, 0xb8, 0x12, 0x21, 0xb1,
|
||||||
|
0xd5, 0x13, 0xf8, 0x5c, 0xc2, 0x47, 0x12, 0xb6, 0xc2, 0x07, 0x2c, 0xb6, 0x18, 0x7e, 0x62, 0x6f,
|
||||||
|
0x3c, 0xeb, 0x1e, 0xfe, 0x89, 0x42, 0xd9, 0x94, 0x31, 0x90, 0x3b, 0x67, 0xd5, 0x23, 0x4f, 0xe2,
|
||||||
|
0x77, 0x67, 0x60, 0x8f, 0x09, 0xe7, 0xb3, 0x25, 0xb9, 0xf0, 0x07, 0xff, 0x40, 0xd6, 0x32, 0xd6,
|
||||||
|
0xb6, 0x1e, 0x28, 0x87, 0x13, 0x3e, 0x16, 0xd9, 0x7f, 0x60, 0x07, 0x32, 0xd6, 0x40, 0x98, 0x04,
|
||||||
|
0x60, 0x11, 0x88, 0xa0, 0x96, 0xf5, 0xc7, 0x37, 0x11, 0x74, 0x01, 0x5f, 0x98, 0x21, 0xec, 0x2d,
|
||||||
|
0x05, 0x41, 0x8a, 0x8f, 0xdc, 0x84, 0x3b, 0xd4, 0x62, 0x05, 0x8b, 0xe4, 0xba, 0x10, 0x56, 0xc9,
|
||||||
|
0xc3, 0xc6, 0x6d, 0x03, 0xe2, 0x73, 0x18, 0x46, 0x17, 0xc2, 0xbd, 0x95, 0xb0, 0x2b, 0xa6, 0xee,
|
||||||
|
0x09, 0x03, 0xd6, 0x58, 0x18, 0x2a, 0x69, 0xa5, 0x35, 0x1c, 0x0e, 0xbf, 0xc1, 0x1a, 0x67, 0x4d,
|
||||||
|
0x6c, 0x72, 0xa6, 0x3f, 0x11, 0x2e, 0x8f, 0xf1, 0x6c, 0x6d, 0x2e, 0xaa, 0x36, 0xad, 0x01, 0x98,
|
||||||
|
0x51, 0x20, 0xb3, 0x62, 0x24, 0x86, 0xf6, 0xe0, 0x8b, 0x58, 0x19, 0xed, 0xc0, 0xf2, 0x03, 0x19,
|
||||||
|
0x32, 0x88, 0x04, 0x6b, 0xe6, 0xef, 0x37, 0x81, 0x15, 0x06, 0xe1, 0x0c, 0x69, 0xfa, 0x3e, 0xd2,
|
||||||
|
0x83, 0x2b, 0x1b, 0x1f, 0x82, 0x72, 0x5b, 0x68, 0x52, 0xcb, 0x4e, 0x2c, 0x98, 0x4b, 0x5a, 0x53,
|
||||||
|
0xc4, 0xcf, 0xcb, 0x9f, 0x73, 0xcb, 0x43, 0x80, 0xf2, 0x52, 0x93, 0x88, 0xb0, 0xbf, 0xcc, 0x00,
|
||||||
|
0x9d, 0x27, 0xba, 0xe1, 0x3e, 0x02, 0xb5, 0x34, 0xa4, 0x76, 0xfa, 0x9a, 0x03, 0xaf, 0x7d, 0xc0,
|
||||||
|
0x3c, 0x3a, 0x33, 0x80, 0x86, 0x2e, 0xbb, 0x4d, 0x20, 0x5b, 0xf8, 0xca, 0x28, 0x3c, 0xee, 0x58,
|
||||||
|
0xb6, 0x09, 0x39, 0xf9, 0x38, 0xe2, 0xf3, 0x89, 0xe5, 0x48, 0x18, 0xad, 0x4d, 0x08, 0xc0, 0x83,
|
||||||
|
0xd4, 0x33, 0xe0, 0x81, 0x38, 0x8e, 0x27, 0xf8, 0x33, 0x98, 0xc3, 0xb5, 0x5d, 0x60, 0x6f, 0x5f,
|
||||||
|
0xcc, 0x47, 0x01, 0x19, 0xb6, 0xfc, 0x07, 0xc9, 0xf8, 0x34, 0xd2, 0x72, 0x79, 0x2e, 0x29, 0x8f,
|
||||||
|
0xa1, 0x49, 0x88, 0x22, 0x0b, 0x98, 0x3c, 0x88, 0xc9, 0x3d, 0x87, 0x00, 0xac, 0xa0, 0xc8, 0x4a,
|
||||||
|
0x0e, 0xcc, 0x3e, 0x18, 0x87, 0x62, 0x9c, 0xd5, 0xb9, 0x3e, 0x7b, 0xfb, 0x0e, 0x3f, 0xf5, 0xd6,
|
||||||
|
0x35, 0x4b, 0x07, 0x9f, 0xc8, 0x6b, 0x85, 0x78, 0x36, 0x81, 0x39, 0x02, 0x93, 0x0e, 0x0e, 0x5d,
|
||||||
|
0x93, 0x42, 0x26, 0x17, 0x5a, 0x03, 0xf4, 0x38, 0x31, 0x3c, 0xa3, 0xeb, 0xb3, 0xb4, 0xec, 0xf2,
|
||||||
|
0xec, 0xe0, 0x9c, 0x1a, 0x5e, 0xb3, 0xc3, 0xdb, 0x22, 0xfd, 0x4f, 0xf0, 0xf8, 0xec, 0xa1, 0x58,
|
||||||
|
0x9e, 0xf4, 0x92, 0xc1, 0xf9, 0x83, 0x6a, 0x29, 0xa8, 0x16, 0x93, 0xa0, 0x08, 0x3b, 0x84, 0x83,
|
||||||
|
0xe1, 0xf5, 0x17, 0x1c, 0xc6, 0x05, 0xfd, 0xd8, 0x6e, 0x3b, 0x21, 0xec, 0xd0, 0x01, 0xb5, 0xdd,
|
||||||
|
0x1e, 0xf5, 0x48, 0x17, 0x0f, 0x3f, 0xf2, 0xd7, 0x5e, 0x64, 0x52, 0x7b, 0x84, 0x26, 0x0b, 0xf9,
|
||||||
|
0x30, 0x6c, 0x58, 0x26, 0x4d, 0x58, 0x27, 0x7d, 0x7e, 0x04, 0x20, 0x52, 0x97, 0x1f, 0xc1, 0x42,
|
||||||
|
0xc8, 0x16, 0xc7, 0xb8, 0x3e, 0x87, 0xd1, 0x72, 0x22, 0x9c, 0x15, 0xa6, 0x77, 0x22, 0x7c, 0x41,
|
||||||
|
0xe2, 0x70, 0xab, 0x0d, 0x97, 0x20, 0xe0, 0x4f, 0x5e, 0x9f, 0xd2, 0x96, 0x58, 0x5d, 0xb3, 0x58,
|
||||||
|
0x28, 0xe4, 0x8b, 0x0b, 0x2b, 0x4e, 0xac, 0xa2, 0x2f, 0xad, 0x44, 0xc4, 0xf6, 0x0d, 0x16, 0xfa,
|
||||||
|
0xe2, 0x06, 0x82, 0x58, 0xfa, 0x47, 0xc3, 0xb3, 0x42, 0xfa, 0x7b, 0xc7, 0x65, 0x9d, 0xc2, 0x6c,
|
||||||
|
0x7e, 0x69, 0x2d, 0x0b, 0xbc, 0x84, 0xe1, 0x8f, 0x9c, 0xe6, 0x44, 0xf0, 0xa4, 0x07, 0xa6, 0xc3,
|
||||||
|
0x2a, 0x61, 0x3e, 0xcc, 0x91, 0xc9, 0xac, 0xc0, 0x9a, 0xf4, 0x04, 0x83, 0x18, 0x78, 0xa3, 0xe7,
|
||||||
|
0xb8, 0x56, 0x20, 0x4d, 0x98, 0xb9, 0x0d, 0x63, 0x68, 0x71, 0x52, 0x92, 0x32, 0x86, 0x86, 0x15,
|
||||||
|
0x90, 0x16, 0x85, 0xb4, 0x36, 0x11, 0x95, 0x7d, 0x85, 0xb7, 0xc7, 0x62, 0xf1, 0x82, 0xbd, 0x20,
|
||||||
|
0x3d, 0x77, 0x69, 0xd0, 0x71, 0xcd, 0x92, 0x80, 0x55, 0x64, 0x41, 0xc2, 0x97, 0x29, 0xa8, 0xe7,
|
||||||
|
0x97, 0x9e, 0x67, 0x4a, 0xc3, 0x90, 0xd8, 0x2c, 0xd4, 0x86, 0xc7, 0x12, 0x7a, 0x88, 0x12, 0x1d,
|
||||||
|
0x8b, 0x92, 0x13, 0x92, 0x14, 0xc8, 0xf8, 0x24, 0xc1, 0x29, 0x8d, 0xe8, 0x77, 0xc4, 0x71, 0x13,
|
||||||
|
0x33, 0x70, 0x2c, 0x01, 0x46, 0xed, 0xd4, 0xf3, 0x30, 0x87, 0x05, 0x97, 0xfe, 0x42, 0x0d, 0x29,
|
||||||
|
0xbe, 0xa9, 0x28, 0xa2, 0xbb, 0xab, 0x0d, 0xe0, 0x29, 0xfa, 0x3e, 0x0a, 0x0e, 0x15, 0x20, 0x70,
|
||||||
|
0x1b, 0x58, 0x90, 0x12, 0x6f, 0x2f, 0x7b, 0x44, 0x9b, 0xb2, 0x22, 0x56, 0x4e, 0x58, 0x62, 0x85,
|
||||||
|
0x87, 0x1b, 0x2d, 0x73, 0x9b, 0x6d, 0x19, 0xee, 0x41, 0x03, 0x15, 0xc5, 0x97, 0x63, 0x41, 0xde,
|
||||||
|
0x17, 0xb2, 0xb8, 0x65, 0x25, 0x4e, 0xe9, 0x95, 0x38, 0x72, 0xba, 0x9d, 0x27, 0xae, 0x8a, 0xc0,
|
||||||
|
0x56, 0x66, 0x42, 0xf3, 0x1b, 0x82, 0x0b, 0x18, 0x84, 0x30, 0xcd, 0xa7, 0x2f, 0x56, 0x2d, 0x67,
|
||||||
|
0x02, 0x5f, 0x67, 0x69, 0x2c, 0xbb, 0x8b, 0x9b, 0xe9, 0xa6, 0x4b, 0x7d, 0xe2, 0xb8, 0x01, 0xe1,
|
||||||
|
0xbf, 0x31, 0x80, 0x2e, 0xa0, 0x01, 0x2e, 0x87, 0xb0, 0xdf, 0xbc, 0xe1, 0xb1, 0x25, 0x0b, 0x2d,
|
||||||
|
0x71, 0x4d, 0x9d, 0x44, 0x96, 0xce, 0x64, 0xdd, 0x7c, 0x33, 0x5f, 0xaf, 0x0a, 0xe6, 0x95, 0x99,
|
||||||
|
0x3a, 0xa9, 0xc2, 0x46, 0xa9, 0x85, 0x30, 0x33, 0x79, 0x84, 0x0b, 0xf0, 0x5b, 0x3e, 0xcb, 0x0a,
|
||||||
|
0xc8, 0xba, 0x90, 0x04, 0xe3, 0x5f, 0xc7, 0x64, 0x82, 0x31, 0x16, 0xf2, 0xc2, 0xf7, 0x8b, 0xc3,
|
||||||
|
0x70, 0x19, 0xf2, 0xe2, 0xb1, 0x88, 0xf3, 0x6f, 0x6e, 0x2b, 0x75, 0xb5, 0xf9, 0xb1, 0x09, 0x9f,
|
||||||
|
0x10, 0xf5, 0xad, 0xd7, 0x8c, 0x6f, 0x42, 0x29, 0xac, 0xe2, 0xbc, 0x32, 0x09, 0x13, 0x05, 0xe7,
|
||||||
|
0x3e, 0x9f, 0x3b, 0x8e, 0x31, 0xb0, 0xda, 0x46, 0xe0, 0x7a, 0xb0, 0xc4, 0x5b, 0xbd, 0x86, 0x6b,
|
||||||
|
0x78, 0xa6, 0x3c, 0xf4, 0xac, 0x80, 0xb2, 0x78, 0x88, 0x72, 0xf6, 0x62, 0x53, 0x69, 0xda, 0x73,
|
||||||
|
0x32, 0x22, 0x7d, 0xa4, 0xcd, 0x70, 0xb7, 0x26, 0xc1, 0x76, 0x83, 0x85, 0x95, 0x53, 0x4f, 0xd8,
|
||||||
|
0x35, 0x2c, 0x2c, 0x85, 0x81, 0x5a, 0x11, 0x90, 0xe0, 0x32, 0x89, 0x7b, 0x54, 0x38, 0x25, 0x61,
|
||||||
|
0x42, 0x2f, 0xec, 0xf4, 0xbe, 0x85, 0xff, 0x70, 0xff, 0x14, 0x32, 0x38, 0x7d, 0x7e, 0xe5, 0xeb,
|
||||||
|
0x79, 0x6e, 0xe0, 0x42, 0x7e, 0xf2, 0xc5, 0xb0, 0x61, 0x4e, 0x27, 0x84, 0xef, 0x10, 0xe7, 0xf1,
|
||||||
|
0xd4, 0x05, 0x8d, 0x6a, 0x00, 0xb4, 0xb0, 0xf5, 0x6a, 0xd8, 0x81, 0x3c, 0xc8, 0xa7, 0xde, 0x00,
|
||||||
|
0x28, 0xc3, 0x77, 0x43, 0x99, 0x93, 0x24, 0x09, 0xd7, 0xe3, 0xaf, 0xde, 0x80, 0xe2, 0xbc, 0xbe,
|
||||||
|
0x33, 0x7d, 0xe2, 0x8b, 0xb0, 0x0c, 0xc4, 0x3d, 0x2c, 0x50, 0xbe, 0xe0, 0xfb, 0xdf, 0x42, 0x39,
|
||||||
|
0xd6, 0xd0, 0x5e, 0x27, 0x5e, 0xfc, 0xe3, 0xc4, 0x4f, 0x67, 0x2c, 0x18, 0x2e, 0x58, 0x2a, 0x66,
|
||||||
|
0xe6, 0xcc, 0x85, 0x42, 0xd8, 0xa3, 0xff, 0x96, 0x67, 0xef, 0xf7, 0xb0, 0x12, 0x2c, 0x94, 0x51,
|
||||||
|
0x81, 0x15, 0x1f, 0x67, 0x72, 0x22, 0x92, 0x08, 0x96, 0xf6, 0xd0, 0xba, 0xc3, 0x65, 0x04, 0x4f,
|
||||||
|
0xdb, 0xfc, 0x80, 0xb9, 0xb5, 0xda, 0x60, 0xa7, 0xe7, 0x71, 0xb8, 0x58, 0x4f, 0xd8, 0x49, 0x19,
|
||||||
|
0xfd, 0xc5, 0x65, 0x37, 0x3a, 0x4e, 0x23, 0x4a, 0xa1, 0xaf, 0x7d, 0x83, 0x33, 0x2e, 0x4f, 0x56,
|
||||||
|
0x4b, 0x1c, 0x8c, 0x1d, 0xee, 0xa1, 0x18, 0x9c, 0x3e, 0x53, 0x19, 0x61, 0xa0, 0xc3, 0x0e, 0x6d,
|
||||||
|
0x19, 0x90, 0xfc, 0x26, 0xe2, 0x74, 0xc8, 0x4c, 0x8b, 0x09, 0x71, 0x26, 0x29, 0x80, 0xd4, 0x1f,
|
||||||
|
0x32, 0x8c, 0x15, 0x7d, 0xb1, 0x18, 0x3c, 0x1f, 0x3f, 0x63, 0x9f, 0x14, 0xea, 0x44, 0x98, 0x43,
|
||||||
|
0x74, 0x3c, 0x58, 0x85, 0x27, 0x0e, 0xe7, 0x82, 0x73, 0x34, 0xdf, 0x36, 0x9c, 0x47, 0xbb, 0x30,
|
||||||
|
0xce, 0xcc, 0x88, 0xe5, 0x7e, 0x0f, 0x7f, 0x3e, 0xec, 0x84, 0x0b, 0x02, 0xe6, 0x38, 0x16, 0x94,
|
||||||
|
0x59, 0x91, 0xa0, 0x05, 0xfc, 0x21, 0xab, 0x3e, 0x24, 0x7c, 0xb1, 0x01, 0x27, 0xdc, 0xb3, 0x31,
|
||||||
|
0xe7, 0x7b, 0xf3, 0x42, 0xd7, 0xb2, 0x7e, 0x73, 0x90, 0xd3, 0x74, 0x09, 0xa3, 0x56, 0x34, 0x92,
|
||||||
|
0x33, 0xb6, 0xea, 0x83, 0x2f, 0x5f, 0xdc, 0x49, 0x08, 0xd5, 0xc4, 0x56, 0x3d, 0xe4, 0x02, 0xab,
|
||||||
|
0x10, 0xab, 0xdd, 0xf1, 0xc2, 0xf9, 0xa1, 0xc5, 0x65, 0x6a, 0x2c, 0x21, 0x1a, 0x03, 0xcc, 0x13,
|
||||||
|
0xab, 0xe9, 0x10, 0x53, 0x62, 0x1c, 0x30, 0x21, 0x75, 0xc9, 0x8a, 0xfc, 0xcc, 0x93, 0x82, 0x0f,
|
||||||
|
0xca, 0x38, 0xb2, 0xd9, 0x25, 0x73, 0x1a, 0xc5, 0x1a, 0xa5, 0x97, 0x91, 0x1d, 0xc0, 0x7a, 0xfc,
|
||||||
|
0x72, 0x07, 0xa6, 0x06, 0x29, 0x52, 0xf7, 0x2b, 0xe0, 0x6e, 0x4f, 0x90, 0x42, 0x8d, 0xbf, 0x08,
|
||||||
|
0x19, 0x7a, 0x97, 0x98, 0x2d, 0xcf, 0x98, 0xed, 0x92, 0x0e, 0x1d, 0xf6, 0x0e, 0xc2, 0x14, 0xc8,
|
||||||
|
0x7c, 0x21, 0x90, 0x58, 0x52, 0x11, 0x75, 0x1d, 0x76, 0xbe, 0x2d, 0xae, 0xb4, 0x37, 0x74, 0xe7,
|
||||||
|
0xef, 0x29, 0x88, 0x2c, 0x15, 0x0f, 0x43, 0x3d, 0x9d, 0x99, 0x2c, 0x73, 0x25, 0x63, 0xe9, 0x3d,
|
||||||
|
0x5b, 0x9a, 0xef, 0xa1, 0x60, 0xfe, 0x4d, 0x89, 0x95, 0x14, 0x4c, 0x37, 0x4f, 0x66, 0x36, 0x12,
|
||||||
|
0xdf, 0xbe, 0x53, 0x2a, 0xe1, 0xc9, 0x7b, 0x74, 0xcd, 0x67, 0xee, 0xd0, 0x9f, 0x76, 0xfb, 0xd9,
|
||||||
|
0xa7, 0xde, 0x28, 0x82, 0xaa, 0xd8, 0x76, 0x42, 0x90, 0xa3, 0x53, 0xfa, 0xa2, 0x64, 0x41, 0xc2,
|
||||||
|
0x6a, 0x6d, 0xc6, 0x3b, 0x46, 0x15, 0x6c, 0x0b, 0x52, 0xd8, 0x78, 0xfb, 0xad, 0x75, 0x37, 0xef,
|
||||||
|
0x4c, 0x38, 0x8e, 0xa9, 0x3b, 0x9b, 0x39, 0x8f, 0xfb, 0x8e, 0x2d, 0x39, 0x29, 0x78, 0x05, 0x8c,
|
||||||
|
0x9f, 0x15, 0x08, 0x81, 0x1d, 0x9d, 0x2e, 0xdf, 0xc3, 0x73, 0x31, 0x26, 0x74, 0x60, 0x41, 0x8b,
|
||||||
|
0x6d, 0xbb, 0x7d, 0x49, 0x38, 0xfa, 0xdc, 0x09, 0x09, 0x80, 0x9b, 0x3b, 0x1c, 0x21, 0xbd, 0xb8,
|
||||||
|
0xa5, 0xb7, 0x74, 0x56, 0xf3, 0xd4, 0xa8, 0x34, 0xc1, 0xbe, 0x0c, 0xb3, 0xf3, 0x3b, 0x88, 0x79,
|
||||||
|
0x75, 0x63, 0x91, 0x3d, 0xc9, 0x61, 0x45, 0x9a, 0xb7, 0x3d, 0x30, 0x05, 0xc9, 0x8d, 0xf9, 0x98,
|
||||||
|
0xd8, 0xe2, 0x08, 0x6b, 0xe2, 0xb4, 0x42, 0x89, 0xde, 0x70, 0xdb, 0x76, 0x1b, 0x09, 0xdc, 0x81,
|
||||||
|
0x7a, 0xc6, 0xfa, 0xc1, 0xb2, 0xb4, 0x67, 0x36, 0xbb, 0x99, 0x4b, 0xd6, 0x82, 0xd9, 0x5b, 0x87,
|
||||||
|
0x6f, 0x21, 0xda, 0xdc, 0xd1, 0x82, 0x7d, 0xa2, 0xcb, 0x2b, 0xdb, 0x61, 0x59, 0x85, 0x2f, 0x99,
|
||||||
|
0x40, 0x1b, 0x2c, 0xcc, 0xfc, 0x44, 0x0b, 0x83, 0xbb, 0x3e, 0x3c, 0xa8, 0xc3, 0xd2, 0x7f, 0x46,
|
||||||
|
0xc1, 0x52, 0xfd, 0xa0, 0x8c, 0x5b, 0xd0, 0xd4, 0x49, 0x84, 0xf9, 0x99, 0x23, 0x61, 0x79, 0xc0,
|
||||||
|
0x58, 0xe2, 0xa8, 0x35, 0x45, 0x41, 0x5d, 0xcb, 0x98, 0xd7, 0xf5, 0xfd, 0xd9, 0xca, 0x01, 0x0b,
|
||||||
|
0xe9, 0x79, 0x6c, 0x80, 0xaf, 0x04, 0xf7, 0x41, 0x47, 0xbe, 0x8f, 0xef, 0x49, 0x8c, 0x3e, 0xcc,
|
||||||
|
0x95, 0x04, 0xe2, 0xa0, 0xa4, 0xc5, 0x82, 0x44, 0x00, 0x19, 0x4b, 0xb8, 0x9b, 0x0e, 0x14, 0xdb,
|
||||||
|
0x33, 0x35, 0x20, 0x70, 0x5f, 0xb0, 0xae, 0x84, 0x5b, 0x2b, 0xc7, 0x7c, 0xa3, 0x1c, 0x1d, 0x36,
|
||||||
|
0xf2, 0xf2, 0x82, 0x0d, 0xcf, 0xed, 0xc8, 0xcc, 0xa4, 0x10, 0xe1, 0x16, 0x12, 0x62, 0x08, 0xeb,
|
||||||
|
0x63, 0xd1, 0x04, 0x64, 0x65, 0xb2, 0xb9, 0x52, 0xf2, 0x5c, 0x91, 0x8c, 0xef, 0xd5, 0x0b, 0x58,
|
||||||
|
0x99, 0xe5, 0xd9, 0x00, 0xbd, 0x75, 0xc2, 0x6d, 0x7b, 0xc9, 0x65, 0x7e, 0x86, 0xb7, 0xe0, 0xd5,
|
||||||
|
0x5c, 0x2d, 0xcc, 0x15, 0x25, 0x14, 0x9f, 0xf3, 0xe9, 0x53, 0xc2, 0x9d, 0x1c, 0x1c, 0xc0, 0x52,
|
||||||
|
0xcc, 0x78, 0x25, 0xc3, 0x2c, 0x7b, 0x47, 0x76, 0x23, 0x82, 0x03, 0x2c, 0x06, 0xc4, 0xab, 0x7a,
|
||||||
|
0x01, 0xdf, 0x34, 0x7a, 0x66, 0x14, 0x94, 0x20, 0x3b, 0xc2, 0x28, 0x5b, 0x38, 0x8f, 0xde, 0x0c,
|
||||||
|
0xc1, 0x92, 0x1b, 0x11, 0x92, 0x0e, 0x98, 0x54, 0x54, 0xf7, 0x1a, 0xcf, 0x3a, 0xb1, 0x17, 0x56,
|
||||||
|
0x8b, 0x78, 0xda, 0x1b, 0x11, 0xc0, 0xcb, 0x6d, 0xcb, 0xbc, 0x17, 0x9d, 0xf7, 0x5e, 0x34, 0xee,
|
||||||
|
0xbd, 0x02, 0x36, 0x41, 0x43, 0x07, 0x26, 0xe1, 0x2e, 0xcc, 0x07, 0x3d, 0xe6, 0x8a, 0x21, 0xae,
|
||||||
|
0xe6, 0xf6, 0xc9, 0x7e, 0x89, 0x0b, 0x9a, 0xf6, 0x4d, 0x89, 0x6f, 0x39, 0x37, 0x2d, 0xaf, 0x09,
|
||||||
|
0xd1, 0xc6, 0x4b, 0xce, 0xf5, 0x23, 0x58, 0x95, 0x1b, 0xee, 0xb8, 0xf7, 0x98, 0xc7, 0x9a, 0x3a,
|
||||||
|
0x48, 0xce, 0x0b, 0xf3, 0x15, 0xc7, 0xad, 0x1d, 0x17, 0xa2, 0xa6, 0x67, 0xce, 0x46, 0xac, 0x50,
|
||||||
|
0x38, 0x53, 0x24, 0xfc, 0x3c, 0x33, 0x6c, 0x54, 0x18, 0x01, 0x7f, 0x39, 0xd3, 0x8e, 0xd3, 0xd7,
|
||||||
|
0xd1, 0x83, 0xa5, 0x5e, 0xb1, 0xbc, 0xdc, 0x69, 0x08, 0x1f, 0x1b, 0x8d, 0x62, 0xab, 0xd1, 0x14,
|
||||||
|
0x30, 0xf7, 0x09, 0x2e, 0xac, 0x2e, 0x75, 0xfb, 0x41, 0x82, 0x25, 0x07, 0x2b, 0xbd, 0x0c, 0x0c,
|
||||||
|
0x65, 0x78, 0xfb, 0xa1, 0x48, 0x12, 0x53, 0xd9, 0xc0, 0x2a, 0x32, 0xb9, 0xd6, 0xa1, 0xef, 0x04,
|
||||||
|
0x64, 0x9e, 0x5d, 0x89, 0xb3, 0x35, 0x79, 0x2e, 0xc2, 0x3c, 0xcb, 0x29, 0x4a, 0x6c, 0x8a, 0xcd,
|
||||||
|
0x03, 0x84, 0xa1, 0x10, 0x51, 0x69, 0xe6, 0x73, 0x22, 0x26, 0xa4, 0xdc, 0x7c, 0x2d, 0x55, 0x15,
|
||||||
|
0xc7, 0xbf, 0x4d, 0x04, 0x53, 0x75, 0xf8, 0xfa, 0x12, 0xfa, 0x2b, 0x7d, 0xa9, 0xdd, 0xab, 0x8a,
|
||||||
|
0x58, 0x5e, 0xe1, 0x01, 0x62, 0x7d, 0x5f, 0x88, 0x64, 0x96, 0x55, 0xe9, 0xa6, 0x7e, 0x60, 0xfd,
|
||||||
|
0x2d, 0xaf, 0xc3, 0xbc, 0xf6, 0x43, 0x1a, 0x8b, 0xbf, 0x8c, 0xa5, 0x29, 0x44, 0x2d, 0xd6, 0xb3,
|
||||||
|
0x57, 0xc5, 0xba, 0xa6, 0xe0, 0x4d, 0xbe, 0xae, 0x6a, 0x07, 0xaa, 0x42, 0xb2, 0xf5, 0x6c, 0x25,
|
||||||
|
0xfe, 0x4a, 0x49, 0xfe, 0x4a, 0x2d, 0xc6, 0x1a, 0x00, 0xb5, 0x02, 0x3d, 0xe2, 0x20, 0x1a, 0x20,
|
||||||
|
0xba, 0x8a, 0xc3, 0x20, 0xb6, 0x43, 0x15, 0x7f, 0xe6, 0xa2, 0xae, 0x66, 0xaf, 0xd4, 0x4c, 0x5d,
|
||||||
|
0x55, 0x0f, 0xd4, 0x1c, 0xd9, 0x38, 0x50, 0x37, 0x08, 0xde, 0xe5, 0x63, 0xbf, 0x56, 0x15, 0x1e,
|
||||||
|
0x3d, 0x66, 0xbe, 0x36, 0xc0, 0xbd, 0x42, 0x7c, 0x0d, 0x6e, 0x5d, 0x7a, 0x73, 0x31, 0xec, 0x5f,
|
||||||
|
0x97, 0xd3, 0xff, 0xab, 0x5f, 0x10, 0x23, 0x33, 0x4a, 0x89, 0x7e, 0x0e, 0x64, 0xe6, 0x87, 0x40,
|
||||||
|
0x5e, 0xd4, 0xcd, 0xfc, 0xb1, 0xfb, 0x45, 0xfd, 0x44, 0x2f, 0xd8, 0x84, 0xbf, 0xcb, 0x27, 0xfc,
|
||||||
|
0x8e, 0xc2, 0x5e, 0xfb, 0xcd, 0xb7, 0x0d, 0x49, 0x53, 0xeb, 0xc5, 0x2b, 0xb0, 0xbe, 0x0d, 0xbc,
|
||||||
|
0xc9, 0xd5, 0xc1, 0x38, 0x25, 0x2d, 0x94, 0x05, 0x70, 0x7b, 0xa5, 0xa9, 0xb1, 0x86, 0x22, 0x88,
|
||||||
|
0x0b, 0x20, 0x63, 0x2d, 0x9a, 0x0a, 0x08, 0xae, 0x0a, 0xb1, 0x16, 0xc4, 0x02, 0x16, 0x2d, 0xa9,
|
||||||
|
0x38, 0x39, 0xa6, 0x70, 0x52, 0xe6, 0x0a, 0x6c, 0x3c, 0x7b, 0x85, 0x36, 0x7d, 0xa5, 0x2e, 0x95,
|
||||||
|
0x20, 0x56, 0x94, 0x5c, 0x32, 0x29, 0x64, 0xbd, 0x20, 0xbd, 0xc5, 0x77, 0x0a, 0xfe, 0x57, 0xa4,
|
||||||
|
0x97, 0x97, 0x73, 0x60, 0x2f, 0xa7, 0x59, 0x19, 0xe6, 0x35, 0x4c, 0x64, 0x4d, 0xce, 0xa3, 0xc1,
|
||||||
|
0x31, 0xb3, 0x21, 0x60, 0xd1, 0xc5, 0x1c, 0x7e, 0x67, 0xe5, 0x5c, 0x11, 0xbf, 0xe1, 0x69, 0x06,
|
||||||
|
0x5f, 0x2c, 0x03, 0x43, 0x52, 0x65, 0x95, 0x64, 0xe4, 0x0c, 0x4c, 0x73, 0x9c, 0x0b, 0x30, 0x01,
|
||||||
|
0xf0, 0x0a, 0x66, 0x7d, 0x4e, 0x2e, 0x16, 0x09, 0xeb, 0x07, 0x56, 0x86, 0xb7, 0x80, 0x69, 0x03,
|
||||||
|
0xbb, 0x81, 0x35, 0x6b, 0xf8, 0x91, 0x95, 0x37, 0xd8, 0x4d, 0x5e, 0xde, 0xc8, 0x03, 0x20, 0x5a,
|
||||||
|
0xf9, 0x06, 0x29, 0xca, 0x4a, 0x01, 0xbf, 0x55, 0x3c, 0x8c, 0x2b, 0x17, 0x32, 0x88, 0x1f, 0xe8,
|
||||||
|
0x51, 0xe5, 0x62, 0x1e, 0x47, 0x05, 0x12, 0xa1, 0x29, 0x23, 0x17, 0x8a, 0xec, 0x22, 0x17, 0x36,
|
||||||
|
0xc0, 0x94, 0x29, 0x22, 0x50, 0x7e, 0x03, 0x49, 0x86, 0x4f, 0xe8, 0x8b, 0x2d, 0xe8, 0xea, 0x18,
|
||||||
|
0x5b, 0x75, 0x35, 0x73, 0x0a, 0xdd, 0x55, 0xde, 0xa6, 0xca, 0xb9, 0x0d, 0x9c, 0x0c, 0x59, 0x95,
|
||||||
|
0xb0, 0x59, 0x25, 0x17, 0x33, 0xfc, 0xe2, 0x0a, 0x60, 0x8a, 0xb9, 0x03, 0x78, 0x82, 0xe4, 0x65,
|
||||||
|
0x0f, 0x80, 0xd7, 0x0c, 0xcc, 0x2b, 0xf4, 0x60, 0x79, 0x76, 0x99, 0x95, 0xf3, 0xfc, 0x09, 0xbe,
|
||||||
|
0x46, 0x87, 0xb0, 0xe0, 0x24, 0xeb, 0x38, 0xc6, 0x29, 0xce, 0x2d, 0x10, 0x11, 0x0e, 0x20, 0x6b,
|
||||||
|
0x05, 0x24, 0x09, 0x3e, 0x35, 0x26, 0x3a, 0x68, 0x67, 0x6f, 0x1a, 0xca, 0xfc, 0x1b, 0xba, 0xe7,
|
||||||
|
0x22, 0xa8, 0x0c, 0x63, 0x91, 0x77, 0xcd, 0x70, 0x62, 0xd1, 0x51, 0x16, 0xae, 0x54, 0xf5, 0x14,
|
||||||
|
0x84, 0x5b, 0x44, 0x11, 0x61, 0xc7, 0x2c, 0x08, 0x31, 0xcb, 0x86, 0x56, 0x40, 0xa8, 0x28, 0xc0,
|
||||||
|
0x3c, 0x08, 0x13, 0x1e, 0xe6, 0x01, 0x06, 0x1e, 0xb0, 0xa7, 0x21, 0x3c, 0xea, 0xa4, 0x0e, 0xa3,
|
||||||
|
0x9e, 0x82, 0x47, 0xca, 0x21, 0x5f, 0x59, 0xf4, 0x4c, 0x40, 0xad, 0x82, 0xef, 0x62, 0xc2, 0x90,
|
||||||
|
0xd0, 0x9a, 0x61, 0xaa, 0x24, 0x0c, 0xf9, 0x46, 0x2e, 0x84, 0x40, 0xed, 0x29, 0x8c, 0x07, 0xb4,
|
||||||
|
0x05, 0x60, 0x6c, 0x03, 0xbc, 0x09, 0xfb, 0x51, 0xa2, 0xcc, 0x12, 0x13, 0x3f, 0xc7, 0xdd, 0xb1,
|
||||||
|
0xa9, 0xe7, 0x8e, 0x6f, 0x3f, 0xa6, 0xc3, 0x5f, 0xa0, 0xe2, 0xdf, 0x9b, 0xec, 0xa5, 0xa4, 0xad,
|
||||||
|
0xff, 0x01, 0xe2, 0x4a, 0xd5, 0xc2, 0x8f, 0x5e, 0x00, 0x00
|
||||||
|
};
|
@ -6,6 +6,9 @@
|
|||||||
#endif
|
#endif
|
||||||
#include "html_settings.h"
|
#include "html_settings.h"
|
||||||
#include "html_other.h"
|
#include "html_other.h"
|
||||||
|
#ifdef WLED_ENABLE_PIXART
|
||||||
|
#include "html_pixart.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Integrated HTTP web server page declarations
|
* Integrated HTTP web server page declarations
|
||||||
@ -345,6 +348,17 @@ void initServer()
|
|||||||
serveIndexOrWelcome(request);
|
serveIndexOrWelcome(request);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#ifdef WLED_ENABLE_PIXART
|
||||||
|
server.on("/pixart.htm", HTTP_GET, [](AsyncWebServerRequest *request){
|
||||||
|
if (handleFileRead(request, "/pixart.htm")) return;
|
||||||
|
if (handleIfNoneMatchCacheHeader(request)) return;
|
||||||
|
AsyncWebServerResponse *response = request->beginResponse_P(200, "text/html", PAGE_pixart, PAGE_pixart_L);
|
||||||
|
response->addHeader(FPSTR(s_content_enc),"gzip");
|
||||||
|
setStaticContentCacheHeaders(response);
|
||||||
|
request->send(response);
|
||||||
|
});
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef WLED_ENABLE_WEBSOCKETS
|
#ifdef WLED_ENABLE_WEBSOCKETS
|
||||||
server.addHandler(&ws);
|
server.addHandler(&ws);
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user