@macedon-technologies/batman 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12,6 +12,7 @@ exports.DEFAULT_WORKFLOW_ACTION_VERSIONS = {
12
12
  uploadArtifact: 'actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a', // v7
13
13
  downloadArtifact: 'actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c', // v8
14
14
  semanticPullRequest: 'amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50', // v6.1.1
15
+ createGithubAppToken: 'actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1', // v3.2.0
15
16
  };
16
17
  function resolveActionVersions(overrides) {
17
18
  return {
@@ -19,4 +20,4 @@ function resolveActionVersions(overrides) {
19
20
  ...overrides,
20
21
  };
21
22
  }
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2Zsb3dBY3Rpb25WZXJzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Xb3JrZmxvd0FjdGlvblZlcnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTRGQSxzREFLQztBQWpCWSxRQUFBLGdDQUFnQyxHQUFxQztJQUNoRixRQUFRLEVBQUUsMkRBQTJELEVBQUUsU0FBUztJQUNoRixTQUFTLEVBQUUsNkRBQTZELEVBQUUsU0FBUztJQUNuRix1QkFBdUIsRUFBRSxnRkFBZ0YsRUFBRSxTQUFTO0lBQ3BILGVBQWUsRUFBRSw0REFBNEQsRUFBRSxVQUFVO0lBQ3pGLFlBQVksRUFBRSxnRUFBZ0UsRUFBRSxTQUFTO0lBQ3pGLGlCQUFpQixFQUFFLDBFQUEwRSxFQUFFLFNBQVM7SUFDeEcsY0FBYyxFQUFFLGtFQUFrRSxFQUFFLEtBQUs7SUFDekYsZ0JBQWdCLEVBQUUsb0VBQW9FLEVBQUUsS0FBSztJQUM3RixtQkFBbUIsRUFBRSw4RUFBOEUsRUFBRSxTQUFTO0NBQy9HLENBQUM7QUFFRixTQUFnQixxQkFBcUIsQ0FBQyxTQUFrQztJQUN0RSxPQUFPO1FBQ0wsR0FBRyx3Q0FBZ0M7UUFDbkMsR0FBRyxTQUFTO0tBQ2IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFNIQS1waW5uZWQgYWN0aW9uIHJlZmVyZW5jZXMgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIGRlcGxveS9jbGVhbnVwIHdvcmtmbG93cywgYW5kIGFwcGxpZWRcbiAqIHRvIHRoZSB3b3JrZmxvd3MgQXdzQ2RrVHlwZVNjcmlwdEFwcCBnZW5lcmF0ZXMgb24gaXRzIG93biAodXBncmFkZS55bWwsIHB1bGwtcmVxdWVzdC1saW50LnltbClcbiAqIHZpYSBgaGFyZGVuUHJvamVuR2VuZXJhdGVkV29ya2Zsb3dzYCDigJQgc2VlIGBQcm9qZW5Xb3JrZmxvd0hhcmRlbmluZy50c2AuXG4gKlxuICogeml6bW9yIGZsYWdzIHVucGlubmVkIGB1c2VzOmAgcmVmZXJlbmNlcyBhcyBhIGhpZ2gtc2V2ZXJpdHkgZmluZGluZ1xuICogKGh0dHBzOi8vZG9jcy56aXptb3Iuc2gvYXVkaXRzLyN1bnBpbm5lZC11c2VzKSBiZWNhdXNlIGEgbXV0YWJsZSB0YWcgY2FuIGJlXG4gKiByZXBvaW50ZWQgdG8gZGlmZmVyZW50IGNvZGUgYWZ0ZXIgcmV2aWV3LiBFdmVyeSBmaWVsZCBoZXJlIGNhbiBiZVxuICogb3ZlcnJpZGRlbiBieSBjb25zdW1lcnMgd2hvIG5lZWQgYSBkaWZmZXJlbnQgcGlubmVkIFNIQSAoZS5nLiB0byBwaWNrIHVwIGFcbiAqIG5ld2VyIHJlbGVhc2UgYmVmb3JlIHRoaXMgcGFja2FnZSBkb2VzKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd0FjdGlvblZlcnNpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBgYWN0aW9ucy9jaGVja291dGAgYWN0aW9uIHJlZmVyZW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FjdGlvbnMvY2hlY2tvdXRAZmJjNmYzOTkyZDI0Yjc5NmQ1YTA0OGZmMjczZjdmY2M0YTdiNmMwOScgLy8gdjUuMS4wXG4gICAqL1xuICByZWFkb25seSBjaGVja291dD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL3NldHVwLW5vZGVgIGFjdGlvbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL3NldHVwLW5vZGVAYTA4NTNjMjQ1NDQ2MjdmNjVkZGYyNTlhYmU3M2IxZDE4YTU5MTQ0NCcgLy8gdjUuMC4wXG4gICAqL1xuICByZWFkb25seSBzZXR1cE5vZGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc2AgYWN0aW9uIHJlZmVyZW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNANzQ3NGJjNDY5MGUyOWE4MzkyYWY2M2M1Yjk4ZTc0NDk1MzZkNWMzYScgLy8gdjQuMy4xXG4gICAqL1xuICByZWFkb25seSBjb25maWd1cmVBd3NDcmVkZW50aWFscz86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBwbnBtL2FjdGlvbi1zZXR1cGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCB3aGVuIHRoZSBwcm9qZWN0J3MgcGFja2FnZSBtYW5hZ2VyIGlzIHBucG0uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwbnBtL2FjdGlvbi1zZXR1cEAwOTc3ZmQ5OTcyNWYxZGI0MDA3Y2NiMjkyOGRiYjRlOTBkMDZjYzg2JyAvLyB2Ni4wLjEwXG4gICAqL1xuICByZWFkb25seSBwbnBtQWN0aW9uU2V0dXA/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgYWN0aW9ucy9naXRodWItc2NyaXB0YCBhY3Rpb24gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYWN0aW9ucy9naXRodWItc2NyaXB0QGQ3NDZmZmUzNTUwOGIxOTE3MzU4NzgzYjQ3OWUwNGZlYmQyYjhmNzEnIC8vIHY5LjAuMFxuICAgKi9cbiAgcmVhZG9ubHkgZ2l0aHViU2NyaXB0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYHBldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RgIGFjdGlvbiByZWZlcmVuY2UsIHVzZWQgYnkgcHJvamVuJ3MgYnVpbHQtaW5cbiAgICogZGVwZW5kZW5jeS11cGdyYWRlIHdvcmtmbG93IHRvIG9wZW4gdGhlIHVwZ3JhZGUgUFIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwZXRlci1ldmFucy9jcmVhdGUtcHVsbC1yZXF1ZXN0QDVmNjk3OGZhZjA4OWQ0ZDIwYjAwYzc3NjY5ODlkMDc2YmIyZmM3ZjEnIC8vIHY4LjEuMVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlUHVsbFJlcXVlc3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RgIGFjdGlvbiByZWZlcmVuY2UsIHVzZWQgYnkgcHJvamVuJ3MgYnVpbHQtaW5cbiAgICogZGVwZW5kZW5jeS11cGdyYWRlIHdvcmtmbG93IHRvIHBhc3MgdGhlIHVwZ3JhZGUgcGF0Y2ggYmV0d2VlbiBqb2JzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAMDQzZmI0NmQxYTkzYzc3YWFlNjU2ZTdjMWM2NGE4NzVkMWZjNmEwYScgLy8gdjdcbiAgICovXG4gIHJlYWRvbmx5IHVwbG9hZEFydGlmYWN0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYGFjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RgIGFjdGlvbiByZWZlcmVuY2UsIHVzZWQgYnkgcHJvamVuJ3MgYnVpbHQtaW5cbiAgICogZGVwZW5kZW5jeS11cGdyYWRlIHdvcmtmbG93IHRvIHBhc3MgdGhlIHVwZ3JhZGUgcGF0Y2ggYmV0d2VlbiBqb2JzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEAzZTVmNDViMmNmYjkxNzIwNTRiNDA4N2E0MGU4ZTBiNWE1NDYxZTdjJyAvLyB2OFxuICAgKi9cbiAgcmVhZG9ubHkgZG93bmxvYWRBcnRpZmFjdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhbWFubm4vYWN0aW9uLXNlbWFudGljLXB1bGwtcmVxdWVzdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4nc1xuICAgKiBidWlsdC1pbiBwdWxsLXJlcXVlc3QtbGludCB3b3JrZmxvdyB0byB2YWxpZGF0ZSBQUiB0aXRsZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhbWFubm4vYWN0aW9uLXNlbWFudGljLXB1bGwtcmVxdWVzdEA0OGYyNTYyODRiZDQ2Y2RhYWIxMDQ4YzM3MjEzNjBlODA4MzM1ZDUwJyAvLyB2Ni4xLjFcbiAgICovXG4gIHJlYWRvbmx5IHNlbWFudGljUHVsbFJlcXVlc3Q/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1dPUktGTE9XX0FDVElPTl9WRVJTSU9OUzogUmVxdWlyZWQ8V29ya2Zsb3dBY3Rpb25WZXJzaW9ucz4gPSB7XG4gIGNoZWNrb3V0OiAnYWN0aW9ucy9jaGVja291dEBmYmM2ZjM5OTJkMjRiNzk2ZDVhMDQ4ZmYyNzNmN2ZjYzRhN2I2YzA5JywgLy8gdjUuMS4wXG4gIHNldHVwTm9kZTogJ2FjdGlvbnMvc2V0dXAtbm9kZUBhMDg1M2MyNDU0NDYyN2Y2NWRkZjI1OWFiZTczYjFkMThhNTkxNDQ0JywgLy8gdjUuMC4wXG4gIGNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0A3NDc0YmM0NjkwZTI5YTgzOTJhZjYzYzViOThlNzQ0OTUzNmQ1YzNhJywgLy8gdjQuMy4xXG4gIHBucG1BY3Rpb25TZXR1cDogJ3BucG0vYWN0aW9uLXNldHVwQDA5NzdmZDk5NzI1ZjFkYjQwMDdjY2IyOTI4ZGJiNGU5MGQwNmNjODYnLCAvLyB2Ni4wLjEwXG4gIGdpdGh1YlNjcmlwdDogJ2FjdGlvbnMvZ2l0aHViLXNjcmlwdEBkNzQ2ZmZlMzU1MDhiMTkxNzM1ODc4M2I0NzllMDRmZWJkMmI4ZjcxJywgLy8gdjkuMC4wXG4gIGNyZWF0ZVB1bGxSZXF1ZXN0OiAncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEA1ZjY5NzhmYWYwODlkNGQyMGIwMGM3NzY2OTg5ZDA3NmJiMmZjN2YxJywgLy8gdjguMS4xXG4gIHVwbG9hZEFydGlmYWN0OiAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAMDQzZmI0NmQxYTkzYzc3YWFlNjU2ZTdjMWM2NGE4NzVkMWZjNmEwYScsIC8vIHY3XG4gIGRvd25sb2FkQXJ0aWZhY3Q6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QDNlNWY0NWIyY2ZiOTE3MjA1NGI0MDg3YTQwZThlMGI1YTU0NjFlN2MnLCAvLyB2OFxuICBzZW1hbnRpY1B1bGxSZXF1ZXN0OiAnYW1hbm5uL2FjdGlvbi1zZW1hbnRpYy1wdWxsLXJlcXVlc3RANDhmMjU2Mjg0YmQ0NmNkYWFiMTA0OGMzNzIxMzYwZTgwODMzNWQ1MCcsIC8vIHY2LjEuMVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBY3Rpb25WZXJzaW9ucyhvdmVycmlkZXM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zKTogUmVxdWlyZWQ8V29ya2Zsb3dBY3Rpb25WZXJzaW9ucz4ge1xuICByZXR1cm4ge1xuICAgIC4uLkRFRkFVTFRfV09SS0ZMT1dfQUNUSU9OX1ZFUlNJT05TLFxuICAgIC4uLm92ZXJyaWRlcyxcbiAgfTtcbn1cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2Zsb3dBY3Rpb25WZXJzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Xb3JrZmxvd0FjdGlvblZlcnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXFHQSxzREFLQztBQWxCWSxRQUFBLGdDQUFnQyxHQUFxQztJQUNoRixRQUFRLEVBQUUsMkRBQTJELEVBQUUsU0FBUztJQUNoRixTQUFTLEVBQUUsNkRBQTZELEVBQUUsU0FBUztJQUNuRix1QkFBdUIsRUFBRSxnRkFBZ0YsRUFBRSxTQUFTO0lBQ3BILGVBQWUsRUFBRSw0REFBNEQsRUFBRSxVQUFVO0lBQ3pGLFlBQVksRUFBRSxnRUFBZ0UsRUFBRSxTQUFTO0lBQ3pGLGlCQUFpQixFQUFFLDBFQUEwRSxFQUFFLFNBQVM7SUFDeEcsY0FBYyxFQUFFLGtFQUFrRSxFQUFFLEtBQUs7SUFDekYsZ0JBQWdCLEVBQUUsb0VBQW9FLEVBQUUsS0FBSztJQUM3RixtQkFBbUIsRUFBRSw4RUFBOEUsRUFBRSxTQUFTO0lBQzlHLG9CQUFvQixFQUFFLDBFQUEwRSxFQUFFLFNBQVM7Q0FDNUcsQ0FBQztBQUVGLFNBQWdCLHFCQUFxQixDQUFDLFNBQWtDO0lBQ3RFLE9BQU87UUFDTCxHQUFHLHdDQUFnQztRQUNuQyxHQUFHLFNBQVM7S0FDYixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogU0hBLXBpbm5lZCBhY3Rpb24gcmVmZXJlbmNlcyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgZGVwbG95L2NsZWFudXAgd29ya2Zsb3dzLCBhbmQgYXBwbGllZFxuICogdG8gdGhlIHdvcmtmbG93cyBBd3NDZGtUeXBlU2NyaXB0QXBwIGdlbmVyYXRlcyBvbiBpdHMgb3duICh1cGdyYWRlLnltbCwgcHVsbC1yZXF1ZXN0LWxpbnQueW1sKVxuICogdmlhIGBoYXJkZW5Qcm9qZW5HZW5lcmF0ZWRXb3JrZmxvd3NgIOKAlCBzZWUgYFByb2plbldvcmtmbG93SGFyZGVuaW5nLnRzYC5cbiAqXG4gKiB6aXptb3IgZmxhZ3MgdW5waW5uZWQgYHVzZXM6YCByZWZlcmVuY2VzIGFzIGEgaGlnaC1zZXZlcml0eSBmaW5kaW5nXG4gKiAoaHR0cHM6Ly9kb2NzLnppem1vci5zaC9hdWRpdHMvI3VucGlubmVkLXVzZXMpIGJlY2F1c2UgYSBtdXRhYmxlIHRhZyBjYW4gYmVcbiAqIHJlcG9pbnRlZCB0byBkaWZmZXJlbnQgY29kZSBhZnRlciByZXZpZXcuIEV2ZXJ5IGZpZWxkIGhlcmUgY2FuIGJlXG4gKiBvdmVycmlkZGVuIGJ5IGNvbnN1bWVycyB3aG8gbmVlZCBhIGRpZmZlcmVudCBwaW5uZWQgU0hBIChlLmcuIHRvIHBpY2sgdXAgYVxuICogbmV3ZXIgcmVsZWFzZSBiZWZvcmUgdGhpcyBwYWNrYWdlIGRvZXMpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMge1xuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL2NoZWNrb3V0YCBhY3Rpb24gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYWN0aW9ucy9jaGVja291dEBmYmM2ZjM5OTJkMjRiNzk2ZDVhMDQ4ZmYyNzNmN2ZjYzRhN2I2YzA5JyAvLyB2NS4xLjBcbiAgICovXG4gIHJlYWRvbmx5IGNoZWNrb3V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYGFjdGlvbnMvc2V0dXAtbm9kZWAgYWN0aW9uIHJlZmVyZW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FjdGlvbnMvc2V0dXAtbm9kZUBhMDg1M2MyNDU0NDYyN2Y2NWRkZjI1OWFiZTczYjFkMThhNTkxNDQ0JyAvLyB2NS4wLjBcbiAgICovXG4gIHJlYWRvbmx5IHNldHVwTm9kZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzYCBhY3Rpb24gcmVmZXJlbmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0A3NDc0YmM0NjkwZTI5YTgzOTJhZjYzYzViOThlNzQ0OTUzNmQ1YzNhJyAvLyB2NC4zLjFcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYHBucG0vYWN0aW9uLXNldHVwYCBhY3Rpb24gcmVmZXJlbmNlLCB1c2VkIHdoZW4gdGhlIHByb2plY3QncyBwYWNrYWdlIG1hbmFnZXIgaXMgcG5wbS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3BucG0vYWN0aW9uLXNldHVwQDA5NzdmZDk5NzI1ZjFkYjQwMDdjY2IyOTI4ZGJiNGU5MGQwNmNjODYnIC8vIHY2LjAuMTBcbiAgICovXG4gIHJlYWRvbmx5IHBucG1BY3Rpb25TZXR1cD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL2dpdGh1Yi1zY3JpcHRgIGFjdGlvbiByZWZlcmVuY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL2dpdGh1Yi1zY3JpcHRAZDc0NmZmZTM1NTA4YjE5MTczNTg3ODNiNDc5ZTA0ZmViZDJiOGY3MScgLy8gdjkuMC4wXG4gICAqL1xuICByZWFkb25seSBnaXRodWJTY3JpcHQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgcGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4ncyBidWlsdC1pblxuICAgKiBkZXBlbmRlbmN5LXVwZ3JhZGUgd29ya2Zsb3cgdG8gb3BlbiB0aGUgdXBncmFkZSBQUi5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3BldGVyLWV2YW5zL2NyZWF0ZS1wdWxsLXJlcXVlc3RANWY2OTc4ZmFmMDg5ZDRkMjBiMDBjNzc2Njk4OWQwNzZiYjJmYzdmMScgLy8gdjguMS4xXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVQdWxsUmVxdWVzdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4ncyBidWlsdC1pblxuICAgKiBkZXBlbmRlbmN5LXVwZ3JhZGUgd29ya2Zsb3cgdG8gcGFzcyB0aGUgdXBncmFkZSBwYXRjaCBiZXR3ZWVuIGpvYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEAwNDNmYjQ2ZDFhOTNjNzdhYWU2NTZlN2MxYzY0YTg3NWQxZmM2YTBhJyAvLyB2N1xuICAgKi9cbiAgcmVhZG9ubHkgdXBsb2FkQXJ0aWZhY3Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBgYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdGAgYWN0aW9uIHJlZmVyZW5jZSwgdXNlZCBieSBwcm9qZW4ncyBidWlsdC1pblxuICAgKiBkZXBlbmRlbmN5LXVwZ3JhZGUgd29ya2Zsb3cgdG8gcGFzcyB0aGUgdXBncmFkZSBwYXRjaCBiZXR3ZWVuIGpvYnMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QDNlNWY0NWIyY2ZiOTE3MjA1NGI0MDg3YTQwZThlMGI1YTU0NjFlN2MnIC8vIHY4XG4gICAqL1xuICByZWFkb25seSBkb3dubG9hZEFydGlmYWN0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYGFtYW5ubi9hY3Rpb24tc2VtYW50aWMtcHVsbC1yZXF1ZXN0YCBhY3Rpb24gcmVmZXJlbmNlLCB1c2VkIGJ5IHByb2plbidzXG4gICAqIGJ1aWx0LWluIHB1bGwtcmVxdWVzdC1saW50IHdvcmtmbG93IHRvIHZhbGlkYXRlIFBSIHRpdGxlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2FtYW5ubi9hY3Rpb24tc2VtYW50aWMtcHVsbC1yZXF1ZXN0QDQ4ZjI1NjI4NGJkNDZjZGFhYjEwNDhjMzcyMTM2MGU4MDgzMzVkNTAnIC8vIHY2LjEuMVxuICAgKi9cbiAgcmVhZG9ubHkgc2VtYW50aWNQdWxsUmVxdWVzdD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGBhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuYCBhY3Rpb24gcmVmZXJlbmNlLCB1c2VkIGJ5IHRoZSBvcHQtaW5cbiAgICogcHItYXV0by1tZXJnZSB3b3JrZmxvdyB0byBtaW50IGEgR2l0SHViIEFwcCBpbnN0YWxsYXRpb24gdG9rZW4uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY3Rpb25zL2NyZWF0ZS1naXRodWItYXBwLXRva2VuQGJjZDJiYTQ5MjE4OTA2NzA0YWI2YzFhYTc5Njk5NmRhNDA5ZDNlYjEnIC8vIHYzLjIuMFxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlR2l0aHViQXBwVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX1dPUktGTE9XX0FDVElPTl9WRVJTSU9OUzogUmVxdWlyZWQ8V29ya2Zsb3dBY3Rpb25WZXJzaW9ucz4gPSB7XG4gIGNoZWNrb3V0OiAnYWN0aW9ucy9jaGVja291dEBmYmM2ZjM5OTJkMjRiNzk2ZDVhMDQ4ZmYyNzNmN2ZjYzRhN2I2YzA5JywgLy8gdjUuMS4wXG4gIHNldHVwTm9kZTogJ2FjdGlvbnMvc2V0dXAtbm9kZUBhMDg1M2MyNDU0NDYyN2Y2NWRkZjI1OWFiZTczYjFkMThhNTkxNDQ0JywgLy8gdjUuMC4wXG4gIGNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0A3NDc0YmM0NjkwZTI5YTgzOTJhZjYzYzViOThlNzQ0OTUzNmQ1YzNhJywgLy8gdjQuMy4xXG4gIHBucG1BY3Rpb25TZXR1cDogJ3BucG0vYWN0aW9uLXNldHVwQDA5NzdmZDk5NzI1ZjFkYjQwMDdjY2IyOTI4ZGJiNGU5MGQwNmNjODYnLCAvLyB2Ni4wLjEwXG4gIGdpdGh1YlNjcmlwdDogJ2FjdGlvbnMvZ2l0aHViLXNjcmlwdEBkNzQ2ZmZlMzU1MDhiMTkxNzM1ODc4M2I0NzllMDRmZWJkMmI4ZjcxJywgLy8gdjkuMC4wXG4gIGNyZWF0ZVB1bGxSZXF1ZXN0OiAncGV0ZXItZXZhbnMvY3JlYXRlLXB1bGwtcmVxdWVzdEA1ZjY5NzhmYWYwODlkNGQyMGIwMGM3NzY2OTg5ZDA3NmJiMmZjN2YxJywgLy8gdjguMS4xXG4gIHVwbG9hZEFydGlmYWN0OiAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAMDQzZmI0NmQxYTkzYzc3YWFlNjU2ZTdjMWM2NGE4NzVkMWZjNmEwYScsIC8vIHY3XG4gIGRvd25sb2FkQXJ0aWZhY3Q6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QDNlNWY0NWIyY2ZiOTE3MjA1NGI0MDg3YTQwZThlMGI1YTU0NjFlN2MnLCAvLyB2OFxuICBzZW1hbnRpY1B1bGxSZXF1ZXN0OiAnYW1hbm5uL2FjdGlvbi1zZW1hbnRpYy1wdWxsLXJlcXVlc3RANDhmMjU2Mjg0YmQ0NmNkYWFiMTA0OGMzNzIxMzYwZTgwODMzNWQ1MCcsIC8vIHY2LjEuMVxuICBjcmVhdGVHaXRodWJBcHBUb2tlbjogJ2FjdGlvbnMvY3JlYXRlLWdpdGh1Yi1hcHAtdG9rZW5AYmNkMmJhNDkyMTg5MDY3MDRhYjZjMWFhNzk2OTk2ZGE0MDlkM2ViMScsIC8vIHYzLjIuMFxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVBY3Rpb25WZXJzaW9ucyhvdmVycmlkZXM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zKTogUmVxdWlyZWQ8V29ya2Zsb3dBY3Rpb25WZXJzaW9ucz4ge1xuICByZXR1cm4ge1xuICAgIC4uLkRFRkFVTFRfV09SS0ZMT1dfQUNUSU9OX1ZFUlNJT05TLFxuICAgIC4uLm92ZXJyaWRlcyxcbiAgfTtcbn1cbiJdfQ==
package/lib/index.d.ts CHANGED
@@ -6,5 +6,5 @@ export { EnvironmentConfig } from './MainFile';
6
6
  export { ApplicationEnvironmentConfig } from './Application';
7
7
  export * from './StagingDeployWorkflow';
8
8
  export * from './ProductionDeployWorkflow';
9
+ export * from './PrAutoMergeWorkflow';
9
10
  export * from './WorkflowActionVersions';
10
- export * from './WorkflowAutoDiscover';
package/lib/index.js CHANGED
@@ -22,6 +22,6 @@ __exportStar(require("./CodeOwnersFile"), exports);
22
22
  __exportStar(require("./SoftwareFactoryFiles"), exports);
23
23
  __exportStar(require("./StagingDeployWorkflow"), exports);
24
24
  __exportStar(require("./ProductionDeployWorkflow"), exports);
25
+ __exportStar(require("./PrAutoMergeWorkflow"), exports);
25
26
  __exportStar(require("./WorkflowActionVersions"), exports);
26
- __exportStar(require("./WorkflowAutoDiscover"), exports);
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMscURBQTRFO0FBQW5FLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixtREFBaUM7QUFDakMseURBQXVDO0FBR3ZDLDBEQUF3QztBQUN4Qyw2REFBMkM7QUFDM0MsMkRBQXlDO0FBQ3pDLHlEQUF1QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQmF0bWFuUHJvamVjdCc7XG5leHBvcnQgeyBCb290Y2FtcFByb2plY3QsIEJvb3RjYW1wUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL0Jvb3RjYW1wUHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL0NvZGVPd25lcnNGaWxlJztcbmV4cG9ydCAqIGZyb20gJy4vU29mdHdhcmVGYWN0b3J5RmlsZXMnO1xuZXhwb3J0IHsgRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL01haW5GaWxlJztcbmV4cG9ydCB7IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93QXV0b0Rpc2NvdmVyJztcbiJdfQ==
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrREFBZ0M7QUFDaEMscURBQTRFO0FBQW5FLGtIQUFBLGVBQWUsT0FBQTtBQUN4QixtREFBaUM7QUFDakMseURBQXVDO0FBR3ZDLDBEQUF3QztBQUN4Qyw2REFBMkM7QUFDM0Msd0RBQXNDO0FBQ3RDLDJEQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vQmF0bWFuUHJvamVjdCc7XG5leHBvcnQgeyBCb290Y2FtcFByb2plY3QsIEJvb3RjYW1wUHJvamVjdE9wdGlvbnMgfSBmcm9tICcuL0Jvb3RjYW1wUHJvamVjdCc7XG5leHBvcnQgKiBmcm9tICcuL0NvZGVPd25lcnNGaWxlJztcbmV4cG9ydCAqIGZyb20gJy4vU29mdHdhcmVGYWN0b3J5RmlsZXMnO1xuZXhwb3J0IHsgRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL01haW5GaWxlJztcbmV4cG9ydCB7IEFwcGxpY2F0aW9uRW52aXJvbm1lbnRDb25maWcgfSBmcm9tICcuL0FwcGxpY2F0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmV4cG9ydCAqIGZyb20gJy4vUHJBdXRvTWVyZ2VXb3JrZmxvdyc7XG5leHBvcnQgKiBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuIl19
package/lib/utils.d.ts CHANGED
@@ -34,4 +34,4 @@ export declare function shellPortableSequence(...commands: string[]): string;
34
34
  */
35
35
  export declare function shellPortableForceDelete(path: string): string;
36
36
  export declare function serializeTs(value: any, depth?: number): string;
37
- export declare function readmeContents(projectName: string, e2eTesting?: boolean, packageManager?: NodePackageManager): string;
37
+ export declare function readmeContents(projectName: string, e2eTesting?: boolean, packageManager?: NodePackageManager, prAutoMerge?: boolean): string;
package/lib/utils.js CHANGED
@@ -95,7 +95,7 @@ function serializeTs(value, depth = 1) {
95
95
  }
96
96
  return JSON.stringify(value);
97
97
  }
98
- function readmeContents(projectName, e2eTesting = true, packageManager = javascript_1.NodePackageManager.YARN_CLASSIC) {
98
+ function readmeContents(projectName, e2eTesting = true, packageManager = javascript_1.NodePackageManager.YARN_CLASSIC, prAutoMerge = false) {
99
99
  const testE2eCommand = runScriptCommand(packageManager, 'test:e2e');
100
100
  return [
101
101
  `# ${projectName}`,
@@ -112,7 +112,7 @@ function readmeContents(projectName, e2eTesting = true, packageManager = javascr
112
112
  '| `src/LocalDevApp.ts` | Local development CDK app — used by `yarn cdk:dev` - deploys to AWS for slower but more thorough testing |',
113
113
  '| `src/GitHubRoles.ts` | CDK app for deploying the GitHub OIDC IAM role (one-time bootstrap) |',
114
114
  '| `src/stacks/ApplicationStack.ts` | Your primary stack — extend it to add resources |',
115
- '| `src/stacks/BaseApplicationStack.ts` | Base stack with VPC, API, static website, Datadog, and Route 53 wired up |',
115
+ '| `src/stacks/BaseApplicationStack.ts` | Base stack with API, static website, Datadog, and Route 53 wired up |',
116
116
  '| `src/stacks/GitHubRolesStack.ts` | IAM role stack for GitHub Actions OIDC authentication |',
117
117
  '| `src/constructs/Api.ts` | API Gateway + Lambda construct with Clerk JWT authorizer |',
118
118
  '| `src/constructs/StaticWebsite.ts` | CloudFront + S3 + ACM + Route 53 construct |',
@@ -141,7 +141,10 @@ function readmeContents(projectName, e2eTesting = true, packageManager = javascr
141
141
  '|------|---------|',
142
142
  '| `pr-deploy.yml` | On pull request open/update — deploys a per-PR dev stack |',
143
143
  '| `pr-cleanup.yml` | On pull request close — tears down the per-PR dev stack |',
144
- '| `staging-deploy.yml` | On push to `main` — deploys to staging |',
144
+ '| `staging-deploy.yml` | On push to `main`, or manually triggered — deploys to staging |',
145
+ ...(prAutoMerge ? [
146
+ '| `pr-auto-merge.yml` | On pull request open/reopen/ready for review — turns on squash auto-merge with a GitHub App token |',
147
+ ] : []),
145
148
  '| `production-deploy.yml` | Manually triggered — deploys to production |',
146
149
  '',
147
150
  '---',
@@ -237,7 +240,7 @@ function readmeContents(projectName, e2eTesting = true, packageManager = javascr
237
240
  '',
238
241
  '## Where to Start',
239
242
  '',
240
- '1. **`src/stacks/ApplicationStack.ts`** — Add your CDK constructs here. The base stack already provides `this.api`, `this.vpc`, `this.hostedZone`, and `this.datadog` as protected properties.',
243
+ '1. **`src/stacks/ApplicationStack.ts`** — Add your CDK constructs here. The base stack already provides `this.api`, `this.hostedZone`, `this.datadog`, and (when the stack creates one) `this.vpc` as protected properties.',
241
244
  '',
242
245
  '2. **`web/`** — Build your frontend. Start with `web/src/App.tsx` and add services alongside `web/src/services/ApiService.ts`.',
243
246
  '',
@@ -286,4 +289,4 @@ function readmeContents(projectName, e2eTesting = true, packageManager = javascr
286
289
  'This updates all managed files to the latest Batman standards. Your editable sample files are never touched.',
287
290
  ].join('\n');
288
291
  }
289
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0Q0FZQztBQU1ELHdDQVdDO0FBV0QsNERBT0M7QUFVRCxzREFFQztBQU9ELDREQUVDO0FBRUQsa0NBZ0JDO0FBRUQsd0NBa01DO0FBL1JELHNEQUEyRDtBQUUzRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLGNBQWtDLEVBQUUsTUFBYztJQUNqRixRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFdBQVcsTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSywrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sV0FBVyxNQUFNLEVBQUUsQ0FBQztRQUM3QixLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQzFCO1lBQ0Usb0ZBQW9GO1lBQ3BGLE9BQU8sUUFBUSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxjQUFrQztJQUMvRCxRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFFBQVEsQ0FBQztRQUNsQixLQUFLLCtCQUFrQixDQUFDLEdBQUc7WUFDekIsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxnQ0FBZ0MsQ0FBQztRQUMxQztZQUNFLE9BQU8sZ0NBQWdDLENBQUM7SUFDNUMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHdCQUF3QjtJQUN0QyxPQUFPO1FBQ0wsbUdBQW1HO1FBQ25HLG9EQUFvRDtRQUNwRCwrQ0FBK0M7UUFDL0MsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDO0FB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O1FBQ1osS0FBSztRQUNMLEVBQUU7UUFDRiw4R0FBOEc7S0FDL0csQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBSZW5kZXJzIHRoZSBjb21tYW5kIHVzZWQgdG8gcnVuIGEgcGFja2FnZS5qc29uIHNjcmlwdCBmb3IgdGhlIGdpdmVuIHBhY2thZ2UgbWFuYWdlci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJ1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlciwgc2NyaXB0OiBzdHJpbmcpOiBzdHJpbmcge1xuICBzd2l0Y2ggKHBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuTlBNOlxuICAgICAgcmV0dXJuIGBucG0gcnVuICR7c2NyaXB0fWA7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgcmV0dXJuIGBidW4gcnVuICR7c2NyaXB0fWA7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTTpcbiAgICAgIHJldHVybiBgcG5wbSAke3NjcmlwdH1gO1xuICAgIGRlZmF1bHQ6XG4gICAgICAvLyBhbGwgeWFybiB2YXJpYW50cyAoeWFybiwgeWFybjIsIHlhcm5fY2xhc3NpYywgeWFybl9iZXJyeSkgc2hhcmUgdGhlIGB5YXJuYCBiaW5hcnlcbiAgICAgIHJldHVybiBgeWFybiAke3NjcmlwdH1gO1xuICB9XG59XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29tbWFuZCB1c2VkIHRvIGRvIGEgY2xlYW4sIHJlcHJvZHVjaWJsZSBkZXBlbmRlbmN5IGluc3RhbGwgKGUuZy4gZm9yIENJKVxuICogZm9yIHRoZSBnaXZlbiBwYWNrYWdlIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbnN0YWxsQ29tbWFuZChwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyKTogc3RyaW5nIHtcbiAgc3dpdGNoIChwYWNrYWdlTWFuYWdlcikge1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgIHJldHVybiAnbnBtIGNpJztcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5CVU46XG4gICAgICByZXR1cm4gJ2J1biBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJztcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNOlxuICAgICAgcmV0dXJuICdwbnBtIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUnO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gJ3lhcm4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSc7XG4gIH1cbn1cblxuLyoqXG4gKiBCYXNoIGxpbmVzIHRoYXQgc2FuaXRpemUgYSBgQ0xFQU5fQlJBTkNIX05BTUVgIHZhcmlhYmxlIChhbHJlYWR5IHN0cmlwcGVkIG9mIGFueVxuICogY29udmVudGlvbmFsLWNvbW1pdCBwcmVmaXgpIGludG8gYSB2YWx1ZSBzYWZlIHRvIHVzZSBhcyBhIENsb3VkRm9ybWF0aW9uIHN0YWNrLW5hbWVcbiAqIGZyYWdtZW50OiBjb2xsYXBzZXMgcnVucyBvZiBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMgdG8gYC1gLCB0cmltcyBsZWFkaW5nL3RyYWlsaW5nXG4gKiBgLWAsIGFuZCBwcmVmaXhlcyB3aXRoIGBwci1gIGlmIHRoZSByZXN1bHQgd291bGQgbm90IHN0YXJ0IHdpdGggYSBsZXR0ZXIgKG9yIGlzIGVtcHR5KS5cbiAqXG4gKiBTaGFyZWQgYnkgUHJEZXBsb3lXb3JrZmxvdyBhbmQgUHJDbGVhbnVwV29ya2Zsb3cgc28gYm90aCBkZXJpdmUgdGhlIGlkZW50aWNhbCBzdGFja1xuICogbmFtZSBmb3IgYSBnaXZlbiBicmFuY2guXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUJyYW5jaE5hbWVTY3JpcHQoKTogc3RyaW5nW10ge1xuICByZXR1cm4gW1xuICAgICdDTEVBTl9CUkFOQ0hfTkFNRT0kKGVjaG8gXCIkQ0xFQU5fQlJBTkNIX05BTUVcIiB8IHNlZCAtRSBcXCdzL1teQS1aYS16MC05XSsvLS9nOyBzL14tKy8vOyBzLy0rJC8vXFwnKScsXG4gICAgJ2lmIFtbICEgXCIkQ0xFQU5fQlJBTkNIX05BTUVcIiA9fiBeW0EtWmEtel0gXV07IHRoZW4nLFxuICAgICcgIENMRUFOX0JSQU5DSF9OQU1FPVwicHItJHtDTEVBTl9CUkFOQ0hfTkFNRX1cIicsXG4gICAgJ2ZpJyxcbiAgXTtcbn1cblxuLyoqXG4gKiBKb2lucyBjb21tYW5kcyB3aXRoIGA7YCBpbnN0ZWFkIG9mIGAmJmAvYHx8YCBzbyB0aGUgcmVzdWx0IGlzIHZhbGlkIGZvciBhIHN3YW1wXG4gKiBjb21tYW5kL3NoZWxsIG1vZGVsJ3MgYHJ1bjpgIHZhbHVlIG9uIGJvdGggUE9TSVggc2hlbGxzIGFuZCBXaW5kb3dzIFBvd2VyU2hlbGwgNS4xXG4gKiAod2hpY2ggaGFzIG5vIGAmJmAvYHx8YCBjaGFpbiBvcGVyYXRvcnMgYmVmb3JlIHB3c2ggNykuIFVubGlrZSBgJiZgLCBgO2AgZG9lcyBub3RcbiAqIHNob3J0LWNpcmN1aXQgb24gZmFpbHVyZSDigJQgY2FsbGVycyB0aGF0IG5lZWQgZmFpbHVyZSB0byBzdG9wIHRoZSBzZXF1ZW5jZSBzaG91bGQgc3BsaXRcbiAqIGludG8gc2VwYXJhdGUgd29ya2Zsb3cgc3RlcHMgd2l0aCB0aGVpciBvd24gYGFzc2VydGAgZ2F0ZXMgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoaXNcbiAqIGZvciBjb250cm9sIGZsb3cuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGVsbFBvcnRhYmxlU2VxdWVuY2UoLi4uY29tbWFuZHM6IHN0cmluZ1tdKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbW1hbmRzLmpvaW4oJzsgJyk7XG59XG5cbi8qKlxuICogUmVuZGVycyBhIHBvcnRhYmxlIGZvcmNlLWRlbGV0ZSBmb3IgYSBzaW5nbGUgZmlsZSwgZm9yIHVzZSBpbiBhIHN3YW1wIGNvbW1hbmQvc2hlbGxcbiAqIG1vZGVsJ3MgYHJ1bjpgIHZhbHVlIGluIHBsYWNlIG9mIGBybSAtZiA8cGF0aD5gIChhbWJpZ3VvdXMgd2l0aCBQb3dlclNoZWxsIDUuMSdzXG4gKiBgUmVtb3ZlLUl0ZW0gLUZpbHRlcmAgYWxpYXMpLiBNYXRjaGVzIHRoZSBmaXggYWxyZWFkeSB2YWxpZGF0ZWQgaW4gZXhtYW4jMTM2LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hlbGxQb3J0YWJsZUZvcmNlRGVsZXRlKHBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBgbm9kZSAtZSBcInJlcXVpcmUoJ2ZzJykucm1TeW5jKCcke3BhdGh9JywgeyBmb3JjZTogdHJ1ZSB9KVwiYDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNlcmlhbGl6ZVRzKHZhbHVlOiBhbnksIGRlcHRoID0gMSk6IHN0cmluZyB7XG4gIGNvbnN0IHBhZCA9ICcgICcucmVwZWF0KGRlcHRoKTtcbiAgY29uc3QgaW5uZXJQYWQgPSAnICAnLnJlcGVhdChkZXB0aCArIDEpO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIGAnJHt2YWx1ZX0nYDtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICBjb25zdCBpdGVtcyA9IHZhbHVlLm1hcCh2ID0+IGAke2lubmVyUGFkfSR7c2VyaWFsaXplVHModiwgZGVwdGggKyAxKX1gKS5qb2luKCcsXFxuJyk7XG4gICAgcmV0dXJuIGBbXFxuJHtpdGVtc30sXFxuJHtwYWR9XWA7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUgIT09IG51bGwpIHtcbiAgICBjb25zdCBlbnRyaWVzID0gT2JqZWN0LmVudHJpZXModmFsdWUpXG4gICAgICAubWFwKChbaywgdl0pID0+IGAke2lubmVyUGFkfSR7a306ICR7c2VyaWFsaXplVHModiwgZGVwdGggKyAxKX1gKVxuICAgICAgLmpvaW4oJyxcXG4nKTtcbiAgICByZXR1cm4gYHtcXG4ke2VudHJpZXN9LFxcbiR7cGFkfX1gO1xuICB9XG4gIHJldHVybiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkbWVDb250ZW50cyhcbiAgcHJvamVjdE5hbWU6IHN0cmluZyxcbiAgZTJlVGVzdGluZyA9IHRydWUsXG4gIHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIgPSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDLFxuKSB7XG4gIGNvbnN0IHRlc3RFMmVDb21tYW5kID0gcnVuU2NyaXB0Q29tbWFuZChwYWNrYWdlTWFuYWdlciwgJ3Rlc3Q6ZTJlJyk7XG4gIHJldHVybiBbXG4gICAgYCMgJHtwcm9qZWN0TmFtZX1gLFxuICAgICcnLFxuICAgICdUaGlzIHByb2plY3Qgd2FzIGJvb3RzdHJhcHBlZCB3aXRoIFtCYXRtYW5dKGh0dHBzOi8vZ2l0aHViLmNvbS9tYWNlZG9uLXRlY2hub2xvZ2llcy9wbGF0Zm9ybS1jb21tb24pLicsXG4gICAgJycsXG4gICAgJyMjIFdoYXQgQmF0bWFuIENyZWF0ZWQnLFxuICAgICcnLFxuICAgICcjIyMgQ0RLIEluZnJhc3RydWN0dXJlIChgc3JjL2ApJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgRGVzY3JpcHRpb24gfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tLS0tLXwnLFxuICAgICd8IGBzcmMvbWFpbi50c2AgfCBDREsgYXBwIGVudHJ5IHBvaW50IOKAlCBpbnN0YW50aWF0ZXMgZGV2LCBzdGFnaW5nLCBhbmQgcHJvZCBgQXBwbGljYXRpb25TdGFja2BzIHwnLFxuICAgICd8IGBzcmMvTG9jYWxEZXZBcHAudHNgIHwgTG9jYWwgZGV2ZWxvcG1lbnQgQ0RLIGFwcCDigJQgdXNlZCBieSBgeWFybiBjZGs6ZGV2YCAtIGRlcGxveXMgdG8gQVdTIGZvciBzbG93ZXIgYnV0IG1vcmUgdGhvcm91Z2ggdGVzdGluZyB8JyxcbiAgICAnfCBgc3JjL0dpdEh1YlJvbGVzLnRzYCB8IENESyBhcHAgZm9yIGRlcGxveWluZyB0aGUgR2l0SHViIE9JREMgSUFNIHJvbGUgKG9uZS10aW1lIGJvb3RzdHJhcCkgfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AgfCBZb3VyIHByaW1hcnkgc3RhY2sg4oCUIGV4dGVuZCBpdCB0byBhZGQgcmVzb3VyY2VzIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzYCB8IEJhc2Ugc3RhY2sgd2l0aCBWUEMsIEFQSSwgc3RhdGljIHdlYnNpdGUsIERhdGFkb2csIGFuZCBSb3V0ZSA1MyB3aXJlZCB1cCB8JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9HaXRIdWJSb2xlc1N0YWNrLnRzYCB8IElBTSByb2xlIHN0YWNrIGZvciBHaXRIdWIgQWN0aW9ucyBPSURDIGF1dGhlbnRpY2F0aW9uIHwnLFxuICAgICd8IGBzcmMvY29uc3RydWN0cy9BcGkudHNgIHwgQVBJIEdhdGV3YXkgKyBMYW1iZGEgY29uc3RydWN0IHdpdGggQ2xlcmsgSldUIGF1dGhvcml6ZXIgfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL1N0YXRpY1dlYnNpdGUudHNgIHwgQ2xvdWRGcm9udCArIFMzICsgQUNNICsgUm91dGUgNTMgY29uc3RydWN0IHwnLFxuICAgICd8IGBzcmMvY29uc3RydWN0cy9oYW5kbGVyL0FwaS5GdW5jdGlvbi50c2AgfCBMYW1iZGEgaGFuZGxlciBlbnRyeSBwb2ludCwgYmFzaWMgd3JhcHBlciBhcm91bmQgRXhwcmVzcy1jb21wYXRpYmxlIGFwcCBjb2RlIHwnLFxuICAgICd8IGBzcmMvYXNwZWN0cy9EYXRhRG9nQXNwZWN0LnRzYCB8IENESyBhc3BlY3QgdGhhdCB3aXJlcyBhbGwgTGFtYmRhIGZ1bmN0aW9ucyB0byBEYXRhZG9nIHwnLFxuICAgICcnLFxuICAgICcjIyMgRnJvbnRlbmQgKGB3ZWIvYCknLFxuICAgICcnLFxuICAgICd8IEZpbGUgfCBEZXNjcmlwdGlvbiB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYHdlYi9zcmMvbWFpbi50c3hgIHwgUmVhY3QgYXBwIGVudHJ5IHBvaW50IHdpdGggQ2xlcmsgYW5kIFJlYWN0IFF1ZXJ5IHByb3ZpZGVycyB8JyxcbiAgICAnfCBgd2ViL3NyYy9BcHAudHN4YCB8IFJvb3QgYXBwbGljYXRpb24gY29tcG9uZW50IHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC5jc3NgIC8gYHdlYi9zcmMvaW5kZXguY3NzYCB8IEJhc2Ugc3R5bGVzaGVldHMgKFRhaWx3aW5kIENTUyB2NCkgfCcsXG4gICAgJ3wgYHdlYi9zcmMvY29uZmlnLnRzYCB8IGB1c2VDb25maWcoKWAgaG9vayDigJQgbG9hZHMgcnVudGltZSBjb25maWcgZnJvbSBgY29uZmlnLmpzb25gIHwnLFxuICAgICd8IGB3ZWIvc3JjL3NlcnZpY2VzL0FwaVNlcnZpY2UudHNgIHwgYHVzZUFwaVF1ZXJ5KClgIC8gYHVzZUFwaU11dGF0aW9uKClgIOKAlCBhdXRoZW50aWNhdGVkIEFQSSBob29rcywgY2FjaGVkIHBlciBwYXRoIHwnLFxuICAgICd8IGB3ZWIvc3JjL2hlbHBlcnMvYCB8IGByZXF1ZXN0cy50c2AsIGBIdHRwRXJyb3IudHNgLCBgZXJyb3JzLnRzYCwgYHJldHJ5LnRzYCDigJQgdGhlIHJlcXVlc3QgYW5kIGVycm9yIGhlbHBlcnMgYEFwaVNlcnZpY2VgIGlzIGJ1aWx0IG9uIHwnLFxuICAgICd8IGB3ZWIvcHVibGljL2NvbmZpZy5qc29uYCB8IFJ1bnRpbWUgY29uZmlnIChBUEkgYmFzZSBVUkwsIENsZXJrIHB1Ymxpc2hhYmxlIGtleSkgfCcsXG4gICAgLi4uKGUyZVRlc3RpbmcgPyBbXG4gICAgICAnfCBgd2ViL3BsYXl3cmlnaHQuY29uZmlnLnRzYCB8IFBsYXl3cmlnaHQgZTJlIGNvbmZpZyDigJQgc2VlIGB3ZWIvZTJlL1JFQURNRS5tZGAgfCcsXG4gICAgICBgfCBcXGB3ZWIvZTJlL1xcYCB8IFBsYXl3cmlnaHQgZTJlIHN1aXRlIChcXGAke3Rlc3RFMmVDb21tYW5kfVxcYCk7IGFsc28gcnVuIGluIENJIGFnYWluc3QgZWFjaCBQUidzIGRlcGxveWVkIFVSTCB8YCxcbiAgICBdIDogW10pLFxuICAgICcnLFxuICAgICcjIyMgR2l0SHViIEFjdGlvbnMgV29ya2Zsb3dzIChgLmdpdGh1Yi93b3JrZmxvd3MvYCknLFxuICAgICcnLFxuICAgICd8IEZpbGUgfCBUcmlnZ2VyIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLXwnLFxuICAgICd8IGBwci1kZXBsb3kueW1sYCB8IE9uIHB1bGwgcmVxdWVzdCBvcGVuL3VwZGF0ZSDigJQgZGVwbG95cyBhIHBlci1QUiBkZXYgc3RhY2sgfCcsXG4gICAgJ3wgYHByLWNsZWFudXAueW1sYCB8IE9uIHB1bGwgcmVxdWVzdCBjbG9zZSDigJQgdGVhcnMgZG93biB0aGUgcGVyLVBSIGRldiBzdGFjayB8JyxcbiAgICAnfCBgc3RhZ2luZy1kZXBsb3kueW1sYCB8IE9uIHB1c2ggdG8gYG1haW5gIOKAlCBkZXBsb3lzIHRvIHN0YWdpbmcgfCcsXG4gICAgJ3wgYHByb2R1Y3Rpb24tZGVwbG95LnltbGAgfCBNYW51YWxseSB0cmlnZ2VyZWQg4oCUIGRlcGxveXMgdG8gcHJvZHVjdGlvbiB8JyxcbiAgICAnJyxcbiAgICAnLS0tJyxcbiAgICAnJyxcbiAgICAnIyMgRmlsZXMgWW91IENhbiBFZGl0JyxcbiAgICAnJyxcbiAgICAnVGhlc2UgZmlsZXMgYXJlIGdlbmVyYXRlZCBvbmNlIGFuZCBuZXZlciBvdmVyd3JpdHRlbiBieSBCYXRtYW4uIE1vZGlmeSB0aGVtIGZyZWVseS4nLFxuICAgICcnLFxuICAgICd8IEZpbGUgfCBXaGF0IHRvIGRvIHdpdGggaXQgfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgLnByb2plbnJjLnRzIHwgVGhlIG1haW4gUHJvamVuIGNvbmZpZ3VyYXRpb24gZmlsZS4gQWRkaXRpb25hbCBkZXBlbmRlbmNpZXMgZm9yIGVpdGhlciB0aGUgQVBJIG9yIHRoZSBXZWIgZnJvbnRlbmQgbmVlZCB0byBiZSBhZGRlZCBoZXJlIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0FwcGxpY2F0aW9uU3RhY2sudHNgIHwgKipTdGFydCBoZXJlLioqIEFkZCBDREsgY29uc3RydWN0cyB0byBidWlsZCB5b3VyIGluZnJhc3RydWN0dXJlIHwnLFxuICAgICd8IGBzcmMvYXBpL2FwcC50cyB8IFRoZSBtYWluIG1vbm9saXRoaWMgQVBJIFJFU1Qgc2VydmVyIGZpbGUuIE1haW4gZmlsZSB5b3Ugc2hvdWxkIGJlIG1vZGlmeWluZyB8JyxcbiAgICAnfCBgd2ViL3NyYy9BcHAudHN4YCB8IEJ1aWxkIHlvdXIgVUkgaGVyZSB8JyxcbiAgICAnfCBgd2ViL3NyYy9BcHAuY3NzYCAvIGB3ZWIvc3JjL2luZGV4LmNzc2AgfCBTdHlsZSB5b3VyIGFwcGxpY2F0aW9uIHwnLFxuICAgICd8IGB3ZWIvc3JjL21haW4udHN4YCB8IEFkanVzdCB0b3AtbGV2ZWwgcHJvdmlkZXJzIG9yIHJvdXRpbmcgfCcsXG4gICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvQXBpU2VydmljZS50c2AgLyBgd2ViL3NyYy9oZWxwZXJzL2AgfCBBZGQgQVBJIHNlcnZpY2UgaG9va3MgYWxvbmdzaWRlIGBBcGlTZXJ2aWNlLnRzYCwgb3IgYWRqdXN0IHRoZSByZXF1ZXN0IGhlbHBlcnMgfCcsXG4gICAgJ3wgYHdlYi9wdWJsaWMvY29uZmlnLmpzb25gIHwgVXBkYXRlIGZvciBsb2NhbCBkZXZlbG9wbWVudCAoQVBJIFVSTCwgQ2xlcmsga2V5KSB8JyxcbiAgICAuLi4oZTJlVGVzdGluZyA/IFtcbiAgICAgICd8IGB3ZWIvcGxheXdyaWdodC5jb25maWcudHNgIC8gYHdlYi9lMmUvYCB8IFBsYXl3cmlnaHQgZTJlIHN1aXRlIOKAlCBleHRlbmQgaXQgd2l0aCByZWFsIGZsb3dzOyBzZWUgYHdlYi9lMmUvUkVBRE1FLm1kYCB8JyxcbiAgICBdIDogW10pLFxuICAgICcnLFxuICAgICcjIyBGaWxlcyBZb3UgQ2Fubm90IEVkaXQnLFxuICAgICcnLFxuICAgICdUaGVzZSBmaWxlcyBhcmUgKiptYW5hZ2VkIGJ5IEJhdG1hbioqIGFuZCB3aWxsIGJlIG92ZXJ3cml0dGVuIGV2ZXJ5IHRpbWUgYG5weCBwcm9qZW5gIHJ1bnMuIERvIG5vdCBlZGl0IHRoZW0gZGlyZWN0bHkg4oCUIG1ha2UgY2hhbmdlcyBpbiBgLnByb2plbnJjLnRzYCBpbnN0ZWFkLicsXG4gICAgJycsXG4gICAgJz4gWyFJTVBPUlRBTlRdJyxcbiAgICAnPiBJZiB5b3UgaGF2ZSBBTlkgY2hhbmdlcyB5b3Ugd2FudCB0byBtYWtlIHRvIHRoZXNlIGZpbGVzLCBub3RpZnkgI3RlYW0tYmF0bWFuIG9uIFNsYWNrLiAnLFxuICAgICc+IFdlIG1haW50YWluIHRoZXNlIGZpbGVzIGFzIHBhcnQgb2YgdGhlIGNvcmUgQmF0bWFuIGV4cGVyaWVuY2UsIGFuZCB5b3VyIGZlZWRiYWNrIGlzIGNydWNpYWwgdG8gZW5zdXJlIHRoZXkgbWVldCB5b3VyIG5lZWRzLicsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IFdoeSBpdFxcJ3MgbWFuYWdlZCB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLXwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0Jhc2VBcHBsaWNhdGlvblN0YWNrLnRzYCB8IENvcmUgc3RhY2sgd2lyaW5nIOKAlCB1cGRhdGVkIHdpdGggQmF0bWFuIHJlbGVhc2VzIHwnLFxuICAgICd8IGBzcmMvYXNwZWN0cy9EYXRhRG9nQXNwZWN0LnRzYCB8IERhdGFkb2cgQ0RLIGFzcGVjdCB8JyxcbiAgICAnfCBgd2ViL3ZpdGUuY29uZmlnLnRzYCB8IFZpdGUgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL2VzbGludC5jb25maWcuanNgIHwgRVNMaW50IGNvbmZpZ3VyYXRpb24gfCcsXG4gICAgJ3wgYHdlYi9wb3N0Y3NzLmNvbmZpZy5qc2AgfCBQb3N0Q1NTIC8gVGFpbHdpbmQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL2luZGV4Lmh0bWxgIHwgSFRNTCBlbnRyeSBwb2ludCB8JyxcbiAgICAnfCBgd2ViL3RzY29uZmlnLmpzb25gIC8gYHdlYi90c2NvbmZpZy5hcHAuanNvbmAgLyBgd2ViL3RzY29uZmlnLm5vZGUuanNvbmAgfCBUeXBlU2NyaXB0IGNvbmZpZ3VyYXRpb24gfCcsXG4gICAgJ3wgYHdlYi9zcmMvdml0ZS1lbnYuZC50c2AgfCBWaXRlIHR5cGUgZGVjbGFyYXRpb25zIHwnLFxuICAgICd8IGB3ZWIvc3JjL2NvbmZpZy50c2AgfCBSdW50aW1lIGNvbmZpZyBob29rIOKAlCBzaGFwZSBkcml2ZW4gYnkgYC5wcm9qZW5yYy50c2AgfCcsXG4gICAgJ3wgYC5naXRodWIvQ09ERU9XTkVSU2AgfCBDb2RlIG93bmVyc2hpcCBwb2xpY3kgfCcsXG4gICAgJ3wgYC5naXRodWIvd29ya2Zsb3dzLyoueW1sYCB8IEFsbCBDSS9DRCB3b3JrZmxvd3MgfCcsXG4gICAgJ3wgYGFyY2hpdGVjdHVyZS1ydWxlcy9jaGVjay50c2AsIGB0c2NvbmZpZy5qc29uYCwgYFJFQURNRS5tZGAgfCBBcmNoaXRlY3R1cmUgcnVsZSBlbmdpbmUgfCcsXG4gICAgJ3wgYGF0dGVzdGF0aW9uL21hbmlmZXN0LnRzYCwgYHZlcmlmeS50c2AsIGB0c2NvbmZpZy5qc29uYCB8IFBSIGF0dGVzdGF0aW9uIG1lY2hhbmlzbSB8JyxcbiAgICAnfCBgb3BlbnNwZWMtZ2F0ZXMvY2hlY2stdGFza3MtY29tcGxldGUudHNgLCBgdHNjb25maWcuanNvbmAgfCBPcGVuU3BlYyB0YXNrLWNvbXBsZXRpb24gZ2F0ZSB8JyxcbiAgICAnfCBgc3dhbXAtYm9vdHN0cmFwL3B1bGwtZXh0ZW5zaW9ucy50c2AsIGB0c2NvbmZpZy5qc29uYCB8IFB1bGxzIHN3YW1wIGV4dGVuc2lvbnMgYXQgdGhlaXIgcGlubmVkIHZlcnNpb25zIHwnLFxuICAgICd8IGB3b3JrZmxvd3Mvd29ya2Zsb3ctKi55YW1sYCB8IFN3YW1wIHdvcmtmbG93cyB0aGUgc29mdHdhcmUgZmFjdG9yeSBydW5zIHwnLFxuICAgICcnLFxuICAgICc+ICoqVGlwOioqIEZpbGVzIHdpdGggYSBgfn4gR2VuZXJhdGVkIGJ5IHByb2plbi4gVG8gbW9kaWZ5LCBlZGl0IC5wcm9qZW5yYy50cyBhbmQgcnVuIFwibnB4IHByb2plblwiLiB+fmAgaGVhZGVyIGFyZSBtYW5hZ2VkIGZpbGVzLicsXG4gICAgJycsXG4gICAgJyMjIyBTb2Z0d2FyZSBGYWN0b3J5IChgbW9kZWxzL2AsIGBhcmNoaXRlY3R1cmUtcnVsZXMvcnVsZXMuanNvbmApJyxcbiAgICAnJyxcbiAgICAnQmF0bWFuIGFsc28gc2VlZHMgYSBbc3dhbXBdKGh0dHBzOi8vZ2l0aHViLmNvbS9zd2FtcC1jbHViL3N3YW1wKSBzb2Z0d2FyZScsXG4gICAgJ2ZhY3Rvcnkg4oCUIGEgYEBzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5YCBzdGF0ZSBtYWNoaW5lIHRoYXQgZHJpdmVzIGEgR2l0SHViJyxcbiAgICAnaXNzdWUgdGhyb3VnaCBpbnRha2UsIE9wZW5TcGVjIHBsYW5uaW5nLCBpbXBsZW1lbnRhdGlvbiwgcHJlLVBSJyxcbiAgICAndmVyaWZpY2F0aW9uLCBhbmQgYW4gb3BlbmVkIFBSLiBUaGUgc2VlZCBmaWxlcyB1bmRlciBgbW9kZWxzLyoqLyoueWFtbGAgYW5kJyxcbiAgICAnYGFyY2hpdGVjdHVyZS1ydWxlcy9ydWxlcy5qc29uYCBhcmUgZ2VuZXJhdGVkIG9uY2UgKGxpa2UgdGhlIGZpbGVzIGluJyxcbiAgICAnXCJGaWxlcyBZb3UgQ2FuIEVkaXRcIiBhYm92ZSkg4oCUIHR1bmUgdGhlIGZhY3RvcnlcXCdzIHN0YWdlcy9nYXRlcyBvciBhZGQgeW91cicsXG4gICAgJ293biBhcmNoaXRlY3R1cmUgcnVsZXMgZGlyZWN0bHkgaW4gdGhvc2UgZmlsZXMuJyxcbiAgICAnJyxcbiAgICAnYHN3YW1wIGluaXRgIHJ1bnMgYXV0b21hdGljYWxseSBhcyBwYXJ0IG9mIGBpbnN0YWxsYC9gaW5zdGFsbDpjaWAgKGEgc2lsZW50JyxcbiAgICAnbm8tb3AgaWYgYHN3YW1wYCBpc25cXCd0IG9uIFBBVEgsIGUuZy4gaW4gQ0kpLCBzbyB0aGUgcmVwbyBzdGF5cyBpbml0aWFsaXplZCcsXG4gICAgJ3dpdGhvdXQgYSBzZXBhcmF0ZSBzdGVwLicsXG4gICAgJycsXG4gICAgJ2Bzd2FtcFZlcnNpb25gIGluIGAuc3dhbXAueWFtbGAgaXMgdGhlIG1pbmltdW0gc3dhbXAgQ0xJIHRoZSByZXBvIG5lZWRzOiB0aGUnLFxuICAgICd2ZXJzaW9uIGl0IHdhcyBsYXN0IHVwZ3JhZGVkIHdpdGguIHN3YW1wIGRvZXNuXFwndCBrZWVwIG9sZCBidWlsZHMsIHNvIGluc3RhbGwnLFxuICAgICd0aGUgY3VycmVudCBgc3RhYmxlYCByZWxlYXNlIHJhdGhlciB0aGFuIHRoYXQgZXhhY3QgdmVyc2lvbjonLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAnIyBtYWNPUyAvIExpbnV4JyxcbiAgICAnY3VybCAtZnNTTCBodHRwczovL3N3YW1wLmNsdWIvaW5zdGFsbC5zaCB8IHNoJyxcbiAgICAnJyxcbiAgICAnIyBXaW5kb3dzIChQb3dlclNoZWxsKScsXG4gICAgJ2lybSBodHRwczovL3N3YW1wLmNsdWIvaW5zdGFsbC5wczEgfCBpZXgnLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICdPbmUtdGltZSBzZXR1cCBiZXlvbmQgdGhhdCwgYWZ0ZXIgeW91ciBmaXJzdCBgbnB4IHByb2plbmA6JyxcbiAgICAnJyxcbiAgICAnYGBgYmFzaCcsXG4gICAgJyMgUHVsbHMgZWFjaCBleHRlbnNpb24gYXQgdGhlIHZlcnNpb24gcGlubmVkIGluJyxcbiAgICAnIyBleHRlbnNpb25zL21vZGVscy91cHN0cmVhbV9leHRlbnNpb25zLmpzb24gKG9yIHRoZSBsYXRlc3QnLFxuICAgICcjIHNvZnR3YXJlLWZhY3RvcnkvZ2l0aHViIGV4dGVuc2lvbnMgaW4gYSByZXBvIHdpdGggbm8gbG9ja2ZpbGUgeWV0KSwnLFxuICAgICcjIHJlc3RvcmVzIHRoZSBsb2NrZmlsZSBhbmQgY29tbWl0dGVkIHNraWxsIGZpbGVzIGZyb20gZ2l0LCBhbmQgY3JlYXRlcyB0aGUnLFxuICAgICcjIHJlcG9cXCdzIHNlY3JldHMgdmF1bHQnLFxuICAgICducHggcHJvamVuIHN3YW1wOmJvb3RzdHJhcCcsXG4gICAgJycsXG4gICAgJyMgVGhlbiBzdG9yZSBhIEdpdEh1YiB0b2tlbiB0aGUgZmFjdG9yeSBjYW4gb3BlbiBQUnMgd2l0aCcsXG4gICAgJ3N3YW1wIHZhdWx0IHB1dCA8cmVwbz4tc2VjcmV0cyBHSVRIVUJfVE9LRU4gLS1yZWZyZXNoLWZyb20gXCJnaCBhdXRoIHRva2VuXCInLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICctLS0nLFxuICAgICcnLFxuICAgICcjIyBXaGVyZSB0byBTdGFydCcsXG4gICAgJycsXG4gICAgJzEuICoqYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AqKiDigJQgQWRkIHlvdXIgQ0RLIGNvbnN0cnVjdHMgaGVyZS4gVGhlIGJhc2Ugc3RhY2sgYWxyZWFkeSBwcm92aWRlcyBgdGhpcy5hcGlgLCBgdGhpcy52cGNgLCBgdGhpcy5ob3N0ZWRab25lYCwgYW5kIGB0aGlzLmRhdGFkb2dgIGFzIHByb3RlY3RlZCBwcm9wZXJ0aWVzLicsXG4gICAgJycsXG4gICAgJzIuICoqYHdlYi9gKiog4oCUIEJ1aWxkIHlvdXIgZnJvbnRlbmQuIFN0YXJ0IHdpdGggYHdlYi9zcmMvQXBwLnRzeGAgYW5kIGFkZCBzZXJ2aWNlcyBhbG9uZ3NpZGUgYHdlYi9zcmMvc2VydmljZXMvQXBpU2VydmljZS50c2AuJyxcbiAgICAnJyxcbiAgICAnMy4gKipgc3JjL2FwaS9hcHAudHNgKiog4oCUIEltcGxlbWVudCB5b3VyIGJhY2tlbmQgTGFtYmRhIGhhbmRsZXIgbG9naWMgaGVyZS4nLFxuICAgICcnLFxuICAgICc0LiAqKmAucHJvamVucmMudHNgKiogLSBNYW5hZ2VzIHByb2plY3QgZGVwZW5kZW5jaWVzIGFuZCBjb25maWd1cmF0aW9uLiBSdW4gYG5weCBwcm9qZW5gIGFmdGVyIG1ha2luZyBhbnkgY2hhbmdlcyB0byB0aGlzIGZpbGUuJyxcbiAgICAnLS0tJyxcbiAgICAnJyxcbiAgICAnIyMgRGV2ZWxvcG1lbnQgV29ya2Zsb3cnLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAnIyBJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgJ3lhcm4gaW5zdGFsbCcsXG4gICAgJycsXG4gICAgJyMgU3RhcnQgbG9jYWwgZGV2IHNlcnZlciAoYmFja2VuZCBMYW1iZGEgKyBWaXRlIGZyb250ZW5kIGluIHBhcmFsbGVsKScsXG4gICAgJ3lhcm4gZGV2JyxcbiAgICAnJyxcbiAgICAnIyBEZXBsb3kgYSBwZXJzb25hbCBkZXYgc3RhY2sgdG8gQVdTIGFzIGFuIGFsdGVybmF0aXZlIHRvIGxvY2FsIGRldmVsb3BtZW50LCBwcm92aWRlcyBtb3JlIHRob3JvdWdoIGVuZC10by1lbmQgdGVzdGluZycsXG4gICAgJ3lhcm4gY2RrOmRldiAtLWNvbnRleHQgbG9jYWwtZGV2LXByZWZpeD15b3VyLWhhbmRsZSBkZXBsb3knLFxuICAgICcnLFxuICAgICcjIFJlZGVwbG95IHlvdXIgcGVyc29uYWwgZGV2IHN0YWNrIGZhc3Q6IGFmdGVyIHRoZSBmaXJzdCBkZXBsb3kgYWJvdmUsIGtlZXAnLFxuICAgIFwiIyByZXVzaW5nIHRoZSBzYW1lIHN0YWNrIChkb24ndCBkZWxldGUgaXQgYmV0d2VlbiBicmFuY2hlcykgYW5kIGl0ZXJhdGUgd2l0aFwiLFxuICAgICcjIGhvdHN3YXAtZmFsbGJhY2sgaW5zdGVhZCBvZiBhIGZ1bGwgQ2xvdWRGb3JtYXRpb24gZGVwbG95bWVudCcsXG4gICAgJ3lhcm4gY2RrOmRldjpob3Rzd2FwIC0tY29udGV4dCBsb2NhbC1kZXYtcHJlZml4PXlvdXItaGFuZGxlJyxcbiAgICAnJyxcbiAgICAnIyBSdW4gdGVzdHMnLFxuICAgICd5YXJuIHRlc3QnLFxuICAgICcnLFxuICAgICcjIFJlLXN5bnRoZXNpemUgcHJvamVjdCBmaWxlcyBhZnRlciBlZGl0aW5nIC5wcm9qZW5yYy50cycsXG4gICAgJ25weCBwcm9qZW4nLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICc+IFshSU1QT1JUQU5UXScsXG4gICAgJz4gYC0taG90c3dhcC1mYWxsYmFja2AgKHVzZWQgYnkgYGNkazpkZXY6aG90c3dhcGAgYW5kIHRoZSBgd2F0Y2hgIHRhc2spIGlzIGZvcicsXG4gICAgJz4gcGVyc29uYWwgZGV2IHN0YWNrcyBvbmx5IOKAlCBuZXZlciBydW4gaXQgYWdhaW5zdCBzdGFnaW5nIG9yIHByb2QuJyxcbiAgICAnJyxcbiAgICAnLS0tJyxcbiAgICAnJyxcbiAgICAnIyMgVXBncmFkaW5nIEJhdG1hbicsXG4gICAgJycsXG4gICAgJ2BgYGJhc2gnLFxuICAgICd5YXJuIGFkZCBAbWFjZWRvbi10ZWNobm9sb2dpZXMvYmF0bWFuQGxhdGVzdCcsXG4gICAgJ25weCBwcm9qZW4nLFxuICAgICdgYGAnLFxuICAgICcnLFxuICAgICdUaGlzIHVwZGF0ZXMgYWxsIG1hbmFnZWQgZmlsZXMgdG8gdGhlIGxhdGVzdCBCYXRtYW4gc3RhbmRhcmRzLiBZb3VyIGVkaXRhYmxlIHNhbXBsZSBmaWxlcyBhcmUgbmV2ZXIgdG91Y2hlZC4nLFxuICBdLmpvaW4oJ1xcbicpO1xufVxuIl19
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw0Q0FZQztBQU1ELHdDQVdDO0FBV0QsNERBT0M7QUFVRCxzREFFQztBQU9ELDREQUVDO0FBRUQsa0NBZ0JDO0FBRUQsd0NBc01DO0FBblNELHNEQUEyRDtBQUUzRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLGNBQWtDLEVBQUUsTUFBYztJQUNqRixRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFdBQVcsTUFBTSxFQUFFLENBQUM7UUFDN0IsS0FBSywrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLE9BQU8sV0FBVyxNQUFNLEVBQUUsQ0FBQztRQUM3QixLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQzFCO1lBQ0Usb0ZBQW9GO1lBQ3BGLE9BQU8sUUFBUSxNQUFNLEVBQUUsQ0FBQztJQUM1QixDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxjQUFrQztJQUMvRCxRQUFRLGNBQWMsRUFBRSxDQUFDO1FBQ3ZCLEtBQUssK0JBQWtCLENBQUMsR0FBRztZQUN6QixPQUFPLFFBQVEsQ0FBQztRQUNsQixLQUFLLCtCQUFrQixDQUFDLEdBQUc7WUFDekIsT0FBTywrQkFBK0IsQ0FBQztRQUN6QyxLQUFLLCtCQUFrQixDQUFDLElBQUk7WUFDMUIsT0FBTyxnQ0FBZ0MsQ0FBQztRQUMxQztZQUNFLE9BQU8sZ0NBQWdDLENBQUM7SUFDNUMsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHdCQUF3QjtJQUN0QyxPQUFPO1FBQ0wsbUdBQW1HO1FBQ25HLG9EQUFvRDtRQUNwRCwrQ0FBK0M7UUFDL0MsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDO0FB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O1FBQ2hGLG9FQUFvRTtRQUNwRSxFQUFFO1FBQ0YsS0FBSztRQUNMLEVBQUU7UUFDRixxQkFBcUI7UUFDckIsRUFBRTtRQUNGLFNBQVM7UUFDVCw4Q0FBOEM7UUFDOUMsWUFBWTtRQUNaLEtBQUs7UUFDTCxFQUFFO1FBQ0YsOEdBQThHO0tBQy9HLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5vZGVQYWNrYWdlTWFuYWdlciB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbi8qKlxuICogUmVuZGVycyB0aGUgY29tbWFuZCB1c2VkIHRvIHJ1biBhIHBhY2thZ2UuanNvbiBzY3JpcHQgZm9yIHRoZSBnaXZlbiBwYWNrYWdlIG1hbmFnZXIuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyOiBOb2RlUGFja2FnZU1hbmFnZXIsIHNjcmlwdDogc3RyaW5nKTogc3RyaW5nIHtcbiAgc3dpdGNoIChwYWNrYWdlTWFuYWdlcikge1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgIHJldHVybiBgbnBtIHJ1biAke3NjcmlwdH1gO1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLkJVTjpcbiAgICAgIHJldHVybiBgYnVuIHJ1biAke3NjcmlwdH1gO1xuICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE06XG4gICAgICByZXR1cm4gYHBucG0gJHtzY3JpcHR9YDtcbiAgICBkZWZhdWx0OlxuICAgICAgLy8gYWxsIHlhcm4gdmFyaWFudHMgKHlhcm4sIHlhcm4yLCB5YXJuX2NsYXNzaWMsIHlhcm5fYmVycnkpIHNoYXJlIHRoZSBgeWFybmAgYmluYXJ5XG4gICAgICByZXR1cm4gYHlhcm4gJHtzY3JpcHR9YDtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmRlcnMgdGhlIGNvbW1hbmQgdXNlZCB0byBkbyBhIGNsZWFuLCByZXByb2R1Y2libGUgZGVwZW5kZW5jeSBpbnN0YWxsIChlLmcuIGZvciBDSSlcbiAqIGZvciB0aGUgZ2l2ZW4gcGFja2FnZSBtYW5hZ2VyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXI6IE5vZGVQYWNrYWdlTWFuYWdlcik6IHN0cmluZyB7XG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5OUE06XG4gICAgICByZXR1cm4gJ25wbSBjaSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuQlVOOlxuICAgICAgcmV0dXJuICdidW4gaW5zdGFsbCAtLWZyb3plbi1sb2NrZmlsZSc7XG4gICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTTpcbiAgICAgIHJldHVybiAncG5wbSBpbnN0YWxsIC0tZnJvemVuLWxvY2tmaWxlJztcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuICd5YXJuIGluc3RhbGwgLS1mcm96ZW4tbG9ja2ZpbGUnO1xuICB9XG59XG5cbi8qKlxuICogQmFzaCBsaW5lcyB0aGF0IHNhbml0aXplIGEgYENMRUFOX0JSQU5DSF9OQU1FYCB2YXJpYWJsZSAoYWxyZWFkeSBzdHJpcHBlZCBvZiBhbnlcbiAqIGNvbnZlbnRpb25hbC1jb21taXQgcHJlZml4KSBpbnRvIGEgdmFsdWUgc2FmZSB0byB1c2UgYXMgYSBDbG91ZEZvcm1hdGlvbiBzdGFjay1uYW1lXG4gKiBmcmFnbWVudDogY29sbGFwc2VzIHJ1bnMgb2Ygbm9uLWFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHRvIGAtYCwgdHJpbXMgbGVhZGluZy90cmFpbGluZ1xuICogYC1gLCBhbmQgcHJlZml4ZXMgd2l0aCBgcHItYCBpZiB0aGUgcmVzdWx0IHdvdWxkIG5vdCBzdGFydCB3aXRoIGEgbGV0dGVyIChvciBpcyBlbXB0eSkuXG4gKlxuICogU2hhcmVkIGJ5IFByRGVwbG95V29ya2Zsb3cgYW5kIFByQ2xlYW51cFdvcmtmbG93IHNvIGJvdGggZGVyaXZlIHRoZSBpZGVudGljYWwgc3RhY2tcbiAqIG5hbWUgZm9yIGEgZ2l2ZW4gYnJhbmNoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0KCk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFtcbiAgICAnQ0xFQU5fQlJBTkNIX05BTUU9JChlY2hvIFwiJENMRUFOX0JSQU5DSF9OQU1FXCIgfCBzZWQgLUUgXFwncy9bXkEtWmEtejAtOV0rLy0vZzsgcy9eLSsvLzsgcy8tKyQvL1xcJyknLFxuICAgICdpZiBbWyAhIFwiJENMRUFOX0JSQU5DSF9OQU1FXCIgPX4gXltBLVphLXpdIF1dOyB0aGVuJyxcbiAgICAnICBDTEVBTl9CUkFOQ0hfTkFNRT1cInByLSR7Q0xFQU5fQlJBTkNIX05BTUV9XCInLFxuICAgICdmaScsXG4gIF07XG59XG5cbi8qKlxuICogSm9pbnMgY29tbWFuZHMgd2l0aCBgO2AgaW5zdGVhZCBvZiBgJiZgL2B8fGAgc28gdGhlIHJlc3VsdCBpcyB2YWxpZCBmb3IgYSBzd2FtcFxuICogY29tbWFuZC9zaGVsbCBtb2RlbCdzIGBydW46YCB2YWx1ZSBvbiBib3RoIFBPU0lYIHNoZWxscyBhbmQgV2luZG93cyBQb3dlclNoZWxsIDUuMVxuICogKHdoaWNoIGhhcyBubyBgJiZgL2B8fGAgY2hhaW4gb3BlcmF0b3JzIGJlZm9yZSBwd3NoIDcpLiBVbmxpa2UgYCYmYCwgYDtgIGRvZXMgbm90XG4gKiBzaG9ydC1jaXJjdWl0IG9uIGZhaWx1cmUg4oCUIGNhbGxlcnMgdGhhdCBuZWVkIGZhaWx1cmUgdG8gc3RvcCB0aGUgc2VxdWVuY2Ugc2hvdWxkIHNwbGl0XG4gKiBpbnRvIHNlcGFyYXRlIHdvcmtmbG93IHN0ZXBzIHdpdGggdGhlaXIgb3duIGBhc3NlcnRgIGdhdGVzIGluc3RlYWQgb2YgcmVseWluZyBvbiB0aGlzXG4gKiBmb3IgY29udHJvbCBmbG93LlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2hlbGxQb3J0YWJsZVNlcXVlbmNlKC4uLmNvbW1hbmRzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gIHJldHVybiBjb21tYW5kcy5qb2luKCc7ICcpO1xufVxuXG4vKipcbiAqIFJlbmRlcnMgYSBwb3J0YWJsZSBmb3JjZS1kZWxldGUgZm9yIGEgc2luZ2xlIGZpbGUsIGZvciB1c2UgaW4gYSBzd2FtcCBjb21tYW5kL3NoZWxsXG4gKiBtb2RlbCdzIGBydW46YCB2YWx1ZSBpbiBwbGFjZSBvZiBgcm0gLWYgPHBhdGg+YCAoYW1iaWd1b3VzIHdpdGggUG93ZXJTaGVsbCA1LjEnc1xuICogYFJlbW92ZS1JdGVtIC1GaWx0ZXJgIGFsaWFzKS4gTWF0Y2hlcyB0aGUgZml4IGFscmVhZHkgdmFsaWRhdGVkIGluIGV4bWFuIzEzNi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNoZWxsUG9ydGFibGVGb3JjZURlbGV0ZShwYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYG5vZGUgLWUgXCJyZXF1aXJlKCdmcycpLnJtU3luYygnJHtwYXRofScsIHsgZm9yY2U6IHRydWUgfSlcImA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXJpYWxpemVUcyh2YWx1ZTogYW55LCBkZXB0aCA9IDEpOiBzdHJpbmcge1xuICBjb25zdCBwYWQgPSAnICAnLnJlcGVhdChkZXB0aCk7XG4gIGNvbnN0IGlubmVyUGFkID0gJyAgJy5yZXBlYXQoZGVwdGggKyAxKTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHJldHVybiBgJyR7dmFsdWV9J2A7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInIHx8IHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgY29uc3QgaXRlbXMgPSB2YWx1ZS5tYXAodiA9PiBgJHtpbm5lclBhZH0ke3NlcmlhbGl6ZVRzKHYsIGRlcHRoICsgMSl9YCkuam9pbignLFxcbicpO1xuICAgIHJldHVybiBgW1xcbiR7aXRlbXN9LFxcbiR7cGFkfV1gO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlICE9PSBudWxsKSB7XG4gICAgY29uc3QgZW50cmllcyA9IE9iamVjdC5lbnRyaWVzKHZhbHVlKVxuICAgICAgLm1hcCgoW2ssIHZdKSA9PiBgJHtpbm5lclBhZH0ke2t9OiAke3NlcmlhbGl6ZVRzKHYsIGRlcHRoICsgMSl9YClcbiAgICAgIC5qb2luKCcsXFxuJyk7XG4gICAgcmV0dXJuIGB7XFxuJHtlbnRyaWVzfSxcXG4ke3BhZH19YDtcbiAgfVxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVhZG1lQ29udGVudHMoXG4gIHByb2plY3ROYW1lOiBzdHJpbmcsXG4gIGUyZVRlc3RpbmcgPSB0cnVlLFxuICBwYWNrYWdlTWFuYWdlcjogTm9kZVBhY2thZ2VNYW5hZ2VyID0gTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQ0xBU1NJQyxcbiAgcHJBdXRvTWVyZ2UgPSBmYWxzZSxcbikge1xuICBjb25zdCB0ZXN0RTJlQ29tbWFuZCA9IHJ1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXIsICd0ZXN0OmUyZScpO1xuICByZXR1cm4gW1xuICAgIGAjICR7cHJvamVjdE5hbWV9YCxcbiAgICAnJyxcbiAgICAnVGhpcyBwcm9qZWN0IHdhcyBib290c3RyYXBwZWQgd2l0aCBbQmF0bWFuXShodHRwczovL2dpdGh1Yi5jb20vbWFjZWRvbi10ZWNobm9sb2dpZXMvcGxhdGZvcm0tY29tbW9uKS4nLFxuICAgICcnLFxuICAgICcjIyBXaGF0IEJhdG1hbiBDcmVhdGVkJyxcbiAgICAnJyxcbiAgICAnIyMjIENESyBJbmZyYXN0cnVjdHVyZSAoYHNyYy9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgc3JjL21haW4udHNgIHwgQ0RLIGFwcCBlbnRyeSBwb2ludCDigJQgaW5zdGFudGlhdGVzIGRldiwgc3RhZ2luZywgYW5kIHByb2QgYEFwcGxpY2F0aW9uU3RhY2tgcyB8JyxcbiAgICAnfCBgc3JjL0xvY2FsRGV2QXBwLnRzYCB8IExvY2FsIGRldmVsb3BtZW50IENESyBhcHAg4oCUIHVzZWQgYnkgYHlhcm4gY2RrOmRldmAgLSBkZXBsb3lzIHRvIEFXUyBmb3Igc2xvd2VyIGJ1dCBtb3JlIHRob3JvdWdoIHRlc3RpbmcgfCcsXG4gICAgJ3wgYHNyYy9HaXRIdWJSb2xlcy50c2AgfCBDREsgYXBwIGZvciBkZXBsb3lpbmcgdGhlIEdpdEh1YiBPSURDIElBTSByb2xlIChvbmUtdGltZSBib290c3RyYXApIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0FwcGxpY2F0aW9uU3RhY2sudHNgIHwgWW91ciBwcmltYXJ5IHN0YWNrIOKAlCBleHRlbmQgaXQgdG8gYWRkIHJlc291cmNlcyB8JyxcbiAgICAnfCBgc3JjL3N0YWNrcy9CYXNlQXBwbGljYXRpb25TdGFjay50c2AgfCBCYXNlIHN0YWNrIHdpdGggQVBJLCBzdGF0aWMgd2Vic2l0ZSwgRGF0YWRvZywgYW5kIFJvdXRlIDUzIHdpcmVkIHVwIHwnLFxuICAgICd8IGBzcmMvc3RhY2tzL0dpdEh1YlJvbGVzU3RhY2sudHNgIHwgSUFNIHJvbGUgc3RhY2sgZm9yIEdpdEh1YiBBY3Rpb25zIE9JREMgYXV0aGVudGljYXRpb24gfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL0FwaS50c2AgfCBBUEkgR2F0ZXdheSArIExhbWJkYSBjb25zdHJ1Y3Qgd2l0aCBDbGVyayBKV1QgYXV0aG9yaXplciB8JyxcbiAgICAnfCBgc3JjL2NvbnN0cnVjdHMvU3RhdGljV2Vic2l0ZS50c2AgfCBDbG91ZEZyb250ICsgUzMgKyBBQ00gKyBSb3V0ZSA1MyBjb25zdHJ1Y3QgfCcsXG4gICAgJ3wgYHNyYy9jb25zdHJ1Y3RzL2hhbmRsZXIvQXBpLkZ1bmN0aW9uLnRzYCB8IExhbWJkYSBoYW5kbGVyIGVudHJ5IHBvaW50LCBiYXNpYyB3cmFwcGVyIGFyb3VuZCBFeHByZXNzLWNvbXBhdGlibGUgYXBwIGNvZGUgfCcsXG4gICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgQ0RLIGFzcGVjdCB0aGF0IHdpcmVzIGFsbCBMYW1iZGEgZnVuY3Rpb25zIHRvIERhdGFkb2cgfCcsXG4gICAgJycsXG4gICAgJyMjIyBGcm9udGVuZCAoYHdlYi9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IERlc2NyaXB0aW9uIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS18JyxcbiAgICAnfCBgd2ViL3NyYy9tYWluLnRzeGAgfCBSZWFjdCBhcHAgZW50cnkgcG9pbnQgd2l0aCBDbGVyayBhbmQgUmVhY3QgUXVlcnkgcHJvdmlkZXJzIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC50c3hgIHwgUm9vdCBhcHBsaWNhdGlvbiBjb21wb25lbnQgfCcsXG4gICAgJ3wgYHdlYi9zcmMvQXBwLmNzc2AgLyBgd2ViL3NyYy9pbmRleC5jc3NgIHwgQmFzZSBzdHlsZXNoZWV0cyAoVGFpbHdpbmQgQ1NTIHY0KSB8JyxcbiAgICAnfCBgd2ViL3NyYy9jb25maWcudHNgIHwgYHVzZUNvbmZpZygpYCBob29rIOKAlCBsb2FkcyBydW50aW1lIGNvbmZpZyBmcm9tIGBjb25maWcuanNvbmAgfCcsXG4gICAgJ3wgYHdlYi9zcmMvc2VydmljZXMvQXBpU2VydmljZS50c2AgfCBgdXNlQXBpUXVlcnkoKWAgLyBgdXNlQXBpTXV0YXRpb24oKWAg4oCUIGF1dGhlbnRpY2F0ZWQgQVBJIGhvb2tzLCBjYWNoZWQgcGVyIHBhdGggfCcsXG4gICAgJ3wgYHdlYi9zcmMvaGVscGVycy9gIHwgYHJlcXVlc3RzLnRzYCwgYEh0dHBFcnJvci50c2AsIGBlcnJvcnMudHNgLCBgcmV0cnkudHNgIOKAlCB0aGUgcmVxdWVzdCBhbmQgZXJyb3IgaGVscGVycyBgQXBpU2VydmljZWAgaXMgYnVpbHQgb24gfCcsXG4gICAgJ3wgYHdlYi9wdWJsaWMvY29uZmlnLmpzb25gIHwgUnVudGltZSBjb25maWcgKEFQSSBiYXNlIFVSTCwgQ2xlcmsgcHVibGlzaGFibGUga2V5KSB8JyxcbiAgICAuLi4oZTJlVGVzdGluZyA/IFtcbiAgICAgICd8IGB3ZWIvcGxheXdyaWdodC5jb25maWcudHNgIHwgUGxheXdyaWdodCBlMmUgY29uZmlnIOKAlCBzZWUgYHdlYi9lMmUvUkVBRE1FLm1kYCB8JyxcbiAgICAgIGB8IFxcYHdlYi9lMmUvXFxgIHwgUGxheXdyaWdodCBlMmUgc3VpdGUgKFxcYCR7dGVzdEUyZUNvbW1hbmR9XFxgKTsgYWxzbyBydW4gaW4gQ0kgYWdhaW5zdCBlYWNoIFBSJ3MgZGVwbG95ZWQgVVJMIHxgLFxuICAgIF0gOiBbXSksXG4gICAgJycsXG4gICAgJyMjIyBHaXRIdWIgQWN0aW9ucyBXb3JrZmxvd3MgKGAuZ2l0aHViL3dvcmtmbG93cy9gKScsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IFRyaWdnZXIgfCcsXG4gICAgJ3wtLS0tLS18LS0tLS0tLS0tfCcsXG4gICAgJ3wgYHByLWRlcGxveS55bWxgIHwgT24gcHVsbCByZXF1ZXN0IG9wZW4vdXBkYXRlIOKAlCBkZXBsb3lzIGEgcGVyLVBSIGRldiBzdGFjayB8JyxcbiAgICAnfCBgcHItY2xlYW51cC55bWxgIHwgT24gcHVsbCByZXF1ZXN0IGNsb3NlIOKAlCB0ZWFycyBkb3duIHRoZSBwZXItUFIgZGV2IHN0YWNrIHwnLFxuICAgICd8IGBzdGFnaW5nLWRlcGxveS55bWxgIHwgT24gcHVzaCB0byBgbWFpbmAsIG9yIG1hbnVhbGx5IHRyaWdnZXJlZCDigJQgZGVwbG95cyB0byBzdGFnaW5nIHwnLFxuICAgIC4uLihwckF1dG9NZXJnZSA/IFtcbiAgICAgICd8IGBwci1hdXRvLW1lcmdlLnltbGAgfCBPbiBwdWxsIHJlcXVlc3Qgb3Blbi9yZW9wZW4vcmVhZHkgZm9yIHJldmlldyDigJQgdHVybnMgb24gc3F1YXNoIGF1dG8tbWVyZ2Ugd2l0aCBhIEdpdEh1YiBBcHAgdG9rZW4gfCcsXG4gICAgXSA6IFtdKSxcbiAgICAnfCBgcHJvZHVjdGlvbi1kZXBsb3kueW1sYCB8IE1hbnVhbGx5IHRyaWdnZXJlZCDigJQgZGVwbG95cyB0byBwcm9kdWN0aW9uIHwnLFxuICAgICcnLFxuICAgICctLS0nLFxuICAgICcnLFxuICAgICcjIyBGaWxlcyBZb3UgQ2FuIEVkaXQnLFxuICAgICcnLFxuICAgICdUaGVzZSBmaWxlcyBhcmUgZ2VuZXJhdGVkIG9uY2UgYW5kIG5ldmVyIG92ZXJ3cml0dGVuIGJ5IEJhdG1hbi4gTW9kaWZ5IHRoZW0gZnJlZWx5LicsXG4gICAgJycsXG4gICAgJ3wgRmlsZSB8IFdoYXQgdG8gZG8gd2l0aCBpdCB8JyxcbiAgICAnfC0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLXwnLFxuICAgICd8IGAucHJvamVucmMudHMgfCBUaGUgbWFpbiBQcm9qZW4gY29uZmlndXJhdGlvbiBmaWxlLiBBZGRpdGlvbmFsIGRlcGVuZGVuY2llcyBmb3IgZWl0aGVyIHRoZSBBUEkgb3IgdGhlIFdlYiBmcm9udGVuZCBuZWVkIHRvIGJlIGFkZGVkIGhlcmUgfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQXBwbGljYXRpb25TdGFjay50c2AgfCAqKlN0YXJ0IGhlcmUuKiogQWRkIENESyBjb25zdHJ1Y3RzIHRvIGJ1aWxkIHlvdXIgaW5mcmFzdHJ1Y3R1cmUgfCcsXG4gICAgJ3wgYHNyYy9hcGkvYXBwLnRzIHwgVGhlIG1haW4gbW9ub2xpdGhpYyBBUEkgUkVTVCBzZXJ2ZXIgZmlsZS4gTWFpbiBmaWxlIHlvdSBzaG91bGQgYmUgbW9kaWZ5aW5nIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC50c3hgIHwgQnVpbGQgeW91ciBVSSBoZXJlIHwnLFxuICAgICd8IGB3ZWIvc3JjL0FwcC5jc3NgIC8gYHdlYi9zcmMvaW5kZXguY3NzYCB8IFN0eWxlIHlvdXIgYXBwbGljYXRpb24gfCcsXG4gICAgJ3wgYHdlYi9zcmMvbWFpbi50c3hgIHwgQWRqdXN0IHRvcC1sZXZlbCBwcm92aWRlcnMgb3Igcm91dGluZyB8JyxcbiAgICAnfCBgd2ViL3NyYy9zZXJ2aWNlcy9BcGlTZXJ2aWNlLnRzYCAvIGB3ZWIvc3JjL2hlbHBlcnMvYCB8IEFkZCBBUEkgc2VydmljZSBob29rcyBhbG9uZ3NpZGUgYEFwaVNlcnZpY2UudHNgLCBvciBhZGp1c3QgdGhlIHJlcXVlc3QgaGVscGVycyB8JyxcbiAgICAnfCBgd2ViL3B1YmxpYy9jb25maWcuanNvbmAgfCBVcGRhdGUgZm9yIGxvY2FsIGRldmVsb3BtZW50IChBUEkgVVJMLCBDbGVyayBrZXkpIHwnLFxuICAgIC4uLihlMmVUZXN0aW5nID8gW1xuICAgICAgJ3wgYHdlYi9wbGF5d3JpZ2h0LmNvbmZpZy50c2AgLyBgd2ViL2UyZS9gIHwgUGxheXdyaWdodCBlMmUgc3VpdGUg4oCUIGV4dGVuZCBpdCB3aXRoIHJlYWwgZmxvd3M7IHNlZSBgd2ViL2UyZS9SRUFETUUubWRgIHwnLFxuICAgIF0gOiBbXSksXG4gICAgJycsXG4gICAgJyMjIEZpbGVzIFlvdSBDYW5ub3QgRWRpdCcsXG4gICAgJycsXG4gICAgJ1RoZXNlIGZpbGVzIGFyZSAqKm1hbmFnZWQgYnkgQmF0bWFuKiogYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gZXZlcnkgdGltZSBgbnB4IHByb2plbmAgcnVucy4gRG8gbm90IGVkaXQgdGhlbSBkaXJlY3RseSDigJQgbWFrZSBjaGFuZ2VzIGluIGAucHJvamVucmMudHNgIGluc3RlYWQuJyxcbiAgICAnJyxcbiAgICAnPiBbIUlNUE9SVEFOVF0nLFxuICAgICc+IElmIHlvdSBoYXZlIEFOWSBjaGFuZ2VzIHlvdSB3YW50IHRvIG1ha2UgdG8gdGhlc2UgZmlsZXMsIG5vdGlmeSAjdGVhbS1iYXRtYW4gb24gU2xhY2suICcsXG4gICAgJz4gV2UgbWFpbnRhaW4gdGhlc2UgZmlsZXMgYXMgcGFydCBvZiB0aGUgY29yZSBCYXRtYW4gZXhwZXJpZW5jZSwgYW5kIHlvdXIgZmVlZGJhY2sgaXMgY3J1Y2lhbCB0byBlbnN1cmUgdGhleSBtZWV0IHlvdXIgbmVlZHMuJyxcbiAgICAnJyxcbiAgICAnfCBGaWxlIHwgV2h5IGl0XFwncyBtYW5hZ2VkIHwnLFxuICAgICd8LS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tfCcsXG4gICAgJ3wgYHNyYy9zdGFja3MvQmFzZUFwcGxpY2F0aW9uU3RhY2sudHNgIHwgQ29yZSBzdGFjayB3aXJpbmcg4oCUIHVwZGF0ZWQgd2l0aCBCYXRtYW4gcmVsZWFzZXMgfCcsXG4gICAgJ3wgYHNyYy9hc3BlY3RzL0RhdGFEb2dBc3BlY3QudHNgIHwgRGF0YWRvZyBDREsgYXNwZWN0IHwnLFxuICAgICd8IGB3ZWIvdml0ZS5jb25maWcudHNgIHwgVml0ZSBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvZXNsaW50LmNvbmZpZy5qc2AgfCBFU0xpbnQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3Bvc3Rjc3MuY29uZmlnLmpzYCB8IFBvc3RDU1MgLyBUYWlsd2luZCBjb25maWd1cmF0aW9uIHwnLFxuICAgICd8IGB3ZWIvaW5kZXguaHRtbGAgfCBIVE1MIGVudHJ5IHBvaW50IHwnLFxuICAgICd8IGB3ZWIvdHNjb25maWcuanNvbmAgLyBgd2ViL3RzY29uZmlnLmFwcC5qc29uYCAvIGB3ZWIvdHNjb25maWcubm9kZS5qc29uYCB8IFR5cGVTY3JpcHQgY29uZmlndXJhdGlvbiB8JyxcbiAgICAnfCBgd2ViL3NyYy92aXRlLWVudi5kLnRzYCB8IFZpdGUgdHlwZSBkZWNsYXJhdGlvbnMgfCcsXG4gICAgJ3wgYHdlYi9zcmMvY29uZmlnLnRzYCB8IFJ1bnRpbWUgY29uZmlnIGhvb2sg4oCUIHNoYXBlIGRyaXZlbiBieSBgLnByb2plbnJjLnRzYCB8JyxcbiAgICAnfCBgLmdpdGh1Yi9DT0RFT1dORVJTYCB8IENvZGUgb3duZXJzaGlwIHBvbGljeSB8JyxcbiAgICAnfCBgLmdpdGh1Yi93b3JrZmxvd3MvKi55bWxgIHwgQWxsIENJL0NEIHdvcmtmbG93cyB8JyxcbiAgICAnfCBgYXJjaGl0ZWN0dXJlLXJ1bGVzL2NoZWNrLnRzYCwgYHRzY29uZmlnLmpzb25gLCBgUkVBRE1FLm1kYCB8IEFyY2hpdGVjdHVyZSBydWxlIGVuZ2luZSB8JyxcbiAgICAnfCBgYXR0ZXN0YXRpb24vbWFuaWZlc3QudHNgLCBgdmVyaWZ5LnRzYCwgYHRzY29uZmlnLmpzb25gIHwgUFIgYXR0ZXN0YXRpb24gbWVjaGFuaXNtIHwnLFxuICAgICd8IGBvcGVuc3BlYy1nYXRlcy9jaGVjay10YXNrcy1jb21wbGV0ZS50c2AsIGB0c2NvbmZpZy5qc29uYCB8IE9wZW5TcGVjIHRhc2stY29tcGxldGlvbiBnYXRlIHwnLFxuICAgICd8IGBzd2FtcC1ib290c3RyYXAvcHVsbC1leHRlbnNpb25zLnRzYCwgYHRzY29uZmlnLmpzb25gIHwgUHVsbHMgc3dhbXAgZXh0ZW5zaW9ucyBhdCB0aGVpciBwaW5uZWQgdmVyc2lvbnMgfCcsXG4gICAgJ3wgYHdvcmtmbG93cy93b3JrZmxvdy0qLnlhbWxgIHwgU3dhbXAgd29ya2Zsb3dzIHRoZSBzb2Z0d2FyZSBmYWN0b3J5IHJ1bnMgfCcsXG4gICAgJycsXG4gICAgJz4gKipUaXA6KiogRmlsZXMgd2l0aCBhIGB+fiBHZW5lcmF0ZWQgYnkgcHJvamVuLiBUbyBtb2RpZnksIGVkaXQgLnByb2plbnJjLnRzIGFuZCBydW4gXCJucHggcHJvamVuXCIuIH5+YCBoZWFkZXIgYXJlIG1hbmFnZWQgZmlsZXMuJyxcbiAgICAnJyxcbiAgICAnIyMjIFNvZnR3YXJlIEZhY3RvcnkgKGBtb2RlbHMvYCwgYGFyY2hpdGVjdHVyZS1ydWxlcy9ydWxlcy5qc29uYCknLFxuICAgICcnLFxuICAgICdCYXRtYW4gYWxzbyBzZWVkcyBhIFtzd2FtcF0oaHR0cHM6Ly9naXRodWIuY29tL3N3YW1wLWNsdWIvc3dhbXApIHNvZnR3YXJlJyxcbiAgICAnZmFjdG9yeSDigJQgYSBgQHN3YW1wL3NvZnR3YXJlLWZhY3RvcnlgIHN0YXRlIG1hY2hpbmUgdGhhdCBkcml2ZXMgYSBHaXRIdWInLFxuICAgICdpc3N1ZSB0aHJvdWdoIGludGFrZSwgT3BlblNwZWMgcGxhbm5pbmcsIGltcGxlbWVudGF0aW9uLCBwcmUtUFInLFxuICAgICd2ZXJpZmljYXRpb24sIGFuZCBhbiBvcGVuZWQgUFIuIFRoZSBzZWVkIGZpbGVzIHVuZGVyIGBtb2RlbHMvKiovKi55YW1sYCBhbmQnLFxuICAgICdgYXJjaGl0ZWN0dXJlLXJ1bGVzL3J1bGVzLmpzb25gIGFyZSBnZW5lcmF0ZWQgb25jZSAobGlrZSB0aGUgZmlsZXMgaW4nLFxuICAgICdcIkZpbGVzIFlvdSBDYW4gRWRpdFwiIGFib3ZlKSDigJQgdHVuZSB0aGUgZmFjdG9yeVxcJ3Mgc3RhZ2VzL2dhdGVzIG9yIGFkZCB5b3VyJyxcbiAgICAnb3duIGFyY2hpdGVjdHVyZSBydWxlcyBkaXJlY3RseSBpbiB0aG9zZSBmaWxlcy4nLFxuICAgICcnLFxuICAgICdgc3dhbXAgaW5pdGAgcnVucyBhdXRvbWF0aWNhbGx5IGFzIHBhcnQgb2YgYGluc3RhbGxgL2BpbnN0YWxsOmNpYCAoYSBzaWxlbnQnLFxuICAgICduby1vcCBpZiBgc3dhbXBgIGlzblxcJ3Qgb24gUEFUSCwgZS5nLiBpbiBDSSksIHNvIHRoZSByZXBvIHN0YXlzIGluaXRpYWxpemVkJyxcbiAgICAnd2l0aG91dCBhIHNlcGFyYXRlIHN0ZXAuJyxcbiAgICAnJyxcbiAgICAnYHN3YW1wVmVyc2lvbmAgaW4gYC5zd2FtcC55YW1sYCBpcyB0aGUgbWluaW11bSBzd2FtcCBDTEkgdGhlIHJlcG8gbmVlZHM6IHRoZScsXG4gICAgJ3ZlcnNpb24gaXQgd2FzIGxhc3QgdXBncmFkZWQgd2l0aC4gc3dhbXAgZG9lc25cXCd0IGtlZXAgb2xkIGJ1aWxkcywgc28gaW5zdGFsbCcsXG4gICAgJ3RoZSBjdXJyZW50IGBzdGFibGVgIHJlbGVhc2UgcmF0aGVyIHRoYW4gdGhhdCBleGFjdCB2ZXJzaW9uOicsXG4gICAgJycsXG4gICAgJ2BgYGJhc2gnLFxuICAgICcjIG1hY09TIC8gTGludXgnLFxuICAgICdjdXJsIC1mc1NMIGh0dHBzOi8vc3dhbXAuY2x1Yi9pbnN0YWxsLnNoIHwgc2gnLFxuICAgICcnLFxuICAgICcjIFdpbmRvd3MgKFBvd2VyU2hlbGwpJyxcbiAgICAnaXJtIGh0dHBzOi8vc3dhbXAuY2x1Yi9pbnN0YWxsLnBzMSB8IGlleCcsXG4gICAgJ2BgYCcsXG4gICAgJycsXG4gICAgJ09uZS10aW1lIHNldHVwIGJleW9uZCB0aGF0LCBhZnRlciB5b3VyIGZpcnN0IGBucHggcHJvamVuYDonLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAnIyBQdWxscyBlYWNoIGV4dGVuc2lvbiBhdCB0aGUgdmVyc2lvbiBwaW5uZWQgaW4nLFxuICAgICcjIGV4dGVuc2lvbnMvbW9kZWxzL3Vwc3RyZWFtX2V4dGVuc2lvbnMuanNvbiAob3IgdGhlIGxhdGVzdCcsXG4gICAgJyMgc29mdHdhcmUtZmFjdG9yeS9naXRodWIgZXh0ZW5zaW9ucyBpbiBhIHJlcG8gd2l0aCBubyBsb2NrZmlsZSB5ZXQpLCcsXG4gICAgJyMgcmVzdG9yZXMgdGhlIGxvY2tmaWxlIGFuZCBjb21taXR0ZWQgc2tpbGwgZmlsZXMgZnJvbSBnaXQsIGFuZCBjcmVhdGVzIHRoZScsXG4gICAgJyMgcmVwb1xcJ3Mgc2VjcmV0cyB2YXVsdCcsXG4gICAgJ25weCBwcm9qZW4gc3dhbXA6Ym9vdHN0cmFwJyxcbiAgICAnJyxcbiAgICAnIyBUaGVuIHN0b3JlIGEgR2l0SHViIHRva2VuIHRoZSBmYWN0b3J5IGNhbiBvcGVuIFBScyB3aXRoJyxcbiAgICAnc3dhbXAgdmF1bHQgcHV0IDxyZXBvPi1zZWNyZXRzIEdJVEhVQl9UT0tFTiAtLXJlZnJlc2gtZnJvbSBcImdoIGF1dGggdG9rZW5cIicsXG4gICAgJ2BgYCcsXG4gICAgJycsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIFdoZXJlIHRvIFN0YXJ0JyxcbiAgICAnJyxcbiAgICAnMS4gKipgc3JjL3N0YWNrcy9BcHBsaWNhdGlvblN0YWNrLnRzYCoqIOKAlCBBZGQgeW91ciBDREsgY29uc3RydWN0cyBoZXJlLiBUaGUgYmFzZSBzdGFjayBhbHJlYWR5IHByb3ZpZGVzIGB0aGlzLmFwaWAsIGB0aGlzLmhvc3RlZFpvbmVgLCBgdGhpcy5kYXRhZG9nYCwgYW5kICh3aGVuIHRoZSBzdGFjayBjcmVhdGVzIG9uZSkgYHRoaXMudnBjYCBhcyBwcm90ZWN0ZWQgcHJvcGVydGllcy4nLFxuICAgICcnLFxuICAgICcyLiAqKmB3ZWIvYCoqIOKAlCBCdWlsZCB5b3VyIGZyb250ZW5kLiBTdGFydCB3aXRoIGB3ZWIvc3JjL0FwcC50c3hgIGFuZCBhZGQgc2VydmljZXMgYWxvbmdzaWRlIGB3ZWIvc3JjL3NlcnZpY2VzL0FwaVNlcnZpY2UudHNgLicsXG4gICAgJycsXG4gICAgJzMuICoqYHNyYy9hcGkvYXBwLnRzYCoqIOKAlCBJbXBsZW1lbnQgeW91ciBiYWNrZW5kIExhbWJkYSBoYW5kbGVyIGxvZ2ljIGhlcmUuJyxcbiAgICAnJyxcbiAgICAnNC4gKipgLnByb2plbnJjLnRzYCoqIC0gTWFuYWdlcyBwcm9qZWN0IGRlcGVuZGVuY2llcyBhbmQgY29uZmlndXJhdGlvbi4gUnVuIGBucHggcHJvamVuYCBhZnRlciBtYWtpbmcgYW55IGNoYW5nZXMgdG8gdGhpcyBmaWxlLicsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIERldmVsb3BtZW50IFdvcmtmbG93JyxcbiAgICAnJyxcbiAgICAnYGBgYmFzaCcsXG4gICAgJyMgSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICd5YXJuIGluc3RhbGwnLFxuICAgICcnLFxuICAgICcjIFN0YXJ0IGxvY2FsIGRldiBzZXJ2ZXIgKGJhY2tlbmQgTGFtYmRhICsgVml0ZSBmcm9udGVuZCBpbiBwYXJhbGxlbCknLFxuICAgICd5YXJuIGRldicsXG4gICAgJycsXG4gICAgJyMgRGVwbG95IGEgcGVyc29uYWwgZGV2IHN0YWNrIHRvIEFXUyBhcyBhbiBhbHRlcm5hdGl2ZSB0byBsb2NhbCBkZXZlbG9wbWVudCwgcHJvdmlkZXMgbW9yZSB0aG9yb3VnaCBlbmQtdG8tZW5kIHRlc3RpbmcnLFxuICAgICd5YXJuIGNkazpkZXYgLS1jb250ZXh0IGxvY2FsLWRldi1wcmVmaXg9eW91ci1oYW5kbGUgZGVwbG95JyxcbiAgICAnJyxcbiAgICAnIyBSZWRlcGxveSB5b3VyIHBlcnNvbmFsIGRldiBzdGFjayBmYXN0OiBhZnRlciB0aGUgZmlyc3QgZGVwbG95IGFib3ZlLCBrZWVwJyxcbiAgICBcIiMgcmV1c2luZyB0aGUgc2FtZSBzdGFjayAoZG9uJ3QgZGVsZXRlIGl0IGJldHdlZW4gYnJhbmNoZXMpIGFuZCBpdGVyYXRlIHdpdGhcIixcbiAgICAnIyBob3Rzd2FwLWZhbGxiYWNrIGluc3RlYWQgb2YgYSBmdWxsIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQnLFxuICAgICd5YXJuIGNkazpkZXY6aG90c3dhcCAtLWNvbnRleHQgbG9jYWwtZGV2LXByZWZpeD15b3VyLWhhbmRsZScsXG4gICAgJycsXG4gICAgJyMgUnVuIHRlc3RzJyxcbiAgICAneWFybiB0ZXN0JyxcbiAgICAnJyxcbiAgICAnIyBSZS1zeW50aGVzaXplIHByb2plY3QgZmlsZXMgYWZ0ZXIgZWRpdGluZyAucHJvamVucmMudHMnLFxuICAgICducHggcHJvamVuJyxcbiAgICAnYGBgJyxcbiAgICAnJyxcbiAgICAnPiBbIUlNUE9SVEFOVF0nLFxuICAgICc+IGAtLWhvdHN3YXAtZmFsbGJhY2tgICh1c2VkIGJ5IGBjZGs6ZGV2OmhvdHN3YXBgIGFuZCB0aGUgYHdhdGNoYCB0YXNrKSBpcyBmb3InLFxuICAgICc+IHBlcnNvbmFsIGRldiBzdGFja3Mgb25seSDigJQgbmV2ZXIgcnVuIGl0IGFnYWluc3Qgc3RhZ2luZyBvciBwcm9kLicsXG4gICAgJycsXG4gICAgJy0tLScsXG4gICAgJycsXG4gICAgJyMjIFVwZ3JhZGluZyBCYXRtYW4nLFxuICAgICcnLFxuICAgICdgYGBiYXNoJyxcbiAgICAneWFybiBhZGQgQG1hY2Vkb24tdGVjaG5vbG9naWVzL2JhdG1hbkBsYXRlc3QnLFxuICAgICducHggcHJvamVuJyxcbiAgICAnYGBgJyxcbiAgICAnJyxcbiAgICAnVGhpcyB1cGRhdGVzIGFsbCBtYW5hZ2VkIGZpbGVzIHRvIHRoZSBsYXRlc3QgQmF0bWFuIHN0YW5kYXJkcy4gWW91ciBlZGl0YWJsZSBzYW1wbGUgZmlsZXMgYXJlIG5ldmVyIHRvdWNoZWQuJyxcbiAgXS5qb2luKCdcXG4nKTtcbn1cbiJdfQ==
package/package.json CHANGED
@@ -49,7 +49,7 @@
49
49
  "main": "lib/index.js",
50
50
  "license": "Apache-2.0",
51
51
  "stability": "stable",
52
- "version": "1.29.0",
52
+ "version": "1.31.0",
53
53
  "jest": {
54
54
  "coverageProvider": "v8",
55
55
  "testMatch": [
@@ -1,6 +0,0 @@
1
- import { Component } from 'projen';
2
- import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
3
- export declare class WorkflowAutoDiscover extends Component {
4
- constructor(project: AwsCdkTypeScriptApp);
5
- synthesize(): void;
6
- }
@@ -1,104 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.WorkflowAutoDiscover = void 0;
37
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
38
- const fs = __importStar(require("fs"));
39
- const path = __importStar(require("path"));
40
- const projen_1 = require("projen");
41
- class WorkflowAutoDiscover extends projen_1.Component {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.29.0" };
43
- constructor(project) {
44
- super(project);
45
- }
46
- synthesize() {
47
- super.synthesize();
48
- const workflowsDir = path.join(this.project.outdir, 'src/workflows');
49
- let workflowFiles = [];
50
- if (fs.existsSync(workflowsDir)) {
51
- workflowFiles = fs.readdirSync(workflowsDir)
52
- .filter(f => f.endsWith('.json'))
53
- .sort();
54
- }
55
- const constructsDir = path.join(this.project.outdir, 'src/constructs');
56
- fs.mkdirSync(constructsDir, { recursive: true });
57
- for (const file of workflowFiles) {
58
- const baseName = file.replace(/\.json$/, '');
59
- const className = toClassName(baseName);
60
- const content = generateWorkflowFile(className, file);
61
- fs.writeFileSync(path.join(constructsDir, `${className}.ts`), content);
62
- }
63
- }
64
- }
65
- exports.WorkflowAutoDiscover = WorkflowAutoDiscover;
66
- function generateWorkflowFile(className, workflowJsonName) {
67
- return [
68
- '// ~~ Generated by projen. To modify, edit .projenrc.ts and run "npx projen".',
69
- "import { join } from 'path';",
70
- "import { ISecret } from 'aws-cdk-lib/aws-secretsmanager';",
71
- "import { Construct } from 'constructs';",
72
- "import { Replacement, WorkflowProvider } from './WorkflowProvider';",
73
- '',
74
- `export interface ${className}Props {`,
75
- ' readonly secret: ISecret;',
76
- ' readonly replacements?: Replacement[];',
77
- '}',
78
- '',
79
- `export class ${className} extends WorkflowProvider {`,
80
- ` constructor(scope: Construct, id: string, props: ${className}Props) {`,
81
- ' super(scope, id, {',
82
- ` workflowFilePath: join(__dirname, '../workflows/${workflowJsonName}'),`,
83
- ' secret: props.secret,',
84
- ' replacements: props.replacements,',
85
- ' });',
86
- ' }',
87
- '}',
88
- '',
89
- ].join('\n');
90
- }
91
- function toPascalCase(str) {
92
- return str
93
- .split(/[-_\s]+/)
94
- .map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
95
- .join('');
96
- }
97
- function toClassName(baseName) {
98
- const pascal = toPascalCase(baseName);
99
- if (pascal.toLowerCase().endsWith('workflow')) {
100
- return pascal.slice(0, -8) + 'Workflow';
101
- }
102
- return pascal + 'Workflow';
103
- }
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiV29ya2Zsb3dBdXRvRGlzY292ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvV29ya2Zsb3dBdXRvRGlzY292ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6QiwyQ0FBNkI7QUFDN0IsbUNBQW1DO0FBR25DLE1BQWEsb0JBQXFCLFNBQVEsa0JBQVM7O0lBQ2pELFlBQVksT0FBNEI7UUFDdEMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxVQUFVO1FBQ1IsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBRW5CLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDckUsSUFBSSxhQUFhLEdBQWEsRUFBRSxDQUFDO1FBRWpDLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ2hDLGFBQWEsR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQztpQkFDekMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztpQkFDaEMsSUFBSSxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZFLEVBQUUsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFakQsS0FBSyxNQUFNLElBQUksSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNqQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDeEMsTUFBTSxPQUFPLEdBQUcsb0JBQW9CLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3RELEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxTQUFTLEtBQUssQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3pFLENBQUM7SUFDSCxDQUFDOztBQTFCSCxvREEyQkM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFNBQWlCLEVBQUUsZ0JBQXdCO0lBQ3ZFLE9BQU87UUFDTCwrRUFBK0U7UUFDL0UsOEJBQThCO1FBQzlCLDJEQUEyRDtRQUMzRCx5Q0FBeUM7UUFDekMscUVBQXFFO1FBQ3JFLEVBQUU7UUFDRixvQkFBb0IsU0FBUyxTQUFTO1FBQ3RDLDZCQUE2QjtRQUM3QiwwQ0FBMEM7UUFDMUMsR0FBRztRQUNILEVBQUU7UUFDRixnQkFBZ0IsU0FBUyw2QkFBNkI7UUFDdEQsc0RBQXNELFNBQVMsVUFBVTtRQUN6RSx3QkFBd0I7UUFDeEIseURBQXlELGdCQUFnQixLQUFLO1FBQzlFLDZCQUE2QjtRQUM3Qix5Q0FBeUM7UUFDekMsU0FBUztRQUNULEtBQUs7UUFDTCxHQUFHO1FBQ0gsRUFBRTtLQUNILENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2YsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEdBQVc7SUFDL0IsT0FBTyxHQUFHO1NBQ1AsS0FBSyxDQUFDLFNBQVMsQ0FBQztTQUNoQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDdkUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLFFBQWdCO0lBQ25DLE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QyxJQUFJLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztRQUM5QyxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsVUFBVSxDQUFDO0lBQzFDLENBQUM7SUFDRCxPQUFPLE1BQU0sR0FBRyxVQUFVLENBQUM7QUFDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcblxuZXhwb3J0IGNsYXNzIFdvcmtmbG93QXV0b0Rpc2NvdmVyIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICB9XG5cbiAgc3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5zeW50aGVzaXplKCk7XG5cbiAgICBjb25zdCB3b3JrZmxvd3NEaXIgPSBwYXRoLmpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgJ3NyYy93b3JrZmxvd3MnKTtcbiAgICBsZXQgd29ya2Zsb3dGaWxlczogc3RyaW5nW10gPSBbXTtcblxuICAgIGlmIChmcy5leGlzdHNTeW5jKHdvcmtmbG93c0RpcikpIHtcbiAgICAgIHdvcmtmbG93RmlsZXMgPSBmcy5yZWFkZGlyU3luYyh3b3JrZmxvd3NEaXIpXG4gICAgICAgIC5maWx0ZXIoZiA9PiBmLmVuZHNXaXRoKCcuanNvbicpKVxuICAgICAgICAuc29ydCgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbnN0cnVjdHNEaXIgPSBwYXRoLmpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgJ3NyYy9jb25zdHJ1Y3RzJyk7XG4gICAgZnMubWtkaXJTeW5jKGNvbnN0cnVjdHNEaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIHdvcmtmbG93RmlsZXMpIHtcbiAgICAgIGNvbnN0IGJhc2VOYW1lID0gZmlsZS5yZXBsYWNlKC9cXC5qc29uJC8sICcnKTtcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IHRvQ2xhc3NOYW1lKGJhc2VOYW1lKTtcbiAgICAgIGNvbnN0IGNvbnRlbnQgPSBnZW5lcmF0ZVdvcmtmbG93RmlsZShjbGFzc05hbWUsIGZpbGUpO1xuICAgICAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4oY29uc3RydWN0c0RpciwgYCR7Y2xhc3NOYW1lfS50c2ApLCBjb250ZW50KTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVXb3JrZmxvd0ZpbGUoY2xhc3NOYW1lOiBzdHJpbmcsIHdvcmtmbG93SnNvbk5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBbXG4gICAgJy8vIH5+IEdlbmVyYXRlZCBieSBwcm9qZW4uIFRvIG1vZGlmeSwgZWRpdCAucHJvamVucmMudHMgYW5kIHJ1biBcIm5weCBwcm9qZW5cIi4nLFxuICAgIFwiaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1wiLFxuICAgIFwiaW1wb3J0IHsgSVNlY3JldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XCIsXG4gICAgXCJpbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcIixcbiAgICBcImltcG9ydCB7IFJlcGxhY2VtZW50LCBXb3JrZmxvd1Byb3ZpZGVyIH0gZnJvbSAnLi9Xb3JrZmxvd1Byb3ZpZGVyJztcIixcbiAgICAnJyxcbiAgICBgZXhwb3J0IGludGVyZmFjZSAke2NsYXNzTmFtZX1Qcm9wcyB7YCxcbiAgICAnICByZWFkb25seSBzZWNyZXQ6IElTZWNyZXQ7JyxcbiAgICAnICByZWFkb25seSByZXBsYWNlbWVudHM/OiBSZXBsYWNlbWVudFtdOycsXG4gICAgJ30nLFxuICAgICcnLFxuICAgIGBleHBvcnQgY2xhc3MgJHtjbGFzc05hbWV9IGV4dGVuZHMgV29ya2Zsb3dQcm92aWRlciB7YCxcbiAgICBgICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHtjbGFzc05hbWV9UHJvcHMpIHtgLFxuICAgICcgICAgc3VwZXIoc2NvcGUsIGlkLCB7JyxcbiAgICBgICAgICAgd29ya2Zsb3dGaWxlUGF0aDogam9pbihfX2Rpcm5hbWUsICcuLi93b3JrZmxvd3MvJHt3b3JrZmxvd0pzb25OYW1lfScpLGAsXG4gICAgJyAgICAgIHNlY3JldDogcHJvcHMuc2VjcmV0LCcsXG4gICAgJyAgICAgIHJlcGxhY2VtZW50czogcHJvcHMucmVwbGFjZW1lbnRzLCcsXG4gICAgJyAgICB9KTsnLFxuICAgICcgIH0nLFxuICAgICd9JyxcbiAgICAnJyxcbiAgXS5qb2luKCdcXG4nKTtcbn1cblxuZnVuY3Rpb24gdG9QYXNjYWxDYXNlKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0clxuICAgIC5zcGxpdCgvWy1fXFxzXSsvKVxuICAgIC5tYXAod29yZCA9PiB3b3JkLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgd29yZC5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKVxuICAgIC5qb2luKCcnKTtcbn1cblxuZnVuY3Rpb24gdG9DbGFzc05hbWUoYmFzZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHBhc2NhbCA9IHRvUGFzY2FsQ2FzZShiYXNlTmFtZSk7XG4gIGlmIChwYXNjYWwudG9Mb3dlckNhc2UoKS5lbmRzV2l0aCgnd29ya2Zsb3cnKSkge1xuICAgIHJldHVybiBwYXNjYWwuc2xpY2UoMCwgLTgpICsgJ1dvcmtmbG93JztcbiAgfVxuICByZXR1cm4gcGFzY2FsICsgJ1dvcmtmbG93Jztcbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- import { TextFile } from 'projen';
2
- import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
3
- export declare class WorkflowProviderFile extends TextFile {
4
- constructor(project: AwsCdkTypeScriptApp);
5
- }