[oe] [meta-oe][PATCH 2/2] Tidy up unused files

Paul Eggleton paul.eggleton at linux.intel.com
Fri Feb 24 10:12:36 UTC 2012


In 3fdcb18dd6861f442f18c7c3a1638e9c8e158b83 the cups and ldconfig-native
recipes were removed but the associated files weren't, so remove those
as well.

Signed-off-by: Paul Eggleton <paul.eggleton at linux.intel.com>
---
 .../eglibc/ldconfig-native-2.12.1/32and64bit.patch |  331 --------------
 .../eglibc/ldconfig-native-2.12.1/README           |    8 -
 .../endian-ness_handling.patch                     |  454 -------------------
 .../ldconfig-native-2.12.1/endianess-header.patch  |  113 -----
 .../eglibc/ldconfig-native-2.12.1/flag_fix.patch   |   24 -
 .../ldconfig-native-2.12.1.tar.bz2                 |  Bin 21491 -> 0 bytes
 .../eglibc/ldconfig-native-2.12.1/ldconfig.patch   |  471 --------------------
 .../ldconfig_aux-cache_path_fix.patch              |   36 --
 .../0001-don-t-try-to-run-generated-binaries.patch |   68 ---
 .../cups/cups-1.4.6/use_echo_only_in_init.patch    |   11 -
 meta-oe/recipes-support/cups/cups14.inc            |   84 ----
 11 files changed, 0 insertions(+), 1600 deletions(-)
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/README
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig-native-2.12.1.tar.bz2
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch
 delete mode 100644 meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch
 delete mode 100644 meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch
 delete mode 100644 meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch
 delete mode 100644 meta-oe/recipes-support/cups/cups14.inc

diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch
deleted file mode 100644
index cdfeaea..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/32and64bit.patch
+++ /dev/null
@@ -1,331 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-We run the ldconfig in the cross fashion. make the code bitsize aware so that 
-we can cross build ldconfig cache for various architectures.
-
-Richard Purdie <richard.purdie at linuxfoundation.org> 2009/05/19
-Nitin A Kamble <nitin.a.kamble at intel.com> 2009/03/29
-
-Index: ldconfig-native-2.12.1/readelflib.c
-===================================================================
---- ldconfig-native-2.12.1.orig/readelflib.c
-+++ ldconfig-native-2.12.1/readelflib.c
-@@ -40,39 +40,212 @@ do								\
- 
- /* Returns 0 if everything is ok, != 0 in case of error.  */
- int
--process_elf_file (const char *file_name, const char *lib, int *flag,
-+process_elf_file32 (const char *file_name, const char *lib, int *flag,
- 		  unsigned int *osversion, char **soname, void *file_contents,
- 		  size_t file_length)
- {
-   int i;
-   unsigned int j;
--  ElfW(Addr) loadaddr;
-+  Elf32_Addr loadaddr;
-   unsigned int dynamic_addr;
-   size_t dynamic_size;
-   char *program_interpreter;
- 
--  ElfW(Ehdr) *elf_header;
--  ElfW(Phdr) *elf_pheader, *segment;
--  ElfW(Dyn) *dynamic_segment, *dyn_entry;
-+  Elf32_Ehdr *elf_header;
-+  Elf32_Phdr *elf_pheader, *segment;
-+  Elf32_Dyn *dynamic_segment, *dyn_entry;
-   char *dynamic_strings;
- 
--  elf_header = (ElfW(Ehdr) *) file_contents;
-+  elf_header = (Elf32_Ehdr *) file_contents;
-   *osversion = 0;
- 
--  if (elf_header->e_ident [EI_CLASS] != ElfW (CLASS))
-+  if (elf_header->e_type != ET_DYN)
-     {
--      if (opt_verbose)
-+      error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name,
-+	     elf_header->e_type);
-+      return 1;
-+    }
-+
-+  /* Get information from elf program header.  */
-+  elf_pheader = (Elf32_Phdr *) (elf_header->e_phoff + file_contents);
-+  check_ptr (elf_pheader);
-+
-+  /* The library is an elf library, now search for soname and
-+     libc5/libc6.  */
-+  *flag = FLAG_ELF;
-+
-+  loadaddr = -1;
-+  dynamic_addr = 0;
-+  dynamic_size = 0;
-+  program_interpreter = NULL;
-+  for (i = 0, segment = elf_pheader;
-+       i < elf_header->e_phnum; i++, segment++)
-+    {
-+      check_ptr (segment);
-+
-+      switch (segment->p_type)
- 	{
--	  if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
--	    error (0, 0, _("%s is a 32 bit ELF file.\n"), file_name);
--	  else if (elf_header->e_ident [EI_CLASS] == ELFCLASS64)
--	    error (0, 0, _("%s is a 64 bit ELF file.\n"), file_name);
--	  else
--	    error (0, 0, _("Unknown ELFCLASS in file %s.\n"), file_name);
-+	case PT_LOAD:
-+	  if (loadaddr == (Elf32_Addr) -1)
-+	    loadaddr = segment->p_vaddr - segment->p_offset;
-+	  break;
-+
-+	case PT_DYNAMIC:
-+	  if (dynamic_addr)
-+	    error (0, 0, _("more than one dynamic segment\n"));
-+
-+	  dynamic_addr = segment->p_offset;
-+	  dynamic_size = segment->p_filesz;
-+	  break;
-+
-+	case PT_INTERP:
-+	  program_interpreter = (char *) (file_contents + segment->p_offset);
-+	  check_ptr (program_interpreter);
-+
-+	  /* Check if this is enough to classify the binary.  */
-+	  for (j = 0; j < sizeof (interpreters) / sizeof (interpreters [0]);
-+	       ++j)
-+	    if (strcmp (program_interpreter, interpreters[j].soname) == 0)
-+	      {
-+		*flag = interpreters[j].flag;
-+		break;
-+	      }
-+	  break;
-+
-+	case PT_NOTE:
-+	  if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4)
-+	    {
-+	      Elf32_Word *abi_note = (Elf32_Word *) (file_contents
-+						     + segment->p_offset);
-+	      Elf32_Addr size = segment->p_filesz;
-+
-+	      while (abi_note [0] != 4 || abi_note [1] != 16
-+		     || abi_note [2] != 1
-+		     || memcmp (abi_note + 3, "GNU", 4) != 0)
-+		{
-+#define ROUND(len) (((len) + sizeof (Elf32_Word)) - 1) & -sizeof (Elf32_Word)))
-+		  Elf32_Addr) note_size = 3 * sizeof (Elf32_Word))
-+					 + ROUND (abi_note[0])
-+					 + ROUND (abi_note[1]);
-+
-+		  if (size - 32 < note_size || note_size == 0)
-+		    {
-+		      size = 0;
-+		      break;
-+		    }
-+		  size -= note_size;
-+		  abi_note = (void *) abi_note + note_size;
-+		}
-+
-+	      if (size == 0)
-+		break;
-+
-+	      *osversion = (abi_note [4] << 24) |
-+			   ((abi_note [5] & 0xff) << 16) |
-+			   ((abi_note [6] & 0xff) << 8) |
-+			   (abi_note [7] & 0xff);
-+	    }
-+	  break;
-+
-+	default:
-+	  break;
-+	}
-+
-+    }
-+  if (loadaddr == (Elf32_Addr) -1)
-+    {
-+      /* Very strange. */
-+      loadaddr = 0;
-+    }
-+
-+  /* Now we can read the dynamic sections.  */
-+  if (dynamic_size == 0)
-+    return 1;
-+
-+  dynamic_segment = (Elf32_Dyn *) (file_contents + dynamic_addr);
-+  check_ptr (dynamic_segment);
-+
-+  /* Find the string table.  */
-+  dynamic_strings = NULL;
-+  for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
-+       ++dyn_entry)
-+    {
-+      check_ptr (dyn_entry);
-+      if (dyn_entry->d_tag == DT_STRTAB)
-+	{
-+	  dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr);
-+	  check_ptr (dynamic_strings);
-+	  break;
- 	}
--      return 1;
-     }
- 
-+  if (dynamic_strings == NULL)
-+    return 1;
-+
-+  /* Now read the DT_NEEDED and DT_SONAME entries.  */
-+  for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
-+       ++dyn_entry)
-+    {
-+      if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME)
-+	{
-+	  char *name = dynamic_strings + dyn_entry->d_un.d_val;
-+	  check_ptr (name);
-+
-+	  if (dyn_entry->d_tag == DT_NEEDED)
-+	    {
-+
-+	      if (*flag == FLAG_ELF)
-+		{
-+		  /* Check if this is enough to classify the binary.  */
-+		  for (j = 0;
-+		       j < sizeof (known_libs) / sizeof (known_libs [0]);
-+		       ++j)
-+		    if (strcmp (name, known_libs [j].soname) == 0)
-+		      {
-+			*flag = known_libs [j].flag;
-+			break;
-+		      }
-+		}
-+	    }
-+
-+	  else if (dyn_entry->d_tag == DT_SONAME)
-+	    *soname = xstrdup (name);
-+
-+	  /* Do we have everything we need?  */
-+	  if (*soname && *flag != FLAG_ELF)
-+	    return 0;
-+	}
-+    }
-+
-+  /* We reach this point only if the file doesn't contain a DT_SONAME
-+     or if we can't classify the library.  If it doesn't have a
-+     soname, return the name of the library.  */
-+  if (*soname == NULL)
-+    *soname = xstrdup (lib);
-+
-+  return 0;
-+}
-+
-+int
-+process_elf_file64 (const char *file_name, const char *lib, int *flag,
-+		  unsigned int *osversion, char **soname, void *file_contents,
-+		  size_t file_length)
-+{
-+  int i;
-+  unsigned int j;
-+  Elf64_Addr loadaddr;
-+  unsigned int dynamic_addr;
-+  size_t dynamic_size;
-+  char *program_interpreter;
-+
-+  Elf64_Ehdr *elf_header;
-+  Elf64_Phdr *elf_pheader, *segment;
-+  Elf64_Dyn *dynamic_segment, *dyn_entry;
-+  char *dynamic_strings;
-+
-+  elf_header = (Elf64_Ehdr *) file_contents;
-+  *osversion = 0;
-+
-   if (elf_header->e_type != ET_DYN)
-     {
-       error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name,
-@@ -81,7 +254,7 @@ process_elf_file (const char *file_name,
-     }
- 
-   /* Get information from elf program header.  */
--  elf_pheader = (ElfW(Phdr) *) (elf_header->e_phoff + file_contents);
-+  elf_pheader = (Elf64_Phdr *) (elf_header->e_phoff + file_contents);
-   check_ptr (elf_pheader);
- 
-   /* The library is an elf library, now search for soname and
-@@ -100,7 +273,7 @@ process_elf_file (const char *file_name,
-       switch (segment->p_type)
- 	{
- 	case PT_LOAD:
--	  if (loadaddr == (ElfW(Addr)) -1)
-+	  if (loadaddr == (Elf64_Addr) -1)
- 	    loadaddr = segment->p_vaddr - segment->p_offset;
- 	  break;
- 
-@@ -129,16 +302,16 @@ process_elf_file (const char *file_name,
- 	case PT_NOTE:
- 	  if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4)
- 	    {
--	      ElfW(Word) *abi_note = (ElfW(Word) *) (file_contents
-+	      Elf64_Word *abi_note = (Elf64_Word *) (file_contents
- 						     + segment->p_offset);
--	      ElfW(Addr) size = segment->p_filesz;
-+	      Elf64_Addr size = segment->p_filesz;
- 
- 	      while (abi_note [0] != 4 || abi_note [1] != 16
- 		     || abi_note [2] != 1
- 		     || memcmp (abi_note + 3, "GNU", 4) != 0)
- 		{
--#define ROUND(len) (((len) + sizeof (ElfW(Word)) - 1) & -sizeof (ElfW(Word)))
--		  ElfW(Addr) note_size = 3 * sizeof (ElfW(Word))
-+#define ROUND(len) (((len) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word))
-+		  Elf64_Addr note_size = 3 * sizeof (Elf64_Word)
- 					 + ROUND (abi_note[0])
- 					 + ROUND (abi_note[1]);
- 
-@@ -166,7 +339,7 @@ process_elf_file (const char *file_name,
- 	}
- 
-     }
--  if (loadaddr == (ElfW(Addr)) -1)
-+  if (loadaddr == (Elf64_Addr) -1)
-     {
-       /* Very strange. */
-       loadaddr = 0;
-@@ -176,7 +349,7 @@ process_elf_file (const char *file_name,
-   if (dynamic_size == 0)
-     return 1;
- 
--  dynamic_segment = (ElfW(Dyn) *) (file_contents + dynamic_addr);
-+  dynamic_segment = (Elf64_Dyn *) (file_contents + dynamic_addr);
-   check_ptr (dynamic_segment);
- 
-   /* Find the string table.  */
-@@ -233,3 +406,33 @@ process_elf_file (const char *file_name,
- 
-   return 0;
- }
-+/* Returns 0 if everything is ok, != 0 in case of error.  */
-+int
-+process_elf_file (const char *file_name, const char *lib, int *flag,
-+		  unsigned int *osversion, char **soname, void *file_contents,
-+		  size_t file_length)
-+{
-+  int i;
-+  unsigned int j;
-+  ElfW(Addr) loadaddr;
-+  unsigned int dynamic_addr;
-+  size_t dynamic_size;
-+  char *program_interpreter;
-+
-+  ElfW(Ehdr) *elf_header;
-+  ElfW(Phdr) *elf_pheader, *segment;
-+  ElfW(Dyn) *dynamic_segment, *dyn_entry;
-+  char *dynamic_strings;
-+
-+  elf_header = (ElfW(Ehdr) *) file_contents;
-+  *osversion = 0;
-+
-+  if (elf_header->e_ident [EI_CLASS] == ELFCLASS32)
-+    return process_elf_file32(file_name, lib,flag, osversion, soname, file_contents, file_length);
-+  else if (elf_header->e_ident [EI_CLASS] == ELFCLASS64)
-+    return process_elf_file64(file_name, lib,flag, osversion, soname, file_contents, file_length);
-+  error (0, 0, _("Unknown ELFCLASS in file %s.\n"), file_name);
-+  return 1;
-+}
-+
-+
diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/README b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/README
deleted file mode 100644
index 43fb983..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/README
+++ /dev/null
@@ -1,8 +0,0 @@
-The files are pulled verbatim from glibc 2.5 and then patched to allow
-standalone compilation of ldconfig.
-
-Richard Purdie
-OpenedHand Ltd.
-
-Upgraded the ldconfig recipe to eglibc 2.12.1
-Nitin A Kamble <nitin.a.kamble at intel.com> 2011/03/29
diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch
deleted file mode 100644
index 7f8e4db..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endian-ness_handling.patch
+++ /dev/null
@@ -1,454 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-Do data input/output handling according to endien-ness of the library file. That 
-enables use of ldconfig in the cross fashion for any architecture.
-
-2011/04/04
-Richard Purdie <richard.purdie at linuxfoundation.org>
-Nitin Kamble <nitin.a.kamble at intel.com>
-
-Index: ldconfig-native-2.12.1/readelflib.c
-===================================================================
---- ldconfig-native-2.12.1.orig/readelflib.c
-+++ ldconfig-native-2.12.1/readelflib.c
-@@ -38,6 +38,28 @@ do								\
-   }								\
-  while (0);
- 
-+int be;
-+static uint16_t read16(uint16_t x, int be)
-+{
-+  if (be)
-+        return be16toh(x);
-+  return le16toh(x);
-+}
-+
-+static uint32_t read32(uint32_t x, int be)
-+{
-+  if (be)
-+        return be32toh(x);
-+  return le32toh(x);
-+}
-+
-+static uint64_t read64(uint64_t x, int be)
-+{
-+  if (be)
-+        return be64toh(x);
-+  return le64toh(x);
-+}
-+
- /* Returns 0 if everything is ok, != 0 in case of error.  */
- int
- process_elf_file32 (const char *file_name, const char *lib, int *flag,
-@@ -59,15 +81,17 @@ process_elf_file32 (const char *file_nam
-   elf_header = (Elf32_Ehdr *) file_contents;
-   *osversion = 0;
- 
--  if (elf_header->e_type != ET_DYN)
-+  be = (elf_header->e_ident[EI_DATA] == ELFDATA2MSB);
-+
-+  if (read16(elf_header->e_type, be) != ET_DYN)
-     {
-       error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name,
--	     elf_header->e_type);
-+	     read16(elf_header->e_type, be));
-       return 1;
-     }
- 
-   /* Get information from elf program header.  */
--  elf_pheader = (Elf32_Phdr *) (elf_header->e_phoff + file_contents);
-+  elf_pheader = (Elf32_Phdr *) (read32(elf_header->e_phoff, be) + file_contents);
-   check_ptr (elf_pheader);
- 
-   /* The library is an elf library, now search for soname and
-@@ -79,27 +103,27 @@ process_elf_file32 (const char *file_nam
-   dynamic_size = 0;
-   program_interpreter = NULL;
-   for (i = 0, segment = elf_pheader;
--       i < elf_header->e_phnum; i++, segment++)
-+       i < read16(elf_header->e_phnum, be); i++, segment++)
-     {
-       check_ptr (segment);
- 
--      switch (segment->p_type)
-+      switch (read32(segment->p_type, be))
- 	{
- 	case PT_LOAD:
- 	  if (loadaddr == (Elf32_Addr) -1)
--	    loadaddr = segment->p_vaddr - segment->p_offset;
-+	    loadaddr = read32(segment->p_vaddr, be) - read32(segment->p_offset, be);
- 	  break;
- 
- 	case PT_DYNAMIC:
- 	  if (dynamic_addr)
- 	    error (0, 0, _("more than one dynamic segment\n"));
- 
--	  dynamic_addr = segment->p_offset;
--	  dynamic_size = segment->p_filesz;
-+	  dynamic_addr = read32(segment->p_offset, be);
-+	  dynamic_size = read32(segment->p_filesz, be);
- 	  break;
- 
- 	case PT_INTERP:
--	  program_interpreter = (char *) (file_contents + segment->p_offset);
-+	  program_interpreter = (char *) (file_contents + read32(segment->p_offset, be));
- 	  check_ptr (program_interpreter);
- 
- 	  /* Check if this is enough to classify the binary.  */
-@@ -113,20 +137,20 @@ process_elf_file32 (const char *file_nam
- 	  break;
- 
- 	case PT_NOTE:
--	  if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4)
-+	  if (!*osversion && read32(segment->p_filesz, be) >= 32 && segment->p_align >= 4)
- 	    {
- 	      Elf32_Word *abi_note = (Elf32_Word *) (file_contents
--						     + segment->p_offset);
--	      Elf32_Addr size = segment->p_filesz;
-+						     + read32(segment->p_offset, be));
-+	      Elf32_Addr size = read32(segment->p_filesz, be);
- 
--	      while (abi_note [0] != 4 || abi_note [1] != 16
--		     || abi_note [2] != 1
-+	      while (read32(abi_note [0], be) != 4 || read32(abi_note [1], be) != 16
-+		     || read32(abi_note [2], be) != 1
- 		     || memcmp (abi_note + 3, "GNU", 4) != 0)
- 		{
--#define ROUND(len) (((len) + sizeof (Elf32_Word)) - 1) & -sizeof (Elf32_Word)))
--		  Elf32_Addr) note_size = 3 * sizeof (Elf32_Word))
--					 + ROUND (abi_note[0])
--					 + ROUND (abi_note[1]);
-+#define ROUND(len) (((len) + sizeof (Elf32_Word) - 1) & -sizeof (Elf32_Word))
-+		  Elf32_Addr note_size = 3 * sizeof (Elf32_Word)
-+					 + ROUND (read32(abi_note[0], be))
-+					 + ROUND (read32(abi_note[1], be));
- 
- 		  if (size - 32 < note_size || note_size == 0)
- 		    {
-@@ -140,10 +164,10 @@ process_elf_file32 (const char *file_nam
- 	      if (size == 0)
- 		break;
- 
--	      *osversion = (abi_note [4] << 24) |
--			   ((abi_note [5] & 0xff) << 16) |
--			   ((abi_note [6] & 0xff) << 8) |
--			   (abi_note [7] & 0xff);
-+	      *osversion = (read32(abi_note [4], be) << 24) |
-+			   ((read32(abi_note [5], be) & 0xff) << 16) |
-+			   ((read32(abi_note [6], be) & 0xff) << 8) |
-+			   (read32(abi_note [7], be) & 0xff);
- 	    }
- 	  break;
- 
-@@ -167,13 +191,13 @@ process_elf_file32 (const char *file_nam
- 
-   /* Find the string table.  */
-   dynamic_strings = NULL;
--  for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
-+  for (dyn_entry = dynamic_segment; read32(dyn_entry->d_tag, be) != DT_NULL;
-        ++dyn_entry)
-     {
-       check_ptr (dyn_entry);
--      if (dyn_entry->d_tag == DT_STRTAB)
-+      if (read32(dyn_entry->d_tag, be) == DT_STRTAB)
- 	{
--	  dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr);
-+	  dynamic_strings = (char *) (file_contents + read32(dyn_entry->d_un.d_val, be) - loadaddr);
- 	  check_ptr (dynamic_strings);
- 	  break;
- 	}
-@@ -183,15 +207,15 @@ process_elf_file32 (const char *file_nam
-     return 1;
- 
-   /* Now read the DT_NEEDED and DT_SONAME entries.  */
--  for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
-+  for (dyn_entry = dynamic_segment; read32(dyn_entry->d_tag, be) != DT_NULL;
-        ++dyn_entry)
-     {
--      if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME)
-+      if (read32(dyn_entry->d_tag, be) == DT_NEEDED || read32(dyn_entry->d_tag, be) == DT_SONAME)
- 	{
--	  char *name = dynamic_strings + dyn_entry->d_un.d_val;
-+	  char *name = dynamic_strings + read32(dyn_entry->d_un.d_val, be);
- 	  check_ptr (name);
- 
--	  if (dyn_entry->d_tag == DT_NEEDED)
-+	  if (read32(dyn_entry->d_tag, be) == DT_NEEDED)
- 	    {
- 
- 	      if (*flag == FLAG_ELF)
-@@ -208,7 +232,7 @@ process_elf_file32 (const char *file_nam
- 		}
- 	    }
- 
--	  else if (dyn_entry->d_tag == DT_SONAME)
-+	  else if (read32(dyn_entry->d_tag, be) == DT_SONAME)
- 	    *soname = xstrdup (name);
- 
- 	  /* Do we have everything we need?  */
-@@ -246,15 +270,17 @@ process_elf_file64 (const char *file_nam
-   elf_header = (Elf64_Ehdr *) file_contents;
-   *osversion = 0;
- 
--  if (elf_header->e_type != ET_DYN)
-+  be = (elf_header->e_ident[EI_DATA] == ELFDATA2MSB);
-+
-+  if (read16(elf_header->e_type, be) != ET_DYN)
-     {
-       error (0, 0, _("%s is not a shared object file (Type: %d).\n"), file_name,
--	     elf_header->e_type);
-+	     read16(elf_header->e_type, be));
-       return 1;
-     }
- 
-   /* Get information from elf program header.  */
--  elf_pheader = (Elf64_Phdr *) (elf_header->e_phoff + file_contents);
-+  elf_pheader = (Elf64_Phdr *) (read64(elf_header->e_phoff, be) + file_contents);
-   check_ptr (elf_pheader);
- 
-   /* The library is an elf library, now search for soname and
-@@ -266,27 +292,27 @@ process_elf_file64 (const char *file_nam
-   dynamic_size = 0;
-   program_interpreter = NULL;
-   for (i = 0, segment = elf_pheader;
--       i < elf_header->e_phnum; i++, segment++)
-+       i < read16(elf_header->e_phnum, be); i++, segment++)
-     {
-       check_ptr (segment);
- 
--      switch (segment->p_type)
-+      switch (read32(segment->p_type, be))
- 	{
- 	case PT_LOAD:
- 	  if (loadaddr == (Elf64_Addr) -1)
--	    loadaddr = segment->p_vaddr - segment->p_offset;
-+	    loadaddr = read64(segment->p_vaddr, be) - read64(segment->p_offset, be);
- 	  break;
- 
- 	case PT_DYNAMIC:
- 	  if (dynamic_addr)
- 	    error (0, 0, _("more than one dynamic segment\n"));
- 
--	  dynamic_addr = segment->p_offset;
--	  dynamic_size = segment->p_filesz;
-+	  dynamic_addr = read64(segment->p_offset, be);
-+	  dynamic_size = read32(segment->p_filesz, be);
- 	  break;
- 
- 	case PT_INTERP:
--	  program_interpreter = (char *) (file_contents + segment->p_offset);
-+	  program_interpreter = (char *) (file_contents + read64(segment->p_offset, be));
- 	  check_ptr (program_interpreter);
- 
- 	  /* Check if this is enough to classify the binary.  */
-@@ -300,20 +326,21 @@ process_elf_file64 (const char *file_nam
- 	  break;
- 
- 	case PT_NOTE:
--	  if (!*osversion && segment->p_filesz >= 32 && segment->p_align >= 4)
-+	  if (!*osversion && read32(segment->p_filesz, be) >= 32 && read32(segment->p_align, be) >= 4)
- 	    {
- 	      Elf64_Word *abi_note = (Elf64_Word *) (file_contents
--						     + segment->p_offset);
--	      Elf64_Addr size = segment->p_filesz;
-+						     + read64(segment->p_offset, be));
-+	      Elf64_Addr size = read32(segment->p_filesz, be);
- 
--	      while (abi_note [0] != 4 || abi_note [1] != 16
--		     || abi_note [2] != 1
-+	      while (read32(abi_note [0], be) != 4 || read32(abi_note [1], be) != 16
-+		     || read32(abi_note [2], be) != 1
- 		     || memcmp (abi_note + 3, "GNU", 4) != 0)
- 		{
-+#undef ROUND
- #define ROUND(len) (((len) + sizeof (Elf64_Word) - 1) & -sizeof (Elf64_Word))
- 		  Elf64_Addr note_size = 3 * sizeof (Elf64_Word)
--					 + ROUND (abi_note[0])
--					 + ROUND (abi_note[1]);
-+					 + ROUND (read32(abi_note[0], be))
-+					 + ROUND (read32(abi_note[1], be));
- 
- 		  if (size - 32 < note_size || note_size == 0)
- 		    {
-@@ -327,10 +354,10 @@ process_elf_file64 (const char *file_nam
- 	      if (size == 0)
- 		break;
- 
--	      *osversion = (abi_note [4] << 24) |
--			   ((abi_note [5] & 0xff) << 16) |
--			   ((abi_note [6] & 0xff) << 8) |
--			   (abi_note [7] & 0xff);
-+	      *osversion = (read32(abi_note [4], be) << 24) |
-+			   ((read32(abi_note [5], be) & 0xff) << 16) |
-+			   ((read32(abi_note [6], be) & 0xff) << 8) |
-+			   (read32(abi_note [7], be) & 0xff);
- 	    }
- 	  break;
- 
-@@ -354,13 +381,13 @@ process_elf_file64 (const char *file_nam
- 
-   /* Find the string table.  */
-   dynamic_strings = NULL;
--  for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
-+  for (dyn_entry = dynamic_segment; read64(dyn_entry->d_tag, be) != DT_NULL;
-        ++dyn_entry)
-     {
-       check_ptr (dyn_entry);
--      if (dyn_entry->d_tag == DT_STRTAB)
-+      if (read64(dyn_entry->d_tag, be) == DT_STRTAB)
- 	{
--	  dynamic_strings = (char *) (file_contents + dyn_entry->d_un.d_val - loadaddr);
-+	  dynamic_strings = (char *) (file_contents + read64(dyn_entry->d_un.d_val, be) - loadaddr);
- 	  check_ptr (dynamic_strings);
- 	  break;
- 	}
-@@ -370,15 +397,15 @@ process_elf_file64 (const char *file_nam
-     return 1;
- 
-   /* Now read the DT_NEEDED and DT_SONAME entries.  */
--  for (dyn_entry = dynamic_segment; dyn_entry->d_tag != DT_NULL;
-+  for (dyn_entry = dynamic_segment; read64(dyn_entry->d_tag, be) != DT_NULL;
-        ++dyn_entry)
-     {
--      if (dyn_entry->d_tag == DT_NEEDED || dyn_entry->d_tag == DT_SONAME)
-+      if (read64(dyn_entry->d_tag, be) == DT_NEEDED || read64(dyn_entry->d_tag, be) == DT_SONAME)
- 	{
--	  char *name = dynamic_strings + dyn_entry->d_un.d_val;
-+	  char *name = dynamic_strings + read64(dyn_entry->d_un.d_val, be);
- 	  check_ptr (name);
- 
--	  if (dyn_entry->d_tag == DT_NEEDED)
-+	  if (read64(dyn_entry->d_tag, be) == DT_NEEDED)
- 	    {
- 
- 	      if (*flag == FLAG_ELF)
-@@ -395,7 +422,7 @@ process_elf_file64 (const char *file_nam
- 		}
- 	    }
- 
--	  else if (dyn_entry->d_tag == DT_SONAME)
-+	  else if (read64(dyn_entry->d_tag, be) == DT_SONAME)
- 	    *soname = xstrdup (name);
- 
- 	  /* Do we have everything we need?  */
-Index: ldconfig-native-2.12.1/readlib.c
-===================================================================
---- ldconfig-native-2.12.1.orig/readlib.c
-+++ ldconfig-native-2.12.1/readlib.c
-@@ -169,7 +169,8 @@ process_file (const char *real_file_name
-       ret = 1;
-     }
-   /* Libraries have to be shared object files.  */
--  else if (elf_header->e_type != ET_DYN)
-+  else if ((elf_header->e_ident[EI_DATA] == ELFDATA2MSB && be16toh(elf_header->e_type) != ET_DYN) ||
-+      (elf_header->e_ident[EI_DATA] == ELFDATA2LSB && le16toh(elf_header->e_type) != ET_DYN))
-     ret = 1;
-   else if (process_elf_file (file_name, lib, flag, osversion, soname,
- 			     file_contents, statbuf.st_size))
-Index: ldconfig-native-2.12.1/cache.c
-===================================================================
---- ldconfig-native-2.12.1.orig/cache.c
-+++ ldconfig-native-2.12.1/cache.c
-@@ -39,6 +39,29 @@
- # define N_(msgid)  msgid
- #define _(msg) msg
- 
-+extern int be;
-+
-+static uint16_t write16(uint16_t x, int be)
-+{
-+  if (be)
-+        return htobe16(x);
-+  return htole16(x);
-+}
-+
-+static uint32_t write32(uint32_t x, int be)
-+{
-+  if (be)
-+        return htobe32(x);
-+  return htole32(x);
-+}
-+
-+static uint64_t write64(uint64_t x, int be)
-+{
-+  if (be)
-+        return htobe64(x);
-+  return htole64(x);
-+}
-+
- struct cache_entry
- {
-   char *lib;			/* Library name.  */
-@@ -279,7 +302,12 @@ save_cache (const char *cache_name)
-   /* Number of normal cache entries.  */
-   int cache_entry_old_count = 0;
- 
--  for (entry = entries; entry != NULL; entry = entry->next)
-+    if (be)
-+      printf("saving cache in big endian encoding\n");
-+    else
-+      printf("saving cache in little endian encoding\n");
-+
-+    for (entry = entries; entry != NULL; entry = entry->next)
-     {
-       /* Account the final NULs.  */
-       total_strlen += strlen (entry->lib) + strlen (entry->path) + 2;
-@@ -310,7 +338,7 @@ save_cache (const char *cache_name)
-       memset (file_entries, '\0', sizeof (struct cache_file));
-       memcpy (file_entries->magic, CACHEMAGIC, sizeof CACHEMAGIC - 1);
- 
--      file_entries->nlibs = cache_entry_old_count;
-+      file_entries->nlibs = write32(cache_entry_old_count, be);
-     }
- 
-   struct cache_file_new *file_entries_new = NULL;
-@@ -330,8 +358,8 @@ save_cache (const char *cache_name)
-       memcpy (file_entries_new->version, CACHE_VERSION,
- 	      sizeof CACHE_VERSION - 1);
- 
--      file_entries_new->nlibs = cache_entry_count;
--      file_entries_new->len_strings = total_strlen;
-+      file_entries_new->nlibs = write32(cache_entry_count, be);
-+      file_entries_new->len_strings = write32(total_strlen, be);
-     }
- 
-   /* Pad for alignment of cache_file_new.  */
-@@ -358,9 +386,9 @@ save_cache (const char *cache_name)
-       /* First the library.  */
-       if (opt_format != 2 && entry->hwcap == 0)
- 	{
--	  file_entries->libs[idx_old].flags = entry->flags;
-+	  file_entries->libs[idx_old].flags = write32(entry->flags, be);
- 	  /* XXX: Actually we can optimize here and remove duplicates.  */
--	  file_entries->libs[idx_old].key = str_offset + pad;
-+	  file_entries->libs[idx_old].key = write32(str_offset + pad, be);
- 	}
-       if (opt_format != 0)
- 	{
-@@ -368,10 +396,10 @@ save_cache (const char *cache_name)
- 	     not doing so makes the code easier, the string table
- 	     always begins at the beginning of the the new cache
- 	     struct.  */
--	  file_entries_new->libs[idx_new].flags = entry->flags;
--	  file_entries_new->libs[idx_new].osversion = entry->osversion;
--	  file_entries_new->libs[idx_new].hwcap = entry->hwcap;
--	  file_entries_new->libs[idx_new].key = str_offset;
-+	  file_entries_new->libs[idx_new].flags = write32(entry->flags, be);
-+	  file_entries_new->libs[idx_new].osversion = write32(entry->osversion, be);
-+	  file_entries_new->libs[idx_new].hwcap = write64(entry->hwcap, be);
-+	  file_entries_new->libs[idx_new].key = write32(str_offset, be);
- 	}
- 
-       size_t len = strlen (entry->lib) + 1;
-@@ -379,9 +407,9 @@ save_cache (const char *cache_name)
-       str_offset += len;
-       /* Then the path.  */
-       if (opt_format != 2 && entry->hwcap == 0)
--	file_entries->libs[idx_old].value = str_offset + pad;
-+	file_entries->libs[idx_old].value = write32(str_offset + pad, be);
-       if (opt_format != 0)
--	file_entries_new->libs[idx_new].value = str_offset;
-+	file_entries_new->libs[idx_new].value = write32(str_offset, be);
-       len = strlen (entry->path) + 1;
-       str = mempcpy (str, entry->path, len);
-       str_offset += len;
diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch
deleted file mode 100644
index a18b2c2..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/endianess-header.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-Upstream-Status: Inappropriate [fix poky patch]
-
-This patch fixes build issues with a previous endian-ness_handling.patch on
-distros that don't have macros referenced
-
-7/20/2011
-Matthew McClintock <msm at freescale.com>
-
-diff -purN ldconfig-native-2.12.1.orig/endian_extra.h ldconfig-native-2.12.1/endian_extra.h
---- ldconfig-native-2.12.1.orig/endian_extra.h	1969-12-31 18:00:00.000000000 -0600
-+++ ldconfig-native-2.12.1/endian_extra.h	2011-07-19 18:09:14.323048417 -0500
-@@ -0,0 +1,64 @@
-+/* Copyright (C) 1992, 1996, 1997, 2000, 2008 Free Software Foundation, Inc.
-+   This file is part of the GNU C Library.
-+
-+   The GNU C Library is free software; you can redistribute it and/or
-+   modify it under the terms of the GNU Lesser General Public
-+   License as published by the Free Software Foundation; either
-+   version 2.1 of the License, or (at your option) any later version.
-+
-+   The GNU C Library is distributed in the hope that it will be useful,
-+   but WITHOUT ANY WARRANTY; without even the implied warranty of
-+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+   Lesser General Public License for more details.
-+
-+   You should have received a copy of the GNU Lesser General Public
-+   License along with the GNU C Library; if not, write to the Free
-+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-+   02111-1307 USA.  */
-+
-+#include <endian.h>
-+
-+#ifndef	_ENDIAN_EXTRA_H
-+#define	_ENDIAN_EXTRA_H	1
-+
-+/* Don't redefine these macros if they already exist */
-+#ifndef htobe16
-+#ifdef __USE_BSD
-+/* Conversion interfaces.  */
-+# include <byteswap.h>
-+
-+# if __BYTE_ORDER == __LITTLE_ENDIAN
-+#  define htobe16(x) __bswap_16 (x)
-+#  define htole16(x) (x)
-+#  define be16toh(x) __bswap_16 (x)
-+#  define le16toh(x) (x)
-+
-+#  define htobe32(x) __bswap_32 (x)
-+#  define htole32(x) (x)
-+#  define be32toh(x) __bswap_32 (x)
-+#  define le32toh(x) (x)
-+
-+#  define htobe64(x) __bswap_64 (x)
-+#  define htole64(x) (x)
-+#  define be64toh(x) __bswap_64 (x)
-+#  define le64toh(x) (x)
-+# else
-+#  define htobe16(x) (x)
-+#  define htole16(x) __bswap_16 (x)
-+#  define be16toh(x) (x)
-+#  define le16toh(x) __bswap_16 (x)
-+
-+#  define htobe32(x) (x)
-+#  define htole32(x) __bswap_32 (x)
-+#  define be32toh(x) (x)
-+#  define le32toh(x) __bswap_32 (x)
-+
-+#  define htobe64(x) (x)
-+#  define htole64(x) __bswap_64 (x)
-+#  define be64toh(x) (x)
-+#  define le64toh(x) __bswap_64 (x)
-+# endif
-+#endif
-+#endif
-+
-+#endif	/* endian_extra.h */
-diff -purN ldconfig-native-2.12.1.orig/cache.c ldconfig-native-2.12.1/cache.c
---- ldconfig-native-2.12.1.orig/cache.c	2011-07-19 18:21:28.347041301 -0500
-+++ ldconfig-native-2.12.1/cache.c	2011-07-19 18:22:54.118048064 -0500
-@@ -39,6 +39,8 @@
- # define N_(msgid)  msgid
- #define _(msg) msg
- 
-+#include "endian_extra.h"
-+
- extern int be;
- 
- static uint16_t write16(uint16_t x, int be)
-diff -purN ldconfig-native-2.12.1.orig/readelflib.c ldconfig-native-2.12.1/readelflib.c
---- ldconfig-native-2.12.1.orig/readelflib.c	2011-07-19 18:21:28.346041593 -0500
-+++ ldconfig-native-2.12.1/readelflib.c	2011-07-19 18:23:05.324059875 -0500
-@@ -25,6 +25,9 @@
- 
- /* check_ptr checks that a pointer is in the mmaped file and doesn't
-    point outside it.  */
-+
-+#include "endian_extra.h"
-+
- #undef check_ptr
- #define check_ptr(ptr)						\
- do								\
-diff -purN ldconfig-native-2.12.1.orig/readlib.c ldconfig-native-2.12.1/readlib.c
---- ldconfig-native-2.12.1.orig/readlib.c	2011-07-19 18:21:28.346041593 -0500
-+++ ldconfig-native-2.12.1/readlib.c	2011-07-19 18:23:23.877046210 -0500
-@@ -40,6 +40,8 @@
- 
- #include "ldconfig.h"
- 
-+#include "endian_extra.h"
-+
- #define _(msg) msg
- 
- #define Elf32_CLASS ELFCLASS32
diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch
deleted file mode 100644
index 4e9aab9..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/flag_fix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-The native version of ldconfig was using native definition of LD_SO (i.e. 
-ld-linux-x86-64.so.2 ) which is not correct for doing the cross ldconfig.
-This was causing libc.so on the target marked as ELF lib rather than 
-FLAG_ELF_LIBC6 in the ld.so.cache.
-
-Nitin A Kamble <nitin.a.kamble at intel.com> 2011/04/4
-
-Index: ldconfig-native-2.12.1/readlib.c
-===================================================================
---- ldconfig-native-2.12.1.orig/readlib.c
-+++ ldconfig-native-2.12.1/readlib.c
-@@ -51,6 +51,10 @@ struct known_names
-   int flag;
- };
- 
-+/* don't use host's definition of LD_SO */
-+#undef LD_SO 
-+#define LD_SO "ld.so.1"
-+
- static struct known_names interpreters[] =
- {
-   { "/lib/" LD_SO, FLAG_ELF_LIBC6 },
diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig-native-2.12.1.tar.bz2 b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig-native-2.12.1.tar.bz2
deleted file mode 100644
index dc1e79888e9bf28226cf18513ebd4478ec90175f..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 21491
zcmV()K;OSYT4*^jL0KkKSzNplS^$e*|NsB+0D*h||NsC0|NsC0|Nj6$0t5gA00962
z004jx00>}o9{1DbKmvVzDYv|Oo at Idd)&QPl`WXNy6zLn^T+aJFJ at xJHcJ(j5^}OEz
z8{PFaqTAjmX}$Aq(Durg+s;0^QlCt=)lQn~!262meCXQ+o>U5bXs3 at iDt%-d-(Pv~
zKH2X0ci!{X_ulRAWG!S;gi;&5LVd*9)33dyT}f1d6e)Im&wI)?we`!~-S01U_15Z|
z*{;rZvtFJO<IZVZ4c)eOS6$CXU<cEy*{_G*<Z!PZ`+DuCmt&VKYwl$^t%^(A9p2sQ
znR&kZ$9o at l7V6h^w_Wb<eYZY#+?lQ at pmomK%b`x(aXRa=mpGlTuDyZjSAE*=c5r+t
z+P$8uJ9};1_Vvv1L(|i)*KGH9Ofy?Hw$c|px4gtL5GH^?35W>Mq|u6cnUOOpeu*}d
z%}Rc$>66lfAZYb81_3FcLI_O+CL(PDqx4hsru9eYBzlMHPt_h!+DE7W7>0lV2{ef!
zOp_A|dNN6<{HgeYPe^)Al)(eh1JnVdKzdCEngO6fk`W1lWK+{dO-G=ZihB`H$xVpV
z at uVivsp&L&BSwG#03t|&WHca5fJw4wCQ^RXdYWpU(KSC&<caD(RKjgfYMKCghol;L
zK at uV+flLEYrh!jNc~g3A6pvB)4JIk&1NA0=c}J)K004dH>->MK`=bcS=f9vIRwbb_
zMw%EY4A4NyLEaa=4n8~J4}kb<IOEWz2Tc4x^OSdMEZZ0J-wWZ4Rp$k1S at G3S;%^uX
z;zp6HBtghfOqE9z92Xr(4g(*^LMfz#Q&7+dtPBPs5V948BLHepAP1lEdXK2cew$63
z{8w_9Lc+hk)PIovTypfsCWHEahni-cz|_{XU>h8cS=XOF=sO>h&LBG`l_~{6D8=YY
zw`3F)Mhrn>kx?n3n4%gt%)f1$F__tidOwTN=>1z9blk{-B7%m5C<rK;D5Yr_sflI;
zf)R#^h=!^_kL>?uCx-YKe{MRC?Q+ooOj3mcQj}E%4HVHuRWU^oOw?5rG$}<T1rWp%
z4J}bZQZ$WFOq2xzP}4v$G!RuuQwE&I3MeFqsu-zou!M;q>x_#mT$apEim!g^`#(<y
z67s{Q)iOYnEmbiz(^S<{RRq*PL at Pl70+A39Ddzs!`aJ)h=ds7DqW%moJ%)b-CJ2Tn
z^3R)0HTbYT?w&k7{L}mCQPQP#&P at a3_FvPb6T(xj&Y3N2chvLll<S1M3cJHpF6wd@
zgmicgZXE?_0O&@XadyaWbXngg1WdK9y|7cHDixZ6K?2AWfq at c06oq?sc248&W{2*}
zp6yxcpw+2*y at mO2DY=7`Lw~*2atx`q=0?HxIP0ZzGT^;)n5McWT*&)Qc{JZ2`rg5#
z!3Cn=ZgHRDy7cSe{Q2LUZf8g=${~W%&ldfN4Pg&!!?0YXl`EFaNpjX{mgGC(ap8e&
zl<N$7<`*7i=3tDM4jHPv+}}?Oq|}dMAz|tZPAn-znFQ_bFuneqf6^Ys_ at nNB=MN2i
zkqHbls{lW?i_4r69K`Yl7DSb>ML-A;-PggxP(mIO?bi7J9vknneZDyjdZ{RZtWBqH
zZu+Gu0+yZ4!`z0cDk at r2vNC&PDnm0OQ&EjO#$Nt86uq)J2}=_<Ut*q^2SKr2_+mv1
zZ9E#Nj96n;Shm#_WI<-BqM(CTH563?6h#FBqNF=NAHwyIjrQ8_M-9xKuis7 at B~Z4v
zhYtj4(~MffP{Om0a<->*DGnt{0}fiphNl%en73woOd2%p;G!KNIQ4r$KUJ9z<<ok*
zN#mwr9*pjRBVtp7@{VvPnhcDP$#n*&QIaN9v;{FB(p6rZ4b(i66-5C;(83lFIs}3W
z7wEm at pPS{sUDIbBYwV-r_2a>KbzNcUuO3>f^xEfF0eUI#atfv`6kBcR_Gf>RmpR?u
z+K?70q|MyJS}CoD>0{uih>9v|6^07Bg=Z|(sPL*@VU_{`o4J>s!MeJbWR|L9$9oQ(
zX|=sH$5>l&>dx9 at oa0*V=PqGRHe-SbhRV!Lr#VM--6{y0(K{iJ9Ar1Hi=8rwH*qf<
zC^$l4{wfOJn at fmDP0<<Ya`nOcfoy*wIziSDbDt(7Uik6*)6^%4Oj9*A&nPXBclBaA
zBy<C#{`^N9tl17z1 at H3TGA0>aFZ^WEBMC}7#{@Jc7Eedr_+ch6!C5&FHC}F94bH}3
zrXTGY!vk?D<)MOQGSdjFD{eG085mV$u2H8-LX4)Q#%Q*RShcHzDq!|;!LraOS|hnw
zu2tNtjHFc_HMy80IMib8)n*e?<Sf*|Fd3yR8$@E!D$_9=Qp%ZS$9Cvo!mKMT%*bk4
zQ!<Hj5dwl#R}{FnFd7zXu5Dr<hEXY&;w(p8!)6`L?kONbL5w7rb$s9T>i>5SZdyFv
z*ynlk3)_<YUU%|#Bkn>9&syJS){g~#8zv!`Vi;)idOB|7^s7{)5Z|W?SJLZF`#Q&O
zICl0Qw{4<Fi{{Mn#MZH-AetW-%7Tt?21~5I;rDYw2j+#zM`@Y!bf?;T;r4QG`0&l_
zcg~W=*21SpB`{gmy0>YA5f)z_LZYaQk4>nwNU23d1jSUD?75u7+z+NUWA9Z#)_zXE
zk7VLFgML}GZ4 at 1ovTQ!GN>Q#gO#8Xqll9hRpFqE<6#+fSzz`5WQuxgkQ28?mU|N`B
zppk-#Xd-AL2!f(YXenBn0hJN~loEsWVT4r-Oau{0M3hiaP+U$(($G+fMS_G89{XS3
zKRWfBFYj;f?ME$Cyt{h5H!*p+onCcbvR3AolTMzt?5|BU+0m;xfdnH>0YpPcLsL;q
zEh5z|0YeZZO%%k`)RdGog$YAQP_ZpEQb{QlP|-0FKvfG6P^?8UK_L<pkwp~~5g}DE
z5i=Y~l0?xFBoO+!;H#)b>GWyP8$uXCLNvq#9!VI<bAdgO2l;AHK8O%Mo<~qbsuT;v
zJaTHN)&y8JGL)3DRS^`a6;f4+j*|hZIE6-HfMIC}%q at gq#uHN1Bc}`pq780jz+f1r
zAWcN#Qk4)TG!;=f0h1+0Sfx2-5d at I66F|$Dm^3+xVGa^w1r)Gm1Azrq6a@@XQv}pW
zOw`p8QB4yC08kXsNkIfzf`yS1treh+C5@<xqg1LM8F85rAj~wh1i at 5MNR)|`9}mf(
zO^IR~Wy-=sF~VgGz(_Dhr{H>#<cF$bF?X}BKj0!p0RvI at B#U>eLxXgmoR=|n)28ED
zR{87IXTzcnT+4mVuif}bJci_t(F4_fQ~gKR>-}c_d+$saXCLd<TVG6S2^vB4;qSbE
zO7!mFUQmqrBZ)sK_(*?;DM)Q(1gvX6Pbo}<qYk{gvFkl-FBXu}2_y7+`F5Z($M}%#
zAGArc5d!A at pO1^~9_z8+OI+P>fVpq3r7F!#Wnt^>1e;R=QW$~y0f&wqD&Z=E0M%7h
zRrq}bgHT^YixU%{>(Rpl5_lEa at 6cZf##q;x@{kfj>Z9EFN;A9gAh!CCf0XII*L0Eu
zEr<HyxaveT`#J6VaKs;z%Ggr`-w5yV73<95d6xoT5$l8 at 9eV?n at nU^dobcb?Aa`A0
zL_`*Vn;}dU;t}4%Bz+Jcd0(F~l&&iXTpr30zz2|BPVKJ1BD2N`>fzBHxqN|*z{rA8
z&H7kKdTjKT6(6=aEyGLG9hRNu7ZC>glfdlsIaYqz9up!}pk!d8lNdiWF%M<!ogC1s
z9QqR at hg{Q#1}U7VFuX{Vo<2pUht)U+pJ$-Ooz2I0Jy~AGdg|Hrou9YPS=}CKdN>rc
zhWk*?#vFb2>^UKn+m_fA9~8S8!NC?Fmak=%;ecw#?);wnp?4UWL$U{25YWbVMZ+7+
zJ^xJ%$31NfK)@}B9k3clu=K_Uz!7$E=M)m7Nbs4Qx2%pW<{j<XGPd=}0qOq-xzAp`
zbAiKvfS%?Y0y|`HGBe&r(9z0!oO=W;vUnK)T|PVO$E=3kITv>LJ(5lBCwSFKuwEVp
zoK$r<`K_TMRuGttaFz&dLPTXu`8SCaSIvKK5%K;Ta)&LS&TCRgcH#vS6qxIj7(E1)
zAp1SydSLi3au4FES`i494<rfvG8%!EKnW+aT{rNfI0uS~TG;NeyNLRE*P5F7&E5xZ
zZ|jmq5$Dw==yM};o=-rOE*4Lb++3kFgPqh=UL=7rxM|P0-f#MHTP|IGLqNitw5lM~
zOGdP4PIH~CJc8}Hl!q+jk}!rpKv|$J4V;4wt!#uOnG#+CL&f%w%1%UwG1B-?eZaxo
zWnzBp at OQc4L>!@amtsA%`rDZ~Gk_P1J!|XsJA}SQc2D!OsAFt}p}0m<P$!Ym at 9<`R
z7f9*7y?nk+ViL;C!xE-D^`UQa1tKB~S$~tqA|DQ(B0f?Ak^oUMKCpCO%kO)NwuCL|
z{FP*qMIzQzP*9~Rgi#X~u&L{T$N__;J at MCh`ga4uRQct^gz+8}ugBN%vL1(PvnM;G
zxCBVatgj2AO%8wG!KQh4^l0Xj44!_To3oy&s~nAJFkmRA31&DY1J6U>!dcs(P~C!L
zf#FsbeiIZ*0h+#9`K8;ekl!r>SP<w(QUKtsmbea>$}J9fGl*-yr{C<(5xp&}k-(sn
zN5}lh?vr`MsPtb&f97bw<A1@~mu%e1`8geFBS8IRsPj7DZ{GIeY3VJ{^!bi3<TfTc
z$o>8z#LMn#9Q)5`?JLi}d{p^wk3S*RJI`cxQrf3b^O!ilOyk2ayfg<Dw+XYuiP(I*
z$Mv2m$K`ztTi{fLB#*PRn|An2c3579j2n1&-vh^IdE`tSrrt<&(1$SG8`GwHWIa{x
zlQ|C1Oe9P^`N7qwHQ_AUZEbsX?L)(sX|`+<$7-_Vx)m1hJ1fT?5KptE^<>+}SBJR@
zt-?yqBF&n2#S!FTp$Nc=O|-sF2k_a_F_8_V8%&P0DeK9{r>9o&u3LfRa7rBUjnlEh
zZG=fh9>FA;x)|nSK_nd^)Ng8H5;5djZG<ymfnL#!OeK_MMXf?nZ<vRMC^oMd5#l(u
zc#DLWb8Q{+JE=QfTtsLv|I)IFhA2^4$IjOKKs~-6!?4HDNUIJn#MS!Z8$dkL0a|5C
zKX8qjh8m#zt)p0LG#YT<z5|gVDN at p3LDAOn53(|ekU391Ry=WI=A84Bc^(;5Cgt42
zFmH9Fs!NLuXE2;=F?z`+IfJe_G64b?MLpkb|Ec`ac`;KVj;6mYluX76z)ryknGVNP
z!QFJq0kV`ZX=)mcA31+c|Lbqxu~ols=FHoWm`eM^kOS=-NHHRrsdBsu9MsdlQM1!O
zwzN}hO~_;L-n~7Yne%#}>Xb~Q%Ckssq4%PwT3^evkdhx?6$;VDg3gCNoPRJjuA1lg
zszSU*1vjAe1FBMxU62jg-zkwXSFamjR at 3PFYm}HzVXL6oNRkBHff55n8|g7mq-g(o
zo1>LiJU&ZI(?q2}K>4muz|>C+hYWiS8!`Ko_Nhu at NCZ>SpCS%gF#fNbz{9V481tnH
zh%&cbHLBLSq$q=LCC at LccbE4kOZcRW&rz=j9T^I+^Ng)DP(YI<?fip{ne=biC2)R3
zj(DoIloK7z6!N3z7=)}$A$5-hV3wL_7YWn%PRvF3dmC(VtK)_%3EUNkI;`th2b(y_
zgv@=AeF`c{0(R;k-H(2CSVGtlKwcUI8Ahl(YB!Y8JSO(vZ2SdU{cDwt>c!95GDqh8
z`INAll6KgyTNH^D&*_HZMVCcmx=&)2ssJOn4ifhc4NDrRjJI2F*KYothT~qJ1yV=R
zSq;~V<euZ(*fsgEAPsv%6QvX+&f{2QfJ6JCK-Y~*88uTZlsDgQe52bU!C3`tNg5+D
zRP0-JS<)ua{XIUs#4CdfC?4$I;zUlCnQaUdzpr-DAux%6&*}MpQS|z>J3UQqbtv(5
zfYVGj3-wB6<kH3?T8Uc%4N$|HvTK;=32x<N at 0%BFnbX5Q?5s81ExeI<LIIiGi2XP*
znhecIxXk;=QcaUPwky3JWD-wZ*R=#A at v|O|-u?Amdmn$t1EzbMujai_9RcLBBsC{Y
za)Sk8MX3s+n9y5F3kD)Fh>9SnvLlUQ`a9>E*Wc~xACGu)dE at vk-rPL-GaPzq{s+=>
zbcd~vQYVsl`6?{;o%$XdzOOsb_!nt}_{peZVl>s{d2-YS at 2k7DPXg&vJX}~QYO7%j
zBVgw$04x2(4O<*c$pwX at lkKS^l3x?gOTPNpC75zPU5-yq7Xg&%{9D)O8!@{JnwF9`
z$e+Aog4H at Wu?J2OW^TqIwdwsDjN&axwdsEiVZNme0SYHykhsIP6^4<gfRBO{4_49;
zW?^=m{C?D#m at ELT<alt`XqveKOykFH1HO16Hr(vvp-5NK>cYZeo`*eQQXsZx#x7uO
z*%jErcmu(Vpjedz&Wc$XNKq?nclfIpQ&TV;*Q4#x?{NA|14*-<pA)wt*~$$3z`UcF
zi!c&fos+11+_Lo2_nlhdRs!{GSRz6}0R$Z-a7S`CBMTKATr{1J!ybJAUL1*{$P0r)
z4(UI9pfPka7DRlVB(HUECyq{J>ksI>h#-a`7;U}0UT{dJC>KOJA;OCr?j#LY*S;};
z<LWY<MMN5WC{UIMW*_GFW^&eeardEZDQ<D~TGo_wk<ghzgfETFF^0ooFdkA2xt`cD
zj^}r9efApc&@^Ap+n%D+(JpfE%bjn#WtR;VN3c<_tK+F4ny5Xn_s4vab5kAnP{e*S
z&_ at SsIoP<GI`Ng{(cV4l!Iw&iJYnm4W5#2}>vcmA1wll#hZF3o;K-o7p}$3|V}eMS
zlnP{sqFMrliAofuDWGCquyN1q6o%d#Ub#E1o~(%$*c6)dY!2a?8bcB_+rBWsj6!$x
z{<@g?BH5G#&{>;j0z!djc*;Ccf0XQxi($#nS{m)L5Yy9!BI*jX=^kfjEDa<}ARM9*
z5awH9W(^i&dBzSxCPAk$<({9p3!cP#Tl?I3-wwSGMJ*d2C4++kBVq{%ry>BrOx67o
z_vq*Bmo(|C+u~5oBPvb^;yzToT=En)+~}xCj>>p(o_gg#DR?;$#EC%&o1LKHE~c_7
zcL`tG9$?SBCgq|vfm}p at Yd|p6zoUiY)BAUasGpx>^zP0OnM5R+ChXE8#}VlvHSsU=
zMB?$!tnXzfN3?Bncs4fk)ALET3>-%-zgO?`XzaXk)pe*tEf*`}6`6TL(PlFe*K&W$
zRr=xF-I+%ZC!we^r1A(A<ySTX*<*b3vUFh8!ppn)J6MkylQ{amoNeemw;G40A6;?P
zXmpoGeD&{T(pu5W8jTbWNn(=EeZQb~q>;4b+a`?@80<zuyLts8bg*L<61WsXByE=K
zqI~LxA_N#Yon7^w)YNe+e{OouM`@XGo;~z*nMK1^&()L=H=+ at 4>Q;dYu#^C3WXw`l
z+1S*K(E at W7bQHW879?%o>c0-JuSKg1_&8VMHxe7EG@~*%2&Iz%k91o>sAo at 0<D&|$
zuR-(E7R+uoMocC at IN#G_XeiU*QKC%mKNR;P0I;&gkak!BWU_Wrh)gCq#yomcS=rms
z4d7H8S-j2M9D9&%mQ1+v2Zim>d!l}jcv~Jhc21j6ZemdhB-4356CPse^fd6sG-xM@
zJw$a;(T04Ro*s_)eexV29A<==L}EQs8l!Z#w{q-PQy0QR?d92=?x<F5j4fN2gU8j1
z>|<{vie6yL-j1*~<=go#Sf*le5q4RNMq$O`=7AikmB_+$ButTpoV?Ybd#}*p?#pHR
z=Nai#b!!|$u*JabId`?kv2S=6GTHW<#4QB|prREbXtl?u;TKx&x*7#VzF#Hqyl)td
z0|peIKOUidw~1rFQg_|<5;#J at tD{iD0;2A|LIya{OEi#`fVGu9e!REueZJ at PVv6*0
z3%QwiT+sRhgSN#@ntCGP_2rlcc7Y9+3p22DRvsHG<;(#c;fq4d2UCbu223%$iXQ;1
z9&jzj!N7GQ$WG86okh85->fhn7!o%jjX@)`&*>l=T+!c7%fo2n!uP{Ymbif9P8NuW
zkn%dI%To?$gos2hdj`uU4606kiK<sYEL9AIo{FnQD7#C~Y1LkTB{;yTkud3Ly`qN1
zH(1=kK>#~zfQ6 at P3(y7Uml`+s*Q%*YT6r+^W41#pY?Sh;f^$<OhzFir>6{q}tJ at S*
zn<HaZQB_sF=0mJm86zh&(tvJe?Ac#?lZ~n9)F$uKru=oDB*tbG^8V`*ifbbdKNz4|
zemYb>tH)G9T7Z$?OvWe9-V9#d-gd*rF}5FQs%}TmN2eO%FhLvNF@<4x{WHN&mw%<l
zjF^e+raLQ<(xWfuGEI3Jq7v3 at hXzf8D~~v}J2~$>m$>5j<3=Vt)W<vWCzMS{obV1X
zVPOdd;d4vp!)i6(eWG4^Fm_%xuww!ZZPN#f4XiE3 at n;yfa5j+7nDDSixKxqNrXHUA
z05?$#Kn{`<mo~JK!ULn6a2ypp_cr!Q)k?5ilQRSbZIGrt8YUc%pX_31efM_Vc_#c;
z?q(f(qIPME9*SP<YNR{c^3Bl5v*x=SPzB>cL`f9Wc_8Is_W!f`qff83|F5UzU0<ql
z&))6`Z>j9{V~6cXr|g0UNT3!=Mxh}XZRY$rO+*~{q<wdb1G^RgAVL5kUD^=%I`^*@
z?+F_#IEI&6=D~tOJ((d7W5N-LWL12g(eC$Cy1rW&K{BakK`>;35HM$EA(ANC9|Obn
zzDXg`=x5*Xvfkl`i$50V6?d!c`Tdfg!?xYMEB|R^SuEhm!Pc at iDhWsdsK>U+l7fWg
zVvP(H4J<;%ep~sVHD+dIm at v^@e{3Jd{z5;LjS8k>ieI5<wDy<zE}-=g3=#wp_lXbs
zh01milj!cVMfMNUhCxdpNV5tT_D_f5$_LF^nF&nEwCp;?i&8sJjX^a9ML`f`P&x4@
zXLa~94t?1 at f|Nlo#4)4vGl1|dR14Ga{y)R`eb)E?x7qOYWqBE^-vu?-UVHZA&zCNI
zm#PB}N(X5kFni#`-%1X&T^b~N<^AOWLlhw at 6s#~ZzWkpl8%j`62V9ASDqk*SAJmXN
zHWCbwx{<;eAUKrKJpQd|P{<U>nN%yrM<fsUtT_q^Kz8OJP_%u70DdiC4HQ at 4RUkT_
zaX<lbMFY|JakT>xKtc&12h at NbB{4;-c9=FlN|P&;7rKm>@AY~7u=swD&9_=2ZS~pn
z#>?zf9#)6iCFJ%`752h2t2W-gtD<eepYS{{x9DCg)6b`QjBmnnWkfT*{Y$L)Rk;00
zA|%c~3{@|i2g}*&?_}MozjXN9;i=$*tP>ofKEd_*VyU0E?H<nD!b0bR46VN*aFBiP
zz3IRE+`6qTt~w8*Z+AITa(A)gsSmnDieP~r$JddTc+~z9JtaXJc+SWOTLIBHDBSV!
z#eT7y#C(lK&nI-)O1JGob3<+Y7E;M{9S^P|t3yFmtV!Z;gW*|WAHwkm-x~fpyYIEl
zEJLEvXAjQk`r6Apw`xDPc-tzeVd1I^b8708bVada6&c620g!fTzNk~<qhEb#F3p!u
z<9BKn?rZc6ew%(@?9Jq`^nL%Hp2CpkJD45;Jp#r|8JO7)KPI;y9%(jcmK5SE2}HUR
z8-7OfLNme>$mGZd?*VTlO^rMKz0i(sIq>a{Z&zePIWfn!o8jAXrTsSNUdU`N_;z8~
zKI9lDB87%AbO?o8$o?+Q$iQs3J at w(2R4tcL)+_n-TKF!GaCrKww&`3D>!U~}Q&=oe
zu?vsSNmX`cH at XzL+bd(P6JVC7xepiNz4NTSCrBPi4fz42kn<wN7V5G)XvfL;u&Uq5
ztn6SbRu-?K=ED|+v8_6*F{(P=s3Bm~S9&}0Inilpel^hs+VJLbt#jI-p=Ep#^C9Q6
z5psZQsOIKv7LHfL(PO+tex9#2mdsySi}tAvFu5vUuiw4l1+iIMuIP#GToO}^9?bUX
z*sa55Ukw(9=|gjvXN&|Ps#%k-gG+L{tVM3N7ROPMV{lY<ZiW#?U(e9^r14dZ4e7sn
zTBm{RN{qj6WnKDAp2aC#!ynPFTn#SVF27IEm9e8<)7zW{y71AnL?kSWK?lmzHPV{Q
z#DiO|R%EiAD~>G;Fz at 4`Oi!J?nXjaQ?<j-_pikqRWC!eo5I at 5K`pJ0{a>b!sBX~<}
z2Sv(Kku4h1WFY?ivrz2>K@!Y^sRJU6jqWO%gNT8M1NVeMAq36nS^@kZ242qjI=ud(
zr{&jv^Yxc;8?vvIlw+LZYD7JdM}MEArA3*zx7_X3(EVZ(mwzbMJ$346)+=@QU3F#>
z6B1D-Z5dyU4+K_m#u&HD!u&&MZ>^Y&e$UbVHUd85x%Oc3TOrVXkF9z2mMK(q$1Bfs
zA9AusrS{vNu7hHTnAJhNVciU#XCxx*s(LqT9-R?LB&jM_I68&?Zg~gJdJ}#)LH&LD
zcoty^FpLd^0uVB`z66V5KeMAP?6?0Q2Ep}2-eu+!Ut3C1c4c5^XJ!{a-blTn8GHq#
ziZKaH at 8?f>Mo}OJZ)=h}&mOB^O!`-U3M|Mn8tNP>p8u+synUH3zat>V0FneGfJCKa
zUye6l8<$Hr9C34O+o(=1Q(34S8)pXyhJ(~N<+YPP3f2ijr#khI-?#le{vEbOy{RYW
zEeSFK4TN*oqkTRmSm7{}2M@!V at T8!EUE@}ZwD~Q@!yODT7lD99EE%A6>S`fXG%lMq
zVMX(toJ827*1()wUVJfS6K!zCtKo3g<c>o}D%;Tw8V;d)lg6S42x+OqU&&2Tt2JOS
zKhQ^=#BpT7vYZY0Zn$AFGI=vCzK&Z$yJ(Qu*5i<%V5_h`LTxu_MhyZ(-;ca at c~_Di
zXMVpgXiLnj4NxqVlbokB=tY071c;wR;}4+xXXW=7kZeTl_&F(LJCEL*quJu$!@=Y3
zT?TfNq3X=B3>qq8C0U5+^x!hsI8dBNgyH4*I30GrQfoy~TaF}{6<~5*n)-_%rZ#nu
z&6Lz6bjhK*_ZY+GBvsx(xDk`;3=nW8EIUPO!|E1%q-*V<4e1SUaRx+cZyQs;PA)TX
z^OqyX(Ga&l7I2bINI>UvsH+~qks~`{Do=rI(=YXYUHzJ>&LvMcd4m;K9`1-RgW8JV
zuUFgl?PmUuyaFGFitO#Uy7hX>hwMwgzBg=dW9~sx>%DxC(<^*Dj_LPAVJ$>h`geOA
zB)7xIGmo-<Pp`H&tm|~-Cxl-wI*5#5+{^JLc>+*=Dq at vs6!8KOv(-VgDVN&6v5P9+
zwBmkU^6pA8=TuYFvlEYw_*P@$-l#YJA9NX8A6z0zc59y9A at _BuWUquge>bPZNCY>f
zDDN!MDA$Rr5aGiX^lZku{CcczGInUjA}U1I(AJSLA{dWR2lf>Dxb?(pV_)UPMZL|m
zXB_H`<3z1_8$ld%HnTh$#-R8?w#@i6tbKcgVYm$S46vAPso3uKzJF5Y)-qrlk8#^{
zL1rgb7 at 0KF3x{{KRRiK2v?@Hr^P*eypP=*n_PywoN)n7}ZN?@wEl8jJg_SX~GR9WK
zM(fOlim`KZ8fC>oqPUnDM#RcxF|?ym8*>J^o0TxO7PDq?IL;ijXAA_+VqMEyPBeFs
z;2vsZPLT>49f2e%iaw)r)#~Z)L8FuIZii8m&-dPR4vIrUE-Bm(Eg&OHWT?fAa|hxz
z;-B0M61yOuQ7GJEn8L*xeuXRm*ho*F^4XR|ejVC;-;Yl}$DVNor1}2;*ZaS+-*vyf
zSf2Qg{o*;gXh;$YRU9RQHWMLz6V>aGwbE_t12nL<l at 8JutCyX1%cgjUznw=DA5b?L
z6u{COrgHDqj#c!ZMsDXfV>Ri~qgZ-zsA%IVqJ}9-Lj;J|8h)RuEcjrIaLh{v`>&A$
zrW(u$q3B*38vGdANMc64gc$VN38PYX5*n)LN|AeQ>cSv)^9e_Pi!OL}_j=u*!lI-`
z0q%XN+h4y2Bw|`=p``m%Sf1gQ8IacNv}dK{G&XJ-J`aIli-&<eMv8M0xiyG^2N{Qc
zC|`E$zUY&1z8ulHqz<_wX(dz|fSEhEr5y at uckG#t&t7-yykGG~B~Acz$CJlsCmNQf
zV995!M3ZG&t;UwRVTQ&~8AAv_D+vtnBvlM-f4}2tW at 6p{q=NXM4VAH7b`a%#l#50%
zmFBbHU}gtL>_a8S&j?^VP{g?4 at TC!;?(ZA&{SE=MS&p1L447%R*h{?D`=!N=ySdOz
z!w<{tdeqoyE`y^aH%JUbzWW3tFU-vh*Rz=PsKO4qW)a6gS=Kr!$~jEqj^Z#Egew=o
z<APyDasjWw%fJJ8Al|#k)uXqc>DlN*Q3Hph+N`IXt=p at YO}KGP4-e<*CV{=$A at oF<
z^?|Iizs3RJAq=wH#yZ0eQ<F(_5GP{;$oDXH<C^1LHpRVD^cZEuOzL_ZhWjHirHA14
z{^Od~d5v^tH$S4q;$@$5V}uPbbnZST2~;G?90;I92nSEutML8(V(;UB8$Y)O%v|&%
zT8^vcKymbYh8}MlZXRIXpJe06FK+ZdVl>gFRuc;Ze`nnv*3z}0?gNGvDhT;5rX%f9
z9`J<%HtUAEH@&bJe%J?uD#h)05ozoUqC>pa9&@fDl|LIqw^SGX$0ZYo4`sipaIH#-
zlLmO!8U73({!MD+xTB0Tz3QlFs|HtVTIA58B5-0g)G=86+f*pDAp|z~Qyio&n4T6&
z42B7*oLgmGeC85M3%%_Xp7Sy(Pnm<$jr}o9VcpU3Xg{vh7zhj{p~bV|2pHdnzv_<c
zLm%CPzu1dyVfc8U<3`tZK(*{(n at dwBIq!sF6+RJtw#QpA*ApZ-sG^WV!E?qCLwVbi
z+7>IRdy}jY6Hg%yC!#wyAte?4kq2YtDQ$-6P2$n~n~m`=BtY=C1jrEt59h6m{&#M_
z-^b5bSK;kbZsXS8nxK at E7LV2O!NMiVh%}oB`4-BP-p>WCbtCA%pIFnop&b;bL&G(u
zIr4L5D7HBHv_=nx at rLY;{$D?yT2_;xAo<pi+B1vea}jbIQ6H-bhXWl=q7fa^<snwZ
z$=ZQA1O+7bEtu5z^2Kvc{(Kqr at A!%7sgAMJibat9)a3)uRjXC!<o&xRH5^W8*4^OW
zwPac5*f=;h5yuoAR at Nm1A!Z#g5kTv`g|KZM*I|XPR4naSS#L|}ymCzJ7HkeG?J(1z
zP-l}+hAL368+FpLu-RP~4N<;~u6XFL46UR(`!KpzQUV|&)gZ$w5T2_rl3dUmR;d at P
zqXYv$HBh32{k53Tx4zgy?mbqogCPLJ35Uy-&PInsv&gt+bM~By0~6rMAlkR-p#B9c
zr|kUSqv-_xW at rKmgw%q+us^Pds)|4Ahasj5pcUFsoIuhr%Fr8$QCSfr%#}e+F#$vn
zF|j};px8tB8!?pSb4?8}VhAOog|Q25VuH4a*p#)3z(y*9f{F?VrGTV~6Ly-!WG1Gh
z0}z_Z$e<u9NNFV^Y9dtJhxp{)S~rj9fWl5>9N~^wF9a_-icsTx4dQ`1k9fOP1Il_)
zs3077;Wq?8?%9x(A&~%2H&<JX!8HTb^dB;O>H7#cgHVU&{YpZgb>Kg@{NGrMJ;D27
zgP?yb5Iuka^(y}TLsMU=9mn$n#Y{0$E+L@^FbKmycf8HopOH%kV>^`97;z{}tAmrl
z*msGz17Wc~WQZT82i4QK6r^HE9<MGOiQw~4;Qf(8V2{9g0n%)va0dQNLn(;}ff$Fy
z*a5 at 4kTfBPKocD<?+yWlVs%3r3QV=H1Np+FkWL`?7B}}vbUDP|3E&Vx5=AHaP=~<h
zrAkl=kCBuu%7_zq^LUnHkYH?4y8HqOL`B%I#}q8+ZeWzQ2aF_nlbU#Ls at 5iHdi&>$
zBM6o$)Ly!SetFUaFz&Owz*|I+*7<R1>v3_gaQ{PGoq*-{*({t$N(9S~C<^tEHw4?*
zH&0-VS at JLtP;~~$#B4~+j-gASUuQwq%jF9Y;W$s-jzmRd;B4;jg#jSRqOV&?VKKyp
z3eYHBJca|@J}`0(bKnzj(7yB;3ZK(7sg~!eisdvQX*#NzMcncSiIM%@9FW1zfoUp`
zxfC)GGKsJr2=>^r%Lriw0G-N2I(s%SfZ5qy2NoXRU;45-ksmULhCtA_J47VFJqYYO
zfrvRb9D}>MZp-1=ft^FvCvz7-;;cu_N(XR1sRvU4)$2~kNDCOZAe;{Es*;LWYwWAS
zU?pdGyy7X>6<$CAVD3j at JzDP`G#3dUQgee_>;chGvph<$H-}8Y-iO-|8^jp_3EE?t
zPUppa{0Vd}X6S>^J46mBsmcx=W4g+9hwrri3iJ?18B)~K(LmUBt<W?uu=%-~2bM#G
zPX}{}0?(|zWz#P#Z;jy{1BP6Z&rmR2tH30C$0=4Ab%&Z8X!S-Ts}#|DQCt*5!ZHJy
z6*0v^kT4DbSm=~}km(ibUAx{vV4df_A%}6L&4J83%ID)ZnN6`_yF+D9VbXF)4;=z(
zhNC_zY*6TAPD8wo#UJe`fuT=S$sU|@j6wtA#O at +s^)DC~kv+$&Ky2=!jD$aZI0%8j
z@&n7ZfUSa*%he8K5U2uhA(v#>9YOK4sLd2h164dq9D|~BI}l)am$|)(!q!vTWWljv
z#ZIN5@;7wqn~a7Y%nnA*z{2MBC=)ez?`{mD!D8n<2YeG?xMxDzG~iDqx)A0=ka1JA
zz=6QwxF1=)_IPjNfsmcj8<OB2LrORW$QYc#if}U_vcDT1x5zzZkcsxZ;bG}LITd<E
zN#-4t=hY5Zsk8 at Xi|oS-VDl~~MLG>DiHJB{z!~9g{RPp$?8qHdvYW4&o=D__lJjqj
zjD`lGN^$@XWKitb+=}=<ro7<9Jz)e#268odq+O792YR01&@!gvFnE#>+pykT2_BI&
z68geUbp198eVxB-0w_m;2scyk08vUrG&hBn(IRn9^MULj<XE851_Ty|6Zf9PJ3Hc@
zVAThS8&k{A&9x|adQJ*%C(H0ZTmJ#~{tACSEA7GWzrg(0fio;(VhMLj|9|*Nl_|A|
z>H2A`gY<+WY4n9FM5qCjlL9)K<Py*8-0kfL;DYHP6;Jj=+VyCcy$rQURe+3pgUBV^
zNIH7W&Y2+1smKlO+!+7OnzNKwmf;cik3dNT5dEy(eo at Ex{}1IakLoA+Ru<A#-6i*n
zExT-O6aDPuJM|)ElG_v4ne at 6?(j15T|5*Hf at 7)aP)J6zCojuc^-+}Th)11fZgOgo7
zUJ*3y)1oQo*nWY(NIIXdKC?@x9H4?=s)(6gd^z?0bGc8pd_O<vH at 7N_gkQD%;q!di
zKSLkRWcZMUnwWR&KcXOXfJl~Zy8`aANCX&zlDXWFEWD4i1M`q at FmfkDf+drqz2)J)
zqf}Y4{=iEOi#L>dIdS86F0S~4sD7V8HhG)mgpiLTw7a*8QM at _^r4(dbZkNxG*?>|Q
z9vrVjk<W3G<QRt8p`v17SJIppwnj-OkKIrEtxbMc=}*zn{?z)9RQ$o~_~eq;A#&k@
zesaYrNYJGL$$oxtY8#9TE0dwkvZ<n_GOCfOs}%|<ZpEava=^(7QcQ>RIziaZDT;~M
zHUZc_L0~@bmKhu2GHza2=hqLi1w`*VO1u(pG7g9Ilt7e0ARmhTy2r7NTE`Ot3av+f
zFyTb5?Q-j7fRGyrIX%bRHGFgq!@KUCB^bUiQ%F!WRO<|n6c_=c`yEg^WCOwIA+eSr
zA-Usz2LiaY4WT1CE~E$?gwQr%9TTYi*65T_5PAL0FG>eub|+h_!m!MF*0V!QJSSl*
zZN&@1nCx{281BWCSl)Fn1Vx*fxT!f(meFw~WJHymVC9z6T)C43Mo?CB3NZ~{b0oQ8
zJfeAJJTE0$wGL=8B&eXE)Jco at k=Zo^e4?R2lr>yBx#AnnH(VhjBFQ7x7?|M3=1moD
z&f*4v8dy~*7UmroJx%IkqiAmy at d`QUlJ=1~trHURT2h`8l&&6S)DfiVusHHjj6}7h
z35L at En|3wXS6tqNgoLDbhhNLYeX*|3vaGi#s02i|0wjotyv$c9rHCLisXgJ$sR6Qa
zmCf!;IPucWRn;Ttzfc}%<EYe%P?sWarG2&vLzG0K4NmNTvjD(C4_6;@$cAo^HW#{}
z_M3^Zu*E}Jat#Gj-- at 9i2)6l-mFb2#lW2U9?Tx`hVOcz+`o6p9am>EwS7>yfA9?eP
z_SVv0mMR9Yv{(EFyH3>@kO6^S@?@>WPk20%_?(o&_;@h5fWf`gkm>|)lQ^Gw at Z&h3
z9_i+5j92ip8POf;CKx$b0}qfMCOgj<W2ap^Devn5))jLwz~W;?rPR4m3yXw(5evq{
z2`p2y-$x}Zy8t;QNF9itFpEL>WywsOB~cCilJwL}(eRkBKIC(>HwUUxh%3;`@vwMA
z-uDKYM1+bYGt52$Ou^}2Lv`?>@Vy9ZF%Ty!A*!JOla9#25jYV$duaG41vo_^A?Lzm
za#%pSR5Y~EHq9b!ubJXz1}^}h|CfCjK_oFJL=3s_M&}Pv5Yz}PK*{n&s)3X}$rsOt
zK3QIU5#Tq0D;JeOvFb{f1=y?XozXd-uDplEfNq+=dI8l714`1jY2%U@?F#8r%^}sn
z4N7h(WQz9!eKHuPnLBzmjHd516Ek4Y<xoWV044<K1oJ>dD7&gUcEs5>RNZBiLe$-q
za^N)+m>Qf<tM>Hws&+~0?UATS`*E8@`XgRCSV<#gQAHHB0HP<^1 at dnM?)MU{7&43X
zcXgCQ)SkEDBjnBWsA^fXKrb%zj07~|4p2y>J}s-1&m-nRvqJ;r?mlV at KkG>{dt3VU
zM`#9VIf9v_0vyI at d-Zz3Fg2hGQ<I_B33BPE7SR<UfE3DY+21FOCx=E2n1iB*2(w)p
z$IKIo$m|F}UVu_RUs?&Fcs_8XP?21JXjK3`lzhy>j4=StM*<iq_Sskg6gspn{(NOT
z%TOu&Aw%e+7Ya6#C=h^oQB4>e5+5knyq_tgV|9YcWS;`4Uf)fjZXQ;G_1$nhV4Nvu
z0f?d~u>9)T2d|o%>L{bg*OpNgMyT5ptds$es^(N!m^j;p{QH~St7k14y=Ge0MpQhX
zRP{#Ay%MGcfiyKoJEt1JW)OtQnzpI<2n+&FAi9M<JU4`p3ZSE*<oSNuQ_o7(2?&)P
z6rmyYvx at haFgD!!2=&s#6EI66vhwNekBEwJB!&+x4J<-L6jBaA<WLPMKxdm5XiZ$v
zKxFW4B%yW8>BKB}pSL`h_fH}O-U{p~N+y=Fo%0DHdO4>d<dmgwq7hnwA~>6vabfI8
z^F&V+Bu%+S0p~Yf_ at fstp-lmNx^%6#k<YQC&UR@*_(eLMBk{P2@*~HybNXjTRGcjf
zAVvg%5- at X4H4zaqL1ZRWCqlsi5O%eI+*Fnt;?dLHF=MG12b^44hO$O`>F+zg9VHYK
z=r<2OR5qSozlV?zMJ3P`9I`;E!_FPwCRp?Ify<UKkF~T`&-!(_H~g%%wMq%X{q`xF
z$R5zVO*1bhLSjW^pB`QtVj;b8GgwQB@}_9DHJAx$x=yg>NMKyrSSSVvK&MH=3>^Q6
zhVy1Ha+#f+4vrY}a*T<Www-Efbz+-F14^nBX=+Z%)y}!W>=iNUFLKkjT+ at +GtqRI+
z=8tXxoIe!`$fKQRCt<TleQ-#2fsze6w)<@5w%TwoDq3EU+0OM1EU?OSFasx`2PA-Y
z*g)5E4^fc<DsP4N(*cTMB6gxDWWh{sTWE1k0nIV8bsglBNl at +C==1v1{h~V(kWDl)
zK>QFmY&q;5_DxiP9wG(i)yUlOo??1ARvu<*s;pf*PL&#}qLQsS2XPjlk2(&peE~fU
z8Sq_?#}{wEHal|XHN`lA-JDD8 at Y3B$G|C{kVfCT-5UdC5F9BevgpnbP#>Qmeq*FtA
zx58)>3Nlx50uYQ-CCFk-jzN$*<ekN+i6aR<3QM_deDTK^cklChzLSB_f;jn{aj6d%
z&M4|ha$Fq;fSp4IK%v^JpC3NnB at N*R0S%P$9|>+vM_f5JU}O=PdbxbX8o|?vM8B^8
z-%?<tz_o?S*N2kyyCo at +Ecl^qXvlTiwRr~ReY1=(ZX-!w$6)KGqYyiqX at xv_xk`nM
zn|kn*+Xft)-JP<aCw#aqL3_cahi#Dsrb|v(k!WagDfC-0Ff!8s#Y~d}moFQ*>0Zg=
z?)UNV?j2s)L=gm5OcKUUn`psB^VNadmtp6_3DT`fXtYb)%-chi at W^7Ss;Z)>(gB2p
zVk2aVO>&^PQk78PiyN#Ez|()f<Z}0&XLv;FHVa}(Te49OUtVrEe%Z?=V^&8A%S}kz
zH;bk;i$x|hk^UqJ&4%M{FOFASgNt;=;^&70hGV6Wmaq4)bk9r};lm28!=eqcR>Vs)
zaF}jfc1W}~_Uj^64dFSYPB!gTb=c~K16(^X!*|$Wx*FQL=JL!?yFM65%tZEeMF;}Z
zX_)P2chzdpj;BHlY0c72Y?-iwY|Zb*h7m)*S?1(sO at uzUM2M`CN+ at lRPBiN##om>o
zRlIF2Y{CI75w`Q$Dsb)$`@_c(r%%EuNP)NL+_Xa`d=AW7vb(byW-RMRLO9QEmBuqN
zXTxMzD+a=>CmZflqLNXD61<T}K5Dr>4v7^M`sYcl7smcIjbYb(!Aes*XT{*xCi&=-
z#gui!?o2~LE!rDtc_?>>jur|IP}KDr!?4QTg^KBPDDw4}Eh!KTEdgOMH%eou9grA{
zfh$I(+ey}4(h(`dwPVA?4EmVHLiySd;sZ-D+zJ#Qk{rG)9yCoN7DWheQ#NWq!zS%`
zqZM~x))$3RIU$9@!X$m1jjO at bPE&~{d#uIT!omdB$CHFFI6VZzxZ-2eo7mQ>PFsc7
z4(KlKJ86`zV$;dpTsO1T;aEH<Ac|ZaBs;ymz~pEeYr%!D14J3{Y=UgI<GO|b!mSbn
zL=uF^Qj4=60C at q~()0z!f`b5uBydS67>5Z1Di~#vh%wy5XsQV2is{mJhd<F8jD*1$
z=TeFh&)o(_5ep5BX+xC$Yvghdo$v6;PMeb;6Y{4UU*&X5f<1)SQTKZ at p`97vr;c1;
z^j?r{Fr|BMkI%ksYRs<a+QF)sfZmzfK{$>`IGq+!Fxx;h>=_X4n9A3^^_#dRp2eeE
z8|J-sn;42z03QV|q}d#o{QGZEG$0^$){+wVEgGrt9HjzT(Kqu_Hd(q%{v+ZTJ;5XN
z{0q9RL-iX0>N+RU{CdI#6s9Zlxmg7yO-UaK>EIye?SqZcJo36tnB83`*rqQD#=(0%
zSQ%9#NKg?98M~qDJ97i7Qa7`OA6Y1Q{EkE~U&q(rc;pjdkIQOx;3L_F$I-v)Kshj+
z7swnwuv5Fd?|RyS2DB(iZ3mOe^i*IMUSK6M7iEPt2oy3f111}AyNN#^YtE=q60kW0
z8%>ZI7!2!@CH{{_!w_jnE~Xe&5Edgtwq_{AMJjN>L@&Xk4bBo(8PM4md8rdng2E at r
zfE`b_yz&{bv;m^=h6{A1!1r<o<=#d&oYIYindBh|Dm+&H&^z;gQ9DhLva%jHRC)H~
z3x{OF+FthHaq(0ycqa7>!;op?l+hIB;?SKRUxbkQr^NW~(K8ISw54LXl*^7+D~>Wk
zK!hwmmj;(DwBumjs6C^}Kf1}=-_nX92#}ANH+WD(zZSX at Psr)Mt>@3iv4?!>&`+Mv
zA2mG877%#Sy&>X=!^-uW(|4^vq|!1qY><?IZ%m&khXB;v!)JU`WS?TN^4<`EBd^bP
z5)uc`u<Z8(l}r$PCQ(=4@|N2N>X#^^^<r)v3VlaLxD(3f1R7L62?8WZ<mECG836Tz
z(j~N at dg379FnkDyz@#euVF2Sr2 at BHHW&OaGD7Ze)f9m*f`n}{|xARILZBG1ffIAlw
z3=qJaVG0oIB>>4t%uPT<kqk&Wfm|doBw3shu$K+7_k&0rFZiPCVJg{D6i6v)WJT5#
z`Ir_(gjQI>i~=b+X;8M+g}wi5>USV2We!wx!5wJ9fgs^A1BMJ=SaMiLP$zRdj-a53
zLMJ6U^w}nV4gZyO=K|DX9MMik2kF=wkO>k)!bqNe?X>Y&qF~dJ5l&de1lD3C7D1e|
z0al~=E=(7g87J!HsoP7uaLR_}IayeZN;9&tL-muaC5r=4tp1a$nh7bHl~}5^SOp5b
zs?3qC)CP=0tq>p+%AMbtkTtk|t2QTgQJc)eBaN{7H(Fsw_R$@QGn*4lE at G}O2N6<O
zoerfifj7h+EH{YXcEjbG3MLxxEGkudlh%fP%tI5f8s4L@()r=nN*Ejx9x(D=mO1Bs
z*2OMnBE=9zjl$y~eg+<2842T^=E?bgaQG5KAvw_XZ at QF0GL5O1?Mwv^6%O?2Lb6O*
z0D;L`2i2?r6-Fp~B2=R`6H`cg>?#O51CuByf?*3dU{IylE0k!%&~^?Zk6q{xbq&Bd
zSDxFGMD;V#IGIm<y&5a}aqrj at hzs#z5 at +f2HT8P7wq4g~y<i7E!lGG<A%KZU35jZn
zI?a=c<e};hU)Sj&AWOI0PGp_ at t3wM2IAhtLhSd}q7ilOWh^90Jk)<)`?KB`9p-QeG
zHdPD^2<WKcbODG)>Gm512q}ZG!M~}(DRGeD6Xrf6bRBX(SMmj6sft+zk$#d40#c<4
zz*!q*N+2*w)+-RvQImi~GniH)#5n~eDAF{<20)Y{NhqLi%=(&?U|7_%$kY)ALU~9!
zX!IY}?v at jBQNY5PV_0?4lwfiP1SHIw4ak9l38G0LVQ|xiT+KORr?&$%YJstk(G@}*
zz-77;d~R)->~YUtR2;Mq=i!TmL#|m_n%I4tR=H*o<})MD9==%whs!(5Q9pp;3{FH4
zkH~@e`+M(d0G^@@l at F>>go;3vfs#Q at 0>F5}Y-TEbdNmdKL@*d3iY#0~ZA%3Bgf#T)
z?}lTaj`{+TJ=w&?H2eyku~<Ry at zY?BToc>tk`KvhtSm*~agZV$a8m6pw{UMi5-YDE
zgR2&rz}`<0zLJJw>chD^6q|O7;6N=U6smP9ebbtHs%m4^nU)m)B2g64X<clJtW;dI
zQl>d5ny89tB1niWSV>7vOtGd|nI%+IiVEW>R-&kc1i>;uLPT1?$eM<zii$OwHI!<|
zjo->*Qa=2z&k3bAPhrf3QE1Yh&Sxa_3J_lzBH5@!kWh)Td;7w*Tt7;EfcmhX%tUBd
zND(Mu5|ao417(piUzuGW03M)l3_Hvetk#byb7Cj54G!_6 at p?8#pnE7eVk26FBtk(3
z6ucf!US at GSy4ahb10YC=-~L-Z6U&E$KIvF|;{Efz%8LLX0RmSrT$*8`RUDTn^Bf13
zk3OGNsM2&CE#lqo4H|4cKh}n7lb&8SdS=bbxa0{j2?>JOkTMPA_ebFNzRwM2dAkG;
zno1NYLy_ViG4hdnBP==17qsExb=7rAP(bz3>&zvHPRV{a93Y4`2y%CZk<W!8L?cBQ
zCE}~B`Rt1#ErY*PL)XnTGjbL13zjlHr-B9tU~o$wC0L}8DS~AshDibfl98w=ib at 7j
zB82;|x at S}A-~fBs5c{6%5_{dEkqAH%voNqlO8IjdkVpuqh at wI7PnX>R(-SQ0Ph<JM
z4CgmyJ7x*)Phy<DjAX%V?|~roq|j3uL)`p2I3pD?A~;1X5iqJs$qSf<gR*t006Ce)
z=s$>VP&t~U5wLG6c{4Z at g)L&@<o64ro`lo5d}^k-RY&0=Vk(KRudw=y_ovhz^Rcus
z$|qXyAO}$psUaiqYQ6DMk(kkl=48T5W>GC+nM1G?lr13NEwVlTi+XKw%MOlBaqpjW
z at AgOC&f0A#fUDk5aecmGy-`BR#qxf9D<_a`df8C)3s##N)CN&eNN0!6d#$OD0VSTd
zbaw;aBaEe{h?yw_rqsl8LM3)F!O{jU0~x>KAEc7?pq~U4Ar))L8_r45<KS4ZCLo;f
zOh?2mBOt|`rN0yM)AkCRCqN)`hwA?~|37#9d4CW8e~<9}|HpaCPlzPl%|P<NUn>Yf
z2u|f7=Z+Vw!QmkZAdRzpICYboWi+U33aJ)NrH0%vixH4H5<ogd6Jzw7y*KU3*Tm^k
zXNScQzmaAA(+)M4a!?|guPxwd$(UtVElQV`e(D;jd;G`9Ts2l0G;ilfd@<XK|0twE
z>n^UJD&Ok)qq^wh(3P+|%8)`{%yda0qA?7>)@bwz2uEh4AG)1)A?h5a*4K>MK$in)
zS&M(Co8QBbhKz>gdea36zPK-wBGZ~|(qu$LeIJLp;o}qyZM(Q0gaODMpo6dAfDtt#
zN6qqQ5Y3S0pad2Vz&Rsd4NBnC<)r+S;#?%!!?m_dkg0_qlLG-tlT&ypi1}WCJJJSE
zzk!3{^kADHAAW6B$pG+xW+&qO+xofJo_mXZqwp1cue!vew|;Cj;-v=(-g;Hoq{^S_
z?KX;F5H1~Aj)NpTV-v?_ixgK_xq&|5;3}Jxx!Rgp<ZV3FL^h_G?Sq+Wk_2)1H^B7>
zXXei=xk6^8Y$-JGw<>~lNy(u}W-HKlN8ki?@|%Vi+If5|vZ&titNh7P7)11r{{8eA
zUFMLeOF2y;Eux7Sj1Io#J at Ld&{}KX*fQdk*2#Q|#B0_|NF;amMp<-GWQ at 1xp1cT9)
zRGy+KMDv`z;)FQ7BdBkTOp=sg at cO$r7yNSq9a&}uJxF^4tjIb;nR0n}34nYcI&|rK
zft<9lJ)k64co8I170ePPukEnPT43r%lXiDe#EpXN+%HCqEknxDBd9S*14Q>p-c73E
zOcztaicQd`F)rE<O=by=G8SE?PP_x>p!@U3Y0_Z*;WuW8cdB}JUL338k-0%;CQWlS
z(mRMg4F?TL$R&l?$Wl9|2E?VzpcX+Wg(6LGV>qC4!*Ba2?tpy<w`Xc9kLXZYYvyKF
zK0c2 at hmvvm#<|Ld1hTctUb7boy;MDBgvic35<teiThV%Q5bn=MRIC<y1n<R^lw$Z7
zvx}7hJ7zN(FvTpK!?!X(;;!}2P!TdR<TZDDW+$9xr&Th2o9*}6p|xl^xi?}ze+p$j
zlOcU=wwm`t%#Cl*-D{#19%3%0d8m|_qmXCqH5oh`;ojg>FI0^vp`$0A+`ZF?uHMYY
z!qC*GPGuG1Vh$~lP9`%3)Jja`u;RKih1ij1CkeM3Z+)g~Rl&@!Y_-HWO2WMy)N<q&
zN5NB{b<DA$t57OjFJ>QbTI~X`W?BX~h|5|S+elx5nJ$B7AjL8<K>Nih1G1Y4*DTx(
z4+F8Vt2DDo6%thSdzdg#+7gd;5u)HZO;rlVH3+1W;ZwE*tN`@<xFhtSe8Vu>V|yKH
z8lt9(_jAq#A;dF>kP+%12p1S&hLs6PK<@%TI}<_Ww0)+hzvbODhG&f*;El9mk`REh
zAefla1#t56p*dS-!;<koWEjFkr0&pl5<5J~Wm5DZY0{)Kj#L|)fE&P4Mk^wGqIO6G
zkRIe>W at _*KcEo-i?*lwa3doS;3Swtip{o#6LSqAJ3nmDP5IO<{pv_>J3qs&UYPE?m
zs}L$8MwD?foCjc__3wx}MI;D5A`BhW`RI{AZX|#Z$URX?K--rz{8i@%O?hq|umSTw
zf55{WUoIG=xfGO at kYCG*`u4!K#wGqc({Tp&Z;V2CU(p+cA<-O3x9R21r28_)9 at Y@3
zvbWLWNO6%3n=mX1GqM_vU^V-Hq at m~DYicHukyex=^`15%tOl at lAY_kXs~ANEj{<l2
z9>NX;Bq1aop#xBN at BltT>=k$WS9ggc7j<aBIz;(9u8+aV-Z$Aer(47<yX=YRd`Ki=
zW?~4Ft`w<{GI9;H&@w>LK%RvpG8#dM`%<|JBy=i|BcFym_`@QKB+_gE{yI0kp(2?k
zK=glRs%8oXW5YMYs;YGa-lCXyVy5 at 4f?{xc{!;WZ72Q7D7l~1#0Dd$lF&+r9&SqP3
zwUDssB=nLVkZFC%uE>OfmP!?`>k9*5dk?ai--~&OV(OuB)M7QMNK{-#+ at sNb|KTKZ
zF*JONMioRNQ#*+V*jy6Fze>BvgWNnGlgaG#;jb<X5zBz`RTV`N6AtcwXJxmykTPw;
z?x_N{{1oZw_5UP3(oo}sqlujUiqh<XPGFIP<I;PT_>dt>L=r}VfwCzO#U~&i5Og8j
zmk-Auh5G(m#PK#ikx%j|dbm0s_@}g<Y3_^FLIwcxpAd_;6*~RT(ANb%&&peU0jzre
zMYa=?`Xl<t at jE>oMi~?Bz;An{^2ziNbR`iFx}`$Imf1 at 5Qe2X?3r-2}{ZE%YFT?R?
zH}+%R?smNTv=}bY- at W2^@(9DuKQ`L>Fl+OW(k$RnCXuAyH)(ycJy~?ae1=yC-4u|z
zYb4grla at GQ658bYt}I}^YU-8^OS6<pv2uX(50_BwkHzwuI+8tK52HNl(tt2L!SL*R
zeLIg`_P)Lu1Fh83t%laYXj|6kRK%wyoZ%WK(z9p|20OPmR5s2<%@b|cuF{Q(l<W8@
z(MUY|6ZEfkKr;M>>Qjj4X{NUxn^q)&A%dP+Q;6`OPs6t}MXUqNB62$+uxNd&l*pZ&
z%=Xn>JkG(ynER{JJX^?u2q1k^zhW5&!3WmJpfj_TMQ!}4K(=zlo}Tl&rAUY}E1gJ;
z4QsOt=bB<M2QK2tStSw(<=<Q=PH9IleV`i%90!C=Wvq!3`*{lk7C@}Y at fd1I&_N~|
z)1)QVj5G^V5 at -;H%5(YINT7|63|I<bXz6faxDk?j=~aM;q0>;*n3E}CK?^M;7zn!|
zY;Bcdq+}5~Y7=Yf_Z#&ccRUxlm>DC%$0b3<aK=|%%PNZjkOmV6yF%@Qx-}@?W>)8s
zg#Z{%43OwfNC&(LVgqjQeTq1wK!gP`4g)fF==119lYu7p5eQSev<wJgD3~yTc`Xt$
z3yFb~&Wp23Itg<eC at NH`U~Ig%4`dHa{V}L at deqnv@9&R!<a-$=lyY1eTxjDn3o2*P
zLo}gHDngG*XcMS=#(ZysAtD!3xjY1WBiq|zNB5d3^(R3RAQE at bwfy+_>}*-*Fb1Df
zo+SjFBZ#025&#u}>R#P#({N=}>CKVf(F3zCG{s at j2lTt~F)l*T>Pk=MxaP at FxXB<@
z)xyxaG!vJjwG{N8K)3CzLPhvei9|+~B}oKPBC3Rjr^F8Z5YP+-13)Q+1vGQ^r{qYc
zrY0KX0PLzARHfn|WV1^ON<s_<Cy9iz^WH0Oo*n>?nr{zQK#LuM0+kgrMGiX_%*Ds9
zyOI_srWce%{z+VTiLkt$iFRE?XF`&rfH)M$6J#t6GeD$C6bo%+Wr0%w0PNj{;wvGR
zGLQ-+1q)b!AThOwN>bEX<*>%kN`Ns`MPf)mVNzBUYYS at HR8c@kl_Z%5>HGJ$T669B
zx1Ao|x_>*-cn7#m_ln*&nOIO?92<n*4LhhznISkN*?d6h2#0!?tn4;O*$y9G^&a6f
zqExJL#~;wRl+h1)@HU89M3KB&N90F_#Iq1`;p^z&9S$wd(}~=HgAil3d6}}{bbDc*
z<)BF$3BiwpVdVL{P)}8<<d~HKM>>u#fz0a6Kud6eupxt%W5Lbh&9zJKn1i4=Z5d4j
zaS+;w$<ECmF?s1b at gxg&FtPj at fVO0f4Azvmr)*8>*Q4Xg?7 at g%EMis$MuK3b8R#so
zXp$^D$a|^c at cKNA-S3~d<xGm4GeIViEc8rc7Y^9mONO3=>21f|yCQfpAaZ(yiXB4o
z<rSt|^0^p?siO-n&aJgEEe!x at lWu5O_Xl7dD}p+p7MlSf=k`@qWyn!EcOo2yCU|%$
z&Viy&*g+1=>Y8mzV-jOq!kOG7rd;Y3S;nLn43w*328_nZ9Tfc&dFrbAv9 at W#0kyQJ
z;;)TVfK>ceS9b12pG at ypY1Jd_4+U^wNCu5^md8L_4_cH`Gd=UN*qf6{kwTQ<!rn at Q
zkGQew*wR|y=|Ex*^Y!nX7U?e2sGz0PIU$f+kg!J)1oYZ`)Zw%`+L*8pET*KIMle4s
z7lpEyGvtS*B|RB at Lf=2krCPChGC>HR3kTMbdX64C2DD<zpHG$y>!R_3L8X(xiG_pm
zsY<HE<U2*tDXy(Ww&d4R?U_^>deHX1g9NX(!u+SO$i%cl$qV3@*b}x3wOc6xJSf(R
z%+4`P&O=0dZHQ%j^$p<&HpzsCmL(xFly*CaVi=Nx2^=Hm-Sk~($2+PA=FC`o;=aj#
z59@~Z*|@<>vQ&pveKAs^7zI%kQ$|pB<AzyfrXs15U=(>*vLc+*+>OEM#P^fC9_2AR
zP}f#E!>%$9O~JcrrQ2ougxbx_KBNmlxm(3N%2#71ZR$#+3nEl#CMhv(NN6PprVAA4
zHK+=S9{e&U$e~h&w$LqXVOc>XvY?H=Y?NHKTWvlJz|zGJj at jaetc*Wi9;gyf>i{^b
z#-M2Y$4z$b4{W-s{B_87BlTwh=tZUP4-;eYgQ;^vlkzRyg12XSyY$@)l`wLKt>Q=&
z*z*u*cXtv(NRu|5Zxa`x$oGo1g+|hmS~6^ske#e2+{{ByKzx>;E;`RzXQ>E-qIP3A
zmS{}FWY#gu;gGgBqg}#N1k4uB7r6m7lw(WboX0rbPW_bD91Rda^^OrZW+=l;gf=Dc
z=s+fM^iTwd+dOVe1>7VRr132&Vh*Tk5<(JTBYwJj)_I3nB>NJ}n9~@-W+QoHD{fmO
z#IqSw)>|5T>5$gk#^w;oHv8=XJyuvqqO=y}%`x6Msf=7mvDa}{&N`N+LdIk~W~L4w
zYcA9<7E2Sxc&$L~YGPpJP>ZJ)!^1JPOoX77RV>FaT{|(A{h at ZiL3c$P9euH=JEx+;
zF3Txm?d<E~dD;%l8MBJ%ODQasl131dL<>u#0fZ1nU_3E{iDob{Df}i}eFErT4%R(!
zZ=157qM*Z?D{3*3!ZraQgi+)<*e)7rTWga-9obbw#1C~il9rR<CdG<n4$(to0l5OK
z!aABOa1$VI=IR+3AW&GKzzq{{SQaJ%6fpwO&@$}hUCu>%k;}S+lA0-s8-c|)BuBT$
z-dGVFbyJzvIP4+a1EkV)n51O3dhENfn2JS(8ryKSBIJP*jyE-|jBb>nv1&I<CZ`?j
zBE|S#86fX^QPrngttp8NVO(?vO%Rbt28iICgC{2}LL3NW5^y2LdQgQ#D9U~!l_G$J
zNK(?HsX~D_RHaaRWf0cm4eYS_P*FG}rCgfPK*ow9hd78*bT(Wfc9#+8xb<xbaJH5}
z$g)Uf7*iCXT7-&ayCiD0z_|mH{8zmL#v#3Qq)K2dL_AR6%}e~Wavg{Xj-K2f80tIE
zKf$-Sc&CwqV2PxlCMuAbiV9#-R{=D9v87F<9F*@FNf2P|iXsJ9Mu9?=QK0jKCa&^3
z?|Mx#8lrLt4d+63h0dpTG?!3MAgQC6WTe$4b_vr8WNLcfDM8>D6!hf><E8#1kxZY+
zR65^k0nJM7^&+nkRNW1sa4dutS>gbk0w2o&If!}T=aL>}GIdiuCu%={qzev_djs92
zzJq7;P*n0u`n<m3c66uYlgI%6g9>o`Y4hLN+w^zxHztALM?j01OO(i$9te}e*m=Zl
zJ81qSh0nZ?Pf<2UpvU%mFWzL5)F_^hTY-_odU at j}<euUrBY3VKS=;(^ApVqk4}nf8
zPPTFkibU-&(wN8^76$%{ID)U&BrD^QAH+wQ0otFIThEm9(Dr`1DyhfkE5eE at A1<KS
zWO)=HU876_#B3Z>$W#)UbR51cGD0Qvv5Hc#2o8)!kTm!#h7m7WC1`1(c3<d(QBy=s
z+$VOvDK?q|W#L1d6a+yORWb@`>G{2a2ee>z2b_Ds+^g?J0JHVQO%f=4Fq3Apv1mw1
zVmm<Tuja5kwoXH2LszB%(UE?VBtXAI1}-)2ZGi%gzwHO|pSv7W6;X&86=SRDE}5(_
zS4l(t5Xdr_Fh2NkhmsYD7-M%B9N#tsPQ>`o at E?d}Jy7cS$f+0r%VE%fBQC>JAFp<4
z@~5jP2e~a1e_=KY4jX$`*HwD3o at jN{hIEWH?QF(@so^YJ6Ay$ql^A9$myjJXuuVkF
zl#R|Ts&FTZqekYG1gTt0w1UI+fbiaQ9G#J19gyT<Cdtd?rar$Ve#3&Y2-c#Tz&{8s
z;CTj7Hcb+qiX!&zJ?RKZB=?`hwP)?Rg~Useq*PDC;ELN8peODU5l8wD={g at 7^&hky
zr-MAJPbcu?E;TZiC at SqL`4fgZ7Rgc!Lja&_l0_t%lVm0Y)DJr<Lu8X$hw<+J at 9mg@
ezwiD%Is at _~HSRlblT`=*;_gVN3K9#Kf=fV+qBXz(

diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch
deleted file mode 100644
index 52986e6..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig.patch
+++ /dev/null
@@ -1,471 +0,0 @@
-Upstream-Status: Inappropriate [embedded specific]
-
-enable standalone building of ldconfig
-
----
- cache.c        |   11 +-
- chroot_canon.c |    7 +
- dl-cache.c     |  235 ---------------------------------------------------------
- dl-cache.h     |    3 
- ldconfig.c     |   27 ++++--
- readlib.c      |    7 +
- xstrdup.c      |   11 --
- 7 files changed, 45 insertions(+), 256 deletions(-)
-
-Index: ldconfig-native-2.12.1/cache.c
-===================================================================
---- ldconfig-native-2.12.1.orig/cache.c
-+++ ldconfig-native-2.12.1/cache.c
-@@ -16,6 +16,9 @@
-    along with this program; if not, write to the Free Software Foundation,
-    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
- 
-+#define _LARGEFILE64_SOURCE
-+#define _GNU_SOURCE
-+
- #include <errno.h>
- #include <error.h>
- #include <dirent.h>
-@@ -31,8 +34,10 @@
- #include <sys/stat.h>
- #include <sys/types.h>
- 
--#include <ldconfig.h>
--#include <dl-cache.h>
-+#include "ldconfig.h"
-+#include "dl-cache.h"
-+# define N_(msgid)  msgid
-+#define _(msg) msg
- 
- struct cache_entry
- {
-Index: ldconfig-native-2.12.1/chroot_canon.c
-===================================================================
---- ldconfig-native-2.12.1.orig/chroot_canon.c
-+++ ldconfig-native-2.12.1/chroot_canon.c
-@@ -17,6 +17,9 @@
-    along with this program; if not, write to the Free Software Foundation,
-    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
- 
-+#define _LARGEFILE64_SOURCE
-+#define _GNU_SOURCE
-+
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-@@ -27,7 +30,9 @@
- #include <stddef.h>
- #include <stdint.h>
- 
--#include <ldconfig.h>
-+#include "ldconfig.h"
-+
-+#define __set_errno(Val) errno = (Val)
- 
- #ifndef PATH_MAX
- #define PATH_MAX 1024
-Index: ldconfig-native-2.12.1/dl-cache.c
-===================================================================
---- ldconfig-native-2.12.1.orig/dl-cache.c
-+++ ldconfig-native-2.12.1/dl-cache.c
-@@ -20,12 +20,12 @@
- 
- #include <assert.h>
- #include <unistd.h>
--#include <ldsodefs.h>
-+//#include "ldsodefs.h"
- #include <sys/mman.h>
- #include <dl-cache.h>
- #include <dl-procinfo.h>
- 
--#include <stdio-common/_itoa.h>
-+//#include "_itoa.h"
- 
- #ifndef _DL_PLATFORMS_COUNT
- # define _DL_PLATFORMS_COUNT 0
-@@ -39,103 +39,7 @@ static size_t cachesize;
- /* 1 if cache_data + PTR points into the cache.  */
- #define _dl_cache_verify_ptr(ptr) (ptr < cache_data_size)
- 
--#define SEARCH_CACHE(cache) \
--/* We use binary search since the table is sorted in the cache file.	      \
--   The first matching entry in the table is returned.			      \
--   It is important to use the same algorithm as used while generating	      \
--   the cache file.  */							      \
--do									      \
--  {									      \
--    left = 0;								      \
--    right = cache->nlibs - 1;						      \
--									      \
--    while (left <= right)						      \
--      {									      \
--	__typeof__ (cache->libs[0].key) key;				      \
--									      \
--	middle = (left + right) / 2;					      \
--									      \
--	key = cache->libs[middle].key;					      \
--									      \
--	/* Make sure string table indices are not bogus before using	      \
--	   them.  */							      \
--	if (! _dl_cache_verify_ptr (key))				      \
--	  {								      \
--	    cmpres = 1;							      \
--	    break;							      \
--	  }								      \
--									      \
--	/* Actually compare the entry with the key.  */			      \
--	cmpres = _dl_cache_libcmp (name, cache_data + key);		      \
--	if (__builtin_expect (cmpres == 0, 0))				      \
--	  {								      \
--	    /* Found it.  LEFT now marks the last entry for which we	      \
--	       know the name is correct.  */				      \
--	    left = middle;						      \
--									      \
--	    /* There might be entries with this name before the one we	      \
--	       found.  So we have to find the beginning.  */		      \
--	    while (middle > 0)						      \
--	      {								      \
--		__typeof__ (cache->libs[0].key) key;			      \
--									      \
--		key = cache->libs[middle - 1].key;			      \
--		/* Make sure string table indices are not bogus before	      \
--		   using them.  */					      \
--		if (! _dl_cache_verify_ptr (key)			      \
--		    /* Actually compare the entry.  */			      \
--		    || _dl_cache_libcmp (name, cache_data + key) != 0)	      \
--		  break;						      \
--		--middle;						      \
--	      }								      \
--									      \
--	    do								      \
--	      {								      \
--		int flags;						      \
--		__typeof__ (cache->libs[0]) *lib = &cache->libs[middle];      \
--									      \
--		/* Only perform the name test if necessary.  */		      \
--		if (middle > left					      \
--		    /* We haven't seen this string so far.  Test whether the  \
--		       index is ok and whether the name matches.  Otherwise   \
--		       we are done.  */					      \
--		    && (! _dl_cache_verify_ptr (lib->key)		      \
--			|| (_dl_cache_libcmp (name, cache_data + lib->key)    \
--			    != 0)))					      \
--		  break;						      \
--									      \
--		flags = lib->flags;					      \
--		if (_dl_cache_check_flags (flags)			      \
--		    && _dl_cache_verify_ptr (lib->value))		      \
--		  {							      \
--		    if (best == NULL || flags == GLRO(dl_correct_cache_id))   \
--		      {							      \
--			HWCAP_CHECK;					      \
--			best = cache_data + lib->value;			      \
--									      \
--			if (flags == GLRO(dl_correct_cache_id))		      \
--			  /* We've found an exact match for the shared	      \
--			     object and no general `ELF' release.  Stop	      \
--			     searching.  */				      \
--			  break;					      \
--		      }							      \
--		  }							      \
--	      }								      \
--	    while (++middle <= right);					      \
--	    break;							      \
--	}								      \
--									      \
--	if (cmpres < 0)							      \
--	  left = middle + 1;						      \
--	else								      \
--	  right = middle - 1;						      \
--      }									      \
--  }									      \
--while (0)
--
--
- int
--internal_function
- _dl_cache_libcmp (const char *p1, const char *p2)
- {
-   while (*p1 != '\0')
-@@ -172,139 +76,3 @@ _dl_cache_libcmp (const char *p1, const 
-     }
-   return *p1 - *p2;
- }
--
--
--/* Look up NAME in ld.so.cache and return the file name stored there,
--   or null if none is found.  */
--
--const char *
--internal_function
--_dl_load_cache_lookup (const char *name)
--{
--  int left, right, middle;
--  int cmpres;
--  const char *cache_data;
--  uint32_t cache_data_size;
--  const char *best;
--
--  /* Print a message if the loading of libs is traced.  */
--  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0))
--    _dl_debug_printf (" search cache=%s\n", LD_SO_CACHE);
--
--  if (cache == NULL)
--    {
--      /* Read the contents of the file.  */
--      void *file = _dl_sysdep_read_whole_file (LD_SO_CACHE, &cachesize,
--					       PROT_READ);
--
--      /* We can handle three different cache file formats here:
--	 - the old libc5/glibc2.0/2.1 format
--	 - the old format with the new format in it
--	 - only the new format
--	 The following checks if the cache contains any of these formats.  */
--      if (file != MAP_FAILED && cachesize > sizeof *cache
--	  && memcmp (file, CACHEMAGIC, sizeof CACHEMAGIC - 1) == 0)
--	{
--	  size_t offset;
--	  /* Looks ok.  */
--	  cache = file;
--
--	  /* Check for new version.  */
--	  offset = ALIGN_CACHE (sizeof (struct cache_file)
--				+ cache->nlibs * sizeof (struct file_entry));
--
--	  cache_new = (struct cache_file_new *) ((void *) cache + offset);
--	  if (cachesize < (offset + sizeof (struct cache_file_new))
--	      || memcmp (cache_new->magic, CACHEMAGIC_VERSION_NEW,
--			 sizeof CACHEMAGIC_VERSION_NEW - 1) != 0)
--	    cache_new = (void *) -1;
--	}
--      else if (file != MAP_FAILED && cachesize > sizeof *cache_new
--	       && memcmp (file, CACHEMAGIC_VERSION_NEW,
--			  sizeof CACHEMAGIC_VERSION_NEW - 1) == 0)
--	{
--	  cache_new = file;
--	  cache = file;
--	}
--      else
--	{
--	  if (file != MAP_FAILED)
--	    __munmap (file, cachesize);
--	  cache = (void *) -1;
--	}
--
--      assert (cache != NULL);
--    }
--
--  if (cache == (void *) -1)
--    /* Previously looked for the cache file and didn't find it.  */
--    return NULL;
--
--  best = NULL;
--
--  if (cache_new != (void *) -1)
--    {
--      uint64_t platform;
--
--      /* This is where the strings start.  */
--      cache_data = (const char *) cache_new;
--
--      /* Now we can compute how large the string table is.  */
--      cache_data_size = (const char *) cache + cachesize - cache_data;
--
--      platform = _dl_string_platform (GLRO(dl_platform));
--      if (platform != (uint64_t) -1)
--	platform = 1ULL << platform;
--
--#define _DL_HWCAP_TLS_MASK (1LL << 63)
--      uint64_t hwcap_exclude = ~((GLRO(dl_hwcap) & GLRO(dl_hwcap_mask))
--				 | _DL_HWCAP_PLATFORM | _DL_HWCAP_TLS_MASK);
--
--      /* Only accept hwcap if it's for the right platform.  */
--#define HWCAP_CHECK \
--      if (lib->hwcap & hwcap_exclude)					      \
--	continue;							      \
--      if (GLRO(dl_osversion) && lib->osversion > GLRO(dl_osversion))	      \
--	continue;							      \
--      if (_DL_PLATFORMS_COUNT						      \
--	  && (lib->hwcap & _DL_HWCAP_PLATFORM) != 0			      \
--	  && (lib->hwcap & _DL_HWCAP_PLATFORM) != platform)		      \
--	continue
--      SEARCH_CACHE (cache_new);
--    }
--  else
--    {
--      /* This is where the strings start.  */
--      cache_data = (const char *) &cache->libs[cache->nlibs];
--
--      /* Now we can compute how large the string table is.  */
--      cache_data_size = (const char *) cache + cachesize - cache_data;
--
--#undef HWCAP_CHECK
--#define HWCAP_CHECK do {} while (0)
--      SEARCH_CACHE (cache);
--    }
--
--  /* Print our result if wanted.  */
--  if (__builtin_expect (GLRO_dl_debug_mask & DL_DEBUG_LIBS, 0)
--      && best != NULL)
--    _dl_debug_printf ("  trying file=%s\n", best);
--
--  return best;
--}
--
--#ifndef MAP_COPY
--/* If the system does not support MAP_COPY we cannot leave the file open
--   all the time since this would create problems when the file is replaced.
--   Therefore we provide this function to close the file and open it again
--   once needed.  */
--void
--_dl_unload_cache (void)
--{
--  if (cache != NULL && cache != (struct cache_file *) -1)
--    {
--      __munmap (cache, cachesize);
--      cache = NULL;
--    }
--}
--#endif
-Index: ldconfig-native-2.12.1/dl-cache.h
-===================================================================
---- ldconfig-native-2.12.1.orig/dl-cache.h
-+++ ldconfig-native-2.12.1/dl-cache.h
-@@ -101,5 +101,4 @@ struct cache_file_new
- (((addr) + __alignof__ (struct cache_file_new) -1)	\
-  & (~(__alignof__ (struct cache_file_new) - 1)))
- 
--extern int _dl_cache_libcmp (const char *p1, const char *p2)
--     internal_function;
-+extern int _dl_cache_libcmp (const char *p1, const char *p2);
-Index: ldconfig-native-2.12.1/ldconfig.c
-===================================================================
---- ldconfig-native-2.12.1.orig/ldconfig.c
-+++ ldconfig-native-2.12.1/ldconfig.c
-@@ -16,6 +16,9 @@
-    along with this program; if not, write to the Free Software Foundation,
-    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
- 
-+#define _LARGEFILE64_SOURCE
-+#define _GNU_SOURCE
-+
- #define PROCINFO_CLASS static
- #include <alloca.h>
- #include <argp.h>
-@@ -39,10 +42,20 @@
- #include <glob.h>
- #include <libgen.h>
- 
--#include <ldconfig.h>
--#include <dl-cache.h>
-+#include "ldconfig.h"
-+#include "dl-cache.h"
-+
-+#include "dl-procinfo.h"
-+
-+#include "argp.h"
-+
-+
-+#define SYSCONFDIR "/etc"
-+#define LIBDIR "/usr/lib"
-+#define SLIBDIR "/lib"
-+# define N_(msgid)  msgid
-+#define _(msg) msg
- 
--#include <dl-procinfo.h>
- 
- #ifdef _DL_FIRST_PLATFORM
- # define _DL_FIRST_EXTRA (_DL_FIRST_PLATFORM + _DL_PLATFORMS_COUNT)
-@@ -55,7 +68,7 @@
- #endif
- 
- /* Get libc version number.  */
--#include <version.h>
-+#include "version.h"
- 
- #define PACKAGE _libc_intl_domainname
- 
-@@ -152,8 +165,8 @@ static const struct argp_option options[
-   { NULL, 0, NULL, 0, NULL, 0 }
- };
- 
--#define PROCINFO_CLASS static
--#include <dl-procinfo.c>
-+//#define PROCINFO_CLASS static
-+//#include <dl-procinfo.c>
- 
- /* Short description of program.  */
- static const char doc[] = N_("Configure Dynamic Linker Run Time Bindings.");
-@@ -291,6 +304,7 @@ parse_opt (int key, char *arg, struct ar
-   return 0;
- }
- 
-+#define REPORT_BUGS_TO "mailing list : poky at yoctoproject.org"
- /* Print bug-reporting information in the help message.  */
- static char *
- more_help (int key, const char *text, void *input)
-@@ -315,7 +329,7 @@ For bug reporting instructions, please s
- static void
- print_version (FILE *stream, struct argp_state *state)
- {
--  fprintf (stream, "ldconfig %s%s\n", PKGVERSION, VERSION);
-+  fprintf (stream, "ldconfig (Hacked Poky Version)\n");
-   fprintf (stream, gettext ("\
- Copyright (C) %s Free Software Foundation, Inc.\n\
- This is free software; see the source for copying conditions.  There is NO\n\
-@@ -1233,6 +1247,7 @@ set_hwcap (void)
-     hwcap_mask = strtoul (mask, NULL, 0);
- }
- 
-+const char _libc_intl_domainname[] = "libc";
- 
- int
- main (int argc, char **argv)
-Index: ldconfig-native-2.12.1/readlib.c
-===================================================================
---- ldconfig-native-2.12.1.orig/readlib.c
-+++ ldconfig-native-2.12.1/readlib.c
-@@ -22,6 +22,9 @@
-    development version.  Besides the simplification, it has also been
-    modified to read some other file formats.  */
- 
-+#define _LARGEFILE64_SOURCE
-+#define _GNU_SOURCE
-+
- #include <a.out.h>
- #include <elf.h>
- #include <error.h>
-@@ -35,7 +38,9 @@
- #include <sys/stat.h>
- #include <gnu/lib-names.h>
- 
--#include <ldconfig.h>
-+#include "ldconfig.h"
-+
-+#define _(msg) msg
- 
- #define Elf32_CLASS ELFCLASS32
- #define Elf64_CLASS ELFCLASS64
-Index: ldconfig-native-2.12.1/xstrdup.c
-===================================================================
---- ldconfig-native-2.12.1.orig/xstrdup.c
-+++ ldconfig-native-2.12.1/xstrdup.c
-@@ -16,15 +16,10 @@
-    along with this program; if not, write to the Free Software Foundation,
-    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
- 
--#ifdef HAVE_CONFIG_H
--# include <config.h>
--#endif
-+#define _GNU_SOURCE
-+
-+#include <string.h>
- 
--#if defined STDC_HEADERS || defined HAVE_STRING_H || _LIBC
--# include <string.h>
--#else
--# include <strings.h>
--#endif
- void *xmalloc (size_t n) __THROW;
- char *xstrdup (char *string) __THROW;
- 
diff --git a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch b/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch
deleted file mode 100644
index 27bc411..0000000
--- a/meta-oe/recipes-core/eglibc/ldconfig-native-2.12.1/ldconfig_aux-cache_path_fix.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-Upstream-Status: Pending
-
-Coming from this bug: http://sourceware.org/bugzilla/show_bug.cgi?id=11149
-
-Nitin A Kamble <nitin.a.kamble at intel.com>2011/03/29
-
---- ldconfig-native-2.12.1.orig/ldconfig.c	
-+++ ldconfig-native-2.12.1/ldconfig.c	
-@@ -1359,14 +1359,9 @@ main (int argc, char **argv)
- 
-   const char *aux_cache_file = _PATH_LDCONFIG_AUX_CACHE;
-   if (opt_chroot)
--    {
--      aux_cache_file = chroot_canon (opt_chroot, aux_cache_file);
--      if (aux_cache_file == NULL)
--	error (EXIT_FAILURE, errno, _("Can't open cache file %s\n"),
--	       _PATH_LDCONFIG_AUX_CACHE);
--    }
-+    aux_cache_file = chroot_canon (opt_chroot, aux_cache_file);
- 
--  if (! opt_ignore_aux_cache)
-+  if (! opt_ignore_aux_cache && aux_cache_file)
-     load_aux_cache (aux_cache_file);
-   else
-     init_aux_cache ();
-@@ -1376,7 +1371,8 @@ main (int argc, char **argv)
-   if (opt_build_cache)
-     {
-       save_cache (cache_file);
--      save_aux_cache (aux_cache_file);
-+      if (aux_cache_file)
-+        save_aux_cache (aux_cache_file);
-     }
- 
-   return 0;
-
diff --git a/meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch b/meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch
deleted file mode 100644
index 7b544ca..0000000
--- a/meta-oe/recipes-support/cups/cups-1.4.6/0001-don-t-try-to-run-generated-binaries.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 90069586167b930befce7303aea57078f04b4ed8 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Sun, 30 Jan 2011 16:37:27 +0100
-Subject: [PATCH] don't try to run generated binaries
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- ppdc/Makefile |   30 +++++++++++++++---------------
- 1 files changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/ppdc/Makefile b/ppdc/Makefile
-index 0288d47..fc87f1b 100644
---- a/ppdc/Makefile
-+++ b/ppdc/Makefile
-@@ -243,8 +243,8 @@ genstrings:		genstrings.o libcupsppdc.a ../cups/libcups.a \
- 	$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o genstrings genstrings.o \
- 		libcupsppdc.a ../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) \
- 		$(DNSSDLIBS) $(COMMONLIBS) $(LIBZ)
--	echo Generating localization strings...
--	./genstrings >sample.c
-+#	echo Generating localization strings...
-+#	./genstrings >sample.c
- 
- 
- #
-@@ -261,9 +261,9 @@ ppdc-static:		ppdc.o libcupsppdc.a  ../cups/libcups.a foo.drv foo-fr.po
- 	$(CXX) $(ARCHFLAGS) $(LDFLAGS) -o ppdc-static ppdc.o libcupsppdc.a \
- 		../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
- 		$(COMMONLIBS) $(LIBZ)
--	echo Testing PPD compiler...
--	./ppdc-static -l en,fr -I ../data foo.drv
--	./ppdc-static -l en,fr -z -I ../data foo.drv
-+#	echo Testing PPD compiler...
-+#	./ppdc-static -l en,fr -I ../data foo.drv
-+#	./ppdc-static -l en,fr -z -I ../data foo.drv
- 
- 
- #
-@@ -290,16 +290,16 @@ ppdi-static:		ppdc-static ppdi.o libcupsppdc.a  ../cups/libcups.a
- 		../cups/libcups.a $(LIBGSSAPI) $(SSLLIBS) $(DNSSDLIBS) \
- 		$(COMMONLIBS) $(LIBZ)
- 	echo Testing PPD importer...
--	$(RM) -r ppd ppd2 sample-import.drv
--	./ppdc-static -I ../data sample.drv
--	./ppdi-static -I ../data -o sample-import.drv ppd/*
--	./ppdc-static -I ../data -d ppd2 sample-import.drv
--	if diff -r ppd ppd2 >/dev/null; then \
--		echo PPD import OK; \
--	else \
--		echo PPD import FAILED; \
--		exit 1; \
--	fi
-+#	$(RM) -r ppd ppd2 sample-import.drv
-+#	./ppdc-static -I ../data sample.drv
-+#	./ppdi-static -I ../data -o sample-import.drv ppd/*
-+#	./ppdc-static -I ../data -d ppd2 sample-import.drv
-+#	if diff -r ppd ppd2 >/dev/null; then \
-+#		echo PPD import OK; \
-+#	else \
-+#		echo PPD import FAILED; \
-+#		exit 1; \
-+#	fi
- 
- 
- #
--- 
-1.6.6.1
-
diff --git a/meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch b/meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch
deleted file mode 100644
index 21ff0e5..0000000
--- a/meta-oe/recipes-support/cups/cups-1.4.6/use_echo_only_in_init.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/init/cups.sh.in.orig	2008-10-04 16:50:46.000000000 -0300
-+++ b/init/cups.sh.in	2008-10-04 16:51:39.000000000 -0300
-@@ -68,7 +68,7 @@
- 		ECHO_ERROR=:
- 		;;
- 
--	Linux*)
-+	DISABLELinux*)
- 		IS_ON=/bin/true
- 		if test -f /etc/init.d/functions; then
- 			. /etc/init.d/functions
diff --git a/meta-oe/recipes-support/cups/cups14.inc b/meta-oe/recipes-support/cups/cups14.inc
deleted file mode 100644
index 430d3ab..0000000
--- a/meta-oe/recipes-support/cups/cups14.inc
+++ /dev/null
@@ -1,84 +0,0 @@
-DESCRIPTION = "An Internet printing system for Unix."
-SECTION = "console/utils"
-LICENSE = "GPLv2 LGPLv2"
-DEPENDS = "gnutls libpng jpeg dbus dbus-glib zlib"
-PROVIDES = "cups14"
-
-SRC_URI = "ftp://ftp.easysw.com/pub/cups/${PV}/cups-${PV}-source.tar.bz2"
-
-LEAD_SONAME = "libcupsdriver.so"
-
-inherit autotools binconfig
-
-EXTRA_OECONF = " \
-               --enable-gnutls \
-               --enable-dbus \
-               --enable-browsing \
-               --disable-openssl \
-               --disable-tiff \
-               --without-php \
-               --without-perl \
-               --without-python \
-               --without-java \
-               "
-
-
-do_configure() {
-	gnu-configize
-	libtoolize --force
-	DSOFLAGS="${LDFLAGS}" oe_runconf
-}
-
-do_compile () {
-	sed -i s:STRIP:NOSTRIP: Makedefs
-	sed -i s:serial:: backend/Makefile
-
-	echo "all:"    >  man/Makefile
-	echo "libs:" >> man/Makefile
-	echo "install:" >> man/Makefile
-	echo "install-data:" >> man/Makefile
-	echo "install-exec:" >> man/Makefile
-	echo "install-headers:" >> man/Makefile
-	echo "install-libs:" >> man/Makefile
-
-	oe_runmake "SSLLIBS=-lgnutls -L${STAGING_LIBDIR}" \
-		   "LIBPNG=-lpng -lm -L${STAGING_LIBDIR}" \
-		   "LIBJPEG=-ljpeg -L${STAGING_LIBDIR}" \
-		   "LIBZ=-lz -L${STAGING_LIBDIR}" \
-		   "-I."
-}
-
-fakeroot do_install () {
-	oe_runmake "DSTROOT=${D}" install
-
-   # This directory gets installed with perms 511, which makes packaging fail
-   chmod 0711 "${D}/${localstatedir}/run/cups/certs"
-}
-
-python do_package_append() {
-	# Change permissions back the way they were, they probably had a reason...
-	workdir = bb.data.getVar('WORKDIR', d, 1)
-	os.system('chmod 0511 %s/install/cups/var/run/cups/certs' % workdir)
-}
-
-PACKAGES =+ "${PN}-lib ${PN}-libimage"
-
-FILES_${PN}-lib = "${libdir}/libcups.so.*"
-
-FILES_${PN}-libimage = "${libdir}/libcupsimage.so.*"
-
-FILES_${PN}-dbg += "${libdir}/cups/backend/.debug \
-                    ${libdir}/cups/cgi-bin/.debug \
-                    ${libdir}/cups/filter/.debug \
-                    ${libdir}/cups/monitor/.debug \
-                    ${libdir}/cups/notifier/.debug \
-                    ${libdir}/cups/daemon/.debug \
-                   "
-
-#package the html for the webgui inside the main packages (~1MB uncompressed)
-
-FILES_${PN} += "${datadir}/doc/cups/images \
-                ${datadir}/doc/cups/*html \
-                ${datadir}/doc/cups/*.css \
-                ${datadir}/icons/ \
-               "
-- 
1.7.5.4





More information about the Openembedded-devel mailing list