PROWAREtech

articles » current » playground » camera-browser

Access the Camera Through the Web Browser

How to gain access of the camera through the Internet and how to handle user requests not to allow access to it.

Code

Use a promise to gain access to or be rejected from the camera.


var canvas = document.createElement("canvas"), canvas.getContext("2d"), width, height, video, image, promise = navigator.mediaDevices.getUserMedia({ video: true });
promise.then(function (signal) { // NOTE: THEN GAIN ACCESS TO THE CAMERA

	video = document.createElement("video");
	video.srcObject = signal;
	video.play();
	video.onloadeddata = function () {
		width = video.videoWidth;
		height = video.videoHeight;
		canvas.width = width;
		canvas.height = height;
		document.body.appendChild(canvas);
		updateCanvas();
	};

}).catch(function (err) { // NOTE: OTHERWISE, FALLBACK TO ANOTHER SOLUTION, WITHOUT THE ACCESS TO THE CAMERA
	image = new Image();
	image.src = "selfie.jpg";
	image.onload = function () {
		width = image.width;
		height = image.height;
		canvas.width = width;
		canvas.height = height;
		document.body.appendChild(canvas);
		updateCanvas();
	};
});

Now, the function to update the canvas by drawing the video image if access was gained.


var animate = function() {
	context.drawImage(video || image, 0, 0, width, height);
	requestAnimationFrame(animate);
};

A whole page might look like this:


<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Camera Access</title>
	<style>
		body {
			margin: 0;
			padding: 0;
			overflow: hidden;
		}
		#camera-container {
			height: 100vh;
			width: 100%;
		}
	</style>
</head>
<body>
	<div id="camera-container"></div>
	<script type="text/javascript">
		var container = document.getElementById("camera-container"), canvas, context, width, height, video, image, promise = navigator.mediaDevices.getUserMedia({ video: true });

		var animate = function() {
			//context.clearRect(0, 0, width, height);
			context.drawImage(video || image, 0, 0, width, height);
			requestAnimationFrame(animate);
		};

		promise.then(function (signal) { // NOTE: THEN GAIN ACCESS TO THE CAMERA SIGNAL

			video = document.createElement("video");
			video.srcObject = signal;
			video.play();
			video.onloadeddata = function () {
				width = video.videoWidth;
				height = video.videoHeight;
				canvas = document.createElement("canvas");
				canvas.width = width;
				canvas.height = height;
				container.appendChild(canvas);
				context = canvas.getContext("2d");
				animate();
			};

		}).catch(function (err) { // NOTE: OTHERWISE, FALLBACK TO ANOTHER SOLUTION, WITHOUT THE ACCESS TO THE CAMERA
			image = new Image();
			image.src = "data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAeAAD/7gAOQWRvYmUAZMAAAAAB/9sAhAAQCwsLDAsQDAwQFw8NDxcbFBAQFBsfFxcXFxcfHhcaGhoaFx4eIyUnJSMeLy8zMy8vQEBAQEBAQEBAQEBAQEBAAREPDxETERUSEhUUERQRFBoUFhYUGiYaGhwaGiYwIx4eHh4jMCsuJycnLis1NTAwNTVAQD9AQEBAQEBAQEBAQED/wAARCAFoAoADASIAAhEBAxEB/8QApAAAAgMBAQEAAAAAAAAAAAAAAAECAwQFBgcBAQADAQEAAAAAAAAAAAAAAAABAgMEBRAAAQQBAgMFBAcGAgkEAwEAAQARAgMEIRIxQVFhcSITBYGRoTKxwUJSIxQG0WJygpIz8EPh8aKyU2MkFRbC0rNE4nM0oxEAAgIBBAECBQQCAgMAAAAAAAERAiExQRIDUSIEYXGBMhORoUJSsWLB4fCiM//aAAwDAQACEQMRAD8A7aE0Mu04xITZNCRIZNkMoAmQybIQCQpIZAJDJshAJCkyGQCQmyEAkJpsoAmQybIZAJCbIZAJCbJgKCSKabIZAJkMpIQEU00MoAmQybIZCRMhk0IBKEpiKdk4wjumdoHEled9W9d4142kR9vqVW1lVZLUpazhHVyfUKagd0wAOPD61yL/ANUY1ZaHibnqR8GXm8nIuvkTZIl+KyGTgRHVZ/lb0NvxVWuT1sP1RETIkPDo2hifpK6WJ+oPTckiPnxjM6NPwl/oXgXPzcy5+pVGUoFxqOaldj+ZD6l8j6nG2Eg4k47CCpxmDz1XzXHysitrKLDE8Gct3ELv+lfqSQIqyvCCW3cQD2urLsT+BR9Vlpk9cyGKqpthOAnAgwPBv8cFcyuZghNkMokEUMpMhkkEWQykyGSQQ1RqpMhkkEWSZTSZSCKWqmyTICKFJkmQCSZSSZAIhJSZDICKSkyEIIlJlJkMgIpaqbJICKSmyTICJSUmSZARSUkMhBBJTISIQENUtVNkiFIIMhSZJkBsZDKSFYEU2TZCATIZNCATJsEJsgEyE2QgEhSZDKAJkMmyGQCZDKSGQCZDJoQkSaEMoAmTTZCASGTZDIBIUkKCRMhk2QgEyE0IAQhNAJlVdaIBgxl28AOpU5y2jv4Lz3reftfHqLn/ADJDj/D7VW9lVSy/XR3skjL6v6pK6RpqkTEE7p9eWnQLiSBtnGMdeQH1q2YIBJ+aRAPZ/qCgJimW4cYsPeHXHa7s5O+vWqpV/UMjE2QbiQNT2rm7dR3r0E9ltUQOJGpXINOg7yq9d205J7OtYgiKiW7FRdROEjuDPqu16ZTGye0h9+za/ZOO74Lp+sem0fmIsNrnVu9Q+6LcYL19vyrM5PJCMoASiH6jqFpgBOInDV+I6jn7QuhmemDHtMIa1yG6B7D+xc+gSruspPEFx1biCrrsVlK+ZlbrdXD+R2fRPV5YV0abjux58JH7K9nCUZRBjrGWoIXz6dPmUvD5ol9OUhrp3r0X6b9U8ykY1p1iPD2at7lv1dk4Zh3dUepHomTZA1Ca2OYTIZNkMgEyTKSFAIshlJCAgQhlJkMpBBkMpMhkBEhJlMhJkIIMhlJkEJIIskymyTICLJMpskyAiyTKTIZSCLIZNkMgIkITQgIMghSZJkIIskymyRCAgkVNkkBAhDKTIZAQIQykyGQg1IZNkMrgTJsmhAJCaEAmQybIZQBMmmyGQCQybIZAJCaaEiQybIZQBMhk00AmQyaGQCQmhlBImQpMhAJDJoZAJkJshkAITZCASSZSkdsDI8g6AweoZQx6528ZAbax+8V5O2YnIgF5E6nrKS2eu+oStyBh0l5R/uS5Alc4XUVTEKyJCmJsss4vMhojudcXuLO1uK0R6HtqKteT1ZHfA3yf5a9T38voXO84z48JWGXsA0+lErz5dp++T+xQx4uADz6qqrCZdvk0dXDmZRlKXd3AapijcWPPUP3rfg+mb8eyP2ogS9pDqGRAwpjYAxiOHaFhzTbjzB1fjiqkXp8DGcW4RtgT3Fv2rver44lAWDRiC/euLi2wlKBj9uMW74n/AEL1N9YtxzE8wsrt8k/BKhQcTJrjPA84hzTqTz2n5l5+6oR9Sx5fZuiYv8frXpqBvxMiiQ8W2USP8d68kbjuqfjTKTexlfpmbJbf8kd20/A6VVY3yqH2gzD+qP1hZcW04mZIj/LkCf4TpL4KeLlg5NZlpEhie0HcPoSyICGfc3DaS3uW3W2n9JMOxKy+sHusK0W0Rk76Ag9QtDLh/pq+VmGAfsEAfwn/AErurvTlJnmXrxs0JkMmmpIIshlJCAiyGTQhBFCkyCgIoTZDICLITZDICKGUkmQCZJlJkICDIZSZJlIIskymyTIQRZJSQyAiyTKTJMpBFDKSGQEGQykyCEBBkMpMkyAiyTKbJMhBBkMpskyA0shk0MrECZCaEAkMmhCRMmyGTZAJCbIZAJDJsmoAkMmhAJkJshCQQybIZQBMhNkIBIZSQyATIZNCATIZNk0JEyE0MgEhNCgESywetZowsC28tuAasHnM8FvL8ei8p+ssk2eViV6is7rD2nT4Kt7RVsv115WSPM3Tn5E7SSDM+KXOUjyVtVFOHjSryjKd1h3TrgQNobSM5l9ewBbMfPswL6Kq4VzotsjXMWQEweAJ1XPO+/IYvulImwDqTukuRvH7nfWs2+UJL5ltWycXhj111uQ8gbD14zJ+hW01VTmBlVxlTzNURXYO2JGh9q0ZmFZRgxMWeHilF9XPFYoZflVx83G3xPMSYrPk7KanX+KlIVltMnWx6fUsEzljT31uG7QRpoVGq6d8p12hpanb7Vf6d6jj3jy4bqxICOywuxbRiq4UW2ZRhAeN9D9KxUzaVHxLWqklDlGTCn5dtcJHWqdsPYYykF7imyBphE8ZRBPuXiczHnjZYlIbTIgt2kGL/FdrOndOAjVZsEBx/wBKr261jcrWnJNPHE031/l/UIn/ACsgbf5l4jK/Cyb4HlIgD2rtyy/UY1mu4ysrd4kByCOEhIrlX40M28iq3bkzP9u5oCRP3bH2+9lp01htt7bFe6eKw8PczVWNOoHmST7mXahDzrLrGcmse+XD6FwBCynK8u2JhOs7ZQPEELsYOS1xHKQiD9AWvYoyvBh1ucM9B+lInyLARyZ+5yvRRc8V539NWiNltXI7m7wf2L0ceAXX1OaI4fcKOx/QE2TQrmQmSUkICKFJCAiyGTQyASSkkyASGTZCAiyGTQgIkIUkmUkEUlIhJkAkmUmQgIskykhkBFkiFNkmUkEWSZTZJkBFkMpMghAQZJlNkmQEWSZSQySCDIZSZDKQXoZNkKSBMhk0IBIZNkMgBkJshAJCaGQkSGUmQgEyGTQoAmQyaEAIZNDIBITZCASbJshkJEyGTTUATIZNCATIZNCgCZCaDwQFF1ghAnmxJ7gvD5mQMjKvNh1MjGB5PFer9TvNdMzwAjKyR7IDwj2yXhbQ4mJanaZe0lZ90RBt0J8pRm9QmRTSIk/h6xmOZd3Xd9Px4XiOUY63NKY6WAeL2HiuDf8A2Np12t7uS9T6UHxI18NPiuPs+yF5PT9t/wDXlr6VguniUWR2zgCFjPppx5bqGnWfmrkHIHY66RiYACXwBKCWi4iT7GHvky5k2j0W6PODNOjFGOZeXERGsRDw+M8OHNbMaEJZG6ESdsQHcceblZPJnK7zrINXtLHXaOW49oXS9MrMY7jru19imMa6mHY028Yqir1LDryzW0WnWxJdjod2vFcnLzIVWxFu6J4xeJLf6V2s+JnZKA0EokcWd9FzbsYXVRIiJAx1B46jVjxUVick9VfDWm4YvqWNdV4ZiR4AFgfp+lcT1euHnGysNvGobmOKV3o3lyM6TMSHAdq30YORfjA5QEpS+WUevaFolSj5J48CyverpesPZ7HGpnHKEaMkgTAam88Y9ITPOH+73KGL5kL/AC5gxmCYEHlKJ1CrMJwyJY+1rH2sOvBb/UD6ZO05OHfOV0p/jVTiBskBrKMgdYuuh5R5zUP4zB6H0RqckNoHIPtXqBwXjvSMjfOAOkwQJDtXsYF4Ba9D9LXhnN7pLkmt0SZDITZbnMJkMhCAGQyEIBMhNCASE0MgIshNCAiyGUkkAkk0ICKGTQgIshNkMhBFkMpMhlIIshlJkmQCZJlJkMgIshk2QyAiyTKTIIQEGQykyGQENqGUkMgLUMmyGVyBITZCAEMhNlAEyE2QyASE9E2QEWTTZDIBIZNDIAZDJoQkTIZNDIAQmyGUSBIZNkMgEmyEKADITZDISJCbIZAIqJ7VIqM9IE9ASgPP/qC3bh2a63SFQ/hi7/WvJWkmNp6CMfe5XoP1HIytqpf5AT7WDn3lcK1vy8z2v9Q+hYdrlnV01hT5MlgBrJPIL0fo7zhEGRiGGgXBsrcTj0iF2PRJEiA5gfQufscVZ2dC9R6COLA/NOR9rfQrI0Y8S8IAyH2pan4qkSkbBElgBqVrhEbdFwtts67NrdnEyvUsTzdt0mckAnhxb4rt4V2PKuJB8JC836p6XCqyVlkN1Zk8ejqmi/N2GrCjKUmYDiAul1XFOrRlLs2rYW0Hpc4b5CdfiMWIA5gclTKAMfNr8UJaluIPVU+kYudGqU8wkTP2S3H2LWKTrOiQjLjKs/LL9hWE+po1ThJJ6GcAM7O/AqqUoUkSJ2wnoe/ky0zkJx22RnWRyD/Us9mNExlOD1yGotlrJ+x0cbvBpzcaHl/XZjFyzbTDbdaPmlxjyLDlIrnYGBfkxM6iAA7xPNmW79S2Uzvrpr8U4BmGvEuSe0rT6Ya8DFhLI8BmOB0Ly15rrVmumrX3M8+9Vf3Fpfprv8SWDj5VH49I8yuBDVS+eOvAHmF7b07IybaR5uPOsjRyYtoe9ecxBAwls+XUgdrbl63G1ogRwIB9626HLZz+6UVW5aB1QybIJADkgDmToug4yJ0D8lw8j9WemU3eUBKzVhIGIB7txdbPXsqzG9NsnQBOy38OA3AfPpuHVl889Yw7YCGR5comLCR492oJWXZ2cbVqmsm/V08q2u02kfS8PPxM2Anj2CT8YnSQ74rQvmfo2VIwIdjDV+BGvJl2bPW/VMaO6F0pjgY2Dd9Kj86Tiyh/As/atrlRprwz2SF5Gn9V+oyk8oVSiOI2kfHcuhR+qISiPPxyDzlAuPdJWXdR7x8yj9t2r+M/I7yFlw/U8TNJhTI7wHMJBiy1LRNPKyYurThqAQhCECQmhARZDKTJMpAmSZSZCAikykyGCATJKTJMgEhk2QyAihlJkkAkmUmQyAiyGUkmQgiyGUkmSQRQybJspBNkMmyGViBIUkICKbJoQCZCaEJEmhk2UASE2QgEhk0JIBkJshAJkMmhlAEmmyEAkMmhCRJpoQCZDJoUATITZBCAi2qryZCGPZLkIkq5tVnzhuxbI9WHs3BSSeN9aMvz8onUxEYHvI3y+lcy0PVMNo4+hdH1KZs9RvkdWnaT7PCFhPiqk/It7ly3eWdvWvTUrnFpzB4/Ut3pM/Luh03GJ9pWc1vdIHnEqePpMtyIP1rn7Mpo6+rDTPS5uPGyJG7aSHjLoVix8z1Gn8O2AO37Q1cdQtls99Vchzb4rPKu2HiAJHxXP1tRDOpJYktj6nCXhugJwloYkN8CtePkYMfDVDywegYfBY6srHlE13w17dPpRPHokXx91b+4+xS0iXSr2svitDr+FnjqFlEmsk3IrLjUZ0eNsRDoxJV0ttZN1shFwATydZW1wZqqq2pkvlawXN9RyNtMi7Die5WW5IIavUHmvM+rZs7MnyhMmEDqx0JCv1dbs/lqReypWfJLEqqnlSLPdIGdkzqQCwjAdO1YcuN2V6nHHh4zAsRy7Vb6ddttuBfcYEg83iXWv0nElH/qrQJSs+y+pf6l1P02bf8AWEc331SW9pf0Ohg4FlAgbLDZOQIhAfIAR2ruV+pZlUI0whVZZFhsBLRHWUly6YkkTOp9ug6LfRWLJCFYEYk+JZLt7Kv0vU0fT12XqUpEc71L1ymoTrqiXkBExjpInkNy6duIc/Cq8820kNLbo+5vtx1ddKFcDTEEAgMR7FLQBuq6Zu6+q0yjjfCfTVVhnnRjSgdkyJiPyv8AsVeRi1X0yqmPDIEExHXs5rs5OPHc7a9VgsraXDVef2J1sd1Lq1T5/jVnC9QuxifCJMD1AK62TETiYnWJBHarP1HgiF1XqNcdH8u8jt+WX1KkTEoglzxfmy6Xbmq3+j+aM6V48qfGV8mZMcS3mJHAcFdvJL8OTcFEVkT3QcEH3qRfiR7wj1LLQtxsq2Fk5VT2WV+IEaEL036c9Ys9Trvjad08eQHmAMDufp0ZeUwarLc8xjHeLGrAH3yPDovY+gejD0jC8gy322S32yHB+gXT7eZfiPocfunXgpjlLjydNDJoXScQmQybIZAJJSZDICLIUmSQCSZSZJAJCaGQCSZSZJkIEyGTZDICKGUmQgIskpMhkBFkMmyGUgihk0MgJshk0MrECZNNkJIEyGTQySBITZNJBFNNDKAJkMmybICOibJoZCRMhk0IBMmhCAEJshlAEhNCATIZSZR3RcBw5JiP4hqR8EknUbIZAlEuQQRE7SekunekZeIQAeR1bs7VEoQ9IGhVzyceuflSmDZzhEGUh3iIKUsrHhONcrYxsmHhAliR1AKKyejJdWtUywuqsmG7Hs67X92qt3R+8FXbOBiQ41Go7CpIPDTazJyZciD/ALcpSWSqJkLI9pIW6utpXDm8Ie6KxUvvnHs49rFcdnlno1rCqXygPPf2exQqG20v9qIOvYrpMZkj7zfWoyhtsrJ6iB72JWLZ0LGTrU3iUIQ5xXUqjGUdQvJSy5YmaIEvEM/cV6PCza5wBjJ1jakZ2Zry5Jpao2zwq5jUA94dVjF8vhw7FfHJcKjJyoVVynOTRiHJ7FSyrsVq+yYehC6+vHrM7JbYj49i5uTbHJiLAdBwj0dcf1L1a3LteBMKoPsHV9HKj6f6iIzNNxcSPzgcAdC4C0XTaq5b+CPy15cf3OjK6Qx5kfNEEj2BeaYysJ4nmf4l3jLbGwE/KZA8+C4dTGUyRry7lt04VmZe4y6hRvhk1Sjpu3A9w0K9BjRMagZM8oglvsj/AErh0xBmZcolh3yIXfxq5WsZNGDadpTtcv5DqWGasdydx4HQBl1sSLatovMZHq4xrdkS20sQdCx716LAyq50xaW4nX/DLC9Wos9GaclZNLY9DUQax3KJPFLGlGVQIRMDcR1XWnNU/gcURZow5c7NpMC373Fl5Sz1/JhmmjdGyIPFmJfkGXqM6z8vRPfqNdF8+yJiORK2GsySerDh9CxVVazTUm8utU15PWG/GzaZU2gGMxtnAdF5y3GyMC40WFwX8m3lOH/u6rPV6vZtMo1giLDaZiMtekW4e1aper0+pUSxciGzgYSY7q58BJF1WpOPS9S35KW3iy0I1yi+2Wj8FOcAQHOnF1ya8qXmGuz+5AsSDxI5hdeqX5qMaaxusm0ZADxD/XyVnRqBXsTOn+l8TzMoXEv5e60+3wQ+letWX0zCGHjCB/uT8Vn1R9gWtl2dVeNEnrqzzu+/O7a0WEJDKTIZXM4IshlJCCCLIUmSZBAklJkMggihk0MgIshSQpIIshk2QyAihSSQCZDJshARZCaEAklJkmQEUMpMkhBNk2TZDKxAkMmhCRIZNDIAZCbIZAJCaEAk0IZAJNNDKAJDJoQCTZNJADIZNDISJKZnEPGEp9kW+tlC0mR2CUogay2B5e88FScLFnrLHsmfv7zI/wDyOs73jRGlOucssnORDTqurYuJxEZN2tAk/BSgY7vzFQjbRMePy9fEPtbevXmskjLGk2NkmJ5UZJkQe4z8Y9hPcrq7I3zlOn/ps2IeyEtYzHIyA0nH94a/QsnaTbjGmhCcjXGoQMTgxs8w3DWUTrIwsHbI8fenGHk0RlnZJhGTkwgdpnIkyLyHjlxZoqzbG+yUW/L5reOJ8ULY8OzfH4hQxYVY5lCNQhfHiJEykI8BsmeMOnxUOfJKHGJsH/S0W1Qd/MlM1yPdGW6XvWT1Oqi0R8y+ZtoO6MbKxLiGI/t6+xbTXZa8siVnl/8ACqYDuns8fxUPNMK9tMJ49PCMIRE5nt2jdt9qq/0LLXyV4kq5QEYwB0ckPEgNo8Jaj2Lzn6nzcn06wwrulGu2IMYA6OfmXbuthAWHcL41gzNdo8u6HaC0f8c18/8AWfULPU/ULL7C0QNsR0A0TqvadXgm9KxMLJ26p+ATf5rIAv8A/rC5RuMcmUXbeCB7JFa43PRWeERdFz31hcy8/jbjptl9LFUrq5NbYVYOpVY5Y85A/CK1Sh5llQHOZme4Bn+K5EZkavruIHtXZhI/ljsD3Si0QOUW+tZ3UNG9HKg4nqFgnm2TgdHaJ5MNFbj5c6+ZieoVM6iJEEEN1UoVksAHWkKIM/UrM6lfq10BpISHaqM/1aV9BqlIRBOrdAsl9NtMQZxMRIOH0dc2RMp68FFeujci/bdKCd2QIho6qG+2idd05c/FCP3eY9yzXy8TKtydCVuq/wDZyPsy/wBj1uXZUKrLa5bq8gCVZ/i5LlRcaDjIgD3rFj5coQFU3lU7jrE9i31ZNUjKWLFroDwylq3bELPhwT3NufNp6E3iLq6hJjXulaCNRt+tWf8AegN0okgcBHsHJc6mizzTIk7pPuJ1d1fH02yExKk+Ie/Xj2KeNNyOV/44M2dm/mrhcImMhoX+kLtekeoimIhu6ceLLl3YNpseYO7sHHtZa8b0u6ORRXztPDnoouqOvH9h1u6u7fvofQ/R8iVmMJHnqt85cCubgUzx8eNcxtkBwHADtWzeAA5IDqtFFUheHdtEPUMT83izjHSbaL55bh2Y+TPzhrGXDkwPBfTIzHsK5vqvo1OX+NXEeYPmA5j9qiyabss+UTRp+m2Fsz56RKN0wBsEtBsG4gdH0ddb0z0qqbTti0Yah3JJ7e9boel+XcJgMI6HdqttERMiA0I0kx6LLs7sRXBvTqzNsweYs9DyKfU4ThV5lJkJBw8W5xkvb+nei4OHdLKxwfxANkZFxWD9w8feoTqiIkngt2FKUseO4MxIHcOC29p2u7dbJelSmc/uqKteVJU2h/UvZDJoXYcAkJoQCQmhARQmhAJDJshlIEySkkgEyGTZCAiyFJJAJJSZJkAkJoQQRZCkySASSkkpIEyTKSSAsZDJshlJAkJoQCTZCEAMhkJoSJCaEIEmhkMhIIQmgEhNCgCQyaEAKM5CETI/4Kks+VMDbEkDmSX9g01PcEZNVLgqMgZHca9x1Isew/0Q0Cf4T/8A1z/LKk+/VTgLNo2i/b0hGFY90tUSslAHfbbWP+dWJw/qgPrWDydKwgkGiRYD5Z+zb+LT/XqR7Vkuox8aUCHx4GT1SB3RrmdN1Z4bZfaj8FrjEgb647Yn/Nxjuj/NUfqdRlCE4ESEBVboZAPRY/KyB+QqjRKYCcbImnLjsnWQTKJY1k/LZXLjtPw4FTkZGUcfLLW//XyYhoyPTsk3GPA8uymqExE07SMjEHgjLXzKZfZ3fa4adoCnupNBhc1mFMDUv+G/B+e3ofslJDFKEQSbKwLIfMYRkC33vMrO4g9yrJMiT+PKI4SrIkwPSfGQ5q6wW1RELpz2x/tZcTqH4C4Dj3sx7FQI7HnYL8ckuZxL1gn9wGQbvCpd6ItXdnA/U2WRj1VCyN0JyLWkNaP3ZMB9XcvGXQIlIfuuO/mvV/quM7La7RKuzaB+JXpu7xr9K82YeYN44g6j6Vbrwi9lMGrHsNmCSOMZ1SPxrKxZJO8gdB7xoVqwjGvz8Y8bqpSh3x8TfArPbWZR8wEDadsv5g4+Khfc/wDzUm2ao04sRYYnlpL4Lr4lxGXGP3Q/v1PwXM9IAmC3CI0HPjzW3DB8yNpGkyYE9Oix7d0dHS9Gei8mm0AzhEnqQECiqvWFcYnqAAo4891UX4gMfZondbKI8PFcmdJOmMnB/Uh/tA/MXC85YNoJXY9XulblkEv5Y29jnUrnV0SycqFEYna+6RHHaOOi9Doq1RI8/wBzdc2c+2mcZFxrxKrjFyu9kYOXXMZU6tsRu8JGhES+3XsC5M64xyJiAaDnaD05BdDwcqhlQidFt9Nr3ZY5ARkSsp8MvYtvph/6vo8JKltGaUXqXzOrPGAgLQA3UlTxrIRnsnrGTdy1+nyoAAshGyR4zs0iOwO605notN8fNxTCqwa7QfCVzuyWHvudKq9V+hmpERcI6SAeUW1Op6lX4EzP1SeREAxojsr6OeJXNpsnjeZK/wAdjNAdG5rrehAzrnYfkJ49vNadVPVLyZ93Y+ELGTvzzoxpFhHPaBzJVVdhsgckwJsifDEOYt381xPVvVqMeEREbpCRMI8tw0f2Liw9W9UlImuwx3cdpKu6ttxgzraEpye9pz67X3PWYliJ6e4rdUQQ458CF8yJzrCbbJSl/ESfcuz6N63kYcoxukZYx0lxO394IqYlOQ7p4jieqy8KM5GcQHIOnesGNjzr1sDSBZdqucbqoziRKMg4I1BB5qm7GcOOK5e3pn1VRr19zS4tmSe4xIA1V+ASapd/1LLdj2HwyjJjo8Czdq24dcoUNP5iST71f2tGrz4TK+4svxROrRckykhdxwkWTZNCATIZNCgEUJpoCKE0MpAkmTQgEhNCEEUJshkJEhkIQgSE0MgIoUklIEkmyGQCZJSQgJoQmpIEyGTQgEyGTQgEyGTTZAJCbIZAJCaEAk2QmyATIZNkISJDJoUCBLFOwSvLGW7gBXHdZt9zRC2Wy2Vyn90E9VghMQHlytlVLiaqRvs15zkBLVRd4NOtZktEB/wcmX7xt1/+VPzI1n+9bQ/AXjdD+o/+5QageKf5s9p836IqUMnHEtkMraT/AJWRz/rEZfFYmwThtPmWwNRP/wBrGOh7Zx/aD3pkXx/FBjdCY/uR+WY/5kQ4/mj7mTEY1yHln8rbL5QPFTYewaD3MUoxmJkUtjZXzSpPiptHMjh7xqOYUAqsv8gQyIgmquW2ceMqhL5oHqOBH7FdLdTf+EBKFoM4R5TB1nAd/wAw9qr8wSE57DVdVFr6Dq8Oob5gOMT7FGrSqVBkAaNt2LZI+E1n5XP7rmJ7GVZyydibxAkMO3dAazxJDhCXERdjH6OShuhUzX3Y55fmAZVnsMpae6Snkb98YZETviTLHuq0Mh9qsjlIj2HjxSjcYjaMpn02ZNbH3/hqrywtDi/qHDsso/MCui2UeMqS026/4K8gajE+ZXq3GJHJfRr8YX0yiaMa0Ea+WWl3g7ePtXh/UaLcSZL764FjysiOku5RMODarlZ2MojXZtvq0nVIEwPLqFG6kRNtb6Tg9Z7B4o+3ktFFcLpeZUdt0Rw5THRV5LiIB4xJ2HgXP2VCeYNHX0z/AIH6G3n2V/fgSO8akLr144jTMEfM5bvD/AhcD02/yMymZ0j5gjYOyfhf4r01kttojI8Sx9qz70+XzRf28cY/qWenWk1yEvmidfcl6hlQx6JWS5cBzJ6Lf6DTWZyrnETeAJfXWMjH6AFp9U9J9Nnjzsvp3bA8QJSjry4FZrrm3LaSbe4SmsPl5PnnmTuvOm+c9REcyutTRCsxrMd9ohoI+GztMZOHHYrrMWnDEZxrEIzDvEbi3ByeLKFUzGQNko1xJIJ1MLH5gjWC9LrSg83tfqKsrKsOBOBjZ4G1sL7XJ4F1wLjvyJT5kuu7l1iHnw8u0CUT80tw01H2iuLYXt3HgIhLsnrWDLYD5h7FqxZCrIpMiwPhJ79FQBusA5nUp3Ftjci6o84LrDb+J6Sv1KvAjA2B3ce5dCPqdd1fmwMehD9eGoXAL52KKxEONd/BismNb+Wu8myUhIaEAM7d5CoqJ66o0fY6vGjN1lgtt21xBsmWA469i9VjU/lMOFI+YDxHtPFcL0qmn89G0AyGpiSNB8V35SNkNftcWW1UkjBy7QeIzbJSyLbJncIyMR268lVi+oSovEJxYE/Sr82jyrLapEgxkxZnYFwVjnjCdsZ+ZucBlVucFknqtZOsfWL8euyykjc5BBiCA/Niq/Tc6dtjXh4WuCdNO1ZYxhG2dUmlXIRL8FdTViQI8ndK08RoIxHVxx+CpXGhdp21PefpXKlPGljTd69Ynj4SeC7x1XC/TdE6cbfMbfMYgdQBxXccEJKckWUNfIyX3PZKmo7ZRAlOZ4AHkO1aQGAHRU048BOy06ysk/uG0K6Mdug4K/VVqW/5GXbZNqq2/wAghNC0MhITQgEhNkIBITQgEhkIQgSE0ICKE0IBITSQCZDJoUgSE0IQRQykkyASTKSEBFkMpJICSbITVhBFk2TZCCBITQoAkJoQAyGQmgEhNCASE0MgBCEISCEJsgM+ZLbRLVnIGmp48u1Z4zlVERldVhxOojpKZ7SZEB/YVbnyaMAZbA7mbORyG0a+Iquiu0DdRi1wfUztl4z2nbGRfvKpc169GRGTQJN/3J5d1be4QV0J3WxYTozazxA8Mm984/QpmXqA4UVHuslH6a1XONk//wCjCjL96ucZSHvECsy5TKjDJ2R3YVk9PKl/bl2bC9cvZqkfNoanMedDjy8iJL1S4AufEPa/eQrRX5kTHHt8yPCeLkgy9ni8cfiFT5ltEtsYSZjuxJncSOZon9r+E/BVZZF8Jyld5WQAMmoGVdg0FkDoSP8A1RVNMnohYKvNGNKdNsRrIQOjiP2tGLe5O4RuxYWYsnNf4mNLpIfYPZIeFGIDbA5WFaJGReyiR8OviA01hIA8VSckxgYjGNQONOV2FPhGB3TqI1/DPFh906j4KXnSAb8zJul1B+kCCjuonZKUa7aMlnuqgGnIcp/dm3UKXnxiwlmW1E6DzqxEP3yriPirEEZRhdp5ePkNqRX+HZ3h3+kLietYJycc2ms3xq+2NLQPu2RLE7T09y79teQY/j0xyIjWNtR2WDtETz7pLLbCE4GczMwkGGVVx29LYAcv4fcs7rKZejg8LXXAWbqJ+KvjE6EDoVH1WZlEROk9CDwPt7iqPUrrKvU53V2eZEEgTiGEgDxbgp5VwzK4T0EoakdXRr1J7Gyt6bV3MJkDLixLa8nGq9FdebsWrIB8XyzblILzVMd0pRPeD3ruYGPlTplVGqcwfFuY7NOJdT2pYnYjqbUxueh9HsrstnOw2A7Iuat2h5yOxb8uqeXGFdOZCUAXlC7wyI747T7wvNekZ9mJdZIzMYg+LQEgc9D0XqfzXm45ujZTl08SDHaSPaSFloxdNufJ5v1aqvHzZiI/LEAbdvirloNDo30FY65eQWI8gnXcPHUf4hyWvPsjcYmiTxtcmizhsBIDHjy7Vzt22R2HyD/w561nuP7F2dNvQmcvdWLNE8svEkxsi0T8snr16a6BcMuQSerewLpZcxVUYiG1+knHsCwbW2x5sZH6ku8k9awRqgQ5bU8+9VWvO2MY8eS0z8MWHzH61lhKP5sElgH+AUVyTfBt9OygCYbtR1XRzfTjk1xya47pwHA9nVlz8CinJqmK9sLZSBjOWm09D2LrYGd+Vn+Uy3rlHTdxAf6iodYcomtpXFlnoeUZznXPxEDbPRgDy29i61cgXBiYMWJPM8OXFc3Lwpiz85hSELwNAADCY5ty1VWN67RAGvLEqZhzIsZQ6d4U8gqqcmr1LHhfVMxANgaUZAa6Lzc8eO47SxLl+Wi9FL1fClCUqro2MATEPqOHRcCedCEgIx80x47tB1VctmlqqE/8EPInGYiS8ZBgdddVvxIwovD+KDg9vcuYPUskSaQjKLkiJjoG4My1051NkxGUNoLk9NRr8UaZFWpPovp+QMjHhdEbd3EDkRyW+MnGq8x6J6riVUCiVniB8MdTx469672HdPIsLj8OHA8O5UovVHknsWHbZI2AMABwTTSXUcQIZCEAIQhADJJoQCQmySEAhCEAkJoQCQyaSAEimhCBMkpaIQEUKSGQEUJoQCQmySCASZNCkEkJoUkCQmhCRJoQgBCE0AkMmyGQCQmyFAEmyE0AmQmhAJCaRIjEyPAB0BhyfMlfI17Y+WG82w+GDhy0eZ9oWeH5acmFdmfPnb9j2SkYwH8qjS+ROVgqrumSSbLC9df7sWBc9W96tOQT4Tm1Q5baIeZL47/oVL6m9PtRMU0xG4411R/5Uyf9yf1Jb8YSYZ19Evu2lv8A5oJRGOzyysqZHE/iD4QgArI5NQ8EMwdkMgM/tkIFUJHKm+YEjOGXWNQQ0LI/wTgWf3JGzwEWnzqB8xkGtqI5zA6dRr38Up1Vj8S3GYn/AD8Ul+9o7ZfSoSlERjkC0WVjSOQG3RH3bQG3R69PiqslFUXxs7yt26rKibB/HBnl/MCD3h+aWNDGaNc92HmReNdo8O8OSNsvlmP3SsmTPyMush9sITaAcioGURYXHGI5LePMhjiE4jOwyNJRaU9o4PHhPvGvYsv5M1a9KLbLLYREc2MgIfLlUPp2yiHlHt4hTjK8wEqpxzseY1B2iTdkh4JdxZV0eb5YswLhkUjTyrCSY9gs+Yd0gU9uPGRslTfjWkvOVQkxPU+VuiVdZM2RlDGqDiF2CeU3IqB7QJSg3eoz3Vk2WE48z81sBuos/ekOXw7yrI2xMttObGyXOnIYEj2CMh7iomPkB9tmJ2xPm0f08h7AlkEfPvUqJwyrNYkmRPh1ie0LPVW5EJDaOxek/UHoksiwZVTU7g8p1Oap/vafKf8ADrkVYMiWN8DKPQh/aFVOVg6Ek4Znr9LAyo7vHS4JAIEpDoCdF7GsVzMaMaN9MK461jxiMZdAN/Jeft9KyJ1RnGTyjwmNP9C7nosqqMeULrLca0F5T41noSZCUVnabLL0LWSrLSMXruFRRDz6ZHSO2cZxMJ7eXGIdvgs+D6PbIwsulYMeQEjKAJhslzPHkvU2i+ykxPlZtEwxiWiSO8boH4LPRKquIhjTljT4DHtHgLfdEj/uyVXaMFVZupw/WoR8yFUBDKorrjGEokCUfqPsZcvSMdos8POFwP06Lq+sRj+dlOyqVdhAedJ4luJ4fEFc2zOrpj4Hsny3hte1wAumlooozgytSbZcGLIpnIgiERHiSIsPisrAWy6/Qt35jOy5NZIRr68IxHanl4saaIxrD7mM5n5j+xVd3MPc0XWuM1mF5OZZJ3kOGrftVnpmNRdZKywbgRtAPByW96ptmNxgOnFW48Lziyrx9bwRKMRxLHl2haVwY3SZonhZlb0YwjCquw+Il5S08Wh4gcO1V5Nt4kYwjKePjS1Ji0xGXQnXat0/Ms8mwT8rHH4t9gLSeJbYPaj1WnNnbCWJXGMJgEsXkH++eh7Frgxhp4HhZl9EIyBFmLYdJN4f/wAStF+Nh58T5bV5HSReM+wkKiGRl4dArFMJkjWuJaJA48QsM5jIBvwJeXdHWeLIAP2x6qjp4ZouzypN/ogpw/UxTdUBK4eXGRHyyGvxXprcPHn81UJP1iF5uyORlYELowIyqZRJMgx0+0Oq9H6f6hj5uKLYnxADfHnGXMLDsru9dDt9vdRxXzRlv9DwLIiRoiJRLuNPoU6PScGEnjTAHudbZZeMAQJAltQ40WYepUg7a/xJ89urP1PALPPlv6nRCy+KRHLwpTyaKMOEYzmCXAA1gRqT7V2vTbraZ/lMs/iycwmzRntJG0HmWDrF6Tki7Jk8Naw8ZDXQlV5mUPMpxo3GOZC8WmwReIB3nbHfxA4di3o4aOD3Dluq0n9z0iFXRb5sHkDGUTtkD94dPerGXQcUAhDIQAhCEAkJoQCQmhAJCaEAkIQgEhk2QyECQhCAEk0ISJCaEIEhCEAkJoZAJkk0ICSEIUkAhCaAEMhCAEITQCQmhACEIUAEITQCQmhCRKjOLYswA5n4QHbj1PTqtC436g9XxcCMIWx8yZ1jUOZOjy7FJKUkoVC2IjKByW4R/t447APtfFW/mLKRsN2LjD7g1b/ah9C80MzN9StM7riMf7NVZMI/za6rbRRVWPDEDuAWHZd1eh19XUrVmTsRzd3D1Cl/4NP99WxuyJ6C3HyB93WJPxn9C5sGU9lZ4xB9iy/NbwjR+3WzNco1VF51Twz/AMWkvX/MI6f1RVdgMJCw7ZC3Q2w/t3PptsHASPKXs7FXC62r+3Mgfdl4o/H6k421TM4wiK5yBN1A+SyJ0lKPaP8AX1UrsVvgzN9Vq51RlAP5smMxVkQ0qhbpCyBAcd7jlqOitjKFcyYg4N54xPiomfZ4foKxZNHqd3jjZCeHwkIx8yzw6GbHQnqBqow9LEYeZZfbnYcxqISI2fyw4j4hZyvJfU6MsvDjPzMwfl7eH5mmeh6eKLH+oIn6tVVOMK8/eZfJCyrcSR+9XsVWHhY9Nf4FNeZizDaiPmgcw8tJ+1j3rRCGNKEqC9lI1NUwY30twI4SIHI8e0qys4wUarOhD/u8rd1eRjxtjFt5II8J+1tsifCrqjSZiGPOWHfyol4oS7oksR/AQidYIhVdNyf/AObLDeIn7M+Tn3S71UIygTj21CyIDyoOrD71JPEdnEKOVtxFWsYZaXpm8mxJk6zHix7O/htPu9qWThSyQJ24+NkdJDQ+wyjL6U6py2n8rcLoDSWPe+6PZuPiHdIFLyqpEmOJZj2fepIi/thIA+0I4Ck5NuJj48jUcW7FlLSFlb7GPU1GUdO0Ld6fTZVGQx8mu+XONgaTDg5g3+6r4n7JybKreUb4RY/7MX9hRdZEtDKrqvbhOstL3Hh7JKuWi8t4WSuyNUSbL8eeOed1Bcd5NbH3xXGy/UJw0ruhkxkSAJRB05Pt8PvC7E4Tn4apTjWfszO4ezc5+KhV6ZRCW7aDLqycE9TSqaPMmjNyZyMYSO7iRIxj7FKHoGdLUCED96RM5ex9F6wURHAKYrAV5QhHlv8AtV2OATE2THAk/Flg9TnZTSa5+HfxkQxJ6Be3nVGQ1Gqw5/plObRKm6IJY7ZcwVKom5ktPpaXg+d11iUyR4u0cFuxMf8A6qEthnMD8MOzSBfd7AgYposlWeMCYn2LRHSUZwLSjqCOIIV5yc7r6Wi6XpcrqaqbfMhAEzlXpq5+WW0FuDrLD0nKrya7/OiMfzH2RJ8Ic6Nw7Fppz8+7NNWROIjtlKNgG0FmLSZYsGGZ/wB0nExl5dpnYQXEZDlIO2uq3WUc7WToZGVjYt5hdIQJjGdc9SDqXGiQGLkVG9ya4gtdGJ0268lh9QFG6/zHnZCv5BwiDLaD2SBR+nrwLLcaesLBuA46jQj2hQ8BOcBPNsrj5uBfKyVWtsC5jt5kRkNQy2DDnZWL8R42WR3TpBbQ8COZHYo4f6cyasyN1hjXVCbxjJzIwB5gdi7WZ6Zj1ZFuVmWtFg2uyG2PDUakrG96zCybdassv6Hn2yonZZiSEuI8Bf6FvxZep5ExTVTIgHQEbQOpLsu5n5HqFGDijBpD2y8uBiXLTDw04a9Ss+Tk+o4np1NBE7ssSO66Ed2yLuwlruJOjrOU9tzXnZbmyrH8uFmHXWTMREjIEx3Ej5zPkNzs3LkqafR4AmrNnHIprqFA2kidIl+ICP4jz7GW2rIkPLxrrIHPnWJeXEsGPX+Zcr0gZls8vJuLXWx3QE3jAziWB7hwHtVkzJ5Oz6eLq86uQyPOolQK7SXeU4yaEmDgHkV2l4iVJnlen3YFguqxJeXbtJ3GZmZSnt7SXXta5b4RlzIDutqOUY9iiGSQhCuUBCEIBIZNCATITQgEhCEAJJoQCQhCEAhCEAkIQgBCEIAQhCECQhCAEk0kBJCEKxAwhJNQAQhCEgmkmgBCEIATSTQAhCEAIQhCQXE9b9PjO+OZOrz6DDy7623GIfScR9K7aryLRTRZafsRJ9raKLV5JryTWzq00eSqqopkYUD8IE7O0LXBZqwTqeK0wXN2a/I9HqWC+BUuCjEKbLE0ETosl85QtpnD5hbADumdkh7itUiypj5Jtj50vLjym7bZfZL8lC1RFvtZqhETtlLH/wCnyx/don8lg+8QOPZOPt6KURCy4+UTiZp8U6pB42NzbhP+KOvVK3wiMM8PCJerMh4dp/eb5D2/Kfgp27o1iObD8xj8Y5EI+OPSUox1H8UfgtEjmbIyFXmg3A4WVLQWxP4dn8xG2XdIOr7PMEdubT50I/LfSDuj27R44/ykqMRcKngY52JIcCQbG7/ln7WKKNm4wwbvKmNZYlwJA7oyaUf5dFdIo2OsCdUjVKOXiz0mNN3tA5+4pGO+Aid2RVEvCYLX1kd/zN7+oKdpp3+ZlVzxbR/9msvH2zj/AOsJWmUALjOu+MuE4HZOQ9m6EvgjQQp11zluFldsgGNd8dkv6mBHuUZyxqhuNc8ezlKqwEH2AsfbFU3Z2rVbiW4S2yCzASlLfYXJ93sUOqrqa063Z5k1G++8bZyJh2gAkdrKcIRjwChUByVwCo7Tobwq4RKICmAUgFMFJM2xbUaIM1TK1lDskEmywkOqMnbGvzDPZt49qshXfYDKEX79Fnu9JzbwROQ17Vak2xovLFrqmZytjyl2NZZdZOAfdIke1QljXVh5QIB0C9RH9O5A+2HUx+nrudoW66q73/Y57dzelP8A2PI+VaPFWJRmOBClin1Cds43RO2uO6nboHf7Tl168fp2XO1S/wDHRztK0Sov5P8AQys7P+K/U8oPTpTmboVGUyBVITIMT9p5Ajhu7V1vQ66qaK77oQqvBlC2sAREWJDx7C4Lrrf+O1c7CpD9O4vORPeVF1Syjlb6IVdk5iv6nJzs2usmFETcXDSjwjEH4luSwev4U8i2m7HtORVs2iBlrAjoOTr1A/T+F0+JTHoGB936VRdfWsp2LO93tU4eCboejgGcjnUAxxYOGj00OnPnyRhWZtFc5Ztw8+ZagxMWrOusxEdSu7/2HA+58SmPQvTh/lg97pw6/wDYcr/6nlr45UbBGvy7boAg5um6W7oAwHFl1hbXkURjlWtI48KbCJAOSXmXfsXXj6P6cP8AIj7kx6R6cP8AIh7k49f+wm/+p52eHgxzqMqq+FddMTDyokBtPC3vLrs0eten11CNl4Mhz1K1j0zAHCiv+kKQwMMcKYf0hWTqtFYhqzUNr9DKf1B6WP8ANP8ASUj+ovTBwnI90Stn5LE/4MP6QpDFxxwqh/SFPNeH+pTg/P7HPP6j9O5bz/Ko/wDkmDyhYf5V1BTUOEIj2BPy4fdHuCc1/X9xwf8Ab9jk/wDkmJyqtP8AKrKv1BhTPiE6x1lEsuntj0CDGJDEAg8k5rx+5PB+SNdtdsRKuQlE8CFNZZUiiW6sNAnUBaIlwpTTKtNakkkIUgEISQAhCEkAhCSSBpIdCSAQkhJAISQkkQNJ0kJIG6ToQkgkmoum6sVGhJ0ISSdDpIdANCSEA00nQ6EjQk6HUAaHSdNANCSEA1z/AFu3ZgmPOyQj7BqfoW91xv1BZ4qKuyUz9CFqKbJfE5da01hUVhaqwuPseWenVYLohSZKIU1mCiarrM42HZGNjgiVcy26J4gPo/erLOazSrnMSmIvCGsiz7e3TxDvCiuWRf7WaqLJQf8AKEzrGk8OzScP4DLgOw6dCFdQYsZen2CBj/cxLHEYk9nzV+zTsWEmZMRaJSkA9c4lrQDzhMaTH+CCtO2V0I2yiMiEfkvpOy6Hs0+B9i00MGi58Y2u8vT8qR14CFh/+Of0qy6GRKIjlY8cmMdY2VFpDtEZEEfyyVVV1sgYQnDLh9qqwCu0dhcMfaAiBxazthZb6fPlCWlb9gnurP8AKVaZKNQEcg1giGWYmI/tZMTu05AnbI/FczzLLpyntFcZF2gNoWvLy7bXxzOFsQdbIx2v7HKqjEAKZ4Ly2addOWdhRiyZcFlZEIlAHVY2s2zrokidEwFpjMcVjDRT81tOCzV4FqS8G7eFGdoAWWs22lqw/byW2nCjFpWnfLpyVk7W0MrKtNX9CqAtvPgDR+8Vrqw64az8UupV0QAGAZSC0r1pZeTC/a3helDDDQKTqLodbIxJIUXVNuXVV8x16BG0iVVvCUmhRlZCHzEBc23Pum4rG0deazx3yk8yT3rO3alobV9s9bODqSzah8ryPYqrM2wAkARHaq4QBCoy4y2EKH2WjUtTq6+SX+Rf93uEuOi3YufG4AS0K4VZrhLdZ4m5K+zOhKyPkw8uIbTiqrsjeTfs9tV4rSP9tj0KTquiZnVGR5hTdbpyee1Da8DdDpOhJEDdDpJqZAOh0nQkgbodJ0JIG6aSEBC8PWUQ4BK/+37QnFWpuUvsTSSdDq5QaHSdJ0A0Ok6ToCSSTodANDqLodQBuhJJ0A3Qk6HSQNCi6HSQNDpOh0kDdDqG5G5XKljodQ3I3ICx0Oq9yboCx0Oq9ye5ATdDqG5G5ATdDqG5G5AWOh1XuT3ICbodQ3JGYiHJYBCR3WeXXKbbiBpEcSegdebz7Y3Zcpw3MW+ZwQW10PBdD1KGRl7Y1wlGEdddv9UTuC44bcw5cFWzwzfpr6kzRUFqgs1QWqAcLis8netC2LJk6JAMlIsGKqQU2lk8Yzqj+ZrEpkSMbK4gndDTg32gdR7lXdLQpV2ThAEYs90OF1MttnXUc/apprJXt0gvnPChM1TLYtp3CJEoTos6xBAO0/A9hTAqgfxYylPgMnHPilHlvjEu/sIVuPk5eRV8kMqsaThPbG2PeA8X72RKjCtpnbTEwlUSLKwdpiRxBrsEov8AT1WrTf8A2c8palVhrnHcZ15MYff/AAro9xH7As1mZbOBqhOZpPKbGXc6xZeZ5k2g2yOkS20ntIUIZTcVqurhWXmwrZWcbGuAZWxJWaGRA81dGQPBc3Y3OTsolGC+JKkO1ViTIM2CxbNIJyIAU8XFORLdLSsfFV49M8mbDSA4ldiuEa4iMQwCtSkuWZdvbxXFav8AYcK4VxEYgABTCELdI42MJrNfm0UOJF5fdHFYZ+oX2lq/BH3lHZIvXqtbY6s7YQDyICz2Z0eFY3HryWOMTLWRc9qtjAdFXm3pg0XTVa5FO6+3jJh0CiKX1OqvEAFNgAo+bLckvtUGfygAqyPF3LRM6LLORBWdmXpLLxNhoVC6cpRIWfztqtqpyL9QNsepVZbwieKrltL5nPOPdKZAYDqVrxfSpSmJSLjiSulRg116y8UupWoAAMOC0p1t5t+hXs929KfqKMRCIiOAUkIW5xgmkhSQNCToQDQkh0A0JOhANNIJqSCq/wCWI6kJuo5BbZ/EomSvXcpfb5Fm5G5Vb0vMHVWKlu5G5U+bH7w96PMCAtdDqrzEbkBa6DJVCSNyCCzcjcq9yToILXSdV7kbkEE9yNyr3IJQE9yW5QdDoST3I3KDpOgDenvWLz2kx4Ji/iXDKfyVH4rGzenvWIXkuyPPLIr1H47G3cnvWOOQNN3A81I3BwIl37dFPJEcGat6N6xSvkJMyicmY00cJKI4s3709y5c8yyOuiqPqdo4MrLOhDxqdjcjeuHL1HKPCQj7FA+o5Xy+Zr3BTxZXkjv+YBzT8x15i2+2cDGc5E8iZMPcFDzr4DZCco9ZOp4Dkeq3hQvhG+qVUiQJc4kgjuIXnYeoZlUdkLDIAaO31rZj2+o2lrLPKlt3RjKI8XcVHElWnQtuEKKzGd95sjEgR3SMOzxbeHeVzK+K252SY4pG8vdIGdMotKJA4vxZcv8AMGPDTvWbo4cbs6eu6TXJ7HTqLK+M9WXD/NT471KGdOJ+Z+wrnt02Old1Hud4TcKMy6xY2bCxokseiuvvjXAyJ9iwhzEGuNSFshujEudxAYBye4LUcz0yk7as2zGnyrmSf9i8fQuJO2y2xxYK5cYykHAPRiQpyOezTrqyI89pMS3dISHxXV19OJbOTu7cwjtfnYWTBtBhdH+3mUx3RI6SjqW7C46FZvVst4iJERdIbZWw3R3Q+6RIcPeuZCeLCYNuNdjkamdYIHvpJUPUMyrIuEqbDZARA8ZeQ7DoCtFRKyeplylRuQJVcpMkCWUZnkps5L1UB5hHArdhXkkCS5vFa8PSYdYdqTqzfqbk6xkpVUyskDLSL6hXUY4kAStO2MFxQzpd0sLU10xhCAEA0eSsdlg/ORpiW8XQLLbl5F52vsj0jx962VlGDn/DZv8A5Z0bs6inR90/ujVYbs3Iu0H4cOg4+9V10Dmp7OiOzNK9Va/EoFZJ1V8IMEnESUxNw6zbNYexfAqwSWaEmVm9ORnauS4zSNmioM1Ouq23gGj1Kcm9CHVLLwErOXE9E4Ydtpefhj8Vrqx669eMupVquuv+xnbujFF9SmrEoq1EXl1K0AaKmzJpq+aQfpzWWfqROlcdOpVuVKlFTsvmG/izoqJtqiWMguXLIyLCxkw7FjvzPLltrG6XMlPy+EaV9q3hv9D0MbK5fLIFSXAxL8qcnLbfcuvjZAtizuQr1vOGZ9vQ6byaEIQrGIIQhCQQhCEEZThDWUhHvSF9JLCyJJ7QvC/rrLyBnVUVzMYRi7AtqSvPWDJrG4XTB4jxH9qlJvwiXC8n1+JB4F0Lyv6CuyLcPI86ZmIz8JkX5L1SkgyZ9hhKpg5JOnsXPPnicpxtnJ/sMDt0+y6n67kTpnT5YMpHdoNeixU2+pzLyEYw6yDH3DVSlKbnHxIbSaUNv4F8qZSkZWWWAfaLgD3BThhUlhrNxxJ4q+IOwDgeZ/1oMZFmLDoodreS3GvgrGNGEAKgIyPHp8Vbs0AfVPQx2qA3w8PGIGhc7n9qq2yySJxjpqdVJiFEcHGj8EbiOPHsUcmhxRLVS1UBPiCjcp52I4V8EhIoJIUXHFGp4Keb8jhXwPeUzJRdG4pzZH40PekZFRdktxTmx+NFgkeiW4qImgzdObH40S3o3qJKW4pzY/HUx7qw7NrwPEqEZRkSH4KAjKJJiH69FZLaADoZdiq2y6RAmfmmIbyyH466LTTX9o+wLPEEOeb6a8ArI2TjzYHrqrLUq9CdwETqQQeXRVbgADu4+9EpuWOp7UmgXk+o4KckD3RjEsdOOvFRE3Yjmq9wDuxiOJPJV25MIRfcD/Cr1VnoitnVZbI5U5xLRKormBEm0+J9BHn7Sq987Jbg2zl1dSZy5PDoumqwctrJsBaSSG1HVAm54t8UuARJ4/ZY9FYpIHxDUqyIhKQjZPZH7x+jRU+YC/NuirGRCy6NcCx4Ho/V+SSMm3EMYSlMCFsofLVM/M/MdOx1r/PVxEowhdRCXzVmsWR9nzLFOmwjbKiq2MdBLc0vjH61WBKB+S+rukJx+JKOiepet2sIuzsg2zEtxkAGiSGPuWCRJKusluKpkyjBOZkgUkykqtSXVoJxJGoLFWytssbdJ24OqEwVS3Wma17WsFoju0NIvDawJHvG7ROIx48cW+k/8vc3/wDnIhViySl51kY6SPc7q1VCgzu1ZzJfDIgJeHLlB/s5EPrIgfio5srJVPYap7dROBIP9Jf6VnlfbIMZFu9QkXBClohOGV+cgS3LLJ9zcFdUTzWMM6FbBfGOq10gRIKzQV0ZMFDrJat4O5i5YEREq+dm5cCNso6rZj5RloVz36oyjopdP5muWpU4RAUIsdVN1i3BtqXBRKjuQZqrYgjOJlqFERMZPyPJSM+iiBOw7YByqMtI94CnVG20tAadeSvpwYx8d5fs5Kyefh4427g44RjqrKnlwZW7dqLk/JZTiQg0p+KSvJEeOgXMn6rbPSith96X7FRIZF5e2ZP7o0CvySwjP8V7ObuDpXeoY9egO+XSOqxW5eVeWH4cOg4pV4wHJaI0qG7WLqnXT/Z/Eyxq1c69pV0K1ZOAiFETAVYhl+TawS2QjGTljyXEtO22T9V2Jy3DisssOF8/lMj2JOS/VbjLszB55baCe4Ls+h12CErJBongCp43pdcAN8QB0HFdCEYwiIxDAcFrSrmXgx9x7itquld9yaaSFscY0JOh0A0kOhAeX/Uv6YyvVMuOTjziBt2yjJ+XNceX6J9YlobK9sfl1K+gIZFK0Yxujk/pv0efpOEabJCVk5bpkcF2Ek1JDOZ6gxyovwEPpKpjt3xH2jqFPOJlmSBfbGI14hUCUIzNh0A5O4Hcql1/waDb973BRryIzeUCJNp4S6zZFuwFnAbi3BRxaGkZyG6cgzx0HfFAbarBbulXqYlpDgX9qkLATy04qvkW96zymI3QrFU5czMcu9Mg2aEu6bnppwVfj5BxzfiiG8S8UnBLNyCkFhAdgEMpyrMSGIPQjVRO4cde5QSR29uvYhiBqdeSZKTg8mUANzcVCdohxB29QHHwUkAspADUO+nYolSJ0fgyigAFBQGR7fYoA39qNCeCX0J6dUBiruoG4T1l9lPgX58jxWTyZAgyZo8SD9CsE4swV1O5DLjPdJiNTzUSS+1nPYqBkxjJgd0SNSQ3uVdmWH8PJWrWz0KO1VqbhRKVfmyltbUdfgqtGchhxKxjPt2kE6cgCWVP52VjhzpxV11v5FH2V8yXX3h5RgGCo838PZuAiS55uq5EHi79FUdpIJJA4CIWqUaIxtZ2eS0TcgRJIHRg6fmcQSO4alVxmIjhxLAFTAB10B6hXUlHA4mUnJGnJS8X7EtGZ0E9OCsVI7pCXAxA59fYmcmugePbKE9DuiZfQoznGOpOnvWLInvmRy4BEDpiWLOAIjjNy8Rh9MUGtwZQgzcTXcTH+nRcQgRMSCxjwPMK+Oaw/FqrsHKW3bIe2KtIRrNmrIMgVRKXNR8xYybwXcUlX5jp71MiCwIJVe5G9JEFrsoykqzNRMlHIcSwSSlJQEgzpCWqSTBG+LSBHPip0xcOFGwgsrMUjUHkq7llMF8ArBEojt6qwygAocF6yV8NE4zMS6hOYfRVG1UbNa4OzjXiUWWneFwsW4iwDkV14bpAbdXXF21i3zOzrtKLt4UZWgaksOp4K2GKw3Wn2LP6hHfjzhAMGWM5LTOhVZ6jjVFtbZOzR4P3px9SzbA1UI0x7A5WP07BYbpA66xddirGA5LRwsJfVkQmpt+hmjDIu1tnKXeVbDGiOK1GsAJAAalVck8lshVwHBlojAKqM48lPzFKaRS3JloEQpb4gLKbWSibLS1Yft5KeWyK8N2y22Y6rPGq60/hxcdTwW2nCjE7rDul05LUABoAwU/jby8FX3KuK5+JjqwCNbpP+6NAtkK4QDQDJprStUtEY2va2rBNJCuUGhJCmQSQkhANCTodCBumoodASTCSbqSDiZtlv5q7y2fQAHnp2KjHFtkCbztkT8oYhh2rRbGX5i2TM8ix4aMyidkpGcHIOnZ7lC0RbcgaPxBYLSREaRbn3rQNnGJ4quIhGRkwEiADqWYc9eam46ISienXRJ9rkvIdAl7FG07KzNiWDkDiokkmLKzPZuG4cRzZEQQdS/QtqAqYCFzPJp8pwcfFaBAg+IuOQ5hRJI36FScSHVJIxi7jQ9iSB8NEiRzTJf2cSkCJDdAiUTwILqZIgXDR/eggIPVJ9UAiOKi+iZ15qLugGCjq3HkkOKlxUAYfn7UcEvahAc9+PNZbb4xcR4/sSuyNDGJcFZ5SiAIQhoRrYdAe5dVOvdnNfs2TJylUYCW4ysIcAcAs+61/EO8qWkWEI6e4BRkDqJHjoAFtGDGclc7WBYu3QJVWTmCG8PI9UmhWJER26uQ/EqBlkyLRhsj2twVSTR5eu4knsTEjq4EejaqIfgW9iUyOBPHgFYqSlMEdemiibOL+5VzsNcfCJF+ijKyRHij4ev7QFMiC3fpowKbuOKoDWDUa8wpOAQOnwQglZM7fCdTz7FknqX6clVdlSMiANOSz+faS23RWWhBp8LHU68VAjtLcWVUbJtqFE2nn3JIg6EZvXHuZRPVZ6LgfB7lcTosLanTTKHuUhNVoUSWgt3I3Kp03SRBZuUSVB0nSRBPeQlu5qJUdQokmCx3QJmJce1QBKZZAjRG88ArBM8y6w7iDopi2XBVaNE0ajJ1FiSlWSeKujFRBMk6ItIEr0mFOrygQzrzkSy1Y+TKqQ10WXb18l8jbrvszvyO5QlXGUSOqqpvFkHBV0SOa5YjU2IQxzCmqxnBBB04a6K+JDLJZmWVylj7vw5eKI7uIUo3Ah0tbMkVThp+S+cwqJmW4dESsBUN85aRD9qq8miUDIEdSU6hbaWriSOp4KswMn8wsFhu9RlGXk4tkgIjiDp7EqkLNrQ79ODENK07j05LXHbEMAwXmcPOyrYvO2RPPVacm/KjCPl2SBk4HPXkrrsqnxSMLddnl2O9uT3LyRs9bJ/vyhE/aIH0K7FtzDd5d2VZPwmRZohgW6LWWZ8F5PT7kblwrs0xqJqnLcG46/SsGb6nlwxpzx7bPMjEkyLCIYPwZXqm1Kgo4Tg9ZuT3L5v8A+R+u7PM/MHa7PtDOut6Z63l53hORKqyI8QIBHxVbSlL0LVorOE8/E9luRuXDjf6jAbpHzoferOv9JVtecLAwmRLmDoQs/wAq8F/wPyjsbkty5sJys086QPes9+TfXYYRtOnPro6suydEQ+qNWsHb3I3Lj4WRdcZiy0khmA0LLWxPCcj3FXcozhG3cjcsEhMAnfINrxVUp2VgznaWZyH4fBRLJ4o6u5E7YwgZEsy5AsuMd0rmDfMJOFOG4uZEzHUl/cp5Mjii+t5QeQ4ufelMRMWbhqpRloB8EwEkQZhCUiCRtfiDqpmtu1Sr3mc98NoiWBcES7QpFgdAwUyIK9uqR0LDieqtJCioBAaDh7kwXRtB1GkuYU4+4oSRBKHCkX4OkW5qABKjCQiS2m7X2pnVR7kEEiSUiOxQhN5bSCGbxcipzl4WDyA5f61Igh2JEEHVM68FFyNeKSAJ1ScoGup5pbhwQgkCgSIUDLXT2qWp5IDzhfmdFKU4mIMdAOQCgxE927iCCOTFInRgPbyXonnDJsPA7QeRDlIx58+pUJ27QzgSPDvQ+rku3uTBOSRG4gniNR/pSMRu3c+CQOj8O9RdyJCRboNAUgE3PNZ7bCJRO0nVuzsVpZ/oSlCJ1IcjUd6QEKRZyH7go7uDAk9eiU/NJAidseZZynIxjHsHEFQBkjcAeB4Hj9CrsYQOoMuW3r2p02BmA0GpPIBStkPLJDF+A7SpQME5xgflc9eTqo5bacAryJt4tT0AZQhWS/hIA4/4KkiCH5iBA7UjOJ4aMrrYViI0i/MEMVnMIO+0jtGqSTBEkcX4ahuKvryAdJ6Hqs0q5RLx8Q+KesvEHYBVsk9S1W1obX6JusMLZQOheL8DwWiF0JacD8Fk6tG9bp/BlqHSdDqpeBuk6EIIG6HUSOiWqSIGeoSkSS6Y1T2pIggramJ1VZCBIgugN9cFphBZKsgbQrhf0RtBJlswI8FXvUZTJUNeiq2arB0MTLMCA+i6f5hwuFRCU5gBehxMaMIgy1K5O5KTo67YyZ7ce3JA2xYxLglW0YN4J82QEeQHFb4gAIMgFlmIJbzgrhjVQ1PiPaoZFsa4n6B9SdlwiNSsN0xMvLVuA5BRKJ0yzz/qf6gsusNFQNdb7ZP8xbT2KeJLwhw5ifgVd6l6XVmHzIAVXH7Q4H+L9qzVRnSdlmk4HbPVbel0SrjyZp25t2+h0sf8O/T5ZasujkFq4T3M0mf+Lw6Ln1y0Em+XiVf6k8/SbyCxjETHZtIXP/Os7uDW32sjLJjVAQyJCsxAeBOrAN7Vns9UwxMTFmkQRtiC8ieqw4ttObjn82PM8k7Ta+2YB+U7uYdQx/RcjImwkNj6ni3Y/Ndtadank4g5LWvjik0y231bf4K4EPoNRxVsaM22iZntNflz3DkPCW4LpYXo1GLOFsdZQcEH7T/45LdkgflLhEaeXMN/KVV91NKL6sKl3m7+iPJ+lgWV2QYMNpY8G4K+70iJkL8WZosfQh2dZvSAOH3o/EFegqr3VDnzCy7bOtsM6KVVqKUYML1P1HGG3JpNsIljbV4vfHiukcujJiLCGJ4S+U/FR9PrJFhJ56KF886E6/ytU7Ia7otoZA8iRwVaL8lmkuMKcE2v+NJv1ZgvnkUU1G2VrAcBzJWP81K0ghpQIfeDwB6hSyPTc/PsM7Iiis8KpyEtmnLaNVbT6BVXEeZceDNEN8S66KUpRfcpeu5z9nZfseKvitDNXdOmwxpJsEyHOjxfi3Yuzg2WmOyUNBwkNNFZj42LVH8OqMG9v0qRkIgjgOZ6KXdbIrWr3LTGJOpJHfosmVhzteUbZQnEk1SiWA04SHPXVWghgZEgweR7QOLspQtgYicJCcJDRuCqsk6FWNVUKRVkR/Ebxk6gy59jKyPlUVV0wG2EAw7zqoz2O4J1+B7VTOex90SxOkg2p6qIe7kmUaq7XJDM3EK2MnD/AAKw13BxEkCXAOdStMSQS7gjkVJBaC2mvvdIziQ4LgaFtWQCJDRG2Ic/aPEjn3oAfkQgsggDR3B5/tUCeXRAN21OnxTBEhodQoeJuCidxOjN1QFom+h4hLhpqR26qIkTx49eKPNIO0s/JAS/wEih3QUJIlG7lyTKhL/DqABk5YBRPVIhu9RlY/h6c1IJlzoFEqIk2je1OUi3Z3oRAAjkmZHgOCqMwCDqFITHVBB5j8Yy3TmwdhGI4qZMxqX7gEIXoo87BUK5CyUi8o8nbRS3GIc6dexCFCJZITBAPEdiRnHVpOAHJHAdiEKxBE/ej8x4FlGUr4iLw0+1I6P3IQoA3k/BwfgiUN/hLgHiQhCkALMWoGszGnFuL9yLMOdlfm13Rk58MQCHizoQofL+MfUlcc8p+hCeNbVGMrYkRk8dxLgSH3m4JmPlGBMRIWREoEcDqxQhRady1Y2JS8uwbZBm4uqTgAuapbDyHI+xCFTJfH1KtsYH8eG0cpx1j7eittxq5Vk0FwxLjiR3IQo9U7/Un0xt9DlWxnAgHQjmVESI7eaELQyLa7JDTVuSv80joe1CFV8d4L157SSjMkgEMtIxbDwIch2QhUtGxrXn/IDjWBtRqrqfTMi+MjAxaBYknmA/RCFRyXU7lsfRcmQfdAcOvP2KqfptsJzhuBNcoxJ1bxc0IUKdyX8Aj6bbOcoRlE7dN2oiT0BbVUXYl1RaUfaNQhClTuQyjxRPRWQvIDEIQjJRbC0FaIEFCFBc34MAbYrvR0iAhC5u77jopoSB0WbLyqseG+yQiEIWXzJ+RzpZcbCTGW7kG4I3mQLlm4lCFHp2K+rcplcBW7PqxD8guZdZPz5EjS1th7RohC0pxyVfKUdTClGdQjzGhW/yhZh208d8JRbvCELnf34/sbP7c+DzdEp40oWAaxLhxoexepovhdVGyHyyDhkIXZ7nj6fJydE58Fhk5duOqlFiNraEahCFzo2PHYETXkmtv7c5g9QzhehomBW5DMH9yEK3cW6vtLcADydx4lyVvEvCw4DRkIVOrWxHZsRJKUnkNeHJCFqZkoS5Kmy4QfcGHB0IUkGLJusseoS2w+0RoW6dVRSZ1kRpJiDyHD3IQt6/bgztqdiuiM6oPIxsI7OKhZ6eLATKQk3DRCFX1E4Kz6dYADGQJHIhm7irqK7okiwEg83dCEzuMF0QYnj7FN9X6IQoAADt16pMRy05IQoJB1EMEIQkO5KUQe1CFADhoEIQpIB+ijJiNW7UIRklVk5RGnDosstx1MtO5CEQCM2DAkv3pxm5YlCEAbi7HgkNz8wOxCEB/9k=";
			image.onload = function () {
				width = image.width;
				height = image.height;
				canvas = document.createElement("canvas");
				canvas.width = width;
				canvas.height = height;
				container.appendChild(canvas);
				context = canvas.getContext("2d");
				animate();
			};
		});

	</script>
</body>
</html>

This site uses cookies. Cookies are simple text files stored on the user's computer. They are used for adding features and security to this site. Read the privacy policy.
CLOSE