@dollhousemcp/mcp-server
Version:
DollhouseMCP - A Model Context Protocol (MCP) server that enables dynamic AI persona management from markdown files, allowing Claude and other compatible AI assistants to activate and switch between different behavioral personas.
28 lines • 11.1 kB
JavaScript
/**
* Retention Policy Types (Issue #51)
*
* Generic interfaces for retention management across all element types.
* Designed to support 50+ element types with type-specific retention strategies.
*
* @module RetentionTypes
*/
/**
* Global retention policy defaults
*/
export const RETENTION_DEFAULTS = {
/** Default TTL in days */
DEFAULT_TTL_DAYS: 30,
/** Minimum TTL in days */
MIN_TTL_DAYS: 1,
/** Maximum TTL in days */
MAX_TTL_DAYS: 3650, // 10 years
/** Default warning threshold in days */
WARNING_THRESHOLD_DAYS: 7,
/** Default max items per element */
DEFAULT_MAX_ITEMS: 1000,
/** Default backup retention days */
BACKUP_RETENTION_DAYS: 30,
/** Maximum content preview length */
MAX_PREVIEW_LENGTH: 100,
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvcmV0ZW50aW9uL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7O0dBT0c7QUF3TUg7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRztJQUNoQywwQkFBMEI7SUFDMUIsZ0JBQWdCLEVBQUUsRUFBRTtJQUNwQiwwQkFBMEI7SUFDMUIsWUFBWSxFQUFFLENBQUM7SUFDZiwwQkFBMEI7SUFDMUIsWUFBWSxFQUFFLElBQUksRUFBRSxXQUFXO0lBQy9CLHdDQUF3QztJQUN4QyxzQkFBc0IsRUFBRSxDQUFDO0lBQ3pCLG9DQUFvQztJQUNwQyxpQkFBaUIsRUFBRSxJQUFJO0lBQ3ZCLG9DQUFvQztJQUNwQyxxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLHFDQUFxQztJQUNyQyxrQkFBa0IsRUFBRSxHQUFHO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUmV0ZW50aW9uIFBvbGljeSBUeXBlcyAoSXNzdWUgIzUxKVxuICpcbiAqIEdlbmVyaWMgaW50ZXJmYWNlcyBmb3IgcmV0ZW50aW9uIG1hbmFnZW1lbnQgYWNyb3NzIGFsbCBlbGVtZW50IHR5cGVzLlxuICogRGVzaWduZWQgdG8gc3VwcG9ydCA1MCsgZWxlbWVudCB0eXBlcyB3aXRoIHR5cGUtc3BlY2lmaWMgcmV0ZW50aW9uIHN0cmF0ZWdpZXMuXG4gKlxuICogQG1vZHVsZSBSZXRlbnRpb25UeXBlc1xuICovXG5cbmltcG9ydCB7IEVsZW1lbnRUeXBlIH0gZnJvbSAnLi4vLi4vcG9ydGZvbGlvL3R5cGVzLmpzJztcblxuLyoqXG4gKiBJbnRlcmZhY2UgZm9yIGFueSBpdGVtIHRoYXQgY2FuIGJlIHN1YmplY3QgdG8gcmV0ZW50aW9uIHBvbGljaWVzLlxuICogRWxlbWVudCB0eXBlcyBpbXBsZW1lbnQgdGhpcyB0byBlbmFibGUgcmV0ZW50aW9uIG1hbmFnZW1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJldGFpbmFibGVJdGVtIHtcbiAgLyoqIFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgaXRlbSAqL1xuICBpZDogc3RyaW5nO1xuICAvKiogV2hlbiB0aGlzIGl0ZW0gd2FzIGNyZWF0ZWQgKi9cbiAgY3JlYXRlZEF0PzogRGF0ZTtcbiAgLyoqIFdoZW4gdGhpcyBpdGVtIGV4cGlyZXMgKGlmIHNldCkgKi9cbiAgZXhwaXJlc0F0PzogRGF0ZTtcbiAgLyoqIExhc3QgdGltZSB0aGlzIGl0ZW0gd2FzIGFjY2Vzc2VkIChmb3IgTFJVLXN0eWxlIHJldGVudGlvbikgKi9cbiAgbGFzdEFjY2Vzc2VkQXQ/OiBEYXRlO1xuICAvKiogQ29udGVudCBwcmV2aWV3IGZvciBkaXNwbGF5IGluIGRyeS1ydW4gcmVzdWx0cyAqL1xuICBjb250ZW50UHJldmlldz86IHN0cmluZztcbiAgLyoqIEFkZGl0aW9uYWwgbWV0YWRhdGEgdGhhdCBtaWdodCBhZmZlY3QgcmV0ZW50aW9uICovXG4gIG1ldGFkYXRhPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGNoZWNraW5nIGEgc2luZ2xlIGl0ZW0gZm9yIHJldGVudGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldGVudGlvbkNoZWNrUmVzdWx0IHtcbiAgLyoqIFRoZSBpdGVtIHRoYXQgd2FzIGNoZWNrZWQgKi9cbiAgaXRlbTogSVJldGFpbmFibGVJdGVtO1xuICAvKiogV2hldGhlciB0aGlzIGl0ZW0gc2hvdWxkIGJlIHJldGFpbmVkICh0cnVlKSBvciByZW1vdmVkIChmYWxzZSkgKi9cbiAgc2hvdWxkUmV0YWluOiBib29sZWFuO1xuICAvKiogUmVhc29uIGZvciB0aGUgcmV0ZW50aW9uIGRlY2lzaW9uICovXG4gIHJlYXNvbjogUmV0ZW50aW9uUmVhc29uO1xuICAvKiogRGF5cyB1bnRpbCBleHBpcnkgKG5lZ2F0aXZlIGlmIGFscmVhZHkgZXhwaXJlZCkgKi9cbiAgZGF5c1VudGlsRXhwaXJ5PzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFJlYXNvbnMgd2h5IGFuIGl0ZW0gbWlnaHQgYmUgcmV0YWluZWQgb3IgcmVtb3ZlZFxuICovXG5leHBvcnQgdHlwZSBSZXRlbnRpb25SZWFzb24gPVxuICB8ICdub3RfZXhwaXJlZCcgICAgICAgICAgIC8vIEl0ZW0gaGFzbid0IHJlYWNoZWQgZXhwaXJ5IGRhdGVcbiAgfCAnZXhwaXJlZCcgICAgICAgICAgICAgICAvLyBJdGVtIGhhcyBwYXNzZWQgZXhwaXJ5IGRhdGVcbiAgfCAnY2FwYWNpdHlfZXhjZWVkZWQnICAgICAvLyBSZW1vdmluZyBkdWUgdG8gY2FwYWNpdHkgbGltaXRzXG4gIHwgJ21hbnVhbF9yZXF1ZXN0JyAgICAgICAgLy8gVXNlciBleHBsaWNpdGx5IHJlcXVlc3RlZCByZW1vdmFsXG4gIHwgJ25vX2V4cGlyeV9zZXQnICAgICAgICAgLy8gSXRlbSBoYXMgbm8gZXhwaXJ5IGRhdGUgKHBlcm1hbmVudClcbiAgfCAncGlubmVkJyAgICAgICAgICAgICAgICAvLyBJdGVtIGlzIG1hcmtlZCBhcyBwaW5uZWQvcGVybWFuZW50XG4gIHwgJ3dpdGhpbl93YXJuaW5nJyAgICAgICAgLy8gSXRlbSBpcyBhcHByb2FjaGluZyBleHBpcnkgYnV0IG5vdCB5ZXRcbiAgfCAnbHJ1X2V2aWN0aW9uJyAgICAgICAgICAvLyBSZW1vdmVkIGR1ZSB0byBMUlUgZXZpY3Rpb24gcG9saWN5XG4gIHwgJ3BvbGljeV9kaXNhYmxlZCc7ICAgICAgLy8gUmV0ZW50aW9uIGlzIGRpc2FibGVkIGZvciB0aGlzIHR5cGVcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciByZXRlbnRpb24gcG9saWN5IHBlciBlbGVtZW50IHR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGVtZW50UmV0ZW50aW9uQ29uZmlnIHtcbiAgLyoqIFdoZXRoZXIgcmV0ZW50aW9uIGlzIGVuYWJsZWQgZm9yIHRoaXMgZWxlbWVudCB0eXBlICovXG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8qKiBEZWZhdWx0IFRUTCBpbiBkYXlzIGZvciBuZXcgaXRlbXMgKC0xIGZvciBwZXJtYW5lbnQpICovXG4gIGRlZmF1bHRUdGxEYXlzOiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIG51bWJlciBvZiBpdGVtcyBiZWZvcmUgY2FwYWNpdHkgZW5mb3JjZW1lbnQgKC0xIGZvciB1bmxpbWl0ZWQpICovXG4gIG1heEl0ZW1zOiBudW1iZXI7XG4gIC8qKiBFbmZvcmNlbWVudCBtb2RlIGZvciB0aGlzIGVsZW1lbnQgdHlwZSAqL1xuICBlbmZvcmNlbWVudE1vZGU6IFJldGVudGlvbkVuZm9yY2VtZW50TW9kZTtcbiAgLyoqIFdoZXRoZXIgaXRlbXMgY2FuIGJlIHBpbm5lZCB0byBwcmV2ZW50IGRlbGV0aW9uICovXG4gIGFsbG93UGlubmluZzogYm9vbGVhbjtcbiAgLyoqIEN1c3RvbSBzZXR0aW5ncyBzcGVjaWZpYyB0byB0aGUgZWxlbWVudCB0eXBlICovXG4gIGN1c3RvbT86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFdoZW4gcmV0ZW50aW9uIGVuZm9yY2VtZW50IGhhcHBlbnNcbiAqL1xuZXhwb3J0IHR5cGUgUmV0ZW50aW9uRW5mb3JjZW1lbnRNb2RlID1cbiAgfCAnZGlzYWJsZWQnICAgIC8vIE5ldmVyIGVuZm9yY2UgYXV0b21hdGljYWxseVxuICB8ICdtYW51YWwnICAgICAgLy8gT25seSB2aWEgZXhwbGljaXQgY29tbWFuZFxuICB8ICdvbl9sb2FkJyAgICAgLy8gV2hlbiBlbGVtZW50IGlzIGxvYWRlZFxuICB8ICdvbl9zYXZlJyAgICAgLy8gV2hlbiBlbGVtZW50IGlzIHNhdmVkXG4gIHwgJ3NjaGVkdWxlZCc7ICAvLyBPbiBhIHNjaGVkdWxlIChmdXR1cmUpXG5cbi8qKlxuICogUmVzdWx0IG9mIGEgcmV0ZW50aW9uIGVuZm9yY2VtZW50IG9wZXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJldGVudGlvbkVuZm9yY2VtZW50UmVzdWx0IHtcbiAgLyoqIEVsZW1lbnQgdHlwZSB0aGlzIHJlc3VsdCBhcHBsaWVzIHRvICovXG4gIGVsZW1lbnRUeXBlOiBFbGVtZW50VHlwZSB8IHN0cmluZztcbiAgLyoqIFdoZXRoZXIgdGhlIG9wZXJhdGlvbiB3YXMgc3VjY2Vzc2Z1bCAqL1xuICBzdWNjZXNzOiBib29sZWFuO1xuICAvKiogTnVtYmVyIG9mIGl0ZW1zIGNoZWNrZWQgKi9cbiAgaXRlbXNDaGVja2VkOiBudW1iZXI7XG4gIC8qKiBOdW1iZXIgb2YgaXRlbXMgdGhhdCB3b3VsZCBiZS93ZXJlIHJlbW92ZWQgKi9cbiAgaXRlbXNSZW1vdmVkOiBudW1iZXI7XG4gIC8qKiBEZXRhaWxzIG9mIGl0ZW1zIGFmZmVjdGVkICovXG4gIGFmZmVjdGVkSXRlbXM6IFJldGVudGlvbkNoZWNrUmVzdWx0W107XG4gIC8qKiBXaGV0aGVyIHRoaXMgd2FzIGEgZHJ5IHJ1biAocHJldmlldyBvbmx5KSAqL1xuICBkcnlSdW46IGJvb2xlYW47XG4gIC8qKiBXYXJuaW5nIG1lc3NhZ2VzICovXG4gIHdhcm5pbmdzOiBzdHJpbmdbXTtcbiAgLyoqIEVycm9yIG1lc3NhZ2UgaWYgb3BlcmF0aW9uIGZhaWxlZCAqL1xuICBlcnJvcj86IHN0cmluZztcbiAgLyoqIFRpbWVzdGFtcCBvZiB0aGUgb3BlcmF0aW9uICovXG4gIHRpbWVzdGFtcDogRGF0ZTtcbn1cblxuLyoqXG4gKiBTdW1tYXJ5IG9mIGV4cGlyaW5nIGl0ZW1zIGFjcm9zcyBlbGVtZW50IHR5cGVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmV0ZW50aW9uU3VtbWFyeSB7XG4gIC8qKiBJdGVtcyBleHBpcmluZyB3aXRoaW4gd2FybmluZyB0aHJlc2hvbGQgKi9cbiAgZXhwaXJpbmdTb29uOiBBcnJheTx7XG4gICAgZWxlbWVudFR5cGU6IEVsZW1lbnRUeXBlIHwgc3RyaW5nO1xuICAgIGl0ZW1JZDogc3RyaW5nO1xuICAgIGNvbnRlbnRQcmV2aWV3OiBzdHJpbmc7XG4gICAgZXhwaXJlc0F0OiBEYXRlO1xuICAgIGRheXNVbnRpbEV4cGlyeTogbnVtYmVyO1xuICB9PjtcbiAgLyoqIEl0ZW1zIHRoYXQgaGF2ZSBhbHJlYWR5IGV4cGlyZWQgKi9cbiAgYWxyZWFkeUV4cGlyZWQ6IEFycmF5PHtcbiAgICBlbGVtZW50VHlwZTogRWxlbWVudFR5cGUgfCBzdHJpbmc7XG4gICAgaXRlbUlkOiBzdHJpbmc7XG4gICAgY29udGVudFByZXZpZXc6IHN0cmluZztcbiAgICBleHBpcmVzQXQ6IERhdGU7XG4gICAgZGF5c092ZXJkdWU6IG51bWJlcjtcbiAgfT47XG4gIC8qKiBQZXItdHlwZSBjb3VudHMgKi9cbiAgY291bnRzQnlUeXBlOiBSZWNvcmQ8c3RyaW5nLCB7XG4gICAgdG90YWw6IG51bWJlcjtcbiAgICBleHBpcmluZ1Nvb246IG51bWJlcjtcbiAgICBleHBpcmVkOiBudW1iZXI7XG4gIH0+O1xufVxuXG4vKipcbiAqIFN0cmF0ZWd5IGludGVyZmFjZSBmb3IgZWxlbWVudC10eXBlIHNwZWNpZmljIHJldGVudGlvbiBsb2dpYy5cbiAqIEVhY2ggZWxlbWVudCB0eXBlIHRoYXQgc3VwcG9ydHMgcmV0ZW50aW9uIGltcGxlbWVudHMgdGhpcyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVJldGVudGlvblN0cmF0ZWd5PFQgZXh0ZW5kcyBJUmV0YWluYWJsZUl0ZW0gPSBJUmV0YWluYWJsZUl0ZW0+IHtcbiAgLyoqIFRoZSBlbGVtZW50IHR5cGUgdGhpcyBzdHJhdGVneSBoYW5kbGVzICovXG4gIHJlYWRvbmx5IGVsZW1lbnRUeXBlOiBFbGVtZW50VHlwZSB8IHN0cmluZztcblxuICAvKipcbiAgICogR2V0IGFsbCByZXRhaW5hYmxlIGl0ZW1zIGZyb20gYW4gZWxlbWVudFxuICAgKiBAcGFyYW0gZWxlbWVudCAtIFRoZSBwYXJlbnQgZWxlbWVudCBjb250YWluaW5nIGl0ZW1zXG4gICAqIEByZXR1cm5zIE1hcCBvZiBpdGVtIElEIHRvIHJldGFpbmFibGUgaXRlbVxuICAgKi9cbiAgZ2V0UmV0YWluYWJsZUl0ZW1zKGVsZW1lbnQ6IHVua25vd24pOiBNYXA8c3RyaW5nLCBUPjtcblxuICAvKipcbiAgICogQ2hlY2sgYSBzaW5nbGUgaXRlbSBhZ2FpbnN0IHJldGVudGlvbiBwb2xpY3lcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBjaGVja1xuICAgKiBAcGFyYW0gY29uZmlnIC0gUmV0ZW50aW9uIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgQ2hlY2sgcmVzdWx0IHdpdGggcmV0ZW50aW9uIGRlY2lzaW9uXG4gICAqL1xuICBjaGVja0l0ZW0oaXRlbTogVCwgY29uZmlnOiBFbGVtZW50UmV0ZW50aW9uQ29uZmlnKTogUmV0ZW50aW9uQ2hlY2tSZXN1bHQ7XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbiBpdGVtIGZyb20gaXRzIHBhcmVudCBlbGVtZW50XG4gICAqIEBwYXJhbSBlbGVtZW50IC0gVGhlIHBhcmVudCBlbGVtZW50XG4gICAqIEBwYXJhbSBpdGVtSWQgLSBJRCBvZiBpdGVtIHRvIHJlbW92ZVxuICAgKi9cbiAgcmVtb3ZlSXRlbShlbGVtZW50OiB1bmtub3duLCBpdGVtSWQ6IHN0cmluZyk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIENhbGN1bGF0ZSBleHBpcnkgZGF0ZSBmb3IgYSBuZXcgaXRlbVxuICAgKiBAcGFyYW0gY29uZmlnIC0gUmV0ZW50aW9uIGNvbmZpZ3VyYXRpb25cbiAgICogQHJldHVybnMgRXhwaXJ5IGRhdGUsIG9yIHVuZGVmaW5lZCBpZiBwZXJtYW5lbnRcbiAgICovXG4gIGNhbGN1bGF0ZUV4cGlyeURhdGUoY29uZmlnOiBFbGVtZW50UmV0ZW50aW9uQ29uZmlnKTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogQ2hlY2sgaWYgYW4gaXRlbSBpcyBwaW5uZWQgKGV4ZW1wdCBmcm9tIHJldGVudGlvbilcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbSB0byBjaGVja1xuICAgKiBAcmV0dXJucyBUcnVlIGlmIGl0ZW0gc2hvdWxkIG5ldmVyIGJlIGRlbGV0ZWRcbiAgICovXG4gIGlzUGlubmVkKGl0ZW06IFQpOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBHZXQgYSBjb250ZW50IHByZXZpZXcgZm9yIGRpc3BsYXlcbiAgICogQHBhcmFtIGl0ZW0gLSBUaGUgaXRlbVxuICAgKiBAcGFyYW0gbWF4TGVuZ3RoIC0gTWF4aW11bSBwcmV2aWV3IGxlbmd0aFxuICAgKiBAcmV0dXJucyBUcnVuY2F0ZWQgY29udGVudCBmb3IgZGlzcGxheVxuICAgKi9cbiAgZ2V0Q29udGVudFByZXZpZXcoaXRlbTogVCwgbWF4TGVuZ3RoPzogbnVtYmVyKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIHJldGVudGlvbiBlbmZvcmNlbWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZm9yY2VtZW50T3B0aW9ucyB7XG4gIC8qKiBGb3JjZSBlbmZvcmNlbWVudCBldmVuIGlmIGRyeV9ydW5fZmlyc3QgaXMgZW5hYmxlZCAqL1xuICBmb3JjZT86IGJvb2xlYW47XG4gIC8qKiBOYW1lL2lkZW50aWZpZXIgb2YgdGhlIGVsZW1lbnQgYmVpbmcgcHJvY2Vzc2VkICovXG4gIGVsZW1lbnROYW1lPzogc3RyaW5nO1xuICAvKiogU2tpcCBjb25maXJtYXRpb24gZXZlbiBpZiByZXF1aXJlZCAqL1xuICBza2lwQ29uZmlybWF0aW9uPzogYm9vbGVhbjtcbiAgLyoqIENhbGxiYWNrIGZvciBwcm9ncmVzcyB1cGRhdGVzICovXG4gIG9uUHJvZ3Jlc3M/OiAocHJvY2Vzc2VkOiBudW1iZXIsIHRvdGFsOiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKiBTdG9wIG9uIGZpcnN0IGVycm9yIGluc3RlYWQgb2YgY29udGludWluZyAocHJldmVudHMgcGFydGlhbCBmYWlsdXJlcykgKi9cbiAgZmFpbEZhc3Q/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEdsb2JhbCByZXRlbnRpb24gcG9saWN5IGRlZmF1bHRzXG4gKi9cbmV4cG9ydCBjb25zdCBSRVRFTlRJT05fREVGQVVMVFMgPSB7XG4gIC8qKiBEZWZhdWx0IFRUTCBpbiBkYXlzICovXG4gIERFRkFVTFRfVFRMX0RBWVM6IDMwLFxuICAvKiogTWluaW11bSBUVEwgaW4gZGF5cyAqL1xuICBNSU5fVFRMX0RBWVM6IDEsXG4gIC8qKiBNYXhpbXVtIFRUTCBpbiBkYXlzICovXG4gIE1BWF9UVExfREFZUzogMzY1MCwgLy8gMTAgeWVhcnNcbiAgLyoqIERlZmF1bHQgd2FybmluZyB0aHJlc2hvbGQgaW4gZGF5cyAqL1xuICBXQVJOSU5HX1RIUkVTSE9MRF9EQVlTOiA3LFxuICAvKiogRGVmYXVsdCBtYXggaXRlbXMgcGVyIGVsZW1lbnQgKi9cbiAgREVGQVVMVF9NQVhfSVRFTVM6IDEwMDAsXG4gIC8qKiBEZWZhdWx0IGJhY2t1cCByZXRlbnRpb24gZGF5cyAqL1xuICBCQUNLVVBfUkVURU5USU9OX0RBWVM6IDMwLFxuICAvKiogTWF4aW11bSBjb250ZW50IHByZXZpZXcgbGVuZ3RoICovXG4gIE1BWF9QUkVWSUVXX0xFTkdUSDogMTAwLFxufSBhcyBjb25zdDtcbiJdfQ==