{"ScriptPreparationCode":"var c1 = document.createElement(\u0027canvas\u0027);\r\nc1.width = 3500;\r\nc1.height = 3500;\r\nvar c2 = document.createElement(\u0027canvas\u0027);\r\nc2.width = 3500;\r\nc2.height = 3500;\r\nvar c3 = document.createElement(\u0027canvas\u0027);\r\nc3.width = 3500;\r\nc3.height = 3500;\r\nvar ctx1 = c1.getContext(\u00272d\u0027);\r\nvar ctx2 = c2.getContext(\u00272d\u0027);\r\nvar ctx3 = c3.getContext(\u00272d\u0027);\r\n\r\nfunction clip() {\r\nctx1.beginPath();\r\nctx1.fillColor = \u0027red\u0027;\r\nctx1.arc(400, 400, 120, 0, Math.PI*2, false);\r\nctx1.arc(600, 400, 120, 0, Math.PI*2, false);\r\nctx1.fill();\r\nctx2.save();\r\nctx2.rect(520, 300, 280, 300);\r\nctx2.clip();\r\nctx2.beginPath();\r\nctx2.shadowColor = \u0027black\u0027;\r\nctx2.shadowBlur = 30;\r\nctx2.shadowOffsetX = 15;\r\nctx2.shadowOffsetY = 15;\r\nctx2.drawImage(c1, 500, 280, 320, 340);\r\nctx2.restore();\r\n}\r\n\r\nfunction draw() {\r\nctx1.beginPath();\r\nctx1.fillColor = \u0027red\u0027;\r\nctx1.arc(400, 400, 120, 0, Math.PI*2, false);\r\nctx1.arc(600, 400, 120, 0, Math.PI*2, false);\r\nctx1.fill();\r\nctx2.shadowColor = \u0027black\u0027;\r\nctx2.shadowBlur = 30;\r\nctx2.shadowOffsetX = 15;\r\nctx2.shadowOffsetY = 15;\r\nctx2.drawImage(c1, 500, 280, 320, 340);\r\nctx3.drawImage(c2, 520, 300, 280, 300);\r\n}","TestCases":[{"Name":"clip","Code":"clip();","IsDeferred":false},{"Name":"draw","Code":"draw();","IsDeferred":false}]}