| ;(function (root, factory, undef) { | 
|     if (typeof exports === "object") { | 
|         // CommonJS | 
|         module.exports = exports = factory(require("./core"), require("./cipher-core")); | 
|     } | 
|     else if (typeof define === "function" && define.amd) { | 
|         // AMD | 
|         define(["./core", "./cipher-core"], factory); | 
|     } | 
|     else { | 
|         // Global (browser) | 
|         factory(root.CryptoJS); | 
|     } | 
| }(this, function (CryptoJS) { | 
|   | 
|     /** | 
|      * ANSI X.923 padding strategy. | 
|      */ | 
|     CryptoJS.pad.AnsiX923 = { | 
|         pad: function (data, blockSize) { | 
|             // Shortcuts | 
|             var dataSigBytes = data.sigBytes; | 
|             var blockSizeBytes = blockSize * 4; | 
|   | 
|             // Count padding bytes | 
|             var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; | 
|   | 
|             // Compute last byte position | 
|             var lastBytePos = dataSigBytes + nPaddingBytes - 1; | 
|   | 
|             // Pad | 
|             data.clamp(); | 
|             data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); | 
|             data.sigBytes += nPaddingBytes; | 
|         }, | 
|   | 
|         unpad: function (data) { | 
|             // Get number of padding bytes from last byte | 
|             var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; | 
|   | 
|             // Remove padding | 
|             data.sigBytes -= nPaddingBytes; | 
|         } | 
|     }; | 
|   | 
|   | 
|     return CryptoJS.pad.Ansix923; | 
|   | 
| })); |