# DO NOT EDIT
# generated with the following command:
#
#   tools/js/bower2bazel.py -w lib/js/bower_archives.bzl -b lib/js/bower_components.bzl
#

load("//tools/bzl:js.bzl", "bower_archive")

def load_bower_archives():
  bower_archive(
    name = "accessibility-developer-tools",
    package = "accessibility-developer-tools",
    version = "2.12.0",
    sha1 = "88ae82dcdeb6c658f76eff509d0ee425cae14d49")
  bower_archive(
    name = "async",
    package = "async",
    version = "1.5.2",
    sha1 = "1ec975d3b3834646a7e3d4b7e68118b90ed72508")
  bower_archive(
    name = "chai",
    package = "chai",
    version = "3.5.0",
    sha1 = "849ad3ee7c77506548b7b5db603a4e150b9431aa")
  bower_archive(
    name = "font-roboto",
    package = "PolymerElements/font-roboto",
    version = "1.0.3",
    sha1 = "edf478d20ae2fc0704d7c155e20162caaabdd5ae")
  bower_archive(
    name = "iron-a11y-announcer",
    package = "PolymerElements/iron-a11y-announcer",
    version = "1.0.6",
    sha1 = "14aed1e1b300ea344e80362e875919ea3d104dcc")
  bower_archive(
    name = "iron-a11y-keys-behavior",
    package = "PolymerElements/iron-a11y-keys-behavior",
    version = "1.1.9",
    sha1 = "f58358ee652c67e6e721364ba50fb77a2ece1465")
  bower_archive(
    name = "iron-behaviors",
    package = "polymerelements/iron-behaviors",
    version = "1.0.18",
    sha1 = "e231a1a02b090f5183db917639fdb96cdd0dca18")
  bower_archive(
    name = "iron-fit-behavior",
    package = "PolymerElements/iron-fit-behavior",
    version = "1.2.7",
    sha1 = "01c485fbf898307029bbb72ac7e132db1570a842")
  bower_archive(
    name = "iron-flex-layout",
    package = "PolymerElements/iron-flex-layout",
    version = "1.3.7",
    sha1 = "4d4cf3232cf750a17a7df0a37476117f831ac633")
  bower_archive(
    name = "iron-menu-behavior",
    package = "PolymerElements/iron-menu-behavior",
    version = "2.0.1",
    sha1 = "139528ee1e8d86257e2aa445de7761b8ec70ae91")
  bower_archive(
    name = "iron-meta",
    package = "PolymerElements/iron-meta",
    version = "1.1.3",
    sha1 = "f77eba3f6f6817f10bda33918bde8f963d450041")
  bower_archive(
    name = "iron-resizable-behavior",
    package = "polymerelements/iron-resizable-behavior",
    version = "1.0.6",
    sha1 = "719c2a8a1a784f8aefcdeef41fcc2e5a03518d9e")
  bower_archive(
    name = "iron-validatable-behavior",
    package = "PolymerElements/iron-validatable-behavior",
    version = "1.1.2",
    sha1 = "7111f34ff32e1510131dfbdb1eaa51bfa291e8be")
  bower_archive(
    name = "lodash",
    package = "lodash",
    version = "3.10.1",
    sha1 = "2f207a8293c4c554bf6cf071241f7a00dc513d3a")
  bower_archive(
    name = "mocha",
    package = "mocha",
    version = "3.5.3",
    sha1 = "c14f149821e4e96241b20f85134aa757b73038f1")
  bower_archive(
    name = "neon-animation",
    package = "polymerelements/neon-animation",
    version = "1.2.5",
    sha1 = "588d289f779d02b21ce5b676e257bbd6155649e8")
  bower_archive(
    name = "paper-styles",
    package = "PolymerElements/paper-styles",
    version = "1.3.1",
    sha1 = "4ee9c692366949a754e0e39f8031aa60ce66f24d")
  bower_archive(
    name = "sinon-chai",
    package = "sinon-chai",
    version = "2.13.0",
    sha1 = "ea4325b243d5a0b55bfd764e1575d51e2a191c16")
  bower_archive(
    name = "sinonjs",
    package = "sinonjs",
    version = "1.17.1",
    sha1 = "a26a6aab7358807de52ba738770f6ac709afd240")
  bower_archive(
    name = "stacky",
    package = "stacky",
    version = "1.3.2",
    sha1 = "d6c07a0112ab2e9677fe085933744466a89232fb")
  bower_archive(
    name = "web-animations-js",
    package = "web-animations/web-animations-js",
    version = "2.3.1",
    sha1 = "2ba5548d36188fe54555eaad0a576de4b027661e")
  bower_archive(
    name = "webcomponentsjs",
    package = "webcomponentsjs",
    version = "0.7.24",
    sha1 = "559227f8ee9db9bfbd81989f24510cc0c1bfc65c")
