+ * Map of all Guacamole binary raster operations to transfer functions.
+ * @private
+ */
+ var binaryCompositeTransferFunction = {
+
+ 0x10: function (src, dst) { return 0x00; }, /* BLACK */
+ 0x1F: function (src, dst) { return 0xFF; }, /* WHITE */
+
+ 0x13: function (src, dst) { return src; }, /* SRC */
+ 0x15: function (src, dst) { return dst; }, /* DEST */
+ 0x1C: function (src, dst) { return ~src; }, /* NSRC */
+ 0x1A: function (src, dst) { return ~dst; }, /* NDEST */
+
+ 0x11: function (src, dst) { return src & dst; }, /* AND */
+ 0x1E: function (src, dst) { return ~(src & dst); }, /* NAND */
+
+ 0x17: function (src, dst) { return src | dst; }, /* OR */
+ 0x18: function (src, dst) { return ~(src | dst); }, /* NOR */
+
+ 0x16: function (src, dst) { return src ^ dst; }, /* XOR */
+ 0x19: function (src, dst) { return ~(src ^ dst); }, /* XNOR */
+
+ 0x14: function (src, dst) { return ~src & dst; }, /* AND inverted source */
+ 0x1D: function (src, dst) { return ~src | dst; }, /* OR inverted source */
+ 0x12: function (src, dst) { return src & ~dst; }, /* AND inverted destination */
+ 0x1B: function (src, dst) { return src | ~dst; } /* OR inverted destination */
+
+ };
+
+ /**