{"_id":"ast-util","_rev":"44-e6123a49937c4dae043cab4d8aba9029","name":"ast-util","description":"Utilities for AST transformers.","dist-tags":{"latest":"0.6.0"},"versions":{"0.0.1":{"name":"ast-util","version":"0.0.1","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16"},"dependencies":{"ast-types":"git://github.com/eventualbuddha/ast-types#fix-prepending-nodes-to-array","private":"^0.1.3"},"_id":"ast-util@0.0.1","dist":{"shasum":"6688834591ad205cf865171f720f48eea43f9af8","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.0.1.tgz","integrity":"sha512-E+6JST9RFdxg9/qh2LrwhKcM8/kkVekW6O2aIwtkF7IRn0FkF0xKpx/G9gRwmw45KWGdblGs+bfmCCltwGz6DQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFRjbQtjO2wS71B1O7kt0f2ZBWpfa6RLWDCsf66FW2exAiBODouJ2NTYAZ/t0lw8m4f/CNBm6KESk3rwF7jvz2ATug=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.0.2":{"name":"ast-util","version":"0.0.2","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.0.2","dist":{"shasum":"75fe08bd70a721f09824eeac1adff436e55db26a","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.0.2.tgz","integrity":"sha512-KlKe8VMK0x3TJfPVl/AeOvc44/qJo9lMGH8pdCyM/tts55htiJMRg+iDGedVVpHWQai0ZvlCNCh6tDy0g7lqhQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHwljet2Wg418GPvZaRG+AZFjlYnhH5hGmBkjF10qcTLAiEA5ffeaIC0mAekyp9WZu4b/0xnL0dLLGk2ZB1gd0pJW/U="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.0.3":{"name":"ast-util","version":"0.0.3","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.0.3","dist":{"shasum":"aa5fba67d2b44396063e7af6a385e18c71340965","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.0.3.tgz","integrity":"sha512-QE1MTDTCmmegDeqq6AT3rCVXKVFAqW4hHtEuLpXYLXI8GhaIR6Klo+Vhf/P1u+CQz4RJr33X9StvYriT/jGtTw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBkD3PTw6IxRSTdd+T4/M4P3jjQmstG1Pbpczz7ViNahAiABoDI1a9C3lHPzr2+od35u1Qz03nZDn/z603ghOD50Qg=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.0.4":{"name":"ast-util","version":"0.0.4","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.0.4","dist":{"shasum":"eb28c5aff9cdfbf2568229a3b558367d0dbea6fa","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.0.4.tgz","integrity":"sha512-rTVEZ7TuP9oyt3g4K9PnnqFVnP2AtbwiFfm7IBLw1ziSZcXKE88zo/JcDibbUf8Rst4yJZeVoppaVxhtDWJ8FA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC6qi67kZUq1l347azspXLmlhmeH6w3sqlgIjhBuX9R0gIhAL1BbTNGk50sNrEEesXV6lbWyGxcc7yIQ7B2HlrBZ8T1"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.0.5":{"name":"ast-util","version":"0.0.5","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.0.5","dist":{"shasum":"e730cc4078e5d1d7e0895c6369a4ca3c876130a2","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.0.5.tgz","integrity":"sha512-KUxF0msMPJlV9Lhw/MoMHU/enHJnadiyqaNCnidEn0LCLjObwYhvKTORh67a2blFitC8yis2ruKKOy0OOjFWIA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGWwlnt/xu0Cv+v7QTWJ38HXR3dVBWFT1d5BzMj4b8o0AiEA8g2t+Xi7s1VGbm3pYkIWT5OuJcVZEJnXRTwW/F066MY="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.0.6":{"name":"ast-util","version":"0.0.6","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.0.6","dist":{"shasum":"f20cfa584d97300719766392fc1855c626ffb2d9","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.0.6.tgz","integrity":"sha512-tHBD4j6c0AL7bC+tt/pxQFo8fOvjCCVIr1NfJeNM3iiZ2U7EpSn2rIHD/GMHdP+ssJLwYEkMYSxtAyQZbUu8Bg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDlN5kwH1MZguu1KROwA2AsDx6owj3kabdP4THFJI8F/AIhAOSyo2YEPPWTLgMls2w5NhMzoi/Anj44mq2O8tRF37/Y"}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.1.0":{"name":"ast-util","version":"0.1.0","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.1.0","dist":{"shasum":"9f09fa762396c0aabbb152da4eaf604a25411b65","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.1.0.tgz","integrity":"sha512-qLfsDVFVgusMTYzNesGwd/C3duYKQvpQo0hewXKn4nSXKDbaw44GfmWE/y/r5rZlKcx+O8xLYprasPtqjSvmpQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAIgJme1/Pi+zko2A28VVCGU8tWT9oQaM4Iodz4AcrJWAiBGt+OSzPG/zfkOWldt4Cz4wkV19mvWKsfMyhGDNibqkQ=="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.1.1":{"name":"ast-util","version":"0.1.1","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.1.1","dist":{"shasum":"62a4b24501add62baefd5811d4704a40511e30c5","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.1.1.tgz","integrity":"sha512-iNa9B/XJNhRNXBBTDxWPDl4AmYFIRLg1qo/ddpSqUhakmXVJUPls31mr7+zP9fyMiCQZ6p0v4HRMj4F9VO+4XA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG7DH+2m+aDChnMbzZ/hjaJLJk6VkGSwXFJS3HqIVa6TAiEAnTmCU/GY7H7DmeuyKdgcQSK1OO1/y5w5Zet9Y9uZ4kU="}]},"_from":".","_npmVersion":"1.4.3","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}]},"0.1.2":{"name":"ast-util","version":"0.1.2","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"_id":"ast-util@0.1.2","_shasum":"bfc1677485713400f76ce9233ee04d96c4d00bed","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"bfc1677485713400f76ce9233ee04d96c4d00bed","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.1.2.tgz","integrity":"sha512-8qmeXteTrnuZpVwc3qOsDE3VmCdj8etGO/g813+nK8of36r+UmsbLkQzd47GmcY8ShW7Uf3EksXGNDIZxIreDg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDyWpmrc7r68nSCke154C0gAk39t3jbwZt9t1v4hzMP9wIgRTW+mw0trMWtGmL4aDSQpL4V8W1UPltqdcekeG58yAA="}]}},"0.2.0":{"name":"ast-util","version":"0.2.0","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"gitHead":"06b9bdb7299394124c08c2414347bddb2e18717b","_id":"ast-util@0.2.0","_shasum":"30c841c4f26a233c970bb1ae4800905caacb3a81","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"30c841c4f26a233c970bb1ae4800905caacb3a81","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.2.0.tgz","integrity":"sha512-QbfNAjuhtHFnk3J4ezcc3r7mOMsL9BG5PkApwUEc1GuYgPLIcioISsAdZJX4AzNsOkmMc8/Y/8y0NUp+HjjTSg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIFCBU2akcwZ5xeRYOmwC/LgK0bws1Si4CWZnE6yNCly4AiEA4O3SvaaepuFcoo34h+PR0VW5uyR5pQyhP9NQj/nU5Do="}]}},"0.3.0":{"name":"ast-util","version":"0.3.0","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.5.16","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.3.26","private":"^0.1.3"},"gitHead":"d40e3e50797865286ba272695f22510bc24b947c","_id":"ast-util@0.3.0","_shasum":"11599e34dd95441fda06b87d6cb2b5c8848ad8bc","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"11599e34dd95441fda06b87d6cb2b5c8848ad8bc","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.3.0.tgz","integrity":"sha512-yWvh/UEz0s4VQbX7t6VKir1N4L0xp87E9k/BZOewORp70wt7ReiBbgV1hs0/DfqZ4EPluqT/PAjX22Ay+6Ylew==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD5lVQwTwCFwZsHv8JHTd7xGZqgAcgLngjZ5IBFWKGt4QIgYDpuPW5luX94OgvpaoxoodiXP2xMnBt2lNC+DOtY7KM="}]}},"0.3.1":{"name":"ast-util","version":"0.3.1","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.6.2","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.4.1","private":"^0.1.5"},"gitHead":"61ca1bea3e16f924fd09dbc10c318e9b04203310","_id":"ast-util@0.3.1","_shasum":"4c1409945d27fd10f5235540d0dbde84c1d45dec","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"4c1409945d27fd10f5235540d0dbde84c1d45dec","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.3.1.tgz","integrity":"sha512-yuNdTrIX4jd8G3QYXswjl/W/rGPU+SNu0THy2G+OVC5OFP16SAVgw7inh9mLzo/O841UEmqcPmeiBSimw4E0ZA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDoiifJYArRBL0NECpzMDN448bJp4pXTvzOkJ/u5KwxAgIgaoJy+spP1eGvy/SJG3+ivaUkABnwP3uUzivMM8p4dGg="}]}},"0.3.2":{"name":"ast-util","version":"0.3.2","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/square/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Square, Inc."},"license":"Apache 2","bugs":{"url":"https://github.com/square/ast-util/issues"},"homepage":"https://github.com/square/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.6.7","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.4.1","private":"^0.1.5"},"gitHead":"e3ff10e4e3b420ac3191b24045056de57c354bb6","_id":"ast-util@0.3.2","_shasum":"14ebaf5dacf0aebca7362a298094d521218b7b8e","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"14ebaf5dacf0aebca7362a298094d521218b7b8e","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.3.2.tgz","integrity":"sha512-+slB06iQejufgjIQz6x2OSOWTP1NyuUxgDoTZ0kEEwwYXcS73+1aGAqxSI1FqW2L+upDnFxAi+gRPXjd7w2SqQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDbeKvIBmHXOzWJ2DEqph8x0Eq1/pSVdpkAz8EEAAD14gIhAJ4s3Kv4xfKn9tpsLlxeMXu0kRygfGvyyVjRC3QBy95q"}]}},"0.3.3":{"name":"ast-util","version":"0.3.3","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.6.7","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.4.1","private":"^0.1.5"},"gitHead":"ceffd25a93b0e621685125d1d1d22a5e2e405a49","_id":"ast-util@0.3.3","_shasum":"bdb39765a5e4cb50f75e041291c802309fb6c504","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"bdb39765a5e4cb50f75e041291c802309fb6c504","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.3.3.tgz","integrity":"sha512-fB3YUrHG6gHivNghuOqMvxRZVkKoxCa4rE3di4tt5hW22bhQT7BKc3jNd3ovHgUiBWAuCeSIQ40/RYHUybhAUA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDd6uZluDj6u5N0T1vS//P/dWdq5/WKHWkXpiHQ7oS95gIgWjJvfpPIyPTLRu8Sq3U5i+ZSfEqlpaJIgpXTwJwzKok="}]}},"0.3.4":{"name":"ast-util","version":"0.3.4","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"mocha":"^1.18.2","recast":"^0.6.7","esprima":"git://github.com/ariya/esprima.git#harmony"},"dependencies":{"ast-types":"^0.4.1","private":"^0.1.5"},"gitHead":"98ae0cecb28a20408bc0f572e6adea8089eeae8a","_id":"ast-util@0.3.4","_shasum":"e9ddac06a3c7b594861d76a61ceed04e77c6775a","_from":".","_npmVersion":"1.4.14","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"e9ddac06a3c7b594861d76a61ceed04e77c6775a","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.3.4.tgz","integrity":"sha512-Be8GZSBPxZCkgPLjxDIsZJ+XjkQXH4mhS7a9qfS3IgoPXKBKwed1cJDs8O7SSMzS+E1CMYX7NbylwvPVjnxTug==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIFeQzM2fhS/UuVvv2C5vpw90YujikQb1SXHHJ376htE9AiBML23ML/z2S9mSL2nRMEwvpFdFStAMN1m8B4sC5JaYQw=="}]}},"0.4.0":{"name":"ast-util","version":"0.4.0","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"esprima-fb":"~5001.1.0-dev-harmony-fb","mocha":"~1.18.2","recast":"~0.6.7"},"dependencies":{"ast-types":"~0.4.9","private":"~0.1.5"},"gitHead":"272ee6d1450565eab11d6c457f96a410b711e44a","_id":"ast-util@0.4.0","_shasum":"9fbc70f7b5822032147fdcce5da88875d34794d9","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"9fbc70f7b5822032147fdcce5da88875d34794d9","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.4.0.tgz","integrity":"sha512-N9JiryF9AN1ZcBa16fUHZntZfWMdHxI5wiW4ZF38NdIWLfwiABPLjYgQznKfdHuSl/av4IVFAsZ99eGKxvG7ag==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIAEQcM7ImtDvohSZgw3NQqAK8oBvCPlVHCg85jPM/07xAiBGPUzyPTBQBqHC5X7vrqT1PRARuTzw+bYwMQkJVxSJ0w=="}]}},"0.4.1":{"name":"ast-util","version":"0.4.1","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"esprima-fb":"~5001.1.0-dev-harmony-fb","mocha":"~1.18.2","recast":"~0.6.7"},"dependencies":{"ast-types":"~0.4.9","private":"~0.1.5"},"gitHead":"e5f2ed0901d15620fd5fc20b4c94292f81ee60da","_id":"ast-util@0.4.1","_shasum":"f53bebe740859bf0264d430bd3903d73d00850e6","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"f53bebe740859bf0264d430bd3903d73d00850e6","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.4.1.tgz","integrity":"sha512-obEeVzdqq9dIWTNulbtb/MDi6u2yJvNeuN/w9b4KNjHrHslUlgz/49cNV6oOeo8o9PonorSCRMCSuMk0QKvdgg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDfNUBpeW7OiLVEgbDsDDTcs0ytFfCwDhWww2Q8F+uziAIhAI1E72pgJsiLyA68Etg1xh9mIpS60gNtXUHlSm6VLtzo"}]}},"0.5.0":{"name":"ast-util","version":"0.5.0","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"esprima-fb":"^7001.1.0-dev-harmony-fb","mocha":"~1.18.2","recast":"~0.8.0"},"dependencies":{"ast-types":"~0.5.2","private":"~0.1.5"},"gitHead":"c4968651a10d0c3096b554fb362adb3cc4623f0a","_id":"ast-util@0.5.0","_shasum":"9e18b9f665b14615ae1f3b0fb251932a6dd6664b","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"9e18b9f665b14615ae1f3b0fb251932a6dd6664b","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.5.0.tgz","integrity":"sha512-LNndVlp684/IDs73JxeBYDqEKJldzkHRvfO+XDh+gPGU1R8ZBDL0k2unitcvQXAmDi41P6CKFtsoleWI1M8fpA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHp0HzfDIVPT+2l4vVz36OttOfz+rp5Dg6339EEwZJbIAiEAwLWYHFIhmBKi3dQgrUccf0r+OObxKhq9fxk1JmzHcqc="}]}},"0.5.1":{"name":"ast-util","version":"0.5.1","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"esprima-fb":"^7001.1.0-dev-harmony-fb","mocha":"~1.18.2","recast":"~0.8.0"},"dependencies":{"ast-types":"~0.5.3","private":"~0.1.5"},"gitHead":"5615b9b9000aa92cf6f67c6d07a325b5f2736aac","_id":"ast-util@0.5.1","_shasum":"52e081442fa592528b87ada6fa42fde4a6128943","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"52e081442fa592528b87ada6fa42fde4a6128943","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.5.1.tgz","integrity":"sha512-Uyysvr336qF+ifAkxomxcXrGzUm3kBMTQi8y7ZvaixtlgViMoQeMlmyfNXgIVrjFNmtgzZov/L7S5X4YyqLoHQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIH8Wk4VgMianXZcdehn6k5is+BWoRnsxnNhihaY3ZWhxAiEAy1xlDbm4/xkYrxlginFPvJgZnLTfq6aM0MsJEZEG0ew="}]}},"0.5.2":{"name":"ast-util","version":"0.5.2","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"esprima-fb":"^7001.1.0-dev-harmony-fb","mocha":"~1.18.2","recast":"~0.8.0"},"dependencies":{"ast-types":"~0.5.3","private":"~0.1.5"},"gitHead":"ae10c921d652f9ad62ec499193be769f2689fd76","_id":"ast-util@0.5.2","_shasum":"46f70438149f22b27dc152f76c13a9da4b03960d","_from":".","_npmVersion":"1.4.23","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"46f70438149f22b27dc152f76c13a9da4b03960d","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.5.2.tgz","integrity":"sha512-ZDZp/UnPMXCsSUD88U7eNv63o1G4cQlMt3MllOOlUOtggla455xYoqTY47zC/lhHINBd7y0Jp7Wm/Lm8ZLkGNA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC94FNH9nuazMrW3DxBUvmQrkmcPQSO5HxAUKluI6rHSAIhAMG3S93H7duTQIquM21StbaP0REk9etUNGfD2zUZ6FMh"}]}},"0.6.0":{"name":"ast-util","version":"0.6.0","description":"Utilities for AST transformers.","main":"lib/index.js","directories":{"test":"test"},"scripts":{"test":"mocha -R spec"},"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"keywords":["ast","transform","esnext","es6","macros"],"author":{"name":"Brian Donovan"},"license":"Apache 2","bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"homepage":"https://github.com/eventualbuddha/ast-util","devDependencies":{"mocha":"~2.1.0","recast":"~0.9.11"},"dependencies":{"ast-types":"~0.6.7","private":"~0.1.6"},"gitHead":"6ea220d1999979c970c6a0a11faf4c9db4c1fddf","_id":"ast-util@0.6.0","_shasum":"0d913d04f0e9831e53f9991dc99009e2da774810","_from":".","_npmVersion":"2.1.16","_nodeVersion":"0.10.35","_npmUser":{"name":"eventualbuddha","email":"me@brian-donovan.com"},"maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"dist":{"shasum":"0d913d04f0e9831e53f9991dc99009e2da774810","tarball":"https://registry.npmjs.org/ast-util/-/ast-util-0.6.0.tgz","integrity":"sha512-/+51yw97MnOHqhCVAwka55jpouWEpamfYHpYpfGcm0s+XsWNVziKUFk6UFupnB2YdYPAN93QNWDDkwX/qvb12Q==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDLAFXQnRW2R7TdK64DrybdI+k2NZYuPctap6mNfGA3hgIhAMowwPtNhoE3vwgReHcR06sKrjIaQcie+x+bEEBV1Hoy"}]}}},"readme":"# ast-util\n\nUtilities for AST transformers.\n\n## Install\n\n```\n$ npm install [--save] ast-util\n```\n\n## API\n\n<a name=\"callArraySlice\" href=\"#user-content-callArraySlice\">#</a> <b>callArraySlice</b>(<i>scope</i>, <i>node</i>[, <i>begin</i>, <i>end</i>])\n\nReturns a call to `Array.prototype.slice` with `node` as the context and\n`begin` and `end` as the arguments to `slice`.\n\n\n<a name=\"callFunctionBind\" href=\"#user-content-callFunctionBind\">#</a> <b>callFunctionBind</b>(<i>scope</i>, <i>fn</i>, <i>context</i>[, <i>args</i>])\n\nReturns a call to `Function.prototype.bind` using either `call` or `apply`\ndepending on what the value of `args` is. If `args` is an expression then\n`apply` is used. If `args` is an array of expressions, then `call`.\n\n\n<a name=\"callGet\" href=\"#user-content-callGet\">#</a> <b>callGet</b>(<i>scope</i>, <i>object</i>, <i>property</i>, <i>receiver</i>)\n\nThe [[Get]] internal method on objects would look something like\n[helpers/get.js](helpers/get.js).\n\n\n<a name=\"callGetOwnPropertyDescriptor\" href=\"#user-content-callGetOwnPropertyDescriptor\">#</a> <b>callGetOwnPropertyDescriptor</b>(<i>scope</i>, <i>object</i>, <i>property</i>)\n\nReturns a call to `Object.getOwnPropertyDescriptor` with the given `object` and\n`property`.\n\n\n<a name=\"callGetPrototypeOf\" href=\"#user-content-callGetPrototypeOf\">#</a> <b>callGetPrototypeOf</b>(<i>scope</i>, <i>object</i>)\n\nReturns a call to `Object.getPrototypeOf` with the given `object`.\n\n\n<a name=\"callHasOwnProperty\" href=\"#user-content-callHasOwnProperty\">#</a> <b>callHasOwnProperty</b>(<i>scope</i>, <i>node</i>, <i>property</i>)\n\nReturns a call to `hasOwnProperty` with `node` as the context and `property` as\nthe property to check.\n\n\n<a name=\"callSharedMethod\" href=\"#user-content-callSharedMethod\">#</a> <b>callSharedMethod</b>(<i>scope</i>, <i>callee</i>, <i>args</i>)\n\nReturns a call to the given `callee` with `args` as the arguments. If `callee`\nis a string then it is treated as a globally-accessible function such as\n`Object.defineProperty` which will be stored in a unique temporary variable.\nSubsequent calls to this function will re-use the same temporary variable.\n\n\n<a name=\"callSharedMethodWithContext\" href=\"#user-content-callSharedMethodWithContext\">#</a> <b>callSharedMethodWithContext</b>(<i>scope</i>, <i>callee</i>, <i>context</i>, <i>args</i>)\n\nReturns a call to the given `callee` with `context` as the method context and\n`args` as the arguments. If `callee` is a string then it is treated as a\nglobally-accessible function such as `Array.prototype.slice` which will be\nstored in a unique temporary variable. Subsequent calls to this function will\nre-use the same temporary variable.\n\n\n<a name=\"getGlobals\" href=\"#user-content-getGlobals\">#</a> <b>getGlobals</b>(<i>ast</i>)\n\nGets a list of identifiers referencing global variables anywhere within the\ngiven `ast`. Assuming the ast is for this code:\n\n```js\nvar a;\nfunction b(){ return c; }\nb(d);\n```\n\nThen `getGlobals` will return two identifiers, `c` and `d`.\n\n\n<a name=\"identifierForString\" href=\"#user-content-identifierForString\">#</a> <b>identifierForString</b>(<i>string</i>)\n\nGenerate a safe JavaScript identifier for the given string.\n\n\n<a name=\"injectShared\" href=\"#user-content-injectShared\">#</a> <b>injectShared</b>(<i>scope</i>, <i>name</i>, <i>expression</i>)\n\nInjects a shared variable with a unique identifier. Only the first call with\nthe same `scope` and `name` will result in a variable declaration being\ncreated. The `expression` passed in can either be an AST node or a function to\ngenerate one. This function is generally used to inject repeatedly-used values\nand prevent repeated execution.\n\n\n<a name=\"injectVariable\" href=\"#user-content-injectVariable\">#</a> <b>injectVariable</b>(<i>scope</i>, <i>identifier</i>[, <i>init</i>])\n\nInjects a variable with the given `identifier` into the given `scope` as a\n`var` declaration with an optional initial value.\n\n\n<a name=\"isReference\" href=\"#user-content-isReference\">#</a> <b>isReference</b>(<i>path</i>)\n\nDetermines whether the given `path` is a value reference. For example, `a` and\n`b` are references, but `c` is not:\n\n```js\na(b.c);\n```\n\nOnly identifiers count as references.\n\n\n<a name=\"isUsed\" href=\"#user-content-isUsed\">#</a> <b>isUsed</b>(<i>scope</i>, <i>name</i>)\n\nDetermines whether the given `name` should be considered \"used\" in the given\n`scope`. For a name to be used, it should either:\n\n  1. Be declared in this scope or a parent scope.\n  2. Be referenced in this scope, a parent scope, or any child scopes.\n\nFor example, `a`, `b`, and `d` are used in the global scope of this example\nwhile `c` is not:\n\n```js\nvar a;\nfunction b() {}\n\ntry {\n  a = b(d);\n} catch (c) {\n}\n```\n\n\n<a name=\"sharedFor\" href=\"#user-content-sharedFor\">#</a> <b>sharedFor</b>(<i>scope</i>, <i>name</i>)\n\nInjects a shared variable by getting the named value from a dotted path. For\nexample, this will return an identifier that can be used in place of the named\nexpression:\n\n```js\nsharedFor(scope, 'Object.defineProperty')\n```\n\nSubsequent calls to `sharedFor` in the same scope will return the same\nidentifier.\n\n\n<a name=\"uniqueIdentifier\" href=\"#user-content-uniqueIdentifier\">#</a> <b>uniqueIdentifier</b>(<i>scope</i>[, <i>name</i>])\n\nGenerates an identifier guaranteed not to collide with any others in the given\n`scope`. This function will also never generate the same identifier twice for\nany `scope` whose global scope already got that identifier.\n\nCalled in a scope with no global references and no variables, the first time\nthis function is called it will return an identifier named `$__0`.\n\nWhen called with a name that name will be used with a prefix, \"$\\_\\_\", if\npossible. If that name is already used then it will append incrementing numbers\nuntil it finds a name that isn't used.\n\n\n## Usage\n\nThese methods are useful to source transforms, such as transpilers or macros.\nSuch transforms often have to insert variables into scopes and replace\nexpressions. Using `injectVariable` and `injectShared` are specifically for\nthat purpose. In conjunction with `ast-types`, here's how you'd write a simple\nversion of a `swap` macro:\n\n```js\n// var tmp;\nvar tmp = util.injectVariable(\n  this.scope,\n  util.uniqueIdentifier(this.scope)\n);\n\nthis.replace(\n  b.sequenceExpression([\n    // tmp = left\n    b.assignmentExpression(\n      '=',\n      tmp,\n      left\n    ),\n    // left = right\n    b.assignmentExpression(\n      '=',\n      left,\n      right\n    ),\n    // right = tmp\n    b.assignmentExpression(\n      '=',\n      right,\n      tmp\n    )\n  ])\n);\n```\n\nSee [examples/swap-macro.js](examples/swap-macro.js) for a more complete\nexample.\n\n## Contributing\n\n[![Build Status](https://travis-ci.org/eventualbuddha/ast-util.png?branch=master)](https://travis-ci.org/eventualbuddha/ast-util)\n\n\n### Setup\n\nFirst, install the development dependencies:\n\n```\n$ npm install\n```\n\nThen, try running the tests:\n\n```\n$ make test\n```\n\nIf you're adding or editing code that injects helpers into a scope, you'll need\nto edit and run the Makefile to have it generate the files in lib/helpers from\nthe files in helpers.\n\n\n### Pull Requests\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n\n\n## Acknowledgements\n\nHuge thanks to [Ben Newman][benjamn] for [ast-types][ast-types], on which much\nof this library depends.\n\n[benjamn]: https://github.com/benjamn\n[ast-types]: https://github.com/benjamn/ast-types\n","maintainers":[{"name":"eventualbuddha","email":"me@brian-donovan.com"}],"time":{"modified":"2022-06-13T03:35:09.020Z","created":"2014-04-27T23:45:40.008Z","0.0.1":"2014-04-27T23:45:40.008Z","0.0.2":"2014-04-29T16:09:33.079Z","0.0.3":"2014-04-29T19:57:16.189Z","0.0.4":"2014-04-29T20:08:29.304Z","0.0.5":"2014-04-29T20:11:33.107Z","0.0.6":"2014-05-06T17:17:03.891Z","0.1.0":"2014-05-31T15:34:20.159Z","0.1.1":"2014-05-31T17:17:50.292Z","0.1.2":"2014-06-04T19:12:35.336Z","0.2.0":"2014-06-13T18:24:38.695Z","0.3.0":"2014-06-19T17:34:11.405Z","0.3.1":"2014-07-09T18:27:47.429Z","0.3.2":"2014-07-31T17:03:30.518Z","0.3.3":"2014-07-31T17:10:34.664Z","0.3.4":"2014-07-31T17:15:36.941Z","0.4.0":"2014-08-26T18:30:40.476Z","0.4.1":"2014-09-03T15:57:59.900Z","0.5.0":"2014-10-09T02:01:19.756Z","0.5.1":"2014-10-15T14:40:49.493Z","0.5.2":"2014-10-26T14:37:54.046Z","0.6.0":"2014-12-31T17:49:59.897Z"},"homepage":"https://github.com/eventualbuddha/ast-util","keywords":["ast","transform","esnext","es6","macros"],"repository":{"type":"git","url":"git://github.com/eventualbuddha/ast-util.git"},"author":{"name":"Brian Donovan"},"bugs":{"url":"https://github.com/eventualbuddha/ast-util/issues"},"license":"Apache 2","readmeFilename":"README.md"}