text:
package com.vmware.vchs.api.samples.services;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.TimeUnit;

import javax.xml.bind.JAXBElement;

import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;

import com.vmware.vchs.api.samples.SampleConstants;
import com.vmware.vchs.api.samples.services.helper.HttpUtils;
import com.vmware.vcloud.api.rest.schema_v1_5.DeployVAppParamsType;
import com.vmware.vcloud.api.rest.schema_v1_5.InstantiateVAppTemplateParamsType;
import com.vmware.vcloud.api.rest.schema_v1_5.InstantiateVdcTemplateParamsType;
import com.vmware.vcloud.api.rest.schema_v1_5.InstantiationParamsType;
import com.vmware.vcloud.api.rest.schema_v1_5.LinkType;
import com.vmware.vcloud.api.rest.schema_v1_5.NetworkConnectionSectionType;
import com.vmware.vcloud.api.rest.schema_v1_5.ObjectFactory;
import com.vmware.vcloud.api.rest.schema_v1_5.OrgListType;
import com.vmware.vcloud.api.rest.schema_v1_5.QueryResultRecordType;
import com.vmware.vcloud.api.rest.schema_v1_5.QueryResultRecordsType;
import com.vmware.vcloud.api.rest.schema_v1_5.QueryResultVAppTemplateRecordType;
import com.vmware.vcloud.api.rest.schema_v1_5.ReferenceType;
import com.vmware.vcloud.api.rest.schema_v1_5.ResourceEntitiesType;
import com.vmware.vcloud.api.rest.schema_v1_5.ResourceReferenceType;
import com.vmware.vcloud.api.rest.schema_v1_5.TaskType;
import com.vmware.vcloud.api.rest.schema_v1_5.TasksInProgressType;
import com.vmware.vcloud.api.rest.schema_v1_5.VAppTemplateType;
import com.vmware.vcloud.api.rest.schema_v1_5.VAppType;
import com.vmware.vcloud.api.rest.schema_v1_5.VdcTemplateListType;
import com.vmware.vcloud.api.rest.schema_v1_5.VdcTemplateType;
import com.vmware.vcloud.api.rest.schema_v1_5.VdcType;
import com.vmware.vcloud.api.rest.schema_v1_5.VmType;

/**
 * This helper class implements API calls to the vCloud Compute API.
 */
public class Compute {
    /**
     * This method will log in to compute using the provided URL (which should be the /api/sessions
     * path).
     */
    public static final String login(String url, String username, String password, String orgName,
            String version) {
        // Default base URL to log in to using the provided URL
        HttpPost post = new HttpPost(url);

        // Encode the username and password provided via the command line options.username and
        // options.password appending the provided orgName to the username before encoding. Compute
        // services require username@orgName:password syntax to log in with.
        String auth = "Basic "
                + Base64.encodeBase64URLSafeString(new String(username + "@" + orgName + ":"
                        + password).getBytes());

        post.setHeader(HttpHeaders.AUTHORIZATION, auth);
        post.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION + version
                + ";charset=utf-8");

        HttpResponse response = HttpUtils.httpInvoke(post);

        if (null != response) {
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                // Return the response header x-vcloud-authorization which contains the session
                // token for the now logged in user.
                return response.getFirstHeader(SampleConstants.VCD_AUTHORIZATION_HEADER).getValue();
            }
        }

        return null;
    }

    /**
     * This method will use the provided input parameters to create a VM.
     */
    public static final VAppType createVmFromTemplate(VdcType vdc, VAppTemplateType template,
            String vAppName, String version, String token) {
        ReferenceType vappReference = new ReferenceType();
        vappReference.setHref(template.getHref());

        // Create an InstantiateVAppTemplateParamsType object and initialize it
        InstantiateVAppTemplateParamsType instvApp = new InstantiateVAppTemplateParamsType();

        // Set the name of vApp using the options.vappname (command line option --targetvappname)
        instvApp.setName(vAppName);

        // Deploy the VM
        instvApp.setDeploy(Boolean.TRUE);

        // Power on this VM
        instvApp.setPowerOn(Boolean.TRUE);

        // vApp reference to be used
        instvApp.setSource(vappReference);
        instvApp.setDescription("VM Create from template");
        instvApp.setAllEULAsAccepted(Boolean.TRUE);

        InstantiationParamsType instParams = new InstantiationParamsType();

        instvApp.setInstantiationParams(instParams);

        // Get the HREF link to send POST to to instantiate the vapp
        List<LinkType> links = vdc.getLink();
        String instantiateHref = null;
        for (LinkType link : links) {
            if (link.getType().contains("instantiateVAppTemplate")) {
                instantiateHref = link.getHref();
                break;
            }
        }

        // Create HttpPost request to perform InstantiatevApp action
        HttpPost post = new HttpPost(instantiateHref);
        post.setHeader(HttpHeaders.CONTENT_TYPE, SampleConstants.APPLICATION_PLUS_XML_VERSION
                + version);
        post.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION + version
                + ";charset=utf-8");
        post.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);

        // Create the XSD generated ObjectFactory factory class
        ObjectFactory obj = new ObjectFactory();

        // Create the InstantiateVdcTemplateParamsType from the ObjectFactory
        JAXBElement<InstantiateVAppTemplateParamsType> instvAppTemplate = obj
                .createInstantiateVAppTemplateParams(instvApp);

        // Get the StringEntity marshaled instance
        StringEntity se = HttpUtils.marshal(InstantiateVAppTemplateParamsType.class,
                instvAppTemplate);

        // Set the Content-Type header for the VM vApp template parameters
        se.setContentType("application/vnd.vmware.vcloud.instantiateVAppTemplateParams+xml");
        post.setEntity(se);

        // Invoke the HttoPost to initiate the VM creation process
        HttpResponse response = HttpUtils.httpInvoke(post);

        // Make sure response status is 201 Created
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_CREATED) {
            return HttpUtils.unmarshal(response.getEntity(), VAppType.class);
        }

        return null;
    }

    /**
     * This method will return a collection of VdcType objects for the passed in OrgListType.
     */
    public static final Collection<VdcType> getVDCsForOrgs(OrgListType org, String token,
            String version) {
        if (null != org) {
            List<VdcType> vdcs = new ArrayList<VdcType>();
            List<LinkType> links = org.getLink();
            for (LinkType link : links) {
                if (link.getRel().equalsIgnoreCase("down")
                        && link.getType().equalsIgnoreCase("application/vnd.vmware.vcloud.vdc+xml")) {
                    HttpGet get = new HttpGet(link.getHref());
                    get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                            + version + ";charset=utf-8");
                    get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);
                    HttpResponse response = HttpUtils.httpInvoke(get);

                    if (null != response
                            && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                        VdcType vdc = HttpUtils.unmarshal(response.getEntity(), VdcType.class);
                        if (null != vdc) {
                            vdcs.add(vdc);
                        }
                    }
                }
            }

            return vdcs;
        }

        return null;
    }

    /**
     * Searches through the passed in vApp children element for a VmType Vm that matches the name of
     * the command line options.vappName. If found it is returned, otherwise a RuntimeException is
     * thrown.
     *
     * @param vApp
     *            the vApp to search for a matching Vm
     * @return the VmType instance
     */
    public static final VmType getVmFromVApp(VAppType vApp, String vmName, String version,
            String token) {
        // Get the status of initialization operation and IP details
        if (null != vApp.getChildren()) {
            List<VmType> vms = vApp.getChildren().getVm();

            for (VmType vm : vms) {
                List<LinkType> links = vm.getLink();

                for (LinkType link : links) {
                    // If there is a rel="up", we use that to get the ID and match it to the
                    // passed in vApp id
                    if (link.getRel().equalsIgnoreCase("up")) {
                        // make GET request to get the up vApp to compare it to the
                        // passed in vApp
                        HttpGet get = new HttpGet(vApp.getHref());
                        get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);
                        get.setHeader(HttpHeaders.ACCEPT,
                                SampleConstants.APPLICATION_PLUS_XML_VERSION + version
                                        + ";charset=utf-8");
                        HttpResponse response = HttpUtils.httpInvoke(get);
                        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                            VAppType upVApp = HttpUtils.unmarshal(response.getEntity(),
                                    VAppType.class);
                            if (upVApp.getName().equalsIgnoreCase(vmName)) {
                                return vm;
                            }
                        }
                    }
                }

                if (vm.getName().equalsIgnoreCase(vmName)) {
                    return vm;
                }
            }
        }

        return null;
    }

    /**
     * This method will return a collection of VmType instances for the passed in Vdc. It will use
     * another method found in this class, getVAppsForVdc, to first get the vapps for the vdc. In
     * most cases, there is one Vm to each VApp. Just in case any of the VApp's returned for the VDC
     * contain more than one VM, this method will loop through each VApp collection of VM children
     * and add them all to the final collection that is returned.
     *
     * @param vdc
     *            the VdcType instance to get all Vms for.
     * @param token
     *            the vCloud API Auth token
     * @param version
     *            the version of the API to invoke
     * @return a collection of VmType instances, or null
     */
    public static final Collection<VmType> getVmsForVdc(VdcType vdc, String token, String version) {
        if (null != vdc) {
            Collection<VAppType> vapps = getVAppsForVdc(vdc, token, version);
            if (null != vapps) {
                Collection<VmType> vms = new ArrayList<VmType>();
                for (VAppType vapp : vapps) {
                    if (null != vapp.getChildren()) {
                        List<VmType> vs = vapp.getChildren().getVm();
                        for (VmType v : vs) {
                            vms.add(v);
                        }
                    }
                }

                return vms;
            }
        }

        return null;
    }

    public static final Collection<VAppType> getVAppsForVdc(VdcType vdc, String token,
            String version) {
        if (null != vdc && null != vdc.getResourceEntities()) {
            ResourceEntitiesType resourceEntities = vdc.getResourceEntities();
            List<ResourceReferenceType> resources = resourceEntities.getResourceEntity();
            Collection<VAppType> vapps = new ArrayList<VAppType>();
            for (ResourceReferenceType resource : resources) {
                if (resource.getType().equalsIgnoreCase("application/vnd.vmware.vcloud.vApp+xml")) {
                    HttpGet get = new HttpGet(resource.getHref());
                    get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);
                    get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                            + version + ";charset=utf-8");
                    HttpResponse response = HttpUtils.httpInvoke(get);

                    if (null != response
                            && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                        vapps.add(HttpUtils.unmarshal(response.getEntity(), VAppType.class));
                    }
                }
            }

            return vapps;
        }

        return null;
    }

    /**
     * This method will retrieve the specified Org's details
     */
    public static final OrgListType getOrgDetails(String url, String token, String version) {
        HttpGet get = new HttpGet(url);
        get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION + version
                + ";charset=utf-8");
        get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);

        HttpResponse response = HttpUtils.httpInvoke(get);

        if (null != response && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            return HttpUtils.unmarshal(response.getEntity(), OrgListType.class);
        }

        return null;
    }

    /**
     * This method will use the vCloud Query API to search for a single template with a matching
     * name. If found it is returned, otherwise null is returned.
     *
     * @param vdc
     * @param templateName
     * @param token
     * @param options
     */
    public static final VAppTemplateType getTemplateForVdc(String url, VdcType vdc,
            String templateName, String token, String version) {
        QueryResultRecordsType queryResults = HttpUtils.getQueryResults(url,
                "type=vAppTemplate&filter=name==" + templateName, version, token);

        List<JAXBElement<? extends QueryResultRecordType>> rslt = queryResults.getRecord();

        VAppTemplateType vat = null;

        // We should have only one record with the name matching templateName
        if (rslt.size() == 1) {
            QueryResultVAppTemplateRecordType qrrt = (QueryResultVAppTemplateRecordType) rslt
                    .get(0).getValue();
            String templateHref = qrrt.getHref();

            // invoke the GET request to the template href to get the VAppTemplateType
            HttpGet get = new HttpGet(templateHref);
            get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                    + version + ";charset=utf-8");
            get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);

            HttpResponse response = HttpUtils.httpInvoke(get);

            // make surethe status is 200 OK
            if (null != response && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                // unmarshal the response entity into a VAppTemplateType
                vat = HttpUtils.unmarshal(response.getEntity(), VAppTemplateType.class);
            }
        }

        if (null == vat) {
            throw new RuntimeException("Template not found: " + templateName);
        }

        return vat;
    }

    /**
     * This method will use the vCloud Rest API to create a new VDC from the provided VDC Template.
     *
     * @param vdcTemplate
     *            the VdcTemplateType object to instantiate the new VDC from
     * @param token
     *            the vCloud Rest API user authentication token
     * @param version
     *            the version of the vCloud Rest API to make requests against
     * @return the HttpStatus code result of the request.
     */
    public static final TaskType createVdcFromVdcTemplate(ReferenceType vdcTemplateRef, String url,
            String token, String version, String vdcName, String description) {
        if (null != vdcTemplateRef && null != token && null != version) {
            HttpPost post = new HttpPost(url);
            post.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);
            post.setHeader(HttpHeaders.CONTENT_TYPE,
                    "application/vnd.vmware.vcloud.instantiateVdcTemplateParams+xml");
            post.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                    + version + ";charset=utf-8");
            InstantiateVdcTemplateParamsType newTemplate = new InstantiateVdcTemplateParamsType();
            newTemplate.setDescription(description);
            newTemplate.setName(vdcName);
            newTemplate.setSource(vdcTemplateRef);

            // Create the XSD generated ObjectFactory factory class
            ObjectFactory obj = new ObjectFactory();

            // Create the InstantiateVdcTemplateParamsType from the ObjectFactory
            JAXBElement<InstantiateVdcTemplateParamsType> t = obj
                    .createInstantiateVdcTemplateParams(newTemplate);

            // Get the StringEntity marshaled instance
            StringEntity se = HttpUtils.marshal(InstantiateVdcTemplateParamsType.class, t);

            // Set it as the POST body
            post.setEntity(se);

            // Make the call
            HttpResponse postResponse = HttpUtils.httpInvoke(post);

            // Make sure the response HTTP status code is 202 Accepted
            if (null != postResponse
                    && postResponse.getStatusLine().getStatusCode() == HttpStatus.SC_ACCEPTED) {
                // Accepted, so return the TaskType instance
                return HttpUtils.unmarshal(postResponse.getEntity(), TaskType.class);
            }
        }

        return null;
    }

    /**
     * This method will issue requests to the vCloud Rest API to retrieve any accessible VDC
     * Templates for the user authenticated by the provided token. The return of this method is a
     * collection of ReferenceType objects, however, the only ReferenceType objects added to the
     * returned collection are those that have the type =
     * "application/vnd.vmware.admin.vdcTemplate+xml". The reason the ReferenceType is returned and
     * not the VdcTemplateType, is because when instantiating a new VDC template, the source of the
     * VdcTemplate is required, which is the ref.getHref() value. To avoid further lookup calls when
     * needing to create a VDC from a template, by returning the ReferenceType, access to the
     * VdcTemplateType source is made available.
     *
     * @param url
     * @param token
     * @param version
     * @return
     */
    public static final Collection<ReferenceType> getVdcTemplates(String url, String token,
            String version) {

        HttpGet get = new HttpGet(url);
        get.setHeader(HttpHeaders.ACCEPT, "application/vnd.vmware.admin.vdcTemplates+xml;version="
                + version + ";charset=utf-8");
        get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);

        HttpResponse response = HttpUtils.httpInvoke(get);
        if (null != response) {
            VdcTemplateListType listTemplates = HttpUtils.unmarshal(response.getEntity(),
                    VdcTemplateListType.class);
            if (null != listTemplates) {
                List<ReferenceType> refs = listTemplates.getVdcTemplate();

                if (null != refs && refs.size() > 0) {
                    List<ReferenceType> templates = new ArrayList<ReferenceType>();
                    for (ReferenceType ref : refs) {

                        if (ref.getType().equalsIgnoreCase(
                                "application/vnd.vmware.admin.vdcTemplate+xml")) {
                            templates.add(ref);
                        }
                    }

                    return templates;
                }
            }
        }

        return null;
    }

    /**
     * This method will retrieve all the VDC Templates (via the getVdcTemplates() method found in
     * this class) and then iterate the results looking for a matching VDC template with the name
     * passed in the templateName parameter. If a match is found, a GET request is done on the
     * matching HREF to get the VdcTemplateType instance details and is returned.
     *
     * @param url
     * @param templateName
     * @param token
     * @param version
     * @return
     */
    public static final ReferenceType findVdcTemplateByName(String url, String templateName,
            String token, String version) {

        Collection<ReferenceType> refs = getVdcTemplates(url, token, version);

        if (null != refs) {
            for (ReferenceType ref : refs) {
                if (ref.getName().equalsIgnoreCase(templateName)) {
                    return ref;
                }
            }
        }

        return null;
    }

    /**
     * This helper method will retrieve the VdcTemplateType from the provided ReferenceType.
     *
     * @param ref
     * @param token
     * @param version
     * @return
     */
    public static final VdcTemplateType getVdcTemplateFromRef(ReferenceType ref, String token,
            String version) {
        HttpGet get = new HttpGet(ref.getHref());
        get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);
        get.setHeader(HttpHeaders.ACCEPT, "application/vnd.vmware.admin.vdcTemplate+xml;version="
                + version + ";charset=utf-8");
        HttpResponse response = HttpUtils.httpInvoke(get);
        if (null != response && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            return HttpUtils.unmarshal(response.getEntity(), VdcTemplateType.class);
        }

        return null;
    }

    /**
     * This method uses the vCloud Query API to retrieve vCloud VDC Templates. It will return a
     * collection of VAppTemplateType instances for each template retrieved.
     *
     * @param vdc
     *            the VDC to find and return all templates from
     */
    public static final Collection<VAppTemplateType> getTemplatesForVdc(String computeUrl,
            VdcType vdc, String version, String token) {
        // Query the vCloud Query API to search for a vAppTemplate matching the
        // options.templateName (command line option --templatename)
        QueryResultRecordsType queryResults = HttpUtils.getQueryResults(getBaseUrl(computeUrl),
                "type=vAppTemplate", version, token);

        List<JAXBElement<? extends QueryResultRecordType>> rslt = queryResults.getRecord();

        // We should have only one record with the name matching templateName
        if (null != rslt && rslt.size() > 0) {
            Collection<VAppTemplateType> templates = new ArrayList<VAppTemplateType>();

            for (JAXBElement<? extends QueryResultRecordType> record : rslt) {
                if (record.getDeclaredType().equals(QueryResultVAppTemplateRecordType.class)) {
                    QueryResultVAppTemplateRecordType template = (QueryResultVAppTemplateRecordType) record
                            .getValue();

                    // invoke the GET request to the template href to get the VAppTemplateType
                    HttpGet get = new HttpGet(template.getHref());
                    get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                            + version + ";charset=utf-8");
                    get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);
                    HttpResponse response = HttpUtils.httpInvoke(get);

                    // make sure the status is 200 OK
                    if (null != response
                            && response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                        // unmarshal the response entity into a VAppTemplateType
                        VAppTemplateType vat = HttpUtils.unmarshal(response.getEntity(),
                                VAppTemplateType.class);
                        templates.add(vat);
                    }
                }
            }

            return templates;
        }

        return null;
    }

    /**
     * This method will attempt to deploy (or undeploy) the provided vApp. The Boolean provided
     * parameter, deploy, if set to true attempts to deploy the vApp, otherwise false will attempt
     * to undeploy the vApp.
     *
     * @param vApp
     * @param deploy
     * @param version
     * @param token
     * @return
     */
    public static final TaskType deployUndeployVM(VAppType vApp, Boolean deploy, String version,
            String token) {
        String deployHref = null;

        // Search the list of links for the vApp rel="deploy" to get the correct Href
        for (LinkType link : vApp.getLink()) {
            if (link.getRel().equalsIgnoreCase("deploy")) {
                deployHref = link.getHref();
                break;
            }
        }

        // Only proceed if we found a valid deploy Href
        if (null != deployHref) {
            DeployVAppParamsType deployParams = new DeployVAppParamsType();
            deployParams.setPowerOn(deploy);

            // Create the XSD generated ObjectFactory factory class
            ObjectFactory obj = new ObjectFactory();

            // Create the DeployVAppParamsType from the ObjectFactory
            JAXBElement<DeployVAppParamsType> deployParamsType = obj
                    .createDeployVAppParams(deployParams);

            // Get the StringEntity marshaled instance
            StringEntity se = HttpUtils.marshal(DeployVAppParamsType.class, deployParamsType);

            HttpPost deployPost = new HttpPost(deployHref);
            deployPost.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                    + version + ";charset=utf-8");
            deployPost.setHeader(HttpHeaders.AUTHORIZATION, token);

            // Set the Content-Type header for the VM vApp template parameters
            se.setContentType("application/vnd.vmware.vcloud.deployVAppParams+xml");

            // Set it as the POST body
            deployPost.setEntity(se);

            // Invoke the HttoPost to initiate the VM creation process
            HttpResponse response = HttpUtils.httpInvoke(deployPost);

            // Make sure response status is 201 Created
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_ACCEPTED) {
                TaskType taskType = HttpUtils.unmarshal(response.getEntity(), TaskType.class);
                return taskType;
            }
        }

        return null;
    }

    /**
     * This method will retrieve the internal ip value for the passed in Vm using the Vms
     * NetworkConfigSection to obtain the ip.
     *
     * @param vm
     *            the VmType to obtain the internal ip from
     * @return the internal ip if found, otherwise "none" is returned
     */
    public static String getIpForVm(VmType vm, String version, String token) {
        HttpGet get = new HttpGet(vm.getHref());
        get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION + version
                + ";charset=utf-8");
        get.setHeader(HttpHeaders.AUTHORIZATION, token);

        // Request the NetworkConnection information for the VM to extract IP from it.
        // HttpResponse response = HttpUtils.httpInvoke(vcd.get(vm.getHref() + VM_NETWORK_URL,
        // options));

        HttpResponse response = HttpUtils.httpInvoke(get);

        // Make sure response is ok
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            NetworkConnectionSectionType nwsc = HttpUtils.unmarshal(response.getEntity(),
                    NetworkConnectionSectionType.class);
            if (null != nwsc) {
                String ip = nwsc.getNetworkConnection().get(0).getIpAddress();
                return ip;
            }
        }

        return null;
    }

    /**
     * Continually makes a GET request to the passed in Taks's Href with a 10 second delay between
     * each request to avoid sending too many requests to the API too fast.
     *
     * @param task
     *            the to wait on
     */
    public static void waitForTaskCompletion(TaskType task, String version, String token,
            int retryCount) {
        int retry = 0;

        TaskType statusTask = task;

        while ((!statusTask.getStatus().equalsIgnoreCase("success") && !statusTask.getStatus()
                .equalsIgnoreCase("error")) && retry++ < retryCount) {
            HttpGet get = new HttpGet(statusTask.getHref());
            get.setHeader(HttpHeaders.ACCEPT, SampleConstants.APPLICATION_PLUS_XML_VERSION
                    + version + ";charset=utf-8");
            get.setHeader(SampleConstants.VCD_AUTHORIZATION_HEADER, token);

            HttpResponse response = HttpUtils.httpInvoke(get);
            statusTask = HttpUtils.unmarshal(response.getEntity(), TaskType.class);

            if (null != statusTask && statusTask.getStatus().equalsIgnoreCase("running")) {
                System.out.print(".");
                try {
                    TimeUnit.SECONDS.sleep(10);
                } catch (InterruptedException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    }

    /**
     * Loops through the list of tasks provided by the tasksInProgressType parameter, calling the
     * waitForTaskCompletion method with each individual task.
     *
     * @param tasksInProgressType
     *            a collection of tasks to wait for
     */
    public static void waitForTasks(TasksInProgressType tasksInProgressType, String version,
            String token) {
        List<TaskType> tasks = tasksInProgressType.getTask();
        for (TaskType task : tasks) {
            if (null != task) {
                waitForTaskCompletion(task, version, token, 10);
            }
        }
    }

    /**
     * This is a private helper method called by other methods in this class to find the base URL of
     * a compute instance from whatever URL is provided in the calling method. This is needed
     * because the compute instance apiUrl returned often refers to the compute Org url, instead of
     * just the base url.
     *
     * @param url
     *            the compute instance apiUrl to try to find the compute instance base URL from
     * @return the compute instance base API URL
     */
    private static final String getBaseUrl(String url) {
        String baseUrl = url;

        int indx = url.indexOf("/compute/api");
        if (indx >= 0) {
            baseUrl = url.substring(0, indx + 12);
        }

        return baseUrl;
    }
}


Goats that greet you with an open mouth, waiting for food. Our Angora goats are lovely and soft to pat.
Want to amaze your friends with your animal knowledge?
All animals are quick to learn and we are constantly impressed by just how clever farm animals are. Scientific research is proving this for us.
We also supply other animals for special events. Contact us with your request.


text:
हिन्दी में बदलें: Change to Hindi
Apply for a U.S. Visa
Important Update:
Notice: As of August 17, the United States Embassy and Consulates in India will resume processing F, M, and certain J categories (alien physician, government visitor, international visitor, professor, research scholar, short-term research scholar, specialist, secondary school student and college/university student). The MRV fee is valid and may be used to schedule an interview appointment in the country where it was purchased within one year of the date of payment. If you have an urgent matter and need to travel immediately, please follow the guidance provided at https://www.ustraveldocs.com/in to request an emergency appointment.
Applicants for H1B, H2B, L1, and certain J categories and their dependents covered by Presidential Proclamation 10052 should request an expedited appointment only if you have reason to believe you may qualify for one of the exceptions listed in the Proclamation here.
The Presidential Proclamations suspending the entry of foreign nationals who were physically present within 14 days in certain countries prior to their entry or attempted entry into the United States (Presidential Proclamations 9984, 9992, 9993, 9996, and 10041), and the Presidential Proclamations suspending the entry of certain immigrants and nonimmigrants who present a risk to the U.S. labor market following the coronavirus outbreak (Presidential Proclamations 10014 and 10052) remain in effect. For details about these Presidential Proclamations click here.
_____________________________________________________________________________________________________________________________________
Notice: On Monday, June 22, President Trump signed a proclamation suspending entry into the United States of certain immigrants and nonimmigrants who present a risk to the U.S. labor market following the coronavirus outbreak. Effective immediately, the proclamation extends the suspension of entry for certain immigrants (Presidential Proclamation 10014) through December 31, 2020. The new restrictions imposed by the proclamation are effective at 12:01 a.m. EDT on Wednesday, June 24 and expire on December 31, 2020, unless continued by the President. U.S. citizens, lawful permanent residents, and aliens who are or were inside the United States or those holding valid nonimmigrant or immigrant visas on the effective date are not subject to the proclamation.
The proclamation suspends entry of nonimmigrants in the following categories: H-1B, H-2B, J (for aliens participating in an intern, trainee, teacher, camp counselor, au pair, or summer work travel program) and L, along with their spouses and children. No valid visas will be revoked under the proclamation. Presidential Proclamation 10014 and this proclamation provide exceptions to their restrictions for certain categories of immigrants and nonimmigrants. The full text of the presidential proclamations are available on the White House website
Update: On April 22, President Trump signed a proclamation suspending entry into the United States of certain immigrants who present risk to the U.S. labor market during the economic recovery following the COVID-19 outbreak.  The proclamation is effective at 11:59 p.m. EDT on April 23 and expires in 60 days, unless continued by the President. U.S. citizens, lawful permanent residents, and those holding valid immigrant visas on the effective date of the Proclamation, are not subject to the proclamation. No valid visas will be revoked under this Proclamation. Routine visas services have been suspended at U.S. posts worldwide, but as resources allow, Embassies and Consulates will continue to provide emergency and mission critical visa services for applicants who are not subject to this presidential proclamation. The full text of the presidential proclamation is available on the White House website
Urgent information for visa applicants regarding novel coronavirus:
Entry of foreign nationals who were physically present within the following list of countries within 14 days prior to their entry or attempted entry into the United States is suspended, per Presidential Proclamations 9984, 9992, 9993, 9996 and the subsequent proclamation issued May 24, 2020:
- The United Kingdom of Great Britain and Northern Ireland, excluding overseas territories outside of Europe;
- The Republic of Ireland;
- The 26 countries that comprise the Schengen Area (Austria, Belgium, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Hungary, Iceland, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Slovakia, Slovenia, Spain, Sweden, and Switzerland)
- The Islamic Republic of Iran;
- The People's Republic of China, not including the Special Administrative Regions of Hong Kong and Macau
There are certain exceptions to the suspension of entry, including exceptions for U.S. lawful permanent residents and certain family members of U.S. citizens and lawful permanent residents, among other exceptions listed in the proclamations. If you reside in, have traveled recently to, or intend to transit or travel to the above list of countries prior to your planned trip to the United States, we recommend you postpone your visa interview appointment until 14 days subsequent to your departure from the subject country(ries). Additionally, if you are experiencing flu-like symptoms, or believe you may have been exposed to the novel coronavirus, you are strongly encouraged to postpone your appointment by at least 14 days. There is no fee to change an appointment and visa application fees are valid for one year in the country where the fee was paid. For questions about rescheduling a pending consular appointment, please contact us at support-india@ustraveldocs.com for specific guidance.
_______________________________________________________________________________________________________________________________________
Notice: On January 31, 2020, a new Presidential Proclamation ("Presidential Proclamation 9983") was issued which added to the ongoing travel restrictions of P.P. 9645 by expanding them to the nationals of six additional countries. The restrictions only apply to immigrant visas and/or diversity visas, not nonimmigrant visas. More information is available at this link.
Log-in Create Account
Current Consular Exchange Rate : N/A
Current Rate Valid Through : N/A
For information on the visa interview process, see the videos below:
Hyderabad:
Welcome to the U.S. Visa Information Service for India. On this website you can find information about U.S. immigrant and nonimmigrant visas and the requirements to apply for each. You can also learn how to pay the required visa application fee, and book an interview appointment at the U.S. Embassy in Delhi and the U.S. Consulates General in Kolkata, Chennai, Mumbai and Hyderabad.
This is the official visa information website of the U.S. Mission in India.
Nonimmigrant Visa Information
Visa Fees
Bank and Payment Options
DS-160 Information
Appointment Wait Times
Photos and Fingerprints
Nonimmigrant Visa Application
Apply for a Visa
Pay My Visa Fee
Complete My DS-160
Offsite Collection Services
Change Document Delivery Address
Track My Passport
Apply for an Expedited Appointment
Application Refused Under INA
Immigrant Visa Information
Apply for a Immigrant Visa
K Visa Applicants
Check My Immigrant Visa Petition Status
Immigrant Visa Wait Times
Select Document Delivery Address
Special Visa Cases
Group Appointments
Diplomatic and Government Officials
Visas for Applicants Under 14 and over 80
U.S. Embassy and U.S. Consulates in India
Passport/Visa Collection Locations and Timings
Document Drop-Off Locations
Bank Locations
Visa Application Center Locations
Holidays and Closures
Rights and Protections
Security Regulations
usvisas.state.gov
The U.S. Department of State's Bureau of Consular Affairs website and Consular Embassy/Consulate websites are the definitive sources of visa information. Should there be discrepancies in content, the Consular Affairs website and Consular Embassy/Consulate websites take precedence.

redpajama_set_name: RedPajamaCommonCrawl


text:
Boys Night Out was a Canadian emo/post-hardcore band from Burlington, Ontario, Canada.

History
The band formed in 2001 when Connor Lovat-Fraser (lead vocalist, guitar) and Jeff Davis (lead guitar, piano) started collaborating on songs. They were joined by Dave Costa (vocals, bass), Chris Danner (drums), and Rob Pasalic (guitar, vocals) and, that year, independently released the four-song EP You Are My Canvas, which was influenced by fellow Burlington hardcore act Grade. Danner left the band and was replaced on drums by Ben Arseneau. The band signed to One Day Savior Recordings and, in 2002, released the EP Broken Bones and Bloody Kisses.

Interest in the band was immediate, and they were signed to New Jersey-based Ferret Records. Their debut album, Make Yourself Sick, was released in 2003. It was much lighter and pop-punk-oriented, but with the same heavy screaming and guitars found on earlier releases. The band toured heavily in support of the record with acts such as My Chemical Romance, Catch 22, Saves the Day, and as part of the 2005 Warped Tour.1 Boys Night Out also was featured in the 2005 Nintendo Fusion Tour with Fall Out Boy, Motion City Soundtrack, The Starting Line, and Panic! at the Disco.

The band's next album, 2005's Trainwreck, was a more subdued concept album based on a man's loss of sanity. Trainwreck opens with a doctor dictating his notes into a tape recorder. The album chronicles the arrest, trial, treatment and subsequent release of a man who, in a waking dream, murders his wife and then cuts off his hands so he can not kill again. During the recording of this album, Arseneau had left the band; Adam Kingsbury briefly stepped in before Brian Southall joined permanently. Keyboardist and singer Kara Dupuy had joined the band; her vocals act as the deceased wife's voice heard by the patient throughout the album. In support of the album, the band toured with Armor for Sleep, went to the UK with Less Than Jake and played the Waidestock! festival in Pennsylvania.

Also in 2006, the band released a limited-edition DVD, filmed at The Opera House in Toronto, called Dude, You Need To Stop Dancing - A Film About Boys Night Out. By this time, Dupuy had left, as had Pasalic, who formed the band Saint Alvia. He was replaced by guitarist Andy Lewis, formerly of The Fullblast. Later that year, Brian Southall left the band to join The Receiving End of Sirens. He was replaced by Ben Arseneau, the original drummer.

Boys Night Out released the EP Fifty Million People Can't Be Wrong in February 2007, then, in June, their third album,  Boys Night Out. The first single from the album was "Up with Me". They spent all of 2007 on the road, with Plain White T's, Scary Kids Scaring Kids and The Dear Hunter.
By the end of 2007, Lovat-Fraser was having trouble with his voice and, on their tour of eastern Canada, their van died and they had to cancel all of their concert dates. In 2016, Lovat-Fraser said that, at that time, the decision was made to fold the band. However, on the band's Facebook page, he posted "No breakup. No lost members. No getting dropped. We're just taking it easy for a while. Once we finished our contract with Ferret we opted to leave the label. We've been touring non-stop for the past few years and we're all feeling the wear and tear of constant life on the road. We started this band as a means of escape from everyday life...this is a return to that frame of mind. Easy like Sunday morning. It's pretty refreshing to just sit back and write songs without pressure from all sides telling you that there HAS to be a new record on day x. Before we release another full-length we're going to take our time to make sure that it's as wickedly radical and gnarly as it can possibly be. So, yeah...that's the gist of it. You won't be seeing us playing a whole lot of shows in the coming months - and we definitely won't be playing extended tours - but we're still alive and kickin'."

On October 24, 2009, the original line-up of Boys Night Out played The Opera House in Toronto. The band played both Broken Bones And Bloody Kisses and Make Yourself Sick in their entirety. One of the opening bands was Lovat-Fraser's new band, Crazy Diamond; another was his former band Love You to Death (aka The Pettit Project).

In 2009, Lovat-Fraser and Davis joined producer Scott Komer to form a band called Hard Calibers. The purpose of the band was to record a version of ESRT Page 14 by Justin Veatch of the Ivoryton Piano Factory. The song is featured on a compilation album of music by Veatch, an American musical prodigy who died of an accidental heroin overdose in 2008 at the age of 17.

As of early 2013 the band had yet to make an official announcement on its split, but Lovat-Fraser posted, "I'm sorry to say it, but I can't really see BNO getting back together for any shows. It seems that everyone is getting back together for reunion shows these days, but sadly, I don't think BNO will be counted among them." In March, he tweeted, "Just finished recording the new full-length. Sounds like shit.". Two days later the band tweeted: "There is no new album, but if we recorded one right now it would absolutely sound like shit.". The former band's Twitter page description also states they are no longer a band though they still used the account from time to time.

In 2016, the band released the EP, "Black Dogs". In 2017, the Patchwork Theatre of Niagara Falls created the play Trainwreck, based on the Boys Night Out album.

There is still significant interest in the band. In 2021, Forge Again Records released the Boys Night Out compilation album, Nevermind 2. In an interview, Lovat-Fraser commented that people are still getting Boys Night Out tattoos, and the band's Facebook page remains active as a fansite and marketing tool. Lovat-Fraser speaks of the band in the past tense and, in June 2021, commented on Facebook that a reunion is "unlikely".

Members

Final line-up
Connor Lovat-Fraser – lead vocals
Jeff Tarbender Davis – guitar, vocals
Dave Costa – bass, vocals
Ben Arseneau – drums
Andy Lewis – guitar

Former
Chris Danner – drums
Rob Pasalic – guitar, vocals
Adam Kingsbury – drums
Brian Southall – drums
Kara Dupuy – keyboards, vocals

Timeline

Discography
Albums
Make Yourself Sick (Ferret, 2003)
Trainwreck (Ferret, 2005)
Boys Night Out (Ferret, 2007)
Nevermind 2 (Forge Again Records, compilation, 2021)

EPs
You Are My Canvas (Independent, 2001)
Broken Bones and Bloody Kisses (One Day Savior, 2002) (Additionally released on vinyl, limited to 300 copies.)
Fifty Million People Can't Be Wrong (Ferret, 2007)
Black Dogs (Good Fight, 2016)

Demos
First Demo (Independent, 2000) - Early version of "Sketch Artist Composite" (3:27) and "Anatomy of the Journey" (2:21).

Music videos
"I Got Punched in the Nose for Sticking My Face in Other People's Business" (Make Yourself Sick, 2003)
"Medicating" (Trainwreck, 2005)
"Up With Me" (Boys Night Out, 2007)

DVD
Dude, You Need to Stop Dancing (Ferret, 2006)

Compilation inclusions
Dead and Dreaming: An Indie Tribute to Counting Crows (Victory, 2004) - "Walkaways"Skate & Surf Fest Vol. 1 (High Roller Studios, 2005) – "I Got Punched In The Nose For Sticking My Face In Other People's Business" (live video)Ferret Music 2004: Progression Through Aggression (Ferret, 2004) - "I Got Punched In The Nose For Sticking My Face In Other People's Business"Progression Through Aggression Vol. 2 (Ferret, 2005) – "Composing"Take Action! Volume 4 (Sub City Records, 2004) – "Medicating"Vans Warped Tour 2005'' (SideOneDummy Records, 2005) – "Composing"

See also
 List of bands from Canada

References

External links
 Official website
 Trash the Stage interview with Jeff Tarbender Davis
 REDEFINE Magazine interview with Jeff Davis
 Boys Night Out on MTV Overdrive

Canadian post-hardcore musical groups
Musical groups established in 2001
2001 establishments in Ontario
Ferret Music artists

redpajama_set_name: RedPajamaWikipedia


text:
Could a Community-Based Approach to Genetic Testing Help African Americans Reduce Risks of Chronic Kidney Disease?
Mount Sinai pilot study saw drops in blood pressure for hypertensive patients, supporting further trials and extensive community involvement
Specialty Reports
Endocrinology, Diabetes and Bone Disease
ENT - Head and Neck Surgery
The Friedman Brain Institute
Mount Sinai Heart
Obstetrics, Gynecology and Reproductive Science
Pulmonary, Critical Care and Sleep Medicine
Rehabilitation and Human Performance
Trachea Transplant
The Tisch Cancer Institute
Aspen Ideas Festival
2019 Speaker Bios
2018 Aspen Ideas Festival
Brain Surgery Simulator
da Vinci Robotic Surgery
Mount Sinai Podcasts
Road to Resilience
Bright Days, Dark Nights
Talking Resilience With a Harlem Minister
The Cancer Dancer
The Resilience Paradox
Polymath of the Soul
Ketamine: From Club to Clinic
The Fierce Side of Self-Compassion
Beyond Sleep Hygiene
Wise Up
Toxic Apocalypse
A WEIRDo's Guide to Exercise
The Man Box
A Shot in the Arm
Enough with the Mindfulness
PTSD, Meet MDMA
Year of the Pandemic
Theater of War
Workshopping Resilience
Cancer is Me
The Indestructible Judith Hunt
The Price of Perfection
Our Better Angels
Three Generations of Autism Advocates
I Am Not My Hair
Coping After a Natural Disaster
Unmaking Painful Memories
Rewrite Your Script
The Recharge Room
Emily & Kumail on Staying In
The Givers
The Edge of the Unknown
Pandemic-Proof Parenting Tips
Our Finest Hour
How to Stay Sane While Staying Home
Calm Through Chaos
The Only Way Out is Through
The Body Heals the Mind
Modeling Courage
"I Made a Decision to Live"
Facing Climate Change
The Gospel of Curtis
10 Resilience Insights from 2019
My Experiments With Truth
The Stuff With My Mom
Kids Who Can Deal
Your Brain on Fear
The Story of Bed 25
A Scientist's Guide to Optimism
Unknown Exposure
The Comedian and the Brain Tumor
Measuring the Mental Toll of Child Separation
Forget Kumbaya: The Art of Self-Care
Dr. Krieger's Three Resilience Tips
Somebody to Lean On
The Long Arm of Childhood Trauma
Resilience Stories (Live!)
The Mystery Virus
The Power of Optimism
Thriving After a Devastating Loss
Managing Stress, Anxiety and Fear
A Resilient Journey from Trauma to Success
Faith, Spirituality and Mindfulness
Building a Resilient Family
The Prescription to My Recovery
An Unexpected Trauma
Real, Smart People
Miriam: The Dancing Scientist
Bevin: The Problem Solver
Jess: Love Thy Neighbor
Joshua: The Sculptor
Mary: Autopsies Save Lives
Yasmin: The Barrier Breaker
Adolfo: The Virus Hunter
Mount Sinai Films
The Surge At Mount Sinai
Born to Be
In 2010, scientists discovered that African Americans who are born with certain variants of a gene called apolipoprotein L1 (APOL1) have a higher-than-average risk for experiencing chronic kidney disease (CKD). Now, in a new study of African Americans with hypertension, researchers at the Icahn School of Medicine at Mount Sinai find that a community-based approach to reporting APOL1 genetic test results back to individuals may have beneficial effects.
These findings were part of a unique clinical trial in which volunteers from all walks of life in the patient community worked on every aspect of the study, including enrolling patients, administering tests, and delivering genetic test results. Preliminary results published in JAMA Network Open showed that the patients reacted very positively to the experience and had lower blood pressure readings while undergoing more kidney function tests. This was especially true for those who received positive genetic test results for the APOL1 high-risk variants, suggesting this approach could be tested in other communities.
"These results suggest we are headed in the right direction. Genetic testing is a particularly sensitive issue for the African American community. African Americans have a higher risk of kidney disease development and progression. While race is a social construct, and this disparity is multifactorial and structural, ancestry has genetic components," said Girish N. Nadkarni, MD, MPH, the Irene and Dr. Arthur M. Fishberg Professor of Medicine at Icahn Mount Sinai and the lead author of the study. "For many years, researchers have wondered whether reporting APOL1 genetic test results would help improve clinical management. This is the first pragmatic randomized clinical trial to test this out."
Development of the trial, called the Genetic testing to Understand and Address Renal Disease Disparities (GUARDD) study, began in 2010 with meetings between Mount Sinai researchers and members of the Genomics Stakeholder Board, which included local patients, clinicians, advocates, and health system leaders.
"Community stakeholders play a key role in the GUARDD Study, which includes offering critical input and feedback regarding genetic testing, conditions like CKD, and our concerns regarding health disparities." said Rev. Mimsie Robinson, PhD, associate pastor of Bethel Gospel Assembly, New York, N.Y., and a member of the stakeholder board. "Our community is often the last to benefit from advances in science and medicine. We're hopeful that this study signifies a change in that trend so that people of color will not have to be skeptical of the health care system. That's why it is so important for us to be involved in every aspect of this trial and others like it in the future."
Out of those meetings came several innovations, including tailor-made messages; a rapid electronic system for delivering genetic test results to primary care physicians; and the deployment of layperson volunteers from the community, or "coordinators," to recruit patients, collect data, and report test results.
"Thanks to the tireless work of our Stakeholder Board and other community members we were able to plan a trial that was not only sensitive to the patient's particular needs but rooted in common-sense solutions," said Carol R. Horowitz, MD, MPH, Dean for Gender Equity in Science and Medicine at Icahn Mount Sinai and the senior author of the study.
The trial studied 2,050 adult African Americans who had high blood pressure but had not been diagnosed with chronic kidney disease. Chronic kidney disease is commonly associated with high blood pressure. Moreover, Blacks who have high blood pressure are five times more likely than Whites to experience end-stage renal disease, a more severe form of kidney disease.
Each patient was randomly selected to get tested for the APOL1 variants, which are almost exclusively found in people of sub-Saharan African descent. Patients were randomized to either receive their results immediately or 12 months later. In addition, the coordinators checked each patient's blood pressure and administered a survey that was designed to assess a patient's knowledge and attitudes towards health. Follow-up sessions happened three and 12 months afterwards.
Coordinators relayed negative genetic test results by phone and positive results in person. Meanwhile, test results were also automatically sent to the patients' primary care physicians.
Overall, the results suggested the trial had a positive impact on patients' lives.
Three months after enrollment, the patients' average systolic blood pressure levels dropped slightly. This happened regardless of the genetic test results. Nevertheless, patients who tested positive for APOL1 risk variants had a greater drop in blood pressure—from 137 to 131 mmHg—than those who tested negative—134 to 131 mmHg—or those who did not receive a genetic test—133 to 131 mmHg.
Patients also underwent an increased number of kidney-function urine tests 12 months after enrollment. Again, this happened regardless of the genetic test results. However, these results showed that there was only a difference in the rise seen between patients who knew they had APOL1 risk vs. controls.
"These two measurements—the change in blood pressure and increased kidney function tests—act as hallmarks for detecting beneficial lifestyle changes," said Dr. Nadkarni. "The results suggest that the trial clearly influenced those who received positive results and may have had some positive effects on the other patients."
The survey results provided further support. About 95 percent of the patients felt that they had enough information about the genetic testing; that the information was easy to understand; and that they would take the test again. Moreover, the patients who received a positive test said that they were much more likely to make positive lifestyle changes—such as adopting better eating and exercise habits—and to change their blood pressure medication taking habits than those who received negative results.
"The patients had an overwhelmingly positive experience. The results support the idea that community-engaged approaches to medicine may play a key role in both overcoming health disparities and practicing personalized medicine," said Dr. Horowitz. "In the future, we hope to test whether this model works in other communities and for other health challenges."
The next phase of the trial, called GUARDD-US, will be conducted by researchers across the United States. It will enroll more than twice the number of patients as the first phase and include those with existing chronic kidney disease.
This work was supported by the National Institutes of Health (HG007278, TR000067, DK127139, HL155915). A description of the GUARDD trial can be found at clinictrials.gov (NCT02234063)
Nadkarni G.; The Effects of Testing and Disclosing Ancestry-Specific Genetic Risk for Kidney Failure to Patients and Health Providers: A Randomized Clinical Trial, JAMA Open Network, March 4, 2022, DOI: 10.1001/jamanetworkopen.2022.1048
Tags: Chronic Kidney Disease, Hypertension, Icahn School of Medicine at Mount Sinai, Kidney Diseases, Medical Genetics and Genomics, Mount Sinai Health System, Patient Care, Carol R Horowitz, MD, MPH, Girish N Nadkarni, MD, Research
About the Mount Sinai Health System
Mount Sinai Health System is one of the largest academic medical systems in the New York metro area, with more than 43,000 employees working across eight hospitals, over 400 outpatient practices, nearly 300 labs, a school of nursing, and a leading school of medicine and graduate education. Mount Sinai advances health for all people, everywhere, by taking on the most complex health care challenges of our time — discovering and applying new scientific learning and knowledge; developing safer, more effective treatments; educating the next generation of medical leaders and innovators; and supporting local communities by delivering high-quality care to all who need it.
Through the integration of its hospitals, labs, and schools, Mount Sinai offers comprehensive health care solutions from birth through geriatrics, leveraging innovative approaches such as artificial intelligence and informatics while keeping patients' medical and emotional needs at the center of all treatment. The Health System includes approximately 7,300 primary and specialty care physicians; 13 joint-venture outpatient surgery centers throughout the five boroughs of New York City, Westchester, Long Island, and Florida; and more than 30 affiliated community health centers. We are consistently ranked by U.S. News & World Report's Best Hospitals, receiving high "Honor Roll" status, and are highly ranked: No. 1 in Geriatrics and top 20 in Cardiology/Heart Surgery, Diabetes/Endocrinology, Gastroenterology/GI Surgery, Neurology/Neurosurgery, Orthopedics, Pulmonology/Lung Surgery, Rehabilitation, and Urology. New York Eye and Ear Infirmary of Mount Sinai is ranked No. 12 in Ophthalmology. U.S. News & World Report's "Best Children's Hospitals" ranks Mount Sinai Kravis Children's Hospital among the country's best in several pediatric specialties. The Icahn School of Medicine at Mount Sinai is one of three medical schools that have earned distinction by multiple indicators: It is consistently ranked in the top 20 by U.S. News & World Report's "Best Medical Schools," aligned with a U.S. News & World Report "Honor Roll" Hospital, and top 20 in the nation for National Institutes of Health funding and top 5 in the nation for numerous basic and clinical research areas. Newsweek's "The World's Best Smart Hospitals" ranks The Mount Sinai Hospital as No. 1 in New York and in the top five globally, and Mount Sinai Morningside in the top 20 globally.
For more information, visit https://www.mountsinai.org or find Mount Sinai on Facebook, Twitter and YouTube.
Carol R Horowitz, MD, MPH
Girish N Nadkarni, MD
NewsMedia@mssm.edu
If you are a member of the media and are on deadline, please call the Press Office or page the press officer on call.
View All Media Contacts
Mount Sinai Launches Large-Scale Genetic Sequencing Project with the Regeneron Genetics Center
Aug 12, 2022 View All Press Releases
"Researchers Discover That Kidney Disease Gene Affects More Populations Than Previously Thought"
Dec 28, 2018 View All News
Researchers Discover That Kidney Disease Gene Affects More Populations Than Previously Thought
Dec 27, 2018 View All Press Releases


text:
«The Unknown Soldier» (en español: «El Soldado Desconocido») es una canción del grupo estadounidense The Doors, que fue incluida en su álbum de 1968 Waiting for the Sun.
Se dice que esta canción es la reacción de Jim Morrison ante la Guerra de Vietnam, que el no vería terminada, ya que murió el 3 de julio de 1971, y la Guerra de Vietnam terminó el 30 de abril de 1975.

Clip musical
Es destacable en el video de esta canción, la simulación de un fusilamiento: Jim Morrison como el que será fusilado, Robby Krieger como el fusilador, haciendo de su guitarra un fusil, Ray Manzarek como testigo, dejando de tocar el teclado y levantando su mano, y finalmente, John Densmore tocando la batería que se toca en todo fusilamiento.

Posicionamiento

Archivos Multimedia
 The Unknown Soldier

Referencias

Sencillos de 1968
Canciones de The Doors
Canciones psicodélicas
Canciones en inglés


I voted for Barack Obama in the California Primary, since Kucinich and Edwards dropped out of the race. I think Obama has the best chance of getting the Republicans out of the White House. I don't think the environment can take four more years of Republican hostility.


If you would like to bring a birthday cake to the restaurant you are very welcome – please mention when you book your table. A 'cakeage' charge of £1 per person will be added to your bill if you choose to have your cake instead of desserts.
A discretionary service charge of 10% will be added to tables of 6 or more.
Please refer to our deposit policy here.


It was the development of the Charter which had brought human rights within the scope of positive international law. That being so, it could not be said that the Declaration was a purely theoretical instrument. It was only a potential instrument; but that fact in no way detracted from the binding force of the provisions of the Charter.
(credit for 1947 U.N. photo of Cassin, right, with Roosevelt) Winner of the 1968 Nobel Peace Prize, Cassin is interred in the Panthéon in Paris.


Dennis Phillips has been writing poetry since before his first publication in 1985 and he remains an active poetic voice today. He is a Professor of Humanities and Science at the Art Center College of Design in Pasadena and on the faculty of the Graduate Writing Program at Otis College of Art and Design.
This publication is designed, printed, and bound by Carolee Campbell at the Ninja Press with assistance in the binding by Karen Skove Chu. It is printed on handmade paper from Moulin du Verger in Puymoyen, France. The cover is laminated Kyoseischi made by hand at the Fuji Paper Mills Cooperative in Tokushima Prefecture, Japan. The endpapers are kozo with mango leaves from Thailand. There are seventy-nine numbered copies and eight lettered copies hors commerce.


text:
1 Change made by Mental Health Act 2007
Change made by Mental Health Act 2007
Mental disorder no longer split into separate classifications 3/11/08
TRANSITIONAL AND SAVING PROVISIONS
1.	Where any period of time specified in an enactment repealed by this Act is current at the commencement of this Act, this Act shall have effect as if the corresponding provision of this Act had been in force when that period began to run.
2.	Nothing in this Act shall affect the interpretation of any provision of the Mental Health Act 1959 which is not repealed by this Act and accordingly sections 1 and 145(1) of this Act shall apply to any such provision as if it were contained in this Act.
3.	Where, apart from this paragraph, anything done under or for the purposes of any enactment which is repealed by this Act would cease to have effect by virtue of that repeal it shall have effect as if it had been done under or for the purposes of the corresponding provision of this Act.
4. [...][1]
6.	This Act shall apply in relation to any authority for the detention or guardianship of a person who was liable to be detained or subject to guardianship under the Mental Health Act 1959 immediately before 30th September 1983 as if the provisions of this Act which derive from provisions amended by section 1 or 2 of the Mental Health (Amendment) Act 1982 and the amendments in Schedule 3 to that Act which are consequential on those sections were included in this Act in the form the provisions from which they derive would take if those amendments were disregarded but this provision shall not apply to any renewal of that authority on or after that date.
9.—(1) [...][1]
(2)	Section 20(2) of this Act shall have effect in relation to any authority renewed before 1st October 1983 with the substitution for the words "six months" of the words "one year" and for the words "one year" in both places they occur of the words "two years".
(3) [...][1]
10. [...][1]
15.	The provisions of this Act which derive from sections 24 to 27 of the Mental Health (Amendment) Act 1982 shall have effect in relation to a transfer direction given before 30th September 1983 as well as in relation to one given later, but where, apart from this paragraph, a transfer direction given before 30th September 1983 would by virtue of the words in section 50(3) of this Act which are derived from section 24(3) of the Mental Health (Amendment) Act 1982 have ceased to have effect before that date it shall cease to have effect on that date.
16.	The words in section 42(1) of this Act which derive from the amendment of section 66(1) of the Mental Health Act 1959 by section 28(1) of the Mental Health (Amendment) Act 1982 and the provisions of this Act which derive from section 28(3) of and Schedule 1 to that Act have effect in relation to a restriction order or, as the case may be, a restriction direction made or given before 30th September 1983 as well as in relation to one made or given later, but—
(a)	any reference to a tribunal under section 66(6) of the said Act of 1959 in respect of a patient shall be treated for the purposes of subsections (1) and (2) of section 77 of this Act in their application to sections 70 and 75(2) of this Act as an application made by him; and
(b)	sections 71(5) and 75(1)(a) of this Act do not apply where the period in question has expired before 30th September 1983.
17.	Section 91(2) of this Act shall not apply in relation to a patient removed from England and Wales before 30th September 1983.
20.	The repeal by the Mental Health (Amendment) Act 1982 of section 77 of the Mental Health Act 1959 does not affect subsection (4) of that section in its application to a transfer direction given before 30th September 1983, but after the coming into force of this Act that subsection shall have effect for that purpose as if for the references to subsection (6) of section 60, Part IV of that Act and the provisions of that Act there were substituted respectively references to section 37(8), Part II and the provisions of this Act.
[21. Any direction to which section 71(4) of the Mental Health Act 1959 applied immediately before the commencement of this Act shall have the same effect as a hospital order together with a restriction order, made without limitation of time.][2]
23.	For any reference in any enactment, instrument, deed or other document to a receiver under Part VIII of the Mental Health Act 1959 there shall be substituted a reference to a receiver under Part VII of this Act.
24.	Nothing in this Act shall affect the operation of the proviso to section 107(5) of the Mental Health Act 1959 in relation to a charge created before the commencement of this Act under that section.
25.	Nothing in this Act shall affect the operation of subsection (6) of section 112 of the Mental Health Act 1959 in relation to a charge created before the commencement of this Act by virtue of subsection (5) of that section.
27.	Nothing in this Act shall affect the operation of section 116 of the Mental Health Act 1959 in relation to orders made, directions or authorities given or other instruments issued before the commencement of this Act.
28.	References to applications, recommendations, reports and other documents in section 126 of this Act shall include those to which section 125 of the Mental Health Act 1959 applied immediately before the commencement of this Act and references in section 139 of this Act to the acts to which that section applies shall include those to which section 141 of the said Act of 1959 applied at that time.
29.	The repeal by the Mental Health Act 1959 of the Mental Treatment Act 1930 shall not affect any amendment effected by section 20 of that Act in any enactment not repealed by the said Act of 1959.
30.	The repeal by the Mental Health Act 1959 of the provisions of the Lunacy Act 1890 and of the Mental Deficiency Act 1913 relating to the superannuation of officers or employees shall not affect any arrangements for the payment of allowances or other benefits made in accordance with those provisions and in force on 1st November 1960.
31.—(1) Any patient who immediately before the commencement of this Act was liable to be detained in a hospital or subject to guardianship by virtue of paragraph 9 of Schedule 6 to the Mental Health Act 1959 shall unless previously discharged continue to be so liable for the remainder of the period of his treatment current on 1st November 1960.
(2)	The patient may before the expiration of the period of treatment referred to in sub-paragraph (1) above apply to a Mental Health Review Tribunal.
32.	Any patient who immediately before the commencement of this Act was liable to be detained or subject to guardianship by virtue of an authority which had been renewed under paragraph 11 of Schedule 6 to the Mental Health Act 1959 shall unless previously discharged continue to be so liable during the period for which that authority was so renewed.
33.—(1) This paragraph applies to patients who at the commencement of this Act are liable to be detained or subject to guardianship by virtue of paragraph 31 or 32 above.
(2)	Authority for the detention or guardianship of the patient may on the expiration of the relevant period, unless the patient has previously been discharged, be renewed for a further period of two years.
(3)	Sections 20(3) to (10) and 66(1)(f) of this Act shall apply in relation to the renewal of authority for the detention or guardianship of a patient under this paragraph as they apply in relation to the renewal of authority for the detention or guardianship of the patient under section 20(2).
(4)	In this paragraph "the relevant period" means—
(a)	in relation to a patient liable to be detained or subject to guardianship by virtue of the said paragraph 31, the period of his treatment referred to in that paragraph;
(b)	in relation to a patient detained by virtue of the said paragraph 32, the period for which authority for the detention or guardianship of the patient has been renewed under paragraph 11 of Schedule 6 to the 1959 Act;
(c)	in relation to a patient the authority for whose detention or guardianship has previously been renewed under this paragraph, the latest period for which it has been so renewed.
34.—(1) Any patient who is liable to be detained in a hospital or subject to guardianship by virtue of paragraph 31 above shall (subject to the exceptions and modifications specified in the following provisions of this paragraph) be treated as if he had been admitted to the hospital in pursuance of an application for admission for treatment under Part II of this Act or had been received into guardianship in pursuance of a guardianship application under the said Part II and had been so admitted or received as a patient suffering from the form or forms of mental disorder recorded under paragraph 7 of Schedule 6 to the Mental Health Act 1959 or, if a different form or forms have been specified in a report under section 38 of that Act as applied by that paragraph, the form or forms so specified.
(2)	Section 20 of this Act shall not apply in relation to the patient, but the provisions of paragraph 33 above shall apply instead.
(3)	Any patient to whom paragraph 9(3) of Schedule 6 to the Mental Health Act 1959 applied at the commencement of this Act who fell within paragraph (b) of that paragraph shall cease to be liable to be detained on attaining the age of 25 years unless, during the period of two months ending on the date when he attains that age, the responsible medical officer records his opinion under the following provisions of this Schedule that the patient is unfit for discharge.
(4)	If the patient was immediately before 1st November 1960 liable to be detained by virtue of section 6, 8(1) or 9 of the Mental Deficiency Act 1913, the power of discharging him under section 23 of this Act shall not be exercisable by his nearest relative, but his nearest relative may make one application in respect of him to [the appropriate tribunal][3] in any period of 12 months.
35.—(1) The responsible medical officer may record for the purposes of paragraph 34(3) above his opinion that a patient detained in a hospital is unfit for discharge if it appears to the responsible medical officer—
(a)	that if that patient were released from the hospital he would be likely to act in a manner dangerous to other persons or to himself, or would be likely to resort to criminal activities; or
(b)	that that patient is incapable of caring for himself and that there is no suitable hospital or other establishment into which he can be admitted and where he would be likely to remain voluntarily;
and where the responsible medical officer records his opinion as aforesaid he shall also record the grounds for his opinion.
(2)	Where the responsible medical officer records his opinion under this paragraph in respect of a patient, the managers of the hospital or other persons in charge of the establishment where he is for the time being detained or liable to be detained shall cause the patient to be informed, and the patient may, at any time before the expiration of the period of 28 days beginning with the date on which he is so informed, apply to a Mental Health Review Tribunal.
(3)	On any application under sub-paragraph (2) above the tribunal shall, if satisfied that none of the conditions set out in paragraphs (a) and (b) of sub-paragraph (1) above are fulfilled, direct that the patient be discharged, and subsection (1) of section 72 of this Act shall have effect in relation to the application as if paragraph (b) of that subsection were omitted.
36.	Any person who immediately before the commencement of this Act was deemed to have been named as the guardian of any patient under paragraph 14 of Schedule 6 to the Mental Health Act 1959 shall be deemed for the purposes of this Act to have been named as the guardian of the patient in an application for his reception into guardianship under Part II of this Act accepted on that person's behalf by the relevant local authority.
37.—(1) This paragraph applies to patients who immediately before the commencement of this Act were transferred patients within the meaning of paragraph 15 of Schedule 6 to the Mental Health Act 1959.
(2)	A transferred patient who immediately before the commencement of this Act was by virtue of sub-paragraph (2) of that paragraph treated for the purposes of that Act as if he were liable to be detained in a hospital in pursuance of a direction under section 71 of that Act shall be treated as if he were so liable in pursuance of a [hospital order together with a restriction order, made without limitation of time].[2]
(3)	A transferred patient who immediately before the commencement of this Act was by virtue of sub-paragraph (3) of that paragraph treated for the purposes of that Act as if he were liable to be detained in a hospital by virtue of a transfer direction under section 72 of that Act and as if a direction restricting his discharge had been given under section 74 of that Act shall be treated as if he were so liable by virtue of a transfer direction under section 47 of this Act and as if a restriction direction had been given under section 49 of this Act.
(4)	Section 84 of this Act shall apply to a transferred patient who was treated by virtue of sub-paragraph (5) of that paragraph immediately before the commencement of this Act as if he had been removed to a hospital under section 89 of that Act as if he had been so removed under the said section 84.
(5)	Any person to whom sub-paragraph (6) of that paragraph applied immediately before the commencement of this Act shall be treated for the purposes of this Act as if he were liable to be detained in a hospital in pursuance of a transfer direction given under section 48 of this Act and as if a restriction direction had been given under section 49 of this Act [...][4].
38.	Any patient who immediately before the commencement of this Act was treated by virtue of sub-paragraph (1) of paragraph 16 of Schedule 6 to the Mental Health Act 1959 as if he had been conditionally discharged under section 66 of that Act shall be treated as if he had been conditionally discharged under section 42 of this Act and any such direction as is mentioned in paragraph (b) of that sub-paragraph shall be treated as if it had been given under the said section 42.
39.	[...][4]
40.	A person who immediately before the commencement of this Act was detained by virtue of paragraph 19 of Schedule 6 to the Mental Health Act 1959 may continue to be detained until the expiration of the period of his treatment current on 1st November 1960 or until he becomes liable to be detained or subject to guardianship under this Act, whichever occurs first, and may be so detained in any place in which he might have been detained under that paragraph.
41.	Any opinion recorded by the responsible medical officer under the foregoing provisions of this Schedule shall be recorded in such form as may be prescribed by regulations made by the Secretary of State.
42.—(1) In the foregoing provisions of this Schedule—
(a)	references to the period of treatment of a patient that was current on 1st November 1960 are to the period for which he would have been liable to be detained or subject to guardianship by virtue of any enactment repealed or excluded by the Mental Health Act 1959, or any enactment repealed or replaced by any such enactment as aforesaid, being a period which began but did not expire before that date; and
(b)	"the responsible medical officer" means—
(i)	in relation to a patient subject to guardianship, the medical officer authorised by the local social services authority to act (either generally or in any particular case or for any particular purpose) as the responsible medical officer;
(ii)	in relation to any other class of patient, the registered medical practitioner in charge of the treatment of the patient.
(2)	Subsection (2) of section 34 of this Act shall apply for the purposes of the foregoing provisions of this Schedule as it applies for the purposes of Part II of this Act.
(3)	The sentence or other period of detention of a person who was liable to be detained or subject to guardianship immediately before 1st November 1960 by virtue of an order under section 9 of the Mental Deficiency Act 1913 shall be treated for the purposes of the foregoing provisions of this Schedule as expiring at the end of the period for which that person would have been liable to be detained in a prison or other institution if the order had not been made.
(4)	For the purposes of the foregoing provisions of this Schedule an order sending a person to an institution or placing a person under guardianship made before 9th March 1956 on a petition presented under the Mental Deficiency Act 1913 shall be deemed to be valid if it was so deemed immediately before the commencement of this Act by virtue of section 148(2) of the Mental Health Act 1959.
43-45. [...][5]
↑ 1.00 1.01 1.02 1.03 1.04 1.05 1.06 1.07 1.08 1.09 1.10 1.11 1.12 1.13 1.14 Statute Law (Repeals) Act 2004
↑ 2.0 2.1 Domestic Violence Crime and Victims Act 2004
↑ Transfer of Tribunal Functions Order 2008 wef 3/11/08
↑ 4.0 4.1 Mental Health Act 2007 s55 & sch 11; Mental Health Act 2007 (Commencement No. 7 and Transitional Provisions) Order 2008 wef 3/11/08
↑ MCA 2005 s67 & MCA 2005 sch 7
↑ Health Authorities Act 1995


text:
Who Watches the Watchmen?: LAPD Still Ticketing for No Bike License
Image via Alex Thompson at WestSide BikeSIDE!
This Saturday, Crank Mob, possibly the largest of Los Angeles' group bike rides, had a more than interesting evening even by Crank Mob standards. The Mob experienced a constant police presence including a road block and the detainment of several cyclists at the Ralph's at 3rd and La Brea.
After the police were summoned, perhaps because of a shoplifting incident which saw riders catch and turn in the alleged thief; there are many many reports that the police started harassing random cyclists in an attempt to control the mob. Apparently, they didn't succeed as later in the evening the Hollywood District of the LAPD referred to them as a "herd of wild buffalo."
A big part of the LAPD's control strategy was similar to those seen across the country. Grab a small group of cyclists and write up bogus citations. Unable to effectively arrest those that were breaking the law, after all the Hollywood District didn't issue citations to the "herd of wild buffalo," the LAPD goes for a "guilt by association" strategy that leads to handcuffing and searching a pedestrian for crossing against a flashing red hand and more distressingly ticketing for a violation of LAMC 26.01 b "NO (sic) licence (sic) on Bike (sic)." Handcuffing someone for not having a bike license? For crossing the street against a flashing red hand? What country am I living in?
What's really weird is I would have sworn that I read a report by LAPD Police Chief William Bratton that called for the ending of the program. Even worse, I then remember the City Council approving Bratton's plan and suspending the city's program. It's a good thing I write these things down, or I would assume I were going crazy. Is the City Council just an advisory group these days?
No matter one's feelings on group rides, one should be able to agree that everyone deserves equal protection under the law. On Saturday night, the LAPD didn't just thumb its nose at the LAPD Police Chief, and the City Council…they also took the opportunity to thumb their nose at the Constitution.
Filed Under: Bicycle Licensing, Traffic Enforcement
Newest Group of Ridazz: The LAPD
For a full size version of the flyer, click here. Traditionally, small groups of bike riders from around the city gather together on the fourth Friday of the month and head to the Wilshire/Western Red Line Station to gather for Los Angeles Critical Mass. This month, following what Streetsblog is calling the "Critical Mass Attack," […]
Group Rides and the LAPD, Still Working It Out
While the relationship between the Los Angeles Police Department and large group bike rides, such as Critical Mass or CRANK Mob, have improved by leaps and bounds over the summer; reactions to last Saturday's CRANK Mob ride, aka CRANKMAS III, shows there is still some work to do. Readers may remember that after an ugly […]
Bike Week Day 3: 2nd Annual Downtown Bike Ride
By Carter Rubin | May 19, 2010
This group has just passed City Hall on the right with Caltrans/LADOT coming up on the left. Photo: Carter Rubin/Flickr Always wish you could participate in Critical Mass, Midnight Ridazz, or Crank Mob, but are more of a morning person? Then today's Downtown LA bike ride was for you. At 8:30 this morning, roughly 100 […]
Cyclists Pedal to Police Commission and Inspector General to Demand Equal Rights
By Damien Newton | Apr 28, 2009
Andres Tena, the cyclist hospitalized after being run down from behind by a hummer last week, testifies at the LA Police Commission Hearing as Chicken Leather films. For as long as I've been in Los Angeles, there has been a side bar on the Midnight Ridazz official website which reads: RIDAZZ SALUTE LAPD The Midnight […]
LA Magazine Takes a Glance at Bike Culture
By Damien Newton | Dec 18, 2008
Photo by Dustin Snipes for LA Magazine Los Angeles Magazine takes a long hard look at our burgeoning and growing bike scene. Writer Matthew Segal rides the rides and talks to the people who make up the menagerie that is biking in Los Angeles. The main piece, Spokespeople, talks to many people that any regular […]
Bikeside Speaks (Times Seven)
The unmistakable style of Alex Thompson Los Angeles has been home to many groups pushing for transportation reform, and one of the new groups that's been making a big impact has been Bikeside. The group has been a leader in highlighting some personal stories as well as data mapping crash history from LAPD maps. They've […]


MICHELLE LANG is an actress, producer and writer who is most known for her role as Linda Lee, Bruce Lee's wife, in the 50 episode television series "The Legend of Bruce Lee." A black belt in Wushu, Michelle traveled across China and the U.S. shooting the series and trained with the stunt crew, which led her to work on "Deadliest Warriors" among other shows as a stunt coordinator.
A graduate of Northwestern University's acting program with a concentration in business, Michelle is a talented actress and an incredibly savvy producer of several award-winning feature films. In 2013, Michelle produced and starred in Lost on Purpose, written and directed by the Nelms Brothers, which co-starred Jane Kaczmarek, C. Thomas Howell and James Lafferty. The movie, a drama about the challenges and the beauty of living in a small dairy farming community, won multiple film festival awards across the U.S. including Best Film, Best Directors, and Best Actress for Kaczmarek. Following the success of Lost on Purpose, Michelle played the title role of "Nastenka" in Strangely in Love, alongside newcomer Jemuel Morris. The film, which Michelle also produced, was directed by Sundance Award Winning Filmmaker Amin Matalqa, and is a whimsical take on Dostoevsky's classic tale White Nights. The film also starred Amanda Plummer (Pulp Fiction), Sean Carrigan ("Young and Restless"). In 2015, Michelle played a small role in Waffle Street, which re-teamed her with Lost on Purpose filmmakers Eshom Nelms and Ian Nelms in addition to actors James Lafferty and Dale Dickey. The film, which also co-starred Danny Glover, is an adaptation of the James Adams memoir of the same name, which follows a former billion dollar hedge fund manager turned waffle house waiter on his journey of redemption through an unlikely friendship. The film received several Best Feature awards at nationwide film festivals and was a top reviewed performer on Netflix.
On Small Town Crime, Michelle pulled double duty. While supervising the production, Michelle also acted alongside Academy Award® Nominee John Hawkes as "Tina," an ex-girlfriend of Hawkes' character. In addition to Hawkes, Small Town Crime also stars Golden Globe® Nominee Anthony Anderson, Academy Award® Winner Octavia Spencer, Academy Award ®Nominee Robert Forster and a deep bench of supporting talent including Clifton Collins, Jr., Michael Vartan, James Lafferty, Caity Lotz and Dale Dickey. Small Town Crime was showcased on several "Must See" and "Best of" Lists including the New York Times, Rolling Stone, Fandango, and IndieWire for its World Premiere at the 2017 SXSW Film Festival. The film also received rave reviews from Variety, Ain't It Cool News, and The Hollywood Reporter and was released by Saban Films in 2017.
RBL Studios is currently developing several projects including and an adaptation of the novel Saving Angelfish a children's film Goober Jump and a chilling feature film, The Caul.
Michelle, who continues to study Chinese and martial arts, lives in Los Angeles with her husband and two kids.


Dimensions: 5.875" x 5.875" x .375"
Bison™ Tuscan Porcelain Tile, 5.875" x 5.875" x .375", Dura Satin. These tiles have lovely veins and variations that add an olde world effect to your photos. Will not fit Conde Wrought Iron frames.
Production for this tile requires the use of a green rubber pad, 1/8" thick and at least an inch larger than the tile.
Dimensions: 3.875" x 3.875" x .375"
Bison™ Tuscan Porcelain Sublimation Tile, 3.875" x 3.875" x .375", Dura Satin White. These tiles have interesting variations, veins and impart a nice texture, especially to old photos. Will not fit Conde Wrought Iron frames.


As blockchain-based payments have gained more traction with the evolution of cryptocurrencies, integrated technologies within financial services have taken off. Though there are bigger plans in store for this pairing in the future, American Express is already making headway with Ripple on this front. Ripple CEO Brad Garlinghouse says, "Transfers that used to take days will be completed in real time."
The American economy continues to see improvement as consumer lending is at an all-time high while delinquency rates are below the 15-year average. This begs the question: What's causing the improvement? Laura Alix of American Banker has answers. She writes, "Banks searching for growth pushed and pulled on a variety of consumer lending levers this year. Personal loans, particularly those offered through digital channels, were especially popular as banks aimed to emulate online lenders' speed and efficiency. Meanwhile, smaller banks that often lack the resources to beat fintechs are, in some cases, joining them."
"Increasingly, customers are choosing their primary financial services provider based on the ease with which they can operate their financial products, and are demanding a personalized experience."
"On Tuesday at the One Planet Summit in Paris, [Prince Charles and an assortment of banking and fintech thought leaders] are expected to announce they are developing blockchain technology that lets banks see which potential borrowers use environmentally sustainable practices and therefore are worthy of preferential lending terms. Such disclosures presumably would put pressure on companies to pollute less."
"And after facilitating 125,000 loans in three years, INSIKT is raising $50 million to expand. The round is led by Grupo Coppel, with participation from FirstMark Capital, Revolution Ventures and Colchis Capital. INSIKT has raised $100 million to date."
"The move [of Ethereum, Ripple, and Litecoin on Bloomberg] comes amid sharp rises in the prices of many alternative cryptocurrencies, or altcoins, along with the spike in bitcoin prices. Just yesterday, Ripple's XRP token surged to a new record close to 90 cents, while ether and litecoin have also both hit new highs in the past week."
Tencent and JD are working together to take on Alibaba in e-commerce and digital payments. Digital payments is a big play for the companies to overthrow the giant: "As part of the deal, Tencent will give Vipshop a dedicated spot on Weixin Wallet, referring customers to its online shopping platform. JD will also grant Vipshop a potentially lucrative slot on some of its shopping portals and help it achieve sales targets."


39 Everyday Short Hairstyles For Black Women Hair Pinterest Of Color 0 60 Great Short Hairstyles For Black Women Of Color 1 Short Hair For Women Of Color Black Haircut Designs Low Hairstyles 2 Latest Short Haircuts For Black Women Hairstyles 2017 2018 Of Color 3 35 Best Short Hairstyles For Black Women 2017 Of Color 4 61 Short Hairstyles That Black Women Can Wear All Year Long For Of Color 5 Hair Cuts Hairstyles Haircut Styles Ideas Home Haircuts Short For Women Of Color 6 28 Trendy Black Women Hairstyles For Short Hair PoPular Haircuts Of Color 7 55 Best Short Hairstyles For Black Women 2018 Of Color 8 54 Easy Short Hairstyles For Black Women Of Color 9 Short Haircuts Black Hair 2015 Hairstyles For Women Of Color 10 375 Best Obesssion Short Hair Images On Pinterest Cute Hairstyles For Women Of Color 11 20 Popular Short Hairstyles For Black Women Cut Pinterest Of Color 12 Pics Of Short Hairstyles For Black Women 2017 Color 13 35 Unique Black Women Short Haircut Styles Kitchen Design Hairstyles For Of Color 14 Short Bob Hairstyles Black Women Photos For Of Color 15 55 Winning Short Hairstyles For Black Women Of Color 16 Bowl Cut Short Hairstyles For Women Of Color Makeup Tutorials 17 55 Winning Short Hairstyles For Black Women Of Color 18 Short Hairstyles For Black Women 2013 2014 2017 Of Color 19 .
On this website we recommend many designs abaout Short Hairstyles For Women Of Color that we have collected from various sites. prgap.org that we have collected from various sites, and of course what we recommend is the most excellent of image for Short Hairstyles For Women Of Color. If you like the design on our website, please do not hesitate to visit again and get inspiration from all the houses in the design of our web design.


text:
Feinstein Statement on NSA Compliance
Washington—Senator Dianne Feinstein (D-Calif.), chairman of the Senate Intelligence Committee, released the following statement on reports that the NSA has not complied with privacy rules or overstepped its legal authority. While today's Washington Post stated that Feinstein did not receive a copy of the 2012 audit cited by the paper until The Post asked about it, Feinstein's full statement provided on Thursday to the paper made clear the committee receives the FISA compliance information in a more official format rather than as an internal NSA statistical report. A statement from Feinstein follows:
"By law, the Intelligence Committee receives roughly a dozen reports every year on FISA activities, which include information about compliance issues. Some of these reports provide independent analysis by the offices of the inspectors general in the intelligence community. The committee does not receive the same number of official reports on other NSA surveillance activities directed abroad that are conducted pursuant to legal authorities outside of FISA (specifically Executive Order 12333), but I intend to add to the committee's focus on those activities.
"The committee has been notified—and has held briefings and hearings—in cases where there have been significant FISA compliance issues. In all such cases, the incidents have been addressed by ending or adapting the activity.
"The large majority of NSA's so-called 'compliance incidents' are called 'roaming' incidents, in which the NSA is collecting the phone or electronic communications of a non-American outside the United States, and that person then enters the United States. The NSA generally won't know that the person has traveled to the United States. As the laws and rules governing NSA surveillance require different procedures once someone enters the U.S.—generally to require a specific FISA court order—NSA will cite this as a 'compliance incident,' and either cease the surveillance or obtain the required FISA court order. The majority of these 'compliance incidents' are, therefore, unintentional and do not involve any inappropriate surveillance of Americans.
"As I have said previously, the committee has never identified an instance in which the NSA has intentionally abused its authority to conduct surveillance for inappropriate purposes.
"I believe, however, that the committee can and should do more to independently verify that NSA's operations are appropriate, and its reports of compliance incidents are accurate. This should include more routine trips to NSA by committee staff and committee hearings at which all compliance issues can be fully discussed."


CarryMe . BeautyLi. hotgirl269. BlancEtNoir.
SilviaScottAliceSimpson2LiveSexDeliverGossipGurl .RaavenKleopattraHotandredulcecumSweetTTT .DUDETRIOxxxandredulcecumSoniaMarizelNicolleTaylorX .HooootAnnaMereditheWifeSQMysteriousQweenbgbeaumec .PrettyZeeJULIAFOX10PorscheDali2PlayGuys4U .NinjaAlastisRebeckaXobgbeaumec2LiveSexDeliver .SylvieGreyandredulcecumSweetyDreamsxalindaoij .AliceSimpsonHotMarilouBeautyLiRaaven .StivieFaySamanthaladylineCELESSTTESakiraLee .EnzonudJULIAFOX10antonylatinxPorscheDali .SweetyDreamsxMagicDick77FilinaSoniaMarizel .
DustinPricelessAliceSimpsonKylieSexyFoxyCumAMANDA .HooootAnnaJessicaLewisWildL0llipopandredulcecum .FilinacindyriosxEnzonudCallian .MeganMillanoAzureLotusAngelxSweetyangelbliss .angelblissAzureLotusFirecaatVictoriarose94 .MissAsianHottestBeautyLiAgataHoneyAsiannKeiko .ianis91PenelopeFayandredulcecumRebeckaXo .FirecaatKattyAnySoniaMarizelSensualJessyca96 .BeautyLitry4holeswoderrosePorscheDali .jonny21DanteOtisNinjaAlastisBelAmiGuy .KyaraSM2LiveSexDeliverjonny21CELESSTTE .