(function (angular) {
  'use strict'

  /**
    $1[$3]

    $2
   */

  angular
    .module('$1')
    .provider('$3', $3)

  // $3.\$inject = [ ]

  /* @ngInject */
  function $3 () {
    var self = this

    // default options
    var defaults = {
      $4
    }

    /* allow defaults override */
    self.options = overrideOptions

    self.\$get = $3Service

    return self

    // -------

    function overrideOptions (options) {
      options = options || {}
      defaults = angular.extend(defaults, options)
    }

    /* @ngInject */
    function $3Service () {

      $5

    }

  }

}(window.angular))

@@ -120,32 +120,8 @@
 3)%0A%0A
-  // $3.%5C$inject = %5B %5D%0A%0A
   /*
@@ -134,16 +134,16 @@
 ject */%0A
+
   functi
@@ -321,16 +321,30 @@
 %5C$get = 
+ConstructorFor
 $3Servic
@@ -524,24 +524,24 @@
 ngInject */%0A
-
     function
@@ -541,16 +541,30 @@
 unction 
+ConstructorFor
 $3Servic

use same name in ngprovider from ngservice