Notice: |

  Apache Brooklyn
  Copyright 2014-2018 The Apache Software Foundation

  This product includes software developed at
  The Apache Software Foundation (http://www.apache.org/).


Bundled dependencies:

  # This software includes the following bundled third-party components.
  # Referenced licenses can be found in the accompanying LICENSE file.

  # No such dependencies


Runtime dependencies:

  # This artifact depends on additional third-party components at runtime.
  # These are not bundled here but may be included as part of a build.

  angular-animate@1.7.2: 
    Project:      angular-animate (NodeJS module)
    Version:      1.7.2
    Available at: 
      - http://angularjs.org
      - https://github.com/angular/angular.js
    Developed by: Angular Core Team (angular-core+npm@google.com)
    License name: MIT License
    Notice:       Copyright (c) 2016 Angular
  
  angular-cookies@1.7.2: 
    Project:      angular-cookies (NodeJS module)
    Version:      1.7.2
    Available at: 
      - http://angularjs.org
      - https://github.com/angular/angular.js
    Developed by: Angular Core Team (angular-core+npm@google.com)
    License name: MIT License
    Notice:       Copyright (c) 2016 Angular
  
  angular-java-stack-viewer@1.0.1: 
    Project:      angular-java-stack-viewer (NodeJS module)
    Version:      1.0.1
    Available at: https://github.com/tbouron/angular-java-stack-viewer
    Developed by: Thomas Bouron
    License name: Apache License, version 2.0
  
  angular-multiple-transclusion@1.0.0: 
    Project:      angular-multiple-transclusion (NodeJS module)
    Version:      1.0.0
    Available at: https://github.com/mcasimir/angular-multiple-transclusion
    Developed by: mcasimir (https://github.com/mcasimir)
    License name: MIT License
  
  angular-resource@1.7.2: 
    Project:      angular-resource (NodeJS module)
    Version:      1.7.2
    Available at: 
      - http://angularjs.org
      - https://github.com/angular/angular.js
    Developed by: Angular Core Team (angular-core+npm@google.com)
    License name: MIT License
    Notice:       Copyright (c) 2016 Angular
  
  angular-ui-bootstrap@2.5.6: 
    Project:      angular-ui-bootstrap (NodeJS module)
    Version:      2.5.6
    Available at: 
      - http://angular-ui.github.io/bootstrap/
      - https://github.com/angular-ui/bootstrap
    Developed by: https://github.com/angular-ui/bootstrap/graphs/contributors
    License name: MIT License
    Notice:       Copyright (c) 2012-2017 the AngularUI Team, https://github.com/organizations/angular-ui/teams/291112
  
  angular-ui-router@0.3.2: 
    Project:      angular-ui-router (NodeJS module)
    Version:      0.3.2
    Available at: 
      - http://angular-ui.github.com/
      - https://github.com/angular-ui/ui-router
    License name: MIT License
    Notice:       Copyright (c) 2013-2015 The AngularUI Team, Karsten Sperling
  
  angular@1.7.2: 
    Project:      angular (NodeJS module)
    Version:      1.7.2
    Available at: 
      - http://angularjs.org
      - https://github.com/angular/angular.js
    Developed by: Angular Core Team (angular-core+npm@google.com)
    License name: MIT License
    Notice:       Copyright (c) 2016 Angular
  
  argparse@1.0.10: 
    Project:      argparse (NodeJS module)
    Version:      1.0.10
    Available at: https://github.com/nodeca/argparse
    License name: MIT License
    Notice:       Copyright (C) 2012 by Vitaly Puzrin
  
  bootstrap@3.3.7: 
    Project:      bootstrap (NodeJS module)
    Version:      3.3.7
    Available at: 
      - http://getbootstrap.com
      - https://github.com/twbs/bootstrap
    Developed by: Twitter, Inc.
    License name: MIT License
    Notice:       Copyright (c) 2011-2016 Twitter, Inc.
  
  clipboard@1.5.16: 
    Project:      clipboard (NodeJS module)
    Version:      1.5.16
    Available at: https://github.com/zenorocha/clipboard.js
    License name: MIT License
  
  codemirror@5.39.2: 
    Project:      codemirror (NodeJS module)
    Version:      5.39.2
    Available at: 
      - http://codemirror.net
      - https://github.com/codemirror/CodeMirror
    License name: MIT License
    Notice:       Copyright (C) 2017 by Marijn Haverbeke <marijnh@gmail.com> and others
  
  delegate@3.2.0: 
    Project:      delegate (NodeJS module)
    Version:      3.2.0
    Available at: https://github.com/zenorocha/delegate
    License name: MIT License
  
  encoding@0.1.12: 
    Project:      encoding (NodeJS module)
    Version:      0.1.12
    Available at: https://github.com/andris9/encoding
    Developed by: Andris Reinman
    License name: MIT License
    Notice:       Copyright (c) 2012-2014 Andris Reinman
  
  es6-promise@4.2.4: 
    Project:      es6-promise (NodeJS module)
    Version:      4.2.4
    Available at: https://github.com/stefanpenner/es6-promise
    Developed by: Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
    License name: MIT License
    Notice:       Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors
  
  esprima@4.0.1: 
    Project:      esprima (NodeJS module)
    Version:      4.0.1
    Available at: 
      - http://esprima.org
      - https://github.com/jquery/esprima
    Developed by: Ariya Hidayat (ariya.hidayat@gmail.com)
    License name: BSD 2-Clause (Simplified or FreeBSD) License
    Notice:       Copyright JS Foundation and other contributors, https://js.foundation/
  
  font-awesome@4.7.0: 
    Project:      font-awesome (NodeJS module)
    Version:      4.7.0
    Available at: 
      - http://fontawesome.io/
      - https://github.com/FortAwesome/Font-Awesome
    Developed by: Dave Gandy (http://twitter.com/davegandy)
    License name: Font Awesome License
  
  good-listener@1.2.2: 
    Project:      good-listener (NodeJS module)
    Version:      1.2.2
    Available at: https://github.com/zenorocha/good-listener
    License name: MIT License
  
  iconv-lite@0.4.23: 
    Project:      iconv-lite (NodeJS module)
    Version:      0.4.23
    Available at: https://github.com/ashtuchkin/iconv-lite
    Developed by: Alexander Shtuchkin (ashtuchkin@gmail.com)
    License name: MIT License
    Notice:       Copyright (c) 2011 Alexander Shtuchkin
  
  identicon.js@1.3.0: 
    Project:      identicon.js (NodeJS module)
    Version:      1.3.0
    Available at: https://github.com/stewartlord/identicon.js
    Developed by: stewardlord
    License name: BSD 2-Clause (Simplified or FreeBSD) License
    Notice:       Copyright (c) 2013, Stewart Lord. All rights reserved.
  
  is-stream@1.1.0: 
    Project:      is-stream (NodeJS module)
    Version:      1.1.0
    Available at: https://github.com/sindresorhus/is-stream
    Developed by: Sindre Sorhus (sindresorhus.com)
    License name: MIT License
    Notice:       Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
  
  isomorphic-fetch@2.2.1: 
    Project:      isomorphic-fetch (NodeJS module)
    Version:      2.2.1
    Available at: 
      - https://github.com/matthew-andrews/isomorphic-fetch
      - https://github.com/matthew-andrews/isomorphic-fetch/issues
    Developed by: Matt Andrews (matt@mattandre.ws)
    License name: MIT License
    Notice:       Copyright (c) 2015 Matt Andrews
  
  java-stack-parser@1.0.0: 
    Project:      java-stack-parser (NodeJS module)
    Version:      1.0.0
    Available at: https://github.com/tbouron/java-stack-parser
    Developed by: Thomas Bouron
    License name: Apache License, version 2.0
  
  js-yaml@3.12.0: 
    Project:      js-yaml (NodeJS module)
    Version:      3.12.0
    Available at: https://github.com/nodeca/js-yaml
    Developed by: Vladimir Zapparov (dervus.grim@gmail.com)
    License name: MIT License
    Notice:       Copyright (C) 2011-2015 by Vitaly Puzrin
  
  jsonschema@1.2.4: 
    Project:      jsonschema (NodeJS module)
    Version:      1.2.4
    Available at: https://github.com/tdegrunt/jsonschema
    Developed by: Tom de Grunt (tom@degrunt.nl)
    License name: MIT License
    Notice:       Copyright (C) 2012-2015 Tom de Grunt <tom@degrunt.nl>
  
  jssha@2.3.1: 
    Project:      jssha (NodeJS module)
    Version:      2.3.1
    Available at: https://github.com/Caligatio/jsSHA
    Developed by: Brian Turek (brian.turek@gmail.com)
    License name: BSD 3-Clause (New BSD) License
    Notice:       Copyright (c) 2008-2017, Brian Turek. All rights reserved.*
  
  lodash@4.17.10: 
    Project:      lodash (NodeJS module)
    Version:      4.17.10
    Available at: 
      - https://github.com/lodash/lodash
      - https://lodash.com/
    Developed by: John-David Dalton (http://allyoucanleet.com/)
    License name: MIT License
    Notice:       Copyright JS Foundation and other contributors <https://js.foundation/>
  
  ngclipboard@1.1.2: 
    Project:      ngclipboard (NodeJS module)
    Version:      1.1.2
    Available at: https://github.com/sachinchoolur/ngclipboard
    Developed by: Sachin (https://github.com/sachinchoolur)
    License name: MIT License
    Notice:       Copyright (c) 2015 Sachin N
  
  node-fetch@1.7.3: 
    Project:      node-fetch (NodeJS module)
    Version:      1.7.3
    Available at: https://github.com/bitinn/node-fetch
    Developed by: David Frank
    License name: MIT License
    Notice:       Copyright (c) 2016 David Frank
  
  normalizr@2.3.1: 
    Project:      normalizr (NodeJS module)
    Version:      2.3.1
    Available at: https://github.com/paularmstrong/normalizr
    Developed by: Dan Abramov
    License name: MIT License
    Notice:       Copyright (c) 2014 Dan Abramov
  
  rxjs@5.5.11: 
    Project:      rxjs (NodeJS module)
    Version:      5.5.11
    Available at: https://github.com/ReactiveX/RxJS
    Developed by: Ben Lesh (ben@benlesh.com)
    License name: Apache License, version 2.0
  
  safer-buffer@2.1.2: 
    Project:      safer-buffer (NodeJS module)
    Version:      2.1.2
    Available at: https://github.com/ChALkeR/safer-buffer
    Developed by: Nikita Skovoroda (https://github.com/ChALkeR)
    License name: MIT License
    Notice:       Copyright (c) 2018 Nikita Skovoroda <chalkerx@gmail.com>
  
  select@1.1.2: 
    Project:      select (NodeJS module)
    Version:      1.1.2
    Available at: https://github.com/zenorocha/select
    License name: MIT License
  
  sprintf-js@1.0.3: 
    Project:      sprintf-js (NodeJS module)
    Version:      1.0.3
    Available at: https://github.com/alexei/sprintf.js
    Developed by: Alexandru Marasteanu (http://alexei.ro/)
    License name: BSD 3-Clause (New BSD) License
    Notice:       Copyright (c) 2007-2014, Alexandru Marasteanu <hello [at) alexei (dot] ro>. All rights reserved.
  
  symbol-observable@1.0.1: 
    Project:      symbol-observable (NodeJS module)
    Version:      1.0.1
    Available at: https://github.com/blesh/symbol-observable
    Developed by: Ben Lesh (ben@benlesh.com)
    License name: MIT License
    Notice:       Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com). Copyright (c) Ben Lesh <ben@benlesh.com>
  
  tiny-emitter@1.2.0: 
    Project:      tiny-emitter (NodeJS module)
    Version:      1.2.0
    Available at: https://github.com/scottcorgan/tiny-emitter
    Developed by: Scott Corgan
    License name: MIT License
    Notice:       Copyright (c) 2016 Scott Corgan
  
  whatwg-fetch@2.0.4: 
    Project:      whatwg-fetch (NodeJS module)
    Version:      2.0.4
    Available at: https://github.com/github/fetch
    License name: MIT License
    Notice:       Copyright (c) 2014-2016 GitHub, Inc.
  
