* 1.01.08 2014-01-28

- Ya contamos con timbrado redundante por configuración.
Si falla tu PAC principal y quieres timbrar con tu PAC secundario,
puedes usar un archivo llamado facturista.conf con lo siguiente:

PAC
        {
        # La llave Obligado hace que se omita la cadena de timbrado del programa y se reemplace por lo que contenga CadenaTimbrado
        Obligado
                {
                # Aqui va la cadena de conexion para timbrar con el PAC secundario
                CadenaTimbrado=
                }
        }


- Agregado timbrado con PAC Facture Hoy

- Soporte para conexiones SSL con Ecodex

- Correccion a cancelacion con el PAC Folios Digitales

- Soporte para timbrado en producción con el PAC ATEB

- Se busca el directorio xslt/ al inicio, si se encuentra, un cambio de directorio de trabajo
del programa ya no afecta a cfdi_cadena_original() o cfdi_sellar_pkcs8().

- Soporte para que los archivos INI puedan transferir información al archivo
 de procesamiento postimbrado (libfacturista_postim.sh o libfacturista_postim.bat)
 
- Soporte para extension INI (con mayusculas)

- Función para agregar o ponerle el valor a un atributo:
int xml_node_set_attribute(hnode h, scfdi nombre, scfdi valor)

- Compilacion en versión DEMO para quienes requieren ejecución paso a paso en su IDE


* 1.01.07 2013-12-13

- Actualizadas funciones de nómina con las definiciones del SAT del 11 de dic. del 2013

- Agregada la recuperación del acuse de cancelación de Ecodex.
	Ponga el parámetro "Acuse=1" en la función cfdi_cancelar() y si hubo éxito
	recupere el acuse con cfdi_resultado() .
	Si usa ese parámetro, no se intenta cancelar, sólo se obtiene el acuse en caso de existir.

- Agregada cancelación en producción con el PAC Folios Digitales

- Mejorado el monitoreo de carpetas
	Cuando inicia el monitoreo se intentan timbrar los CFDIs en la carpeta fuente,
	por si habian quedado retrasados o pendientes.

- Mejorado el procesamiento de archivos INI
	Se permiten valores multilínea finalizandolos con \ para indicar que se debe unir con el
	texto de la línea siguiente
	
	Se permite definir la codificación para la conversión adecuada de los valores;
	se establece poniendo en una línea ;encoding=ansi o ;encoding=utf8

- xml_serialize() mejorado para devolver el xml en más formatos:
	0. formato XML simple
	1. formato XML decorado
	2. formato INI
	3. formato jerárquico o multinivel	

- Agregadas funciones para el Complemento Impuestos Locales del CFDI:

	cfdi_implocal(), cfdi_implocal_retenciones_locales(), cfdi_implocal_traslados_locales()
	
- Agregadas funciones para creacion de texto INI en memoria:

	ini_start(), ini_value(), ini_section(), ini_comment(), ini_finish()


* 1.01.06 2013-11-24

- Agregamos funciones para crear el Complemento Nomina del CFDI:

	cfdi_nomina(), cfdi_nomina_percepciones(), cfdi_nomina_percepcion(),
	cfdi_nomina_deducciones(), cfdi_nomina_deduccion(),
	cfdi_nomina_incapacidad(), cfdi_nomina_horas_extra()
	
	Ver los detalles en la lista completa de funciones de la DLL.
	
- Agregamos timbrado con PAC Facturaxion

- La función de cfdi_cadena_original() o el sellado, que hace uso de ella,
devuelven error en caso de que no se encuentre el archivo xslt.

- Se agrega recolector de memoria sin uso. set_gc(1) hará que las cadenas
dinámicas devueltas se liberen al llamar a cfdi_destruir() .

- Agregamos complemento iedu (Instituciones Educativas):

	cfdi_iedu()


* 1.01.05 2013-11-01

- Soporte multihilo. Se puede usar en ambientes con concurrencia de hilos,
como servidores HTTP o web como IIS+ASP o Apache+PHP .


* 1.01.04 2013-10-17

- Soporte para COM (ActiveX). Se pueden crear objetos para acceder a la DLL
desde VB, ASP, PHP para Windows, etc.

- Soporte Unicode. La transferencia de cadenas entre la DLL y los programas
cliente puede usar Unicode (UTF16).


* 1.01.03 2013-09-12

- El XML a timbrar ahora puede tener un tamaño arbitrario; tenía el límite de 15 KB.
     Ha sido probado exitosamente con un CFDI de 600 KB .
  Puede poner cientos o miles de conceptos, el límite será lo que soporte el PAC.

- Mejora en la administracion de memoria de las cadenas devueltas.

- La dll de C# tiene el espacio de nombres libfacturista,
se elimina la clase estática libfacturistaApi y se exportan 2 nuevas clases estáticas:
ansiApi y utf16Api, ambas con los mismos nombres de funciones, sin el prefijo _ .
Para que se haga la conversión automática de cadenas de Windows a Ansi:

    ansiApi.libfacturista_version();

- Mejora en dll de C# para no depender de _libfacturista.dll, ahora sólo depende de libfacturista.dll
    En los programas que usen la dll de C#, deben llamar una vez, antes de cualquier otra funcion

    a la funcion ansiApi.init() o utf16Api.init().

- Las funciones de la dll de C# que devuelven cadenas, devuelven ahora el tipo string en vez de IntPtr,
por lo que ya no se necesita hacer conversiones como Marshal.PtrToStringAnsi()