text:
Mr Andrew Robert Pearson
Consultant Ophthalmologist
MA, MRCP, FRCOphth
Berkshire, BMI The Princess Margaret Hospital
Member of Royal College of Physicians
Member of the United Kingdom and Ireland Society of Cataract & Refractive Surgeons
Member of the British Oculoplastic Surgeons Society
Fellow of the Royal College of Ophthalmologists
Member of the European Society of Cataract and Refractive Surgeons
Outcomes of cataract surgery; eyelid, lacrimal and orbital diseases.
+ Ophthalmology
Corneal transplant surgery
Excimer laser surgery
Glaucoma surgery trabeculectomy
IOL Vip system
Correcting a squint for children
My undergraduate training took place at Cambridge University and St Mary's Hospital, Paddington, qualifying in 1989. Higher training in internal medicine led to the award of Membership of the Royal College of Physicians in 1993.
Training in ophthalmology commenced in 1993 with a first post at the Prince Charles Eye Unit, Windsor. Extensive experience in further training posts for each of the sub-divisions within ophthalmology led to the award of Fellow of the Royal College of Ophthalmologists in 1996 and full specialist accreditation in 2001.
I have also undertaken two advanced higher specialist training programmes in oculoplastic surgery at both Queen's Medical Centre, Nottingham and Moorfield's Eye Hospital, London, and am a member of the British Oculoplastic Surgeons Society.
In 2002 I was appointed NHS Consultant Ophthalmologist and hold posts at both the Royal Berkshire Hospital, Reading and the Prince Charles Eye Unit, Windsor.
My ophthalmic practice includes:
Cataract surgery:
Micro-incision
Sutureless phacoemulsification-technique surgery using state-of-the-art equipment
Day case, no-needle, local anaesthesia surgery for faster recovery
Eyelid, oculoplastic and lacrimal surgery:
All aspects of eyelid disorders
Specialist cosmetic eyelid surgery
Tear duct problems causing watering
General ophthalmology, for example:
Diagnosis and management of adult glaucoma
Examination of an uncomfortable or painful eye
A change in eyesight or a change in the appearance of the eye where the underlying cause is unclear and needs looking into.
Hospital preference * BMI The Princess Margaret Hospital

redpajama_set_name: RedPajamaCommonCrawl


On the 11th of September 2018, Marello will sponsor OroVibe Germany!
Make sure to join us on the 11th op September in Cologne, Germany. Tickets are available through the event's website or by clicking the banner below.


text:
/*
 * Macros for manipulating and testing page->flags
 */

#ifndef PAGE_FLAGS_H
#define PAGE_FLAGS_H

#include <linux/types.h>
#include <linux/bug.h>
#include <linux/mmdebug.h>
#ifndef __GENERATING_BOUNDS_H
#include <linux/mm_types.h>
#include <generated/bounds.h>
#endif /* !__GENERATING_BOUNDS_H */

/*
 * Various page->flags bits:
 *
 * PG_reserved is set for special pages, which can never be swapped out. Some
 * of them might not even exist (eg empty_bad_page)...
 *
 * The PG_private bitflag is set on pagecache pages if they contain filesystem
 * specific data (which is normally at page->private). It can be used by
 * private allocations for its own usage.
 *
 * During initiation of disk I/O, PG_locked is set. This bit is set before I/O
 * and cleared when writeback _starts_ or when read _completes_. PG_writeback
 * is set before writeback starts and cleared when it finishes.
 *
 * PG_locked also pins a page in pagecache, and blocks truncation of the file
 * while it is held.
 *
 * page_waitqueue(page) is a wait queue of all tasks waiting for the page
 * to become unlocked.
 *
 * PG_uptodate tells whether the page's contents is valid.  When a read
 * completes, the page becomes uptodate, unless a disk I/O error happened.
 *
 * PG_referenced, PG_reclaim are used for page reclaim for anonymous and
 * file-backed pagecache (see mm/vmscan.c).
 *
 * PG_error is set to indicate that an I/O error occurred on this page.
 *
 * PG_arch_1 is an architecture specific page state bit.  The generic code
 * guarantees that this bit is cleared for a page when it first is entered into
 * the page cache.
 *
 * PG_highmem pages are not permanently mapped into the kernel virtual address
 * space, they need to be kmapped separately for doing IO on the pages.  The
 * struct page (these bits with information) are always mapped into kernel
 * address space...
 *
 * PG_hwpoison indicates that a page got corrupted in hardware and contains
 * data with incorrect ECC bits that triggered a machine check. Accessing is
 * not safe since it may cause another machine check. Don't touch!
 */

/*
 * Don't use the *_dontuse flags.  Use the macros.  Otherwise you'll break
 * locked- and dirty-page accounting.
 *
 * The page flags field is split into two parts, the main flags area
 * which extends from the low bits upwards, and the fields area which
 * extends from the high bits downwards.
 *
 *  | FIELD | ... | FLAGS |
 *  N-1           ^       0
 *               (NR_PAGEFLAGS)
 *
 * The fields area is reserved for fields mapping zone, node (for NUMA) and
 * SPARSEMEM section (for variants of SPARSEMEM that require section ids like
 * SPARSEMEM_EXTREME with !SPARSEMEM_VMEMMAP).
 */
enum pageflags {
	PG_locked,		/* Page is locked. Don't touch. */
	PG_error,
	PG_referenced,
	PG_uptodate,
	PG_dirty,
	PG_lru,
	PG_active,
	PG_slab,
	PG_owner_priv_1,	/* Owner use. If pagecache, fs may use*/
	PG_arch_1,
	PG_reserved,
	PG_private,		/* If pagecache, has fs-private data */
	PG_private_2,		/* If pagecache, has fs aux data */
	PG_writeback,		/* Page is under writeback */
	PG_head,		/* A head page */
	PG_swapcache,		/* Swap page: swp_entry_t in private */
	PG_mappedtodisk,	/* Has blocks allocated on-disk */
	PG_reclaim,		/* To be reclaimed asap */
	PG_swapbacked,		/* Page is backed by RAM/swap */
	PG_unevictable,		/* Page is "unevictable"  */
#ifdef CONFIG_MMU
	PG_mlocked,		/* Page is vma mlocked */
#endif
#ifdef CONFIG_ARCH_USES_PG_UNCACHED
	PG_uncached,		/* Page has been mapped as uncached */
#endif
#ifdef CONFIG_MEMORY_FAILURE
	PG_hwpoison,		/* hardware poisoned page. Don't touch */
#endif
#if defined(CONFIG_IDLE_PAGE_TRACKING) && defined(CONFIG_64BIT)
	PG_young,
	PG_idle,
#endif
	__NR_PAGEFLAGS,

	/* Filesystems */
	PG_checked = PG_owner_priv_1,

	/* Two page bits are conscripted by FS-Cache to maintain local caching
	 * state.  These bits are set on pages belonging to the netfs's inodes
	 * when those inodes are being locally cached.
	 */
	PG_fscache = PG_private_2,	/* page backed by cache */

	/* XEN */
	/* Pinned in Xen as a read-only pagetable page. */
	PG_pinned = PG_owner_priv_1,
	/* Pinned as part of domain save (see xen_mm_pin_all()). */
	PG_savepinned = PG_dirty,
	/* Has a grant mapping of another (foreign) domain's page. */
	PG_foreign = PG_owner_priv_1,

	/* SLOB */
	PG_slob_free = PG_private,

	/* Compound pages. Stored in first tail page's flags */
	PG_double_map = PG_private_2,
};

#ifndef __GENERATING_BOUNDS_H

struct page;	/* forward declaration */

static inline struct page *compound_head(struct page *page)
{
	unsigned long head = READ_ONCE(page->compound_head);

	if (unlikely(head & 1))
		return (struct page *) (head - 1);
	return page;
}

static inline int PageTail(struct page *page)
{
	return READ_ONCE(page->compound_head) & 1;
}

static inline int PageCompound(struct page *page)
{
	return test_bit(PG_head, &page->flags) || PageTail(page);
}

/*
 * Page flags policies wrt compound pages
 *
 * PF_ANY:
 *     the page flag is relevant for small, head and tail pages.
 *
 * PF_HEAD:
 *     for compound page all operations related to the page flag applied to
 *     head page.
 *
 * PF_NO_TAIL:
 *     modifications of the page flag must be done on small or head pages,
 *     checks can be done on tail pages too.
 *
 * PF_NO_COMPOUND:
 *     the page flag is not relevant for compound pages.
 */
#define PF_ANY(page, enforce)	page
#define PF_HEAD(page, enforce)	compound_head(page)
#define PF_NO_TAIL(page, enforce) ({					\
		VM_BUG_ON_PGFLAGS(enforce && PageTail(page), page);	\
		compound_head(page);})
#define PF_NO_COMPOUND(page, enforce) ({				\
		VM_BUG_ON_PGFLAGS(enforce && PageCompound(page), page);	\
		page;})

/*
 * Macros to create function definitions for page flags
 */
#define TESTPAGEFLAG(uname, lname, policy)				\
static inline int Page##uname(struct page *page)			\
	{ return test_bit(PG_##lname, &policy(page, 0)->flags); }

#define SETPAGEFLAG(uname, lname, policy)				\
static inline void SetPage##uname(struct page *page)			\
	{ set_bit(PG_##lname, &policy(page, 1)->flags); }

#define CLEARPAGEFLAG(uname, lname, policy)				\
static inline void ClearPage##uname(struct page *page)			\
	{ clear_bit(PG_##lname, &policy(page, 1)->flags); }

#define __SETPAGEFLAG(uname, lname, policy)				\
static inline void __SetPage##uname(struct page *page)			\
	{ __set_bit(PG_##lname, &policy(page, 1)->flags); }

#define __CLEARPAGEFLAG(uname, lname, policy)				\
static inline void __ClearPage##uname(struct page *page)		\
	{ __clear_bit(PG_##lname, &policy(page, 1)->flags); }

#define TESTSETFLAG(uname, lname, policy)				\
static inline int TestSetPage##uname(struct page *page)			\
	{ return test_and_set_bit(PG_##lname, &policy(page, 1)->flags); }

#define TESTCLEARFLAG(uname, lname, policy)				\
static inline int TestClearPage##uname(struct page *page)		\
	{ return test_and_clear_bit(PG_##lname, &policy(page, 1)->flags); }

#define PAGEFLAG(uname, lname, policy)					\
	TESTPAGEFLAG(uname, lname, policy)				\
	SETPAGEFLAG(uname, lname, policy)				\
	CLEARPAGEFLAG(uname, lname, policy)

#define __PAGEFLAG(uname, lname, policy)				\
	TESTPAGEFLAG(uname, lname, policy)				\
	__SETPAGEFLAG(uname, lname, policy)				\
	__CLEARPAGEFLAG(uname, lname, policy)

#define TESTSCFLAG(uname, lname, policy)				\
	TESTSETFLAG(uname, lname, policy)				\
	TESTCLEARFLAG(uname, lname, policy)

#define TESTPAGEFLAG_FALSE(uname)					\
static inline int Page##uname(const struct page *page) { return 0; }

#define SETPAGEFLAG_NOOP(uname)						\
static inline void SetPage##uname(struct page *page) {  }

#define CLEARPAGEFLAG_NOOP(uname)					\
static inline void ClearPage##uname(struct page *page) {  }

#define __CLEARPAGEFLAG_NOOP(uname)					\
static inline void __ClearPage##uname(struct page *page) {  }

#define TESTSETFLAG_FALSE(uname)					\
static inline int TestSetPage##uname(struct page *page) { return 0; }

#define TESTCLEARFLAG_FALSE(uname)					\
static inline int TestClearPage##uname(struct page *page) { return 0; }

#define PAGEFLAG_FALSE(uname) TESTPAGEFLAG_FALSE(uname)			\
	SETPAGEFLAG_NOOP(uname) CLEARPAGEFLAG_NOOP(uname)

#define TESTSCFLAG_FALSE(uname)						\
	TESTSETFLAG_FALSE(uname) TESTCLEARFLAG_FALSE(uname)

__PAGEFLAG(Locked, locked, PF_NO_TAIL)
PAGEFLAG(Error, error, PF_NO_COMPOUND) TESTCLEARFLAG(Error, error, PF_NO_COMPOUND)
PAGEFLAG(Referenced, referenced, PF_HEAD)
	TESTCLEARFLAG(Referenced, referenced, PF_HEAD)
	__SETPAGEFLAG(Referenced, referenced, PF_HEAD)
PAGEFLAG(Dirty, dirty, PF_HEAD) TESTSCFLAG(Dirty, dirty, PF_HEAD)
	__CLEARPAGEFLAG(Dirty, dirty, PF_HEAD)
PAGEFLAG(LRU, lru, PF_HEAD) __CLEARPAGEFLAG(LRU, lru, PF_HEAD)
PAGEFLAG(Active, active, PF_HEAD) __CLEARPAGEFLAG(Active, active, PF_HEAD)
	TESTCLEARFLAG(Active, active, PF_HEAD)
__PAGEFLAG(Slab, slab, PF_NO_TAIL)
__PAGEFLAG(SlobFree, slob_free, PF_NO_TAIL)
PAGEFLAG(Checked, checked, PF_NO_COMPOUND)	   /* Used by some filesystems */

/* Xen */
PAGEFLAG(Pinned, pinned, PF_NO_COMPOUND)
	TESTSCFLAG(Pinned, pinned, PF_NO_COMPOUND)
PAGEFLAG(SavePinned, savepinned, PF_NO_COMPOUND);
PAGEFLAG(Foreign, foreign, PF_NO_COMPOUND);

PAGEFLAG(Reserved, reserved, PF_NO_COMPOUND)
	__CLEARPAGEFLAG(Reserved, reserved, PF_NO_COMPOUND)
PAGEFLAG(SwapBacked, swapbacked, PF_NO_TAIL)
	__CLEARPAGEFLAG(SwapBacked, swapbacked, PF_NO_TAIL)
	__SETPAGEFLAG(SwapBacked, swapbacked, PF_NO_TAIL)

/*
 * Private page markings that may be used by the filesystem that owns the page
 * for its own purposes.
 * - PG_private and PG_private_2 cause releasepage() and co to be invoked
 */
PAGEFLAG(Private, private, PF_ANY) __SETPAGEFLAG(Private, private, PF_ANY)
	__CLEARPAGEFLAG(Private, private, PF_ANY)
PAGEFLAG(Private2, private_2, PF_ANY) TESTSCFLAG(Private2, private_2, PF_ANY)
PAGEFLAG(OwnerPriv1, owner_priv_1, PF_ANY)
	TESTCLEARFLAG(OwnerPriv1, owner_priv_1, PF_ANY)

/*
 * Only test-and-set exist for PG_writeback.  The unconditional operators are
 * risky: they bypass page accounting.
 */
TESTPAGEFLAG(Writeback, writeback, PF_NO_COMPOUND)
	TESTSCFLAG(Writeback, writeback, PF_NO_COMPOUND)
PAGEFLAG(MappedToDisk, mappedtodisk, PF_NO_COMPOUND)

/* PG_readahead is only used for reads; PG_reclaim is only for writes */
PAGEFLAG(Reclaim, reclaim, PF_NO_COMPOUND)
	TESTCLEARFLAG(Reclaim, reclaim, PF_NO_COMPOUND)
PAGEFLAG(Readahead, reclaim, PF_NO_COMPOUND)
	TESTCLEARFLAG(Readahead, reclaim, PF_NO_COMPOUND)

#ifdef CONFIG_HIGHMEM
/*
 * Must use a macro here due to header dependency issues. page_zone() is not
 * available at this point.
 */
#define PageHighMem(__p) is_highmem_idx(page_zonenum(__p))
#else
PAGEFLAG_FALSE(HighMem)
#endif

#ifdef CONFIG_SWAP
PAGEFLAG(SwapCache, swapcache, PF_NO_COMPOUND)
#else
PAGEFLAG_FALSE(SwapCache)
#endif

PAGEFLAG(Unevictable, unevictable, PF_HEAD)
	__CLEARPAGEFLAG(Unevictable, unevictable, PF_HEAD)
	TESTCLEARFLAG(Unevictable, unevictable, PF_HEAD)

#ifdef CONFIG_MMU
PAGEFLAG(Mlocked, mlocked, PF_NO_TAIL)
	__CLEARPAGEFLAG(Mlocked, mlocked, PF_NO_TAIL)
	TESTSCFLAG(Mlocked, mlocked, PF_NO_TAIL)
#else
PAGEFLAG_FALSE(Mlocked) __CLEARPAGEFLAG_NOOP(Mlocked)
	TESTSCFLAG_FALSE(Mlocked)
#endif

#ifdef CONFIG_ARCH_USES_PG_UNCACHED
PAGEFLAG(Uncached, uncached, PF_NO_COMPOUND)
#else
PAGEFLAG_FALSE(Uncached)
#endif

#ifdef CONFIG_MEMORY_FAILURE
PAGEFLAG(HWPoison, hwpoison, PF_ANY)
TESTSCFLAG(HWPoison, hwpoison, PF_ANY)
#define __PG_HWPOISON (1UL << PG_hwpoison)
#else
PAGEFLAG_FALSE(HWPoison)
#define __PG_HWPOISON 0
#endif

#if defined(CONFIG_IDLE_PAGE_TRACKING) && defined(CONFIG_64BIT)
TESTPAGEFLAG(Young, young, PF_ANY)
SETPAGEFLAG(Young, young, PF_ANY)
TESTCLEARFLAG(Young, young, PF_ANY)
PAGEFLAG(Idle, idle, PF_ANY)
#endif

/*
 * On an anonymous page mapped into a user virtual memory area,
 * page->mapping points to its anon_vma, not to a struct address_space;
 * with the PAGE_MAPPING_ANON bit set to distinguish it.  See rmap.h.
 *
 * On an anonymous page in a VM_MERGEABLE area, if CONFIG_KSM is enabled,
 * the PAGE_MAPPING_KSM bit may be set along with the PAGE_MAPPING_ANON bit;
 * and then page->mapping points, not to an anon_vma, but to a private
 * structure which KSM associates with that merged page.  See ksm.h.
 *
 * PAGE_MAPPING_KSM without PAGE_MAPPING_ANON is currently never used.
 *
 * Please note that, confusingly, "page_mapping" refers to the inode
 * address_space which maps the page from disk; whereas "page_mapped"
 * refers to user virtual address space into which the page is mapped.
 */
#define PAGE_MAPPING_ANON	1
#define PAGE_MAPPING_KSM	2
#define PAGE_MAPPING_FLAGS	(PAGE_MAPPING_ANON | PAGE_MAPPING_KSM)

static inline int PageAnon(struct page *page)
{
	page = compound_head(page);
	return ((unsigned long)page->mapping & PAGE_MAPPING_ANON) != 0;
}

#ifdef CONFIG_KSM
/*
 * A KSM page is one of those write-protected "shared pages" or "merged pages"
 * which KSM maps into multiple mms, wherever identical anonymous page content
 * is found in VM_MERGEABLE vmas.  It's a PageAnon page, pointing not to any
 * anon_vma, but to that page's node of the stable tree.
 */
static inline int PageKsm(struct page *page)
{
	page = compound_head(page);
	return ((unsigned long)page->mapping & PAGE_MAPPING_FLAGS) ==
				(PAGE_MAPPING_ANON | PAGE_MAPPING_KSM);
}
#else
TESTPAGEFLAG_FALSE(Ksm)
#endif

u64 stable_page_flags(struct page *page);

static inline int PageUptodate(struct page *page)
{
	int ret;
	page = compound_head(page);
	ret = test_bit(PG_uptodate, &(page)->flags);
	/*
	 * Must ensure that the data we read out of the page is loaded
	 * _after_ we've loaded page->flags to check for PageUptodate.
	 * We can skip the barrier if the page is not uptodate, because
	 * we wouldn't be reading anything from it.
	 *
	 * See SetPageUptodate() for the other side of the story.
	 */
	if (ret)
		smp_rmb();

	return ret;
}

static inline void __SetPageUptodate(struct page *page)
{
	VM_BUG_ON_PAGE(PageTail(page), page);
	smp_wmb();
	__set_bit(PG_uptodate, &page->flags);
}

static inline void SetPageUptodate(struct page *page)
{
	VM_BUG_ON_PAGE(PageTail(page), page);
	/*
	 * Memory barrier must be issued before setting the PG_uptodate bit,
	 * so that all previous stores issued in order to bring the page
	 * uptodate are actually visible before PageUptodate becomes true.
	 */
	smp_wmb();
	set_bit(PG_uptodate, &page->flags);
}

CLEARPAGEFLAG(Uptodate, uptodate, PF_NO_TAIL)

int test_clear_page_writeback(struct page *page);
int __test_set_page_writeback(struct page *page, bool keep_write);

#define test_set_page_writeback(page)			\
	__test_set_page_writeback(page, false)
#define test_set_page_writeback_keepwrite(page)	\
	__test_set_page_writeback(page, true)

static inline void set_page_writeback(struct page *page)
{
	test_set_page_writeback(page);
}

static inline void set_page_writeback_keepwrite(struct page *page)
{
	test_set_page_writeback_keepwrite(page);
}

__PAGEFLAG(Head, head, PF_ANY) CLEARPAGEFLAG(Head, head, PF_ANY)

static inline void set_compound_head(struct page *page, struct page *head)
{
	WRITE_ONCE(page->compound_head, (unsigned long)head + 1);
}

static inline void clear_compound_head(struct page *page)
{
	WRITE_ONCE(page->compound_head, 0);
}

#ifdef CONFIG_TRANSPARENT_HUGEPAGE
static inline void ClearPageCompound(struct page *page)
{
	BUG_ON(!PageHead(page));
	ClearPageHead(page);
}
#endif

#define PG_head_mask ((1L << PG_head))

#ifdef CONFIG_HUGETLB_PAGE
int PageHuge(struct page *page);
int PageHeadHuge(struct page *page);
bool page_huge_active(struct page *page);
#else
TESTPAGEFLAG_FALSE(Huge)
TESTPAGEFLAG_FALSE(HeadHuge)

static inline bool page_huge_active(struct page *page)
{
	return 0;
}
#endif

#ifdef CONFIG_TRANSPARENT_HUGEPAGE
/*
 * PageHuge() only returns true for hugetlbfs pages, but not for
 * normal or transparent huge pages.
 *
 * PageTransHuge() returns true for both transparent huge and
 * hugetlbfs pages, but not normal pages. PageTransHuge() can only be
 * called only in the core VM paths where hugetlbfs pages can't exist.
 */
static inline int PageTransHuge(struct page *page)
{
	VM_BUG_ON_PAGE(PageTail(page), page);
	return PageHead(page);
}

/*
 * PageTransCompound returns true for both transparent huge pages
 * and hugetlbfs pages, so it should only be called when it's known
 * that hugetlbfs pages aren't involved.
 */
static inline int PageTransCompound(struct page *page)
{
	return PageCompound(page);
}

/*
 * PageTransTail returns true for both transparent huge pages
 * and hugetlbfs pages, so it should only be called when it's known
 * that hugetlbfs pages aren't involved.
 */
static inline int PageTransTail(struct page *page)
{
	return PageTail(page);
}

/*
 * PageDoubleMap indicates that the compound page is mapped with PTEs as well
 * as PMDs.
 *
 * This is required for optimization of rmap operations for THP: we can postpone
 * per small page mapcount accounting (and its overhead from atomic operations)
 * until the first PMD split.
 *
 * For the page PageDoubleMap means ->_mapcount in all sub-pages is offset up
 * by one. This reference will go away with last compound_mapcount.
 *
 * See also __split_huge_pmd_locked() and page_remove_anon_compound_rmap().
 */
static inline int PageDoubleMap(struct page *page)
{
	return PageHead(page) && test_bit(PG_double_map, &page[1].flags);
}

static inline int TestSetPageDoubleMap(struct page *page)
{
	VM_BUG_ON_PAGE(!PageHead(page), page);
	return test_and_set_bit(PG_double_map, &page[1].flags);
}

static inline int TestClearPageDoubleMap(struct page *page)
{
	VM_BUG_ON_PAGE(!PageHead(page), page);
	return test_and_clear_bit(PG_double_map, &page[1].flags);
}

#else
TESTPAGEFLAG_FALSE(TransHuge)
TESTPAGEFLAG_FALSE(TransCompound)
TESTPAGEFLAG_FALSE(TransTail)
TESTPAGEFLAG_FALSE(DoubleMap)
	TESTSETFLAG_FALSE(DoubleMap)
	TESTCLEARFLAG_FALSE(DoubleMap)
#endif

/*
 * PageBuddy() indicate that the page is free and in the buddy system
 * (see mm/page_alloc.c).
 *
 * PAGE_BUDDY_MAPCOUNT_VALUE must be <= -2 but better not too close to
 * -2 so that an underflow of the page_mapcount() won't be mistaken
 * for a genuine PAGE_BUDDY_MAPCOUNT_VALUE. -128 can be created very
 * efficiently by most CPU architectures.
 */
#define PAGE_BUDDY_MAPCOUNT_VALUE (-128)

static inline int PageBuddy(struct page *page)
{
	return atomic_read(&page->_mapcount) == PAGE_BUDDY_MAPCOUNT_VALUE;
}

static inline void __SetPageBuddy(struct page *page)
{
	VM_BUG_ON_PAGE(atomic_read(&page->_mapcount) != -1, page);
	atomic_set(&page->_mapcount, PAGE_BUDDY_MAPCOUNT_VALUE);
}

static inline void __ClearPageBuddy(struct page *page)
{
	VM_BUG_ON_PAGE(!PageBuddy(page), page);
	atomic_set(&page->_mapcount, -1);
}

#define PAGE_BALLOON_MAPCOUNT_VALUE (-256)

static inline int PageBalloon(struct page *page)
{
	return atomic_read(&page->_mapcount) == PAGE_BALLOON_MAPCOUNT_VALUE;
}

static inline void __SetPageBalloon(struct page *page)
{
	VM_BUG_ON_PAGE(atomic_read(&page->_mapcount) != -1, page);
	atomic_set(&page->_mapcount, PAGE_BALLOON_MAPCOUNT_VALUE);
}

static inline void __ClearPageBalloon(struct page *page)
{
	VM_BUG_ON_PAGE(!PageBalloon(page), page);
	atomic_set(&page->_mapcount, -1);
}

/*
 * If network-based swap is enabled, sl*b must keep track of whether pages
 * were allocated from pfmemalloc reserves.
 */
static inline int PageSlabPfmemalloc(struct page *page)
{
	VM_BUG_ON_PAGE(!PageSlab(page), page);
	return PageActive(page);
}

static inline void SetPageSlabPfmemalloc(struct page *page)
{
	VM_BUG_ON_PAGE(!PageSlab(page), page);
	SetPageActive(page);
}

static inline void __ClearPageSlabPfmemalloc(struct page *page)
{
	VM_BUG_ON_PAGE(!PageSlab(page), page);
	__ClearPageActive(page);
}

static inline void ClearPageSlabPfmemalloc(struct page *page)
{
	VM_BUG_ON_PAGE(!PageSlab(page), page);
	ClearPageActive(page);
}

#ifdef CONFIG_MMU
#define __PG_MLOCKED		(1 << PG_mlocked)
#else
#define __PG_MLOCKED		0
#endif

/*
 * Flags checked when a page is freed.  Pages being freed should not have
 * these flags set.  It they are, there is a problem.
 */
#define PAGE_FLAGS_CHECK_AT_FREE \
	(1 << PG_lru	 | 1 << PG_locked    | \
	 1 << PG_private | 1 << PG_private_2 | \
	 1 << PG_writeback | 1 << PG_reserved | \
	 1 << PG_slab	 | 1 << PG_swapcache | 1 << PG_active | \
	 1 << PG_unevictable | __PG_MLOCKED)

/*
 * Flags checked when a page is prepped for return by the page allocator.
 * Pages being prepped should not have these flags set.  It they are set,
 * there has been a kernel bug or struct page corruption.
 *
 * __PG_HWPOISON is exceptional because it needs to be kept beyond page's
 * alloc-free cycle to prevent from reusing the page.
 */
#define PAGE_FLAGS_CHECK_AT_PREP	\
	(((1 << NR_PAGEFLAGS) - 1) & ~__PG_HWPOISON)

#define PAGE_FLAGS_PRIVATE				\
	(1 << PG_private | 1 << PG_private_2)
/**
 * page_has_private - Determine if page has private stuff
 * @page: The page to be checked
 *
 * Determine if a page has private stuff, indicating that release routines
 * should be invoked upon it.
 */
static inline int page_has_private(struct page *page)
{
	return !!(page->flags & PAGE_FLAGS_PRIVATE);
}

#undef PF_ANY
#undef PF_HEAD
#undef PF_NO_TAIL
#undef PF_NO_COMPOUND
#endif /* !__GENERATING_BOUNDS_H */

#endif	/* PAGE_FLAGS_H */

redpajama_set_name: RedPajamaGithub


For your convenience we will not see sick people during these hours, to minimize your wait and get you in and out quickly.
We will be open all day Tuesdays and Thursdays from 9:30 AM to 1 PM, and 2 PM to 5 PM. Our nurse practitioner Andrea Heuy APRN will see patients on Tuesdays. Our nurse practitioner Shannon Bretz APRN will see patients on Thursdays.
We will now be open all Saturdays. Our nurse practitioners Andrea Huey APRN and Deborah Smith APRN will alternate Saturdays .
Click here to view Saturdays we are open.
We hope to exand these hours in the future.


text:
Little Angels looks for owners of injured German shepherd, other animals
This German shepherd is in the care of Little Angels Project after being found Nov. 9, running from the Woolsey Fire in Malibu. The nonprofit is seeking the dog's owners. Little Angels Project
This is one of two cats found badly burned in Malibu, rescued and being cared for by Little Angels Project.
Liberty Canyon wildlife crossing sees swell of support to end 2019
Joe Coughlin, Publisher
8:23 am PST November 17, 2018
A short video of an injured German shepherd who writhes in pain trying to move his water bowl toward him may seem heartbreaking.
But in context, it is as uplifting as it gets.
The dog was pulled from the Woolsey Fire by a crew of first responders from Los Angeles County Animal Care and Control.
"He's finally standing up and drinking water," said Darlene Geekie, founder of the Little Angels Project, the group caring for the dog. "He has third-degree burns on his feet. It's a highly sensitive area. .... Today he stood up a bit; he's improving."
His story sounds like something out of a movie. Allegedly, rescuers watched as the shepherd sprinted for his life through a field of embers and flames on Friday, Nov. 9, in Malibu.
The dog's efforts reportedly were soon thwarted by a wooden, slotted fence. That's when his rescuers stepped in and pulled him from the danger.
The crew brought the middle-aged shepherd to a pop-up veterinary clinic run by the Little Angels Project at the Pierce College evacuation center.
There, vets treated the dog for the burns to his paws and other areas of his body.
"He was in pretty bad shape," said Skye Swan, who was volunteering for Little Angels. "We put him on pain meds. ... Unfortunately, he doesn't have a microchip or collar, which could have come off. He's a healthy dog, looks well cared for. ... There's gotta be a family looking for him."
A few days later, the care from Little Angels was paying off, and the dog was finally able to stand and was drinking and eating.
Now, the organization is hoping to reunite him — as well as other rescued animals — with his owner.
Darlene Geekie, founder of the Little Angels Project and Veterinary Angels Medical Center in Agoura Hills, and company acted quickly to open the free, pop-up clinic at Pierce College. She is currently caring for five animals injured in the Woolsey Fire: the German shepherd, two badly burned cats, two burned chickens and a swan with a broken leg.
"Everybody is improving," she said. "One kitty is pretty bad off. It's really day by day."
The group has been aided by donations, including a product for burn victims called Kruuse Manuka AD, which is a balm infused with honey.
"It's working great on the animals," she said.
The Little Angels Project and Veterinary Angels also donated medical supplies to Malibu Coast Animal Hospital and is looking help more area veterinary clinics if it can.
Photos of the displaced animals can be found on the Little Angels social media pages: @thelittleangelsproject on Facebook and Instagram.
If you recognize any animals, contanct the group at, (818) 865-1800 or info@littleangelsproject.org.
To make monetary donations to the Little Angels Project, visit www.littleangelsproject.org.
Veterinary clinics in need of donated supplies may email info@littleangelsproject.org.
More from Malibu Surfside News
California Strong founders, supporters enjoy friendly competition at 2nd softball game in Malibu
From the Editor: A glimpse of what's to come
Photos: Library presenter shares tricks of the trade at basketry course
Pepperdine men's basketball goes on road to take down Toreros
City shares lineup for its MLab programs


Sarita Gálvez (Chile) is an educator, physiotherapist and PhD candidate in Education at Monash University, Melbourne, Australia. She is interested in exploring embodied learning from a post-anthropocentric perspective. Her current research methods have emerged from the intersection between Andean epistemologies and Feminist Materialisms.


The Bitcoin Cash developer Amaury Sechet, who works on the Bicoin ABC implementation of Bitcoin Cash (BCH), claims to be Satoshi Nakamoto. The information was released by the developer on Twitter on February 8.
Sechet and Bitcoin ABC have been considered the primary problem for the Bitcoin Cash ecosystem by the Bitcoin SV developer _unwriter. According to him, the Bitcoin Cash ABC proposal could move towards centralization in the future.
In a recent stack exchange post, the Bitcoin Core developer Gregory Maxwell, explained that Craig Wright has also tried to confuse the virtual currency community claiming that he was Satoshi Nakamoto.
There are clearly some doubts regarding Amaury Sehect's claims. If he is Satoshi Nakamoto and he is working with Bitcoin Cash (BCH), why he just does not dump all the BTC coins that he owns?
In order to really know whether Sechet is the real Satoshi Nakamoto, we will have to wait some more time.
The cryptocurrency community has always been searching for an answer regarding the real identity of Satoshi Nakamoto. There have been several individuals that claimed to be Satoshi Nakamoto. However, none of them was really able to prove that they were in fact who they claimed to be.
Satoshi Nakamoto created Bitcoin back in 2008 during the financial crisis that affected the whole world. Nakamoto was talking with several developers during the first months after creating Bitcoincreating Bitcoin. The last message he wrote was in Bitcointalk on December 12, 2010 but since then, there was no more official information about him or who Satoshi Nakamoto really is. We might have to wait until someone proves who this individual is and why he disappeared from the crypto community.


ZipRealty Inc. is making public the customer satisfaction ratings that it's been collecting on its agents for nearly a decade, providing prospective buyers and sellers with a means of vetting agents on the company's own Web site.
Many third-party Web sites already give consumers the opportunity to rate the services provided by real estate agents and professionals in other fields. Others have sprung up offering to assist those being rated with "online reputation management."


text:
GIO Notices >
COVID19 update-Wednesday2Sep2020
His Excellency President Lionel Aingimea
In this week's coronavirus update, Nauru continues its 'capture & contain' strategy by placing in quarantine all new arrivals to the island and testing for coronavirus.
There are currently 47 new arrivals at the Anibare village quarantine residence, and are due to be tested this week, 3 September; while another eight at the Budapest Hotel were tested last week, all returned negative results and sent home.
Regionally, New Zealand is still battling its second wave of the virus, but the numbers of new cases daily steadily range between two to 14 in the month of August. Fiji has had another death, bringing the total deaths to two. Both cases are reportedly repatriation passengers. Palau is reported to be looking at opening up tourism with Taiwan next month. Taiwan is known to have exceptional control and management of the coronavirus situation. Discussions are also underway in Palau for the possibility of hosting Micronesian leaders for their Independence Day celebrations.
Meanwhile, Nauru's travel advisory will be updated to remove French Polynesia from the safe list of countries for Nauru's purposes, citing the fast increase in confirmed COVID-19 cases in the country.
The Nauru Police Force is seeking 64 recruits to take over security services at the quarantine sites (two sites at Meneñ Hotel, and each at the Budapest Hotel and Anibare village). The 33 applications received for the first group were sworn in as police officers last week and are now undergoing training in law and regulations, health and emergency services for the purposes of COVID-19.
Another 46 applications for the second group are being considered. The unit will be called 'Police Protective Services'.
Nauru Airlines maintains its weekly and fortnightly flights for passenger and freight with some additional charters.
Nauru Port Authority (NPA) is expecting fuel, phosphate and cargo shipments in the next two to three weeks, while the whereabouts of a Korean fuel ship is currently unknown to NPA.
Ports have put on hold the travel plans for 50 workers for the port development project until further notice and the arrival of its deputy project manager from Malaysia is also postponed due to flight changes by the various airlines from his originating country.
The new oxygen compressor has arrived and will be installed in the coming weeks while a second oxygen plant is expected to arrive this month. Over 40 refilled oxygen cylinders of varying sizes have also arrived while the same numbers of empty cylinders were returned to Brisbane last week for refilling.
Pharmaceutical stocks are healthy however some items nearing or reached their expiry dates will be disposed of to obtain a true picture of stock levels. In the meantime, all essential medical stock will be flown in via Nauru Airlines to maintain supplies.
An important feature of the successful operation of an emergency situation is an effective communications setup. Nauru Police and Nauru Emergency Services have received the repeater for national communications essential for COVID response and management of emergency services. Final adjustments and fine-tuning of the system is underway.
In finance, the Nauru Government is in the process of applying for an additional COVID-19 support grant of approximately AU$1 million from the Asian Development Bank (ADB). The funding will be earmarked to purchase essential supplies, fund recruitment, quarantine costs, and requirements for disease prevention, to name a few.
There has been positive feedback in regards to Nauru's management of the threat of coronavirus. Observations made by incoming passengers directly reference the "impressive" and "excellent system" and management by staff from the time of boarding the plane at Brisbane airport to disembarking at Nauru and time spent in quarantine.
The enforced changing of face masks before disembarking the aircraft in Nauru is praised as a first for any airline.
President Lionel Aingimea once again thanks the airline, health and police for their tireless efforts in ensuring Nauru's safety.
The president also revisited the concern by some members of the public in regards to Nauru's five and a half days quarantine compared to 14 days as imposed in other countries.
The president explains that Nauru's testing machine specifically tests for the virus of COVID-19, while in other jurisdictions testing may not be specific or mandatory due to their large populations and numbers of arriving travellers therefore restricting testing for everyone, hence their reliance on the 14 day quarantine.
President Aingimea says Nauru is guided by doctors and expert advice and is blessed that we have the capability to test everyone [every arrival by air or sea] all the time.


text:
Q: jQuery JS no longer works when upgrading from version When I updated the following JS function from jQuery 1.4.2 to the latest 1.11.2 the className Steam no longer animates.
$(window).load(function(){
    function animSteam(){
        $('<span>',{
            className:'steam'+Math.floor(Math.random()*2 + 1),
            css:{
                marginLeft    : -10 + Math.floor(Math.random()*20)
            }
        }).appendTo('#rocket').animate({
            left:'-=58',
            bottom:'-=100'
        }, 120,function(){
            $(this).remove();
            setTimeout(animSteam,10);
        });
    }
    function moveRocket(){
        $('#rocket').animate({'left':'+=100'},5000).delay(1000)
        .animate({'left':'-=100'},5000,function(){
            setTimeout(moveRocket,1000);
        });
    }
    moveRocket();
    animSteam();
});

This is a cool animation I hate to loose and I'm not sure what function has been deprecated.

A:
The name "class" must be quoted in the object since it is a JavaScript reserved word, and "className" cannot be used since it refers to the DOM property, not the attribute.

reference: http://api.jquery.com/jQuery/#jQuery-html-attributes

A: Check this out:  http://bugs.jquery.com/ticket/9150#comment:1

That was never supported and was coincidental that it worked. The attribute to set is class, not className.

So, it seems what you want is:
    $('<span>',{
        'class': 'steam'+Math.floor(Math.random()*2 + 1),
        css:{
            marginLeft    : -10 + Math.floor(Math.random()*20)
        }
    })

redpajama_set_name: RedPajamaStackExchange


text:
Dendronotoidea  è una superfamiglia di molluschi nudibranchi del sottordine Cladobranchia.

Tassonomia
Comprende le seguenti famiglie:
 Bornellidae
 Dendronotidae
 Dotidae
 Hancockiidae
 Lomanotidae
 Phylliroidae
 Scyllaeidae
 Tethydidae

Note

Collegamenti esterni

Nudibranchi

redpajama_set_name: RedPajamaWikipedia


Nippon Gases Ireland ensures you a reliable supply of traceable and high-purity carbon dioxide in order to help you meet consumers' increasingly high expectations. Nippon Gases offers you CO2 solutions tailored to your processes and requirements. Europe, Ireland and the UK's leading beverage, brewing and bottling companies rely on Nippon Gases for all their CO2 needs.
At each step in the process, Nippon Gases has the solution to support your process.


On the second Monday each month (except August) from 12.30-2.30pm we invite those who are retired to come along for a two course lunch for £4.50. You'll find plenty of people to chat with, good food and a nice relaxing atmosphere to enjoy. Please ring the Parish Office for more details.


text:
David J. Scheffer, Ambassador at Large for War Crimes Issues
Address to the Union of American Hebrew Congregations,
Orlando, Florida, December 17, 1999
Milosevic, Pinochet, and Us:
Responding to Crimes Against Humanity
It is truly an honor to be here in Orlando this morning, at the 65th Biennial Convention of the Union of the American Hebrew Congregations. I want to thank Rabbi Eric Yoffie and Rabbi David Saperstein for their invitation. Although we are in the land of Disney, I have a grim agenda to bring to your attention. But it is an agenda that this audience of distinguished leaders should appreciate.
The legacy of the Holocaust, which includes much unfinished business to render a just accounting for that massive crime, occupies the work of many offices in the U.S. Federal Government. The institutional structure includes the State Department's Office of War Crimes Issues, which I head; the Office of Special Investigations at the Justice Department; and the significant negotiating effort of Stuart Eizenstat, now the Deputy Secretary of the Treasury, to establish a fair financial accounting for the crimes of the Nazi regime.
The first crimes against humanity were prosecuted on an international scale at the Nuremberg trials more than 50 years ago. The Genocide Convention was 50 years old last year, and the Geneva Conventions of 1949 celebrated their 50th anniversary this year. And yet today, on the eve of the new millennium when the technological, economic, and artistic triumph of mankind brings new meaning to civilization, the mega-crimes of genocide, crimes against humanity, and significant war crimes still occur. Notwithstanding the end of the Cold War, the last decade has been extraordinary in the wave of atrocities that have engulfed innocent civilian populations. While we must never forget the unparalleled magnitude of the killings during the Holocaust, we must also recognize that on our watch, during our stewardship of civilized society, horrendous mass killings and other serious violations of international humanitarian law are occurring at an astonishing pace across the globe.
As Ambassador at Large for War Crimes Issues, I have the responsibility to help formulate U.S. policy responses to atrocities committed anywhere in the world. Secretary of State Madeleine Albright has been tireless in her commitment to the work of my office and the U.S. Government's overall response mechanism to atrocities. We are by no means batting 1,000. But we are confronting the challenge head-on both in terms of accountability and prevention.
In my work, I travel the world and witness both the evils of humankind and the valiant efforts made by so many who seek to end injustice. This year alone atrocities in Kosovo, Sierra Leone, Sudan, East Timor, and Chechnya have dominated our work. Other mass killings have shattered and in many cases continue to tear asunder societies in Angola, Afghanistan, Iraq, Sri Lanka, and the Great Lakes Region of central Africa -- all crime scenes where we are engaged.
Today I will share with you some of what we know about events in Chechnya, East Timor, and elsewhere. I will also update you on efforts to bring Milosevic and Pinochet to justice, the recent conclusion of another case from World War II, ongoing efforts to set up a permanent international criminal court to address war crimes, and the atrocities prevention work of the Administration.
The ongoing conflict in Chechnya is very much of concern to all of us who want to see an end to the fighting now going on there. The United States does not question Russia's right to fight terrorism or insurgencies on its soil. However, President Clinton spoke on December 8 and on other occasions of the critical importance of both sides to the conflict respecting the lives and property of civilians. Many other governments in Europe and elsewhere have expressed similar concerns in recent weeks. We have noted that the Russian Government appears to be responding to some of these concerns. Still, current reports from the Grozny theater have not put to rest the serious concerns of the international community about what is happening to civilians in Chechnya.
There have been accusations that Russian forces have intentionally targeted civilians. We call on the Russian Government to conduct a full and impartial investigation of these allegations. We certainly abhor any intentional targeting of civilians. Article 3 of the Fourth Geneva Convention prohibits violence against non-combatants, Article 13 of Additional Protocol II to the Geneva Conventions states that civilians shall not be intentionally attacked, and the OSCE Code of Conduct states that due care must be taken to avoid injury to civilians or their property. Additionally, the customary law of internal armed conflict prohibits the intentional targeting of civilians.
The human cost to date of a military solution in Chechnya has been high, and recent reports of the fighting for the Chechen capital of Grozny and nearby towns have shown that the fighting is fierce. That is why we continue to urge a political solution and why Secretary Albright is meeting with Russian Foreign Minister Ivanov today in Europe.
Nazi War Crimes
The Office of War Crimes Issues facilitates in other countries, where possible, the prosecution of former Nazis accused of serious crimes. Earlier this year, for example, with the assistance of the U.S. Government, the last known surviving concentration camp commander from World War II, Dinko Sakic, was convicted in a court in Zagreb, Croatia. Sakic was given the maximum sentence under Croatian law for war crimes, 20 years in prison. As Sakic is 76, this is effectively a life sentence. His case is currently on appeal to the Croatian Supreme Court.
The Sakic trial is important because it is the first World War II war crimes trial in Eastern Europe. It would not have come about without the work of organizations such as B'nai B'rith and the Simon Wiesenthal Institute. The United States Government and the Government of Israel played an important role in encouraging the governments involved to give this case the highest priority for investigation and prosecution. We provided many documents from the National Archives in Washington to assist the prosecutor's efforts to build a strong case. I personally delivered documents in Zagreb and met in Washington with the prosecution team. Secretary Albright herself intervened on a number of occasions to ensure that Sakic stood trial, that the prosecution was a vigorous one, and that the trial would meet international standards of fairness and due process.
The United States salutes the many courageous witnesses who came forward to testify despite the passage of the 55 years since Sakic held the power of life and death over the inmates of the Jasenovac camp. The Croatian prosecutors put together a strong case under what, for any prosecutor, would be difficult circumstances.
While the Office of War Crimes Issues pursues justice against individual perpetrators from the Nazi era, the U.S. Government is also closely engaged on the question of monetary compensation for lost assets and slave labor during the Holocaust. This has been a difficult effort, but one on which Treasury Deputy Secretary Stu Eizenstat, formerly an Under Secretary in the State Department, has labored tirelessly for many years. The recent settlement announced in the slave labor cases, and which should be signed today in Berlin, is enormously significant for the victims of Nazi barbarism, and it is precedent-setting.
The legacy of Nuremberg is alive today in courts in The Netherlands and East Africa. The International Criminal Tribunal for the Former Yugoslavia, based in The Hague, handed down its most recent decision on December 14 -- a sentence of 40 years, its most severe so far, to Goran Jelesic, a Bosnian Serb former camp guard, who referred to himself as the "Serb Adolf," for the murder and torture of Bosnian Muslims and Croats in the spring of 1992. The ICTY has indicted five individuals, foremost among them Slobodan Milosevic, for crimes against humanity and war crimes in Kosovo. We are confident that more indictments will be issued soon.
To date, the Yugoslav War Crimes Tribunal has taken 41 indictees into custody in The Hague. Thirty-two remain at large, including many of the most prominent indictees such as Radovan Karadzic, Ratko Mladic and, of course, Yugoslav President Slobodan Milosevic. Despite the Tribunal's success to date, we all recognize history is likely to measure the credibility and will of the international community by the Tribunal's ability to bring the most notorious indictees to justice.
We share the frustration and impatience of those who want to see those at large brought before the bar of justice in The Hague. As Secretary Albright has often said, there is no statute of limitations for these crimes. We have sought and continue to seek ways to bring pressure to ensure the transfer of indictees residing on Serbian territory to The Hague. Our demand that indictees, such as Milosevic, Karadzic, Arkan, Mladic, and the "Vukovar Three," face justice and our determination to assist in that objective will not change.
Let me turn to another part of the world--the pending case against former Chilean dictator Augusto Pinochet.
As you may recall, Pinochet ruled Chile from the early 1970s to the late 1980s. Pinochet left power in 1990 after losing a 1988 referendum on his continuation in office. He became a Senator-for-Life, which affords him immunity under Chile's 1978 Amnesty law. Since 1978, Chilean courts have limited the application of the 1978 law. A number of Pinochet's subordinates are now facing human rights trials in Chile. There are additional obstacles to prosecution in Chile of Pinochet, including his Senatorial immunity, but human rights groups have commented favorably on progress toward accountability in Chile.
When Pinochet traveled to England in September 1998 to seek medical treatment, a court in Spain sought his extradition. The original basis for the extradition request was a Spanish law asserting universal jurisdiction to try certain kinds of cases, irrespective of where they occurred and without regard to the nationality of the victim. Subsequent decisions by the British courts have limited extraditable charges to torture and conspiracy to torture committed after December 1998. The case has raised a number of important and controversial legal issues because of Pinochet's status as a former head of state and the Spanish court's assertion of jurisdiction over crimes committed in Chile. At present, an October 8 Bow Street Magistrate's ruling that Pinochet is extraditable to Spain is under appeal to Britain's High Court. A decision on that appeal is expected in late March. The U.K. has also responded to a Chilean request that Pinochet be released on humanitarian grounds by offering an independent medical assessment of his condition. That assessment has yet to take place.
The United States has long recognized the importance of accountability and justice, as well as the choices made by countries like Chile to achieve reconciliation in making the transition to democracy. The United States condemned the abuses of the Pinochet Government when it was in power. The extradition of Pinochet to Spain is a matter that we believe can best be solved by the courts of the United Kingdom and by the Governments of Chile, the United Kingdom, and Spain. One thing that the United States Government can do and is doing is to declassify and release all the documents we can, subject to the protection of intelligence sources and methods, regarding political violence and human rights abuses of the Pinochet era. The United States has declassified and released thousands of documents, and thousands more will be released in June.
In East Timor civilians paid only a few months ago for their vote to reject autonomy within Indonesia in favor of full independence. The international community was able to use diplomacy to help bring an end to the violence. As widespread violence and intimidation on the part of "pro-autonomy" militias raged, the international community made clear to Jakarta that it was prepared to step in.
If the militias had had their way, the results of the referendum would not have been put into effect and those responsible for atrocities in East Timor would have enjoyed impunity in perpetuity. In the end, the Government of Indonesia, to its credit, ultimately allowed the will of the East Timorese people to prevail. In addition, Jakarta allowed a multinational force to re-establish order in East Timor and handed over power to the United Nations transitional authority.
A number of efforts to piece together what exactly happened in Timor are currently underway. We do know that some 230,000 people were forced to flee their homes, often at gunpoint. As a result of a well-orchestrated, scorched-earth campaign, approximately 80% of the buildings in Dili, the East Timor capital, were burned. We do not yet know how many people were killed or raped in this orgy of violence, but credible reports paint a very grim picture that merits full investigation.
With strong U.S. support, reports of atrocities are being investigated both by a UN-appointed commission and by an Indonesian Commission of Inquiry. We want to see those responsible held accountable. We cannot let go unchallenged the policy -- as enunciated last week by the civilian Defense Minister -- of exempting Indonesia's top generals from prosecution for murders, torture, rapes, and other atrocities committed by their troops. "We can't go up into the high ranks," Defense Minister Juwono had said, "as they were just carrying out state policy." The implications of this statement are extremely troubling and are in direct contradiction to the law and principles set down more than 50 years ago in Nuremberg. Fortunately, with the weight of public opinion, Indonesian President Abdurraham Wahid reversed the policy, stating that he would allow prosecution of Indonesia's ranking generals if evidence links them to the violence that ravaged East Timor this fall.
Rwanda Tribunal
While much attention has been paid to the Yugoslav Tribunal, another tribunal, the International Criminal Tribunal for Rwanda, has already made significant contributions to international humanitarian law. The Rwanda Tribunal has found key leaders of Rwanda in 1994 guilty of genocide and crimes against humanity for acts committed against their own people. In September 1998, the Rwanda Tribunal handed down the first-ever judgment for the crime of genocide. The judges emphasized that the crime of genocide does not require the actual extermination of a group in its entirety and made clear that rape and sexual violence can constitute genocide in the same way as other acts provided they were committed with the specific intent to destroy the group in whole or in part. I am proud to say that the prosecutor of this historic case is now a member of my staff.
Precisely because the Rwanda Tribunal's apprehension of Rwanda's government and private sector leaders during the 1994 genocide has been so successful, the caseload before the Rwanda Tribunal is daunting in a time of limited international resources. Nonetheless, the United States will continue its strong support for the Rwanda Tribunal, which I visit often, to sustain the memory of and seek justice for the 800,000 victims of ethnic hatred in that country. But the administration of the Tribunal will have to improve rapidly if the support of the international community is to continue.
With respect to Iraq, the United States Government is determined to see Saddam Hussein and his inner circle stripped of their power and brought to justice. Saddam's regime has murdered many tens of thousands of its own citizens, frequently with poison gas. It continues to commit numerous atrocities against the Kurds, the Turkomen of northern Iraq, and the Shia of the south. Political opponents of any kind are subject to imprisonment, torture, and summary execution. The regime perpetrated war crimes and crimes against humanity against the people of Iran and Kuwait and used massive crimes against the environment as a political weapon. During the Gulf War, Iraq fired 42 Scud missiles -- indiscriminate terror weapons -- at population centers in Israel. These firings were a clear violation of the laws of war. This was particularly egregious given that Israel was a non-belligerent.
The United States supports the creation of an international tribunal for Iraq, as was done for Rwanda and the former Yugoslavia. Additionally, we are assisting various NGOs to gather evidence for use in prosecutions in foreign domestic courts if the opportunity arises. Every day Saddam's list of crimes grows, as does the need for accountability. This is a man and a regime who have brutally and systematically committed war crimes and crimes against humanity for years, are committing them now, and will continue committing them until the international community finally says enough.
For the past 3 weeks, I have engaged in the latest round of negotiations to establish a permanent International Criminal Court. These are follow-on discussions to the treaty that was negotiated in Rome in the summer of 1998. The Clinton Administration has long supported the goal of a permanent international criminal court as an effective means of enforcing international humanitarian law. We continue to have a deep interest in achieving that goal. But the treaty text that emerged from Rome had flaws that we are hard at work seeking to resolve. We must ensure that the noble aims of the Rome Treaty, namely to prosecute perpetrators of genocide, crimes against humanity, and serious war crimes, do not conflict with the critical role nations like the United States play to maintain international peace and security and, when necessary, intervene to protect civilian populations at severe risk from their own armed forces or those of other nations. Kosovo this year might be Exhibit A for that purpose. The treaty -- without more -- could potentially inhibit the enforcement of international law by the very countries most capable and willing to use military force for the protection of human rights.
Because U.S. armed forces deployed throughout the world will remain an integral part of our efforts to identify violations of international humanitarian law, the advantages of full U.S. participation in the treaty regime far outweigh the perceived advantages of the current treaty text, which overreaches its jurisdiction. The Department of Defense recently issued a directive applicable to all United States armed forces. The directive requires that all possible, suspected, or alleged violations of the law of war be documented and reported quickly. The military commanders on the scene now have a specific duty to take steps to preserve evidence of violations, which will then be transmitted to appropriate authorities.
We believe our concerns about the treaty are resolvable, and we are working very hard to achieve our objective of an effective and viable court that merits the support of responsible governments. In this process, we have consulted closely with the Government of Israel, which has had profound concerns about the reach of the treaty. I am pleased to report today that one of Israel's primary concerns about the treaty appears to have been resolved during the latest round of negotiations following our own very active efforts for almost 2 years.
Atrocities Prevention
Let me say a word now about prevention of atrocities, a major function of my office. Preventing atrocities and ensuring commitment to humanitarian law requires commitment from many nations. Last year, President Clinton launched an atrocities prevention mechanism that includes the establishment of the Atrocities Prevention Inter-Agency Working Group, which I have the privilege to lead, as a focal point within the U.S. Government for identifying and coordinating policy responses to atrocities. The group focuses on those parts of the world where an outbreak of atrocities is imminent, or where its occurrence requires immediate attention to deter further killing. Recently, we examined both Burundi and Angola as countries where the worst can occur at any moment. We are extremely pleased that Nelson Mandela has just agreed to mediate peace talks between rival groups in Burundi. Ambassador Richard Holbrooke just returned from Angola, where he stressed the need for more preventive actions, including stronger backing for the UN sanctions regime on the rebel group UNITA now so ably coordinated by Canada's permanent representative to the United Nations.
We have also worked with other governments, international organizations, and non-governmental organizations to cooperate on the prevention, amelioration, and prosecution of those responsible for atrocities worldwide. At a conference held at the Holocaust Museum in October, the United States and other participants representing various governmental and non-governmental entities put forth a statement affirming such principles. Some of the key assertions made in this Statement of Principles include:
The desire to increase respect for and observance of the rights of all persons to live without fear of arbitrary or extrajudicial killing, torture, mutilation, and other serious physical abuse.
The desire to take all feasible measures to enhance international cooperation and coordinated efforts in the struggle against mass acts of murder, wanton violence, torture, rape as a weapon of war, and other gender-based violence against civilian populations. The deliberate targeting of civilians, especially children, needs special attention.
The need for intensified efforts to identify patterns of atrocities quickly in order to facilitate prompt responses via the creation of an informal atrocities prevention and response network that will focus on the policy linkages among human rights concerns, atrocities, international law enforcement, and international institutions. Such a network will identify emerging trends and potential responses based on information sharing and will help develop coordinated policy options that will be raised to appropriate governmental and institutional levels.
Patterns of atrocities often have an international dimension that requires regional coordination of economic, military, humanitarian, peace-building, development, and diplomatic or other responses. The United Nations and regional organizations such as the Organization of American States, the Organization for Security and Cooperation in Europe, the Organization of African Unity, the G-8, and others have an important role to play in this regard. The human rights bodies and other relevant actors of the United Nations system have critical responsibilities related to these objectives and should be supported more vigorously by Member States of the United Nations, including with voluntary financial support.
As I said earlier, we are by no means batting 1,000 on atrocity prevention. Indeed, 1999 was a spectacular year of killing in Kosovo, East Timor, Sierra Leone, Burundi, Angola, Chechnya, and elsewhere. But progress was made in some of these areas to deter future killings and to launch mechanisms of accountability. Our work on atrocity prevention is a work in progress. My great hope is that by this time next year, we will have institutionalized the process within the federal bureaucracy and with other governments and that the important work of atrocity prevention will be continued and further strengthened by the next Administration.
Diamond Trade
One area that deserves further attention, for example, is how illicit trade fuels conflict. Trade in illicit diamonds, for example, has been known to help finance several conflicts in Africa. All too often, massive civilian carnage has been associated with those conflicts. Consider for a moment the thousands of maimed civilians in Sierra Leone, who have paid for that conflict with their limbs. If we are serious about wanting to prevent atrocities, we need to be willing take on difficult issues such as the linkage between illicit diamond trading and atrocities. We need to consider, specifically, how to devise a new regime to distinguish between diamonds that are "clean" and those that are "bloodied." We are not likely to find any easy answers, but the U.S. Government is committed to working with producing and consuming countries, as well as the diamond industry, toward this end. We owe it to the victims and survivors of bloody conflict to do so.
Need for Resources
The International Criminal Tribunals for the former Yugoslavia and for Rwanda have made much progress toward enforcing international humanitarian law in the past few years. Unfortunately, enforcement cannot take place unless there are adequate resources in place to enable tribunal authorities to perform their work professionally and efficiently. We here in the United States do more than just talk about justice for war crimes -- we put our money on the table. We have provided over $157 million to the operations of the ICTY and ICTR since 1994, as well as contributing staff to the tribunals themselves and technical assistance in the field. We expect to contribute another $50 million next year.
The United States pays through our UN dues the largest share of each tribunal's assessed budget.
We also devote an enormous amount of voluntary support through the activities of many U.S. personnel in Washington, The Hague, Kigali, and elsewhere to provide information, facilitate various tribunal activities, and enhance enforcement capabilities.
The United States also provides voluntary financial support through numerous means, including jointly funding, with the Government of The Netherlands, a new courtroom for the Yugoslavia Tribunal. In September, the United States made the single-largest voluntary financial contribution in the history of the Yugoslav Tribunal -- $8.45 million -- to cover the Tribunal's 1999 investigative costs in Kosovo. We have contributed as well to the Rwanda Tribunal.
When these efforts are joined with private sector support and even the assistance of state and local governments, the result can create a powerful momentum for justice on a global scale. For example, multinational corporations have a vested interest in the observance of international humanitarian law. Last week, I attended a luncheon in New York City honoring the WestLaw Group for its generous donation to both tribunals of free, unlimited on-line access to WestLaw Internet products to facilitate legal research by Tribunal lawyers and judges. IBM recently donated millions of dollars worth of computer hardware to both tribunals--an enormous contribution to the pursuit of international justice. These companies recognize that when atrocities are unleashed, society at large suffers in so many ways that the cost of atrocities always exceeds their prevention. When atrocities are prevented and when the perpetrators of atrocities are brought to justice, all of us benefit in some way.
The United States Government is determined to advance the enforcement of international humanitarian law. It is a responsibility that must be carried into the next millennium. We must make every effort to ensure that the worst crimes of the 20th century are not repeated in the 21st. None of us can or will forget the Nazi war crimes -- arguably the most abominable atrocities of this century. The horrors of the Holocaust must serve to reinforce the resolve of this generation of Americans to eradicate such heinous crimes and guide us in creating a stable and peaceful future for humankind.
The Clinton Administration has laid the institutional infrastructure that will better equip us to prevent atrocities from occurring in the future. But the United States cannot and should not shoulder this burden alone. We must cooperate at all levels, both intra-state and among nations to ensure that the war crimes, crimes against humanity, and genocide that this century witnessed will not mar the history of the 21st century. As the international system continues to evolve into the next century, we must hone our trusted tools of laws to achieve accountability for heinous crimes while striving to create new mechanisms to combat this human abhorrence.
Remarks Index | Kosovo Report | Democracy, Human Rights, and Labor | Kosovo Home Page | Department of State


text:
Q: Social media buttons validation problems When you add social media buttons to your site from Google+, Facebook, LinkedIn etc., they often contain a lot of homemade attributes and other things that don't validate.
I have fourteen errors on this page in the validator just because of social buttons.
Are there any tricks to make the page validate?

A: As the buttons will only work for users with Javascript, the simplest thing you could do is to insert them via javascript. Then your page will validate again.
Beware of the privacy issues of "social spying buttons". It is a good pracitise to not automatically load them, but just show a placeholder image, and load the actual button when the user has clicked it. These are the so called "2 click likes". First click to enable transmitting your data to Facebook, the second click to like.

A: An incorrect HTML version causes most of the errors - the social buttons are using data- attributes, part of HTML5, but the page has been validated as HTML4.
Sorting the doctype should fix a bunch of those errors.


text:
La structure de l'ARN décrit l'arrangement des paires de bases et de la conformation de l'ARN en trois dimensions. L'ARN étant trouvé le plus souvent sous forme de simple-brin dans la cellule, il se replie en effet sur lui-même en formant des appariements Watson-Crick intramoléculaires. Ceci conduit à la formation de régions localement en hélice et de régions en boucle où les bases ne sont pas appariées. Cette topologie des appariements constitue ce qu'on appelle la structure secondaire de l'ARN. En plus de ces appariements standard, l'ARN peut former des interactions non canoniques et des interactions à longue distance qui contribuent à donner un repliement 3D à certains ARN structurés, comme les ARNt ou les ARN ribosomiques, on parle alors de la structure tertiaire des ARN.

L'existence de structures secondaires et tertiaires bien définies dans les ARN est un des éléments importants de la fonction d'un certain nombre d'entre eux. Ces structures leur permettent de former des sites de liaison pour des ligands sélectifs, petites molécules ou protéines, et, pour les ribozymes, elles leur permettent d'assurer des fonctions catalytiques. La formation ou la fusion de ces structures en réponse à une variation de l'environnement peut-être aussi être un signal déclenchant une réponse cellulaire.

L'analyse et la prédiction de la structure des ARN, et en particulier de leur structure secondaire, est un champ de recherche très actif, à la fois dans le domaine de la biologie moléculaire et de la bio-informatique. En particulier, l'existence de règles plus formalisées que pour la structure des protéines (dans les paires Watson-Crick, A s'apparie avec U, et G avec C) est une des raisons du succès de ces méthodes prédictives.

Structure secondaire

La structure secondaire d'un ARN est la description de l'ensemble des appariements internes au sein d'une molécule simple brin. Cet ensemble d'appariements induit une topologie particulière, composée de régions en hélice (tiges) et de régions non appariées (boucles). Par extension, la structure secondaire recouvre également la description de cette topologie.

L'élément moteur de la formation de structures secondaires au sein d'un ARN simple-brin est l'existence de régions contenant des séquences répétées inversées, qui peuvent s'apparier pour former localement une structure en double hélice. Par exemple, si l'ARN contient les deux séquences suivantes : --GUGCCACG----CGUGGCAC--, celles-ci forment un motif répété inversé, les nucléotides du second segment étant les complémentaires de ceux du premier, après inversion de leur sens de lecture. Ces deux segments peuvent donc s'apparier de manière antiparallèle pour former une région localement en duplex. La région entre les deux segments forme alors une boucle reliant les deux brins du duplex. On parle alors de structure en tige et boucle ou en épingle à cheveux.

Dans des ARN de longueur plus importante, il peut exister des structures plus complexes, qui résultent de l'appariement de plusieurs régions complémentaires ou séquences répétées inversées. En fonction de la manière dont sont « emboîtées » ces différentes régions, on obtient des éléments topologiques variés, avec des tiges ou régions appariées, et divers types de boucles :

 les boucles terminales, situées à l'extrémité d'une tige ;
 les boucles internes, qui connectent deux tiges ;
 les boucles multiples, qui connectent trois tiges ou plus et constituent des points de branchement de la structure ;
 les hernies (en anglais bulge) ou boucles latérales qui sont sur un seul des deux brins d'une hélice. La continuité de l'hélice n'est en général pas affectée et l'ensemble des bases reste empilé de manière coaxiale, de part et d'autre de la hernie.

Il n'existe pas toujours une structure unique stable pour une séquence donnée et il arrive que certains ARN puissent adopter plusieurs conformations alternatives en fonction de la liaison d'un ligand (protéine, petite molécule…) ou des conditions physico-chimiques (force ionique, pH).

Déterminants de stabilité
La stabilité de la structure des ARN est principalement déterminée par trois types d'interactions :
 une contribution électrostatique liée à la formation des liaisons hydrogène entre les bases ;
 l'empilement des plateaux des paires de bases (stacking) qui donne naissance à des interactions de van der Waals ;
 l'interaction avec le solvant aqueux et les ions de la solution. En particulier, la présence de cations divalents comme le magnésium, Mg2+, est souvent nécessaire pour neutraliser la charge des groupements phosphate du squelette de l'ARN. Le repliement et la formation d'une structure tridimensionnelle par l'ARN implique en particulier le rapprochement de ces groupements phosphate, ce qui serait électrostatiquement défavorable en l'absence de contre-ions.

Le groupement 2'-hydroxyle (-OH) porté spécifiquement par les riboses de l'ARN (mais absent dans l'ADN) joue parfois également un rôle dans la stabilité et la formation de la structure, en formant des liaisons hydrogène avec les bases.

Paramètres thermodynamiques

L'étude de la stabilité des ARN est basée sur la mesure de courbes de fusion par spectrophotométrie, en suivant l'effet hyperchrome dont on peut extraire les paramètres thermodynamiques de la formation des paires de bases. On utilise en général des courts  oligonucléotides de 10 à 20 bases de long, ce qui permet d'avoir des températures de fusion comprises entre 30 et 70 degrés Celsius.

Dans l'exemple simplifié d'un oligonucléotide de séquence palindromique, qui est donc son propre brin complémentaire, cela revient à étudier l'équilibre :

La résolution des équations d'équilibre permet de calculer la température de fusion,  en fonction des valeurs standards des fonctions d'état (enthalpie et entropie). On trouve :

Avec R, la constante des gaz parfaits et , la concentration totale de brins d'ARN (appariés ou non) dans la solution.

En mesurant expérimentalement la température de fusion pour plusieurs valeurs de concentration de l'oligonucléotide, il est possible, par ajustement de l'expression ci-dessus, de déterminer les valeurs de l'entropie et de l'enthalpie standard ( et ) et donc de l'enthalpie libre  à la température souhaitée.

En mesurant cette valeur pour un ensemble suffisamment important et diversifié de courts duplex d'ARN, il est possible de définir des règles permettant de calculer a priori l'enthalpie libre standard associée à la formation de chaque paire de base. Dans la pratique, pour tenir compte des interactions d'empilement entre bases consécutives, on estime empiriquement la variation d'entalphie libre standard () obtenue lorsqu'on empile une  paire de base X-Y en 3' d'une paire de base V-W. Cette variation d'enthalpie libre combine la contribution liée à la  formation des liaisons hydrogène entre les deux bases de l'appariement additionnel et la contribution d'empilement, qui dépend de la nature des paires X-Y et V-W.

Ces paramètres ont été tabulés pour différentes conditions de tampon et peuvent être utilisées pour calculer l'enthalpie libre standard associée à la formation d'une hélice d'ARN, avec une marge d'incertitude de l'ordre de 10 %. La table suivante donne les valeurs obtenues à 37 °C, en présence d'une concentration de 1M NaCl (règles de Freier-Turner). À ces valeurs, il faut ajouter un coût de nucléation, d'origine entropique, de +3,4 kcal/mol.

On peut ainsi calculer a priori l'enthalpie libre standard associé à la formation d'une hélice d'ARN, en additionnant tous les  d'empilement. Par exemple, pour le duplex de 7 paires de bases suivant, il faut additionner les 6  d'empilement et le coût de nucléation.
 5'-AGGCUUC-3'
 3'-UCGCAAG-5'
En prenant les valeurs de la table ci-dessus, on trouve = - 1,7 - 2,9 - 3,4 - 1,7 - 0,9 - 2,3 + 3,4nuc = -9,5 kcal/mol

Des règles ont également été déterminées pour les différents types de boucles, en fonction de leur longueur. Ces calculs d'enthalpie libre sur les boucles sont toutefois d'une précision moindre, en particulier parce que certaines boucles peuvent adopter des conformations stables particulières qui ne sont pas prises en compte dans ce modèle simplifié. Cet ensemble de règles empiriques est exhaustif, il permet faire un calcul prédictif de l'enthalpie libre associée à n'importe quelle structure secondaire.

Analyse et prédiction de structure secondaire
Un ARN de longueur suffisante peut en principe adopter un grand nombre de conformations différentes, correspondant à un grand nombre de structures secondaires alternatives différentes. En théorie, la configuration la plus stable est celle qui correspond à l'enthalpie libre standard minimale. Les calculs thermodynamiques décrits ci-dessus permettent de calculer théoriquement cette enthalpie, pour toute configuration de structure secondaire d'un ARN donné. Le problème qui est posé est trouver la structure d'énergie minimale parmi toutes les configurations possibles. Le nombre de combinaisons possibles est cependant très grand, pour une structure de longueur 2 n, il croit comme le nombre de Catalan :

De plus, l'imprécision sur les calculs empiriques d'énergie rend la prédiction difficile. Pour résoudre ce problème, on associe en général des méthodes expérimentales, comparatives et bio-informatiques. Les approches combinées permettent ainsi d'obtenir des analyses fiables, où la prédiction est corroborée par des arguments expérimentaux et évolutifs.

Méthodes expérimentales
Il est possible d'analyser la structure secondaire des ARN au moyen de méthodes chimiques et enzymatiques. Cette technique est basée sur la réactivité différentielle de l'ARN, en fonction de son état de structuration. Par exemple, certaines ribonucléases, comme la nucléase S1, ne clivent l'ARN que dans les régions qui sont simple brin, tandis que d'autres, à l'inverse, ne coupent que dans les régions en double-brin. On traite l'ARN étudié par l'une ou l'autre de ces enzymes dans des conditions de digestion très partielle, où il ne se produit que zéro ou une coupure par molécule d'ARN. En analysant par électrophorèse les fragments d'ARN ainsi produits, on peut localiser les sites de coupure et donc les régions qui sont en duplex ou bien non appariées.

L'utilisation de sondes chimiques permet d'avoir une information encore plus précise, en localisant quelles positions de chaque base sont accessibles au réactif. On utilise par exemple du sulfate de diméthyle (DMS) qui réagit avec la position N3 de la cytidine et la position N7 de la guanine. La première, le N3 dans les C, est impliquée dans une liaison hydrogène avec le G dans des appariements Watson-Crick et n'est réactive que si le C correspondant n'est pas apparié.

Méthodes phylogénétiques

Lorsqu'on compare les ARN remplissant la même fonction chez plusieurs espèces, on observe en général une conservation forte de la structure secondaire. Les différentes régions en hélice et leur topologie est conservée même si la nature exacte des appariements de bases qui les constituent peut varier. Par exemple, à une position donnée, on pourra trouver un appariement G-C dans une espèce, remplacé par un appariement A-U dans une autre, ce qui ne modifie pas la topologie globale. Cette contrainte d'appariement est une conséquence de la pression de sélection sur la fonction de l'ARN, qui est en général fortement dépendante de sa structure tridimensionnelle : pour conserver la fonction, il faut conserver la forme et donc la topologie.

Dans des alignements de séquence d'ARN homologues, cette conservation structurale globale de la conduit à l'apparition de covariations entre positions qui sont normalement appariées dans le repliement. Ces covariations peuvent être identifiées systématiquement par des analyses statistiques sur un ensemble de séquences d'ARN homologues et utilisées pour construire des modèles de structure secondaire. Il est également possible de vérifier a posteriori si un modèle de structure secondaire est compatible avec les covariations observées dans l'évolution. C'est en grande partie ainsi qu'ont été validés les modèles de structure secondaire des ARN ribosomiques.

Prédictions bio-informatiques
La disponibilité de données expérimentales permettant de calculer l'enthalpie libre associée à un repliement donné de l'ARN a ouvert la voie à la prédiction ab initio de sa structure secondaire. L'objectif étant de trouver la ou les conformations d'énergie minimale, qui correspondent à l'état le plus stable du système.

Un des premiers algorithmes performants pour prédire la structure secondaire de l'ARN a été développé par Ruth Nussinov et est basé sur l'utilisation de la programmation dynamique pour limiter la complexité combinatoire. L'algorithme de Nussinov ne cherche qu'à maximiser le nombre total d'appariements de base dans la structure formée, sans critères énergétiques, ni prise en compte des interactions d'empilements entre paires de bases.  Une version améliorée de cet algorithme de base a été proposée en 1981 par Michael Zuker, qui incorpore les données thermodynamiques et en particulier les interactions d'empilement.

Ces deux algorithmes, très proches dans leur principe, sont performants et permettent de prédire le repliement optimal d'un ARN jusqu'à quelques milliers de nucléotides de longueur. Leur complexité algorithmique est de l'ordre de O(N), où N est la longueur de la séquence. Tous deux souffrent cependant de deux limitations importantes :
 ils ne permettent de prédire que des topologies canoniques, excluant en particulier la possibilité de former des pseudonœuds. Ceci n'est pas un défaut majeur, car les pseudonœuds sont à la fois peu fréquents et de longueur limitée (voir plus bas). On peut donc en général les ajouter a posteriori sur la prédiction de structure classique de type Zuker/Nussinov ;
 ils ne prédisent que la structure d'énergie théorique minimale, et pas les solutions dont le score énergétique peut être très proche de l'optimum. C'est une limitation importante, car les paramètres énergétiques empiriques ne sont précis qu'au mieux à 5 à 10 % près, et, à cause de cette incertitude, la structure la plus stable en réalité peut se trouver dans ces solutions légèrement sous-optimales.

Un algorithme permettant la prédiction de structures sous-optimales a ensuite été développé par Zuker et constitue la version actuelle du programme mfold, disponible en ligne, qui est actuellement un des outils standards de la prédiction de structure secondaire d'ARN.

Plusieurs variantes de ce programme existent, et permettent d'affiner les prédictions, en tenant compte de données phylogénétiques ou expérimentales, ainsi que de la reconnaissance de motifs structuraux spécifiques, comme les tétraboucles (voir ci-après).

Structure tertiaire
En plus de leur structure secondaire, constituée d'appariements de base standard, les ARN peuvent adopter une structure tridimensionnelle compacte, bien définie, qui résulte d'interactions additionnelles entre les éléments classiques de structure secondaire  (hélices, boucles). Ces interactions additionnelles dans la plupart des cas de type non canonique, c'est-à-dire qu'il ne s'agit ni d'appariement Watson-Crick, ni d'appariements bancals, de type G-U.

Les appariements non canoniques et les interactions additionnelles à longues distances sont relativement bien connus, en particulier grâce à la résolution de la structure tridimensionnelle du ribosome, qui en a mis en lumière un très grand nombre. L'utilisation de méthodes phylogénétiques (voir ci-dessus) permet également de repérer certaines de ces interactions non canoniques, lorsqu'on dispose de la séquence du même ARN chez plusieurs espèces. Il est ainsi possible de rationaliser en partie la manière dont se construit la structure tertiaire des ARN et de réaliser des prédictions de repliement relativement fiables, dont certaines ont pu être validées a posteriori par l'expérience.

Appariements non canoniques
Les  appariements non canoniques sont des interactions entre nucléotides, distincts des d'appariements de base classiques, de type Watson-Crick (A-U et G-C) ou bancals (wobble, G-U). On a observé une grande variété de ces appariements dans les structures tridimensionnelles d'ARN résolues par cristallographie ou par RMN. Ces appariements non canoniques impliquent toujours des liaisons hydrogène entre les bases, qui sont coplanaires, comme dans les paires Watson-Crick.

Une nomenclature systématique de toutes ces interactions a été proposée par Eric Westhof et ses collaborateurs. Plus de 150 types d'appariements ont été observés et ont été regroupés en douze grandes familles.

Cette classification repose entre autres sur la face des bases impliquée dans l'interaction. Un nucléotide de type purine comporte par exemple trois faces permettant des liaisons hydrogène :
 la face Watson-Crick. C'est le côté comportant le N1 et les fonctions oxo et amino en position 2 et 6. C'est cette face qui est impliquée dans les appariements canoniques A-U et G-C, ainsi que dans les appariements bancals G-U ;
 la face Hoogsteen. C'est le côté comprenant le N7 et la fonction oxo ou amino en position 6 ;
 la face ribose. C'est le côté comprenant le N3 et la fonction en position 2. La fonction 2' hydroxyle du ribose peut également participer aux interactions sur cette face.

À cette nomenclature d'interactions entre bases, il faut ajouter la possibilité pour ces dernières d'adopter différentes conformations par rapport au ribose auquel elles sont liées. La liaison glycosidique qui relie la base au sucre a en effet deux orientations favorables principales, suivant que la face Watson-Crick de la base est située du côté du ribose (orientation cis) ou du côté opposé (orientation trans). Dans les appariements canoniques, les nucléotides sont toujours en conformation trans. Cette orientation du sucre par rapport à la base détermine en particulier la polarité, parallèle ou antiparallèle, des brins d'ARN qui sont appariés.

Parmi ces appariements non canoniques relativement fréquents, on trouve par exemple des appariements Hoogsteen A-U impliquant la face Hoogsteen d'une adénosine et un uracile, des paires G-A "en cisaille" (sheared), impliquant la face Hoogsteen du A et la face ribose du G.

Enfin, on trouve plus rarement des appariements qui impliquent des formes protonées de certaines bases. Ainsi, existe des paires C-C+, où la deuxième cytosine est protonée sur sa position N3. Ce type de paires de bases non canoniques porte une charge positive et est stabilisé à pH acide (le pKa du N3 de la cytidine est d'environ 4.2).

Motifs récurrents

Tétraboucles
L'analyse de la structure des ARN ribosomiques a permis de mettre en évidence la présence d'un nombre très élevé de structures en hélices fermées par des boucles terminales de quatre nucléotides. Ces boucles, appelées tétraboucles (tetraloop), ont des structures très stables, renforcées par des interactions non canoniques. On en a identifié plusieurs classes, dont les principales se regroupent dans trois familles :
 les boucles de type GNRA, ou N peut être A, G, C ou U, et R, A ou G. Dans ces boucles (figure ci-contre). Le G en 5' et le A en 3' forment une paire G-A en cisaille. La purine en position 3 est empilée sur l'adénine et fait une liaison avec le 2'-OH du ribose de l'adénine ;
 les boucles de type UNCG, ou N peut être A, G, C ou U ;
 les boucles de type CUUG.

Les tétraboucles de la famille GNRA, qui sont parmi les motifs les plus fréquents dans l'ARN, peuvent former des interactions à longue distance avec des régions en hélice ou en boucle interne. Ces interactions impliquent les deux nucléotides au centre de la boucle qui sont exposés. Ainsi, par exemple, les tétraboucles de séquence GAAA peuvent interagir spécifiquement dans le petit sillon avec des hélices contenant deux paires G-C consécutives et en particulier avec le motif de 11 nucléotides  [CCUAAG...UAUGG]  où les deux premiers C sont appariés avec deux derniers G. On appelle ces séquences des récepteurs de tétraboucle. Ces interactions tétraboucle-récepteur sont très fréquentes dans les structures tridimensionnelles d'ARN et jouent un rôle important dans le maintien du repliement global.

Boucle E
La boucle E est un motif qui a été identifié pour la première fois dans l'ARN ribosomique 5S. Sur les prédictions informatiques de structure secondaire, cette région avait été initialement postulée comme formant une boucle interne, encadrée par deux tiges appariées. Cette « boucle » étant résistante aux nucléases, on a ensuite conclu à la formation de structure non canonique, qui aboutissent à la formation d'une tige compacte. Elle est toujours appelée boucle E, bien qu'il ne s'agisse in fine pas du tout d'une structure en boucle.

La boucle E contient une paire A-A parallèle et un triplet de paire de bases, encadrés par une ou deux paires G-A en cisaille. Ce motif a ensuite été retrouvé dans d'autres régions des ARN ribosomiques et dans d'autres ARN structurés, comme les viroïdes. Il existe des protéines qui reconnaissent sélectivement les motifs boucle E.

Interactions à longue distance

Pseudonœuds

Un pseudonœud est une structure formée par l'interaction d'une boucle avec une région située à l'extérieur de la tige qui la délimite. Les structures secondaires canoniques, décrites ci-dessus excluent en principe la formation de pseudonœuds, en particulier parce que leur prédiction par des méthodes bio-informatiques reste assez complexe.

Les pseudonœuds permettent de former des interactions à longue distance, entre deux régions non appariées dans la structure secondaire. Ce sont donc des éléments importants de la structure tridimensionnelle des ARN. Par rapport aux structures secondaires canoniques, ils sont en général peu nombreux et de dimension limitée dans les ARN structurés, mais ils jouent souvent un rôle important dans la structure et la fonction. La limite sur leur taille a une origine topologique, liée à la formation de l'hélice additionnelle du pseudonœud : celle-ci ne peut en principe pas dépasser un tour d'hélice, soit une dizaine de paires de bases, sinon cela conduirait à un enlacement complet des brins créant un nœud véritable.

Interactions triples
Une interaction triple, ou triplet de bases, est une interaction entre trois bases situées dans le même plan et formant des liaisons hydrogène entre elles. Elles peuvent être isolées ou se produire de manière consécutive, les triplets formant alors des empilements, comme les paires de bases dans un duplex. On a alors une structure associant localement trois brins d'ARN.

Le type le plus fréquent d'interactions triples s'observe au sein d'une hélice classique, lorsque l'un des deux brins contient plusieurs purines consécutives. Un troisième brin d'ADN peut alors former des appariements Hoogsteen avec le brin purique, en s'insérant dans le grand sillon de l'hélice.

Le cœur classique de la structure des ARN de transfert contient plusieurs interactions triples qui stabilisent l'interaction des quatre hélices et donnent à ces ARN leur topologie globale en forme de « L » à partir de leur structure secondaire en forme de feuille de trèfle.

Notes et références

Voir aussi

Articles connexes

 ARN
 Dénaturation
 Hyperchromicité

Lien externe
 Serveur Mfold pour la prédiction de structure d'ARN


For the first time in 24 years, the ACVIM Forum featured a series of communication and management sessions on June 3, 2006, in Louisville, Kentucky. A total of 2,959 professionals attended the ACVIM forum, including 914 general practitioners, said Jenn Zohn, ACVIM spokesperson. Specialists in veterinary and human medical communications discussed relationship-centered care and ways to improve client communication while Amanda Donnelly, DVM, MBA, covered the increasingly important relationship between specialists and general practitioners.
Donnelly told the audience, which comprised generalists and specialists that a good working relationship could improve profit margins. A feature story that focuses on this topic will appear in the July/August issue of Trends Magazine.
During the keynote session, Frederick Murphy, DVM, PhD, discussed emerging zoonotic diseases and emphasized the fields of public health as well as infectious disease science for veterinarians.
During his speech, Murphy touched on the 1918 influenza epidemic as well as Foot and Mouth Disease, Rabies, which still kills between 40,000 and 70,000 people every year, and Japanese encephalitis. Japanese encephalitis, which is related to the West Nile Virus, spread to India in 1999, invaded Queensland, Australia, and "is on the move," Murphy said. "It is high on the threat list for invasion of our continent," he added.
Noting that the number of passengers entering the United States has jumped from 43.8 million in 2004 to 47.5 million in 2006, Murphy emphasized the need for a truly global public health system that monitors disease in all countries instead of what he described as a provincial view of so-called threats.
Stating that diseases can be introduced by accident or intentionally, Murphy questioned why, when 500,000 animals are transported into the country annually, federal employees do not put more of an emphasis on testing to protect public health.
He praised the efforts of the Texas State Public Health Department, which has curtailed the spread of rabies with a creative bait program, and referenced a similarly successful program in Ontario. Citing impressive international efforts to study human and animal health in Canada and Australia, Murphy called U.S. initiatives – or the lack thereof – embarrassing.


The 'MV Lord of the Glens' is a vessel with the elegant appeal of a luxury yacht with all-round teak-clad viewing and promenade decks and rich mahogany interiors. There are 27 luxury state-cabins accommodating 54 passengers, a bar, lounge and a restaurant which can accommodate up to 60 diners in one sitting.
Medical: Since the vessel is never more than one hour from port and moors overnight - no medical facilities are available on board but can be obtained on-shore within minutes.
Power Points: The voltage throughout the vessel is 220 with British three pinned plugs. Universal adapters are available from the reception.
Dress: Dress is smart casual but a jacket is preferred for the formal receptions. Otherwise layered clothing is recommended since passengers have been surprised at the warmth of the vessel and the amount of sunshine encountered at these latitudes.
No Smoking: There are designated external areas reserved for smoking. For safety and comfort reasons a 'non-smoking' regime exists throughout the vessel.
There are 27 luxury state-cabins accommodating 54 passengers each tastefully furnished in mahogany finishes, with dressing table and stool, hairdryer, satellite TV, individually controlled air-conditioning/heating, safe deposit box, music system, internal telephone and en suite facilities (shower, toilet, washbasin). In addition to the storage for suitcases under the beds there is a full size wardrobe. All cabins are outside facing with 23 having a large picture window (with tinted glass for extra privacy) and two with two large portholes each.


The Food Safety & Sanitation Program uses a scoring system for restaurant and other food facility inspections performed in the Municipality. All food establishments, temporary food service and pool/spa facilities within the municipality inspected by municipal health inspectors are posted online.
Responding to complaints and concerns is a priority for the Food Safety and Sanitation Program. Timely reporting is key for a successful investigation.
If you believe you may have become ill as a result of eating food from a public food facility such as a restaurant or from swimming at a public swimming pool, please submit a complaint online, or call our office at 343-4200.
On weekends or after hours, call (800) 478-0084.
We are located at 825 L Street on the third floor. We are open Monday - Friday from 8:30am-4:30pm and closed daily for lunch from 12:00pm-1:00pm.
If you would like to stop by the office to speak with an inspector we suggest that you call ahead to make an appointment to ensure an inspector will be available to speak with you. Inspectors are frequently conducting on-site inspections in the field and may not be immediately available in person.
The Municipality of Anchorage to have the services we provide meet or exceed the needs and expectations of our customers. By taking this survey you will help us determine what we are doing well and where we can improve customer satisfaction while protecting public health and safety in our community.


I'm currently wraping up my game and trying to pack it for distribution without success.
This is a 4.21 project with blueprints only.
I have no problem packing the project for development and even a couple of month ago I was able to create a distribution build.
Just to double check everything, I recreated my certificates, provisions , private keys and made sure that the keys were in system in the keychain Access.
With the new certificates, I don't have any issues building for development but again it doesn't work for distribution. I found a post explaining that changing a line of code in UEDeployIOS file could fix it but still it doesn't work.
If someone could point me to what I'm doing wrong it would be great.
I am having the same problem. And in fact I downloaded and build the source from the commit with the fix listed (from https://issues.unrealengine.com/issue/UE-70358) and I am still have the exact same issue.
I should also mentioned that I use remote building as I'm working on windows and this morning after going again through the process of recreating every single certificates and private keys in keychain, the problem remains. The certificate are set up to "Always trust" and are valid. Again I can use the development certificate without a problem but when switching to distribution it fails. It used to work in December and I build a dozen of the same project for distribution without a problem. I'm running out of ideas on what to do I have to say.
Anyone could help with that?


CORPORATE OWNED. SELLER DOES NOT PROVIDE TERMITE OR SURVEY, TAXES ARE PRORATED AT 100%. PROPERTY BEING SOLD IN AS-IS CONDITION BUT IT IS PRICED TO SALE. SPACIOUS HOME FEATURES HW FLOORS, BEAUTIFUL GRANITE KITCHEN W/LARGE ISLAND AND EAT-IN AREA. 1ST FL BR/OFFICE. CROWN MLDG W/RECESSED LIGHTING, MB W/SEP SHOWER & BODY SPRAY. FULL FIN WALKOUT BSMT W/REC RM WETBAR & THEATRE. NEEDS SOME REPAIRS. THIS ONE WON'T LAST LONG.
8717 Cullen Court Frankfort, Illinois 60423 is a single family property, which sold for $431,000. 8717 Cullen Court has 4 bedroom(s) and 5 bath(s). Want to learn more about 8717 Cullen Court Frankfort, Illinois 60423? Contact an @properties agent to request more info.