// This is kludged together from the output of http://www.professorcloud.com/svg-to-canvas/ // I saved as a 100×68.83 pixel SVG, then twiddled around with the prelude of the JS output. // If you are reading this, there's probably a nicer converter out now. // But this seems to work okay so it may not be worth the effort. var kitty = function(ctx, kittyColor) { var scaleBase = 0.1098503139616503 var scaleX = scaleBase * ctx.canvas.width / 100 var scaleY = scaleBase * ctx.canvas.height / 68.83 var scale = Math.min(scaleX, scaleY) ctx.save(); ctx.scale(scale, scale); ctx.translate(187.81991,187.81991); ctx.strokeStyle = 'rgba(0,0,0,0)'; ctx.lineCap = 'butt'; ctx.lineJoin = 'miter'; ctx.miterLimit = 4; ctx.save(); ctx.translate(0.22995231,-396.76901); ctx.save(); ctx.fillStyle = kittyColor; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "butt"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(263.23037,219.17781); ctx.bezierCurveTo(209.09715,219.95058,155.19615,230.72191999999998,105.64392999999998,251.41147); ctx.bezierCurveTo(105.57612999999998,251.43927000000002,105.47314999999999,251.38257000000002,105.40514999999998,251.41147); ctx.bezierCurveTo(74.58948199999998,237.52258,40.50337099999997,225.86925000000002,15.867370999999977,229.44481000000002); ctx.bezierCurveTo(-2.982406800000021,254.52492,-9.558406700000024,291.54425000000003,-10.397073000000024,327.57825); ctx.bezierCurveTo(-68.96529500000003,384.63103,-109.75229000000002,464.09403000000003,-118.55874000000001,566.34569); ctx.lineTo(-93.72685000000001,566.34569); ctx.bezierCurveTo(-99.55329500000002,829.8689099999999,218.71792,826.24936,262.99159,825.16958); ctx.bezierCurveTo(271.39515,824.9648,290.07180999999997,824.88991,314.80415,823.02069); ctx.bezierCurveTo(331.29237,821.77436,350.61791999999997,819.6868,371.15326,816.3351399999999); ctx.bezierCurveTo(376.28715,815.49736,381.38669999999996,814.48214,386.67314999999996,813.4700199999999); ctx.bezierCurveTo(497.68913999999995,792.2149099999999,637.94381,730.7707999999999,621.6202499999999,549.8706899999999); ctx.lineTo(660.7781399999999,549.8706899999999); ctx.bezierCurveTo(649.6126999999999,467.2469199999999,617.1321399999999,400.28402999999986,571.4791399999999,348.58980999999983); ctx.bezierCurveTo(572.5872599999999,307.2829199999998,567.21926,261.8263599999998,545.2146999999999,232.54880999999983); ctx.bezierCurveTo(518.6728099999999,228.69657999999984,481.3090299999999,242.58857999999984,448.7526999999999,257.8581399999998); ctx.bezierCurveTo(448.68599999999986,257.82703999999984,448.5803699999999,257.8892399999998,448.51391999999987,257.8581399999998); ctx.bezierCurveTo(390.90069999999986,231.21335999999982,326.91391999999985,218.26880999999983,263.2303699999999,219.17780999999982); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.restore(); ctx.save(); ctx.translate(0.22995231,-396.76901); ctx.save(); ctx.fillStyle = "rgba(45, 45, 45, 0.6745098039215687)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "butt"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(263.23037,219.17781); ctx.bezierCurveTo(209.02281,219.9517,155.01337,230.66592,105.40514999999999,251.41147); ctx.bezierCurveTo(124.77393,260.14114,142.75193,269.80447000000004,156.26259,277.19836); ctx.bezierCurveTo(101.54814999999999,287.66580999999996,23.972259999999977,334.24057999999997,-9.20318450000002,369.84013999999996); ctx.bezierCurveTo(-10.36285100000002,356.41981,-10.73551800000002,342.11868999999996,-10.39707300000002,327.57824999999997); ctx.bezierCurveTo(-68.96529500000003,384.63102999999995,-109.75229000000002,464.09403,-118.55874000000001,566.34569); ctx.lineTo(-41.675629000000015,566.34569); ctx.lineTo(-41.675629000000015,439.32147); ctx.bezierCurveTo(96.42092599999998,476.58558,501.82402999999994,478.74613999999997,577.4483700000001,446.96202999999997); ctx.lineTo(579.5972600000001,549.87069); ctx.lineTo(660.7781400000001,549.87069); ctx.bezierCurveTo(649.6127000000001,467.24692,617.1321400000002,400.28403,571.4791400000001,348.58980999999994); ctx.bezierCurveTo(571.2552600000001,356.94624999999996,570.9641400000002,365.08991999999995,570.2852600000001,372.94402999999994); ctx.bezierCurveTo(537.1098100000002,337.34457999999995,459.5339200000001,290.76980999999995,404.8194800000001,280.3023599999999); ctx.bezierCurveTo(416.6672600000001,273.81846999999993,432.09703000000013,265.6700299999999,448.7527000000001,257.85813999999993); ctx.bezierCurveTo(391.08781,231.15081,326.98737,218.2677,263.23037,219.17781); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "butt"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(-41.675629,439.32136); ctx.lineTo(-41.675629,566.34569); ctx.lineTo(-93.72685,566.34569); ctx.bezierCurveTo(-99.55329499999999,829.8689099999999,218.71792,826.24936,262.9917,825.16958); ctx.bezierCurveTo(307.81048,824.07647,646.49437,825.52791,621.62037,549.87069); ctx.lineTo(579.59726,549.87069); ctx.lineTo(577.44837,446.96191999999996); ctx.bezierCurveTo(501.82413999999994,478.74602999999996,96.42092599999995,476.58547,-41.67562900000007,439.32135999999997); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.transform(0.1017341,0,0,0.1017341,-189.21074,758.53069); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 200.2725372314453; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(5838.2978,-4701.1388); ctx.bezierCurveTo(6376.116,-4598.2485,7139.0243,-4139.491099999999,7465.124900000001,-3789.5636999999997); ctx.bezierCurveTo(7504.7714000000005,-4248.3897,7479.873700000001,-4823.4601,7219.823,-5169.4639); ctx.bezierCurveTo(6825.455400000001,-5226.701,6182.3921,-4889.4492,5838.2978,-4701.1388); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 200.2725372314453; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(3397.0185,-4731.6101); ctx.bezierCurveTo(2859.2003,-4628.7198,2096.2920000000004,-4169.9624,1770.1914000000002,-3820.035); ctx.bezierCurveTo(1730.5449,-4278.861,1755.4426,-4853.9313,2015.4933,-5199.9351); ctx.bezierCurveTo(2409.8609,-5257.172299999999,3052.9242000000004,-4919.9205,3397.0185,-4731.6101); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.restore(); ctx.save(); ctx.fillStyle = "#000000"; ctx.strokeStyle = "rgba(0, 0, 0, 0)"; ctx.beginPath(); ctx.moveTo(52.032037,620.50691); ctx.bezierCurveTo(52.032037,620.50691,55.796148,645.0247999999999,71.66670400000001,650.0097999999999); ctx.bezierCurveTo(71.66670400000001,650.0097999999999,79.093259,652.2479099999999,86.621593,649.2976899999999); ctx.bezierCurveTo(86.621593,649.2976899999999,93.946481,646.4491399999998,98.727926,639.8363599999999); ctx.bezierCurveTo(98.727926,639.8363599999999,103.30604,633.4271399999999,104.22158999999999,623.76236); ctx.bezierCurveTo(104.22158999999999,623.76236,104.93369999999999,617.0479099999999,103.91636999999999,606.1623599999999); ctx.bezierCurveTo(103.91636999999999,606.1623599999999,102.39036999999999,598.6340299999999,98.42281499999999,592.5300299999999); ctx.bezierCurveTo(98.42281499999999,592.5300299999999,93.94648099999999,585.61214,87.63892599999998,582.7635799999999); ctx.bezierCurveTo(87.63892599999998,582.7635799999999,39.91114799999998,566.1871399999999,35.457925999999986,571.0994699999999); ctx.bezierCurveTo(31.004703999999986,576.0117999999999,65.93703699999999,585.0342499999999,61.053814999999986,587.5775799999999); ctx.bezierCurveTo(61.053814999999986,587.5775799999999,49.38692599999999,596.3959099999998,52.03203699999999,620.50691); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "#000000"; ctx.strokeStyle = "rgba(0, 0, 0, 0)"; ctx.beginPath(); ctx.moveTo(297.48526,699.49191); ctx.bezierCurveTo(297.48526,699.49191,285.37881,707.63058,268.38926,707.0202499999999); ctx.bezierCurveTo(268.38926,707.0202499999999,253.23091999999997,706.5115799999999,239.08980999999997,699.5936899999999); ctx.bezierCurveTo(239.08980999999997,699.5936899999999,231.76503999999997,695.93125,228.40780999999998,688.5045799999999); ctx.bezierCurveTo(228.40780999999998,688.5045799999999,225.15225999999998,681.3832499999999,226.27137,672.5323599999999); ctx.bezierCurveTo(226.27137,672.5323599999999,227.18692,665.8179099999999,230.54415,660.3242499999999); ctx.bezierCurveTo(230.54415,660.3242499999999,234.41004,654.3219099999999,240.3107,651.37169); ctx.bezierCurveTo(240.3107,651.37169,251.70492,643.84336,267.77881,644.1485799999999); ctx.bezierCurveTo(267.77881,644.1485799999999,283.44592,644.4537999999999,295.55226000000005,651.6769099999999); ctx.bezierCurveTo(295.55226000000005,651.6769099999999,301.24937000000006,654.3219099999999,305.11526000000003,659.9173599999999); ctx.bezierCurveTo(305.11526000000003,659.9173599999999,308.87948000000006,665.4110299999999,309.69337,671.9219099999999); ctx.bezierCurveTo(309.69337,671.9219099999999,310.71070000000003,680.3659099999999,307.45515,687.5890299999999); ctx.bezierCurveTo(307.45515,687.5890299999999,304.30137,694.8121399999999,297.48526,699.4919099999998); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "#d35f5f"; ctx.strokeStyle = "rgba(0, 0, 0, 0)"; ctx.beginPath(); ctx.moveTo(271.03437,661.23991); ctx.bezierCurveTo(271.03437,661.23991,281.51292,662.0538,287.10837000000004,668.66647); ctx.bezierCurveTo(287.10837000000004,668.66647,289.14304000000004,670.19247,289.95692,672.93925); ctx.lineTo(290.97426,678.02603); ctx.bezierCurveTo(290.97426,678.02603,290.87204,681.07803,288.63437,683.72314); ctx.bezierCurveTo(288.63437,683.72314,286.5997,686.16469,283.64937,687.4872499999999); ctx.bezierCurveTo(283.64937,687.4872499999999,275.81581,691.4549099999999,265.84592,690.9462499999998); ctx.bezierCurveTo(265.84592,690.9462499999998,255.57080999999997,690.5393599999999,248.65281,685.4525799999999); ctx.bezierCurveTo(248.65281,685.4525799999999,242.65059,679.75547,244.78691999999998,674.2617999999999); ctx.bezierCurveTo(244.78691999999998,674.2617999999999,245.49915,671.3115799999999,247.83903999999998,668.3612499999999); ctx.bezierCurveTo(247.83903999999998,668.3612499999999,250.07715,665.5126899999999,252.82392,663.98669); ctx.bezierCurveTo(252.82392,663.98669,261.98004,660.42603,271.03436999999997,661.23991); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "#000000"; ctx.strokeStyle = "rgba(0, 0, 0, 0)"; ctx.beginPath(); ctx.moveTo(472.46781,621.05491); ctx.bezierCurveTo(472.46781,621.05491,468.70369999999997,645.5727999999999,452.83315,650.5577999999999); ctx.bezierCurveTo(452.83315,650.5577999999999,445.40659,652.7959099999999,437.87826,649.8456899999999); ctx.bezierCurveTo(437.87826,649.8456899999999,430.55337000000003,646.9971399999998,425.77192,640.3843599999999); ctx.bezierCurveTo(425.77192,640.3843599999999,421.19392000000005,633.9751399999999,420.27826000000005,624.31036); ctx.bezierCurveTo(420.27826000000005,624.31036,419.56615000000005,617.5959099999999,420.58348000000007,606.7103599999999); ctx.bezierCurveTo(420.58348000000007,606.7103599999999,422.1094800000001,599.1820299999999,426.0771500000001,593.0780299999999); ctx.bezierCurveTo(426.0771500000001,593.0780299999999,430.5533700000001,586.16014,436.8609200000001,583.3115799999999); ctx.bezierCurveTo(436.8609200000001,583.3115799999999,484.5887000000001,566.7351399999999,489.04192000000006,571.6474699999999); ctx.bezierCurveTo(493.49514000000005,576.5597999999999,458.56281000000007,585.5822499999999,463.44603000000006,588.1255799999999); ctx.bezierCurveTo(463.44603000000006,588.1255799999999,475.1129200000001,596.9439099999998,472.46781000000004,621.05491); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(581.84259,635.47703); ctx.bezierCurveTo(605.9547,636.57303,667.3308099999999,646.43714,687.05892,651.91714); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(550.05848,705.62125); ctx.bezierCurveTo(573.0745900000001,706.71725,635.54681,734.1173600000001,662.94681,749.4614700000001); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(569.78648,573.0048); ctx.bezierCurveTo(601.5707,563.1408,692.53892,559.8528,712.26703,563.1408); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(3.1525932,710.00536); ctx.bezierCurveTo(-22.055518,715.48536,-79.047739,745.07747,-109.73585,772.47758); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(-34.111629,654.10914); ctx.bezierCurveTo(-62.607629,656.30114,-114.11985000000001,663.9731400000001,-137.13596,674.93325); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "round"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(-38.495629,586.15692); ctx.bezierCurveTo(-76.85574,575.1968,-157.95996,580.6768,-177.68807,589.44491); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "butt"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(-41.675629,439.32136); ctx.lineTo(-41.675629,566.34569); ctx.lineTo(-93.72685,566.34569); ctx.bezierCurveTo(-99.55329499999999,829.8689099999999,218.71792,826.24936,262.9917,825.16958); ctx.bezierCurveTo(307.81048,824.07647,646.49437,825.52791,621.62037,549.87069); ctx.lineTo(579.59726,549.87069); ctx.lineTo(577.44837,446.96191999999996); ctx.bezierCurveTo(501.82413999999994,478.74602999999996,96.42092599999995,476.58547,-41.67562900000007,439.32135999999997); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "#d7d7d7"; ctx.strokeStyle = "rgba(0, 0, 0, 0)"; ctx.beginPath(); ctx.moveTo(194.05837,466.43958); ctx.bezierCurveTo(194.05837,430.27146999999997,215.66548,237.52380999999997,227.72147999999999,221.08369999999996); ctx.lineTo(351.55826,226.78069999999997); ctx.bezierCurveTo(340.59815000000003,257.46880999999996,319.89015,411.05714,325.37015,469.14536); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.save(); ctx.fillStyle = "rgba(0, 0, 0, 0)"; ctx.strokeStyle = "#000000"; ctx.lineWidth = 20.37454605102539; ctx.lineCap = "butt"; ctx.lineJoin = "round"; ctx.miterLimit = 4; ctx.beginPath(); ctx.moveTo(263.23037,219.17781); ctx.bezierCurveTo(209.02281,219.9517,155.01337,230.66592,105.40514999999999,251.41147); ctx.bezierCurveTo(124.77393,260.14114,142.75193,269.80447000000004,156.26259,277.19836); ctx.bezierCurveTo(101.54814999999999,287.66580999999996,23.972259999999977,334.24057999999997,-9.20318450000002,369.84013999999996); ctx.bezierCurveTo(-10.36285100000002,356.41981,-10.73551800000002,342.11868999999996,-10.39707300000002,327.57824999999997); ctx.bezierCurveTo(-68.96529500000003,384.63102999999995,-109.75229000000002,464.09403,-118.55874000000001,566.34569); ctx.lineTo(-41.675629000000015,566.34569); ctx.lineTo(-41.675629000000015,439.32147); ctx.bezierCurveTo(96.42092599999998,476.58558,501.82402999999994,478.74613999999997,577.4483700000001,446.96202999999997); ctx.lineTo(579.5972600000001,549.87069); ctx.lineTo(660.7781400000001,549.87069); ctx.bezierCurveTo(649.6127000000001,467.24692,617.1321400000002,400.28403,571.4791400000001,348.58980999999994); ctx.bezierCurveTo(571.2552600000001,356.94624999999996,570.9641400000002,365.08991999999995,570.2852600000001,372.94402999999994); ctx.bezierCurveTo(537.1098100000002,337.34457999999995,459.5339200000001,290.76980999999995,404.8194800000001,280.3023599999999); ctx.bezierCurveTo(416.6672600000001,273.81846999999993,432.09703000000013,265.6700299999999,448.7527000000001,257.85813999999993); ctx.bezierCurveTo(391.08781,231.15081,326.98737,218.2677,263.23037,219.17781); ctx.closePath(); ctx.fill(); ctx.stroke(); ctx.restore(); ctx.restore(); ctx.restore(); };