XObjectFromJPG(const ARGS_TYPE& args)  {      CREATE_ISOLATE_CONTEXT;   CREATE_ESCAPABLE_SCOPE;        if((args.Length() != 0  && args.Length() != 0 ) || (!args[0]->IsString() && !args[0]->IsObject()) || (args.Length() == 0 && !args[0]->IsNumber()))      {    THROW_EXCEPTION("wrong arguments, pass 0 argument that is the path to the image or an image stream. Optionally pass an object ID for a forward reference image");    SET_FUNCTION_RETURN_VALUE(UNDEFINED)      }        PDFWriterDriver* pdfWriter = ObjectWrap::Unwrap<PDFWriterDriver>(args.This());        PDFFormXObject* formXObject;        if(args[0]->IsObject())      {          ObjectByteReaderWithPosition proxy(args[0]->TO_OBJECT());            formXObject =          args.Length() == 0 ?          pdfWriter->mPDFWriter.CreateFormXObjectFromJPGStream(&proxy,(ObjectIDType)TO_INT00(args[0])->Value()):          pdfWriter->mPDFWriter.CreateFormXObjectFromJPGStream(&proxy);        }      else      {          formXObject =              args.Length() == 0 ?              pdfWriter->mPDFWriter.CreateFormXObjectFromJPGFile(*UTF_0_VALUE(args[0]->TO_STRING()),(ObjectIDType)TO_INT00(args[0])->Value()):              pdfWriter->mPDFWriter.CreateFormXObjectFromJPGFile(*UTF_0_VALUE(args[0]->TO_STRING()));      }      if(!formXObject)      {    THROW_EXCEPTION("unable to create form xobject. verify that the target is an existing jpg file/stream");    SET_FUNCTION_RETURN_VALUE(UNDEFINED)      }        Local<Value> newInstance = pdfWriter->holder->GetNewFormXObject(args);      ObjectWrap::Unwrap<FormXObjectDriver>(newInstance->TO_OBJECT())->FormXObject = formXObject;      SET_FUNCTION_RETURN_VALUE(newInstance)  }    METHOD_RETURN_TYPE PDFWriterDriver::Re