Naming collision in LOV

I've changed the LOV of an object in Designer. I want to use the changed LOV for an other object. When I change the default name of the object I want the LOV to be used, I get a naming collission error (The name is already used. Please choose an new name).
In BO 6.5 this action was no problem and I could order all (changed) LOV objects in a seperate LOV class. Is this no longer possible in XI R3.1?
Greetings,
Ruud

Hi
I have the same issue, but not in all the machines.
In my pc, wich designer installation i did it and i am administrator user, everything it is working fine. But in other machines, wich the designer installation did it by IT people and where the user have not administrators rights, the Designer don't allows to assign the same lov to 2 objects.
Any ideas?
best regards and thanks!

Similar Messages

  • Wsimport naming collision

    JAXWS 2.0
    Java 1.5.0_11
    Ant 1.7.0
    <wsdl:service name="TempCallback">
    <wsdl:port name="TempCallback"
    binding="tns:TempSoapBinding">
    <soap:address location=" " />
    </wsdl:port>
    </wsdl:service>
    The following error is generated when wsimport is executed on a WSDL containing the above Service element.
    error: generator error: java.lang.IllegalArgumentException: trying to create the same field twice: TempCALLBACK
    The issue lies in the �TempCallback� name being used by the port element and service element. I have tried to use an external binding file to change the class name of the service element, but received the same error as before. Any suggestion on how to overcome this naming collision without changing the WSDL directly; any help would be greatly appreciated.

    I think I have the same problem; here is what I get when I try to generate java classes using wsimport:
    [wsimport] command line: wsimport -d C:\workspace\jaxws\bin -keep -s C:\workspace\jaxws\src -verbose C:/workspace/jaxws/descripteurs/WEB-INF/wsdl/JaxServerService.wsdl -p jax1 -b C:\workspace\jaxws\descripteurs\WEB-INF\web.xml
    [wsimport] error: java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema
    [wsimport] java.lang.IllegalArgumentException: http://www.w3.org/2001/XMLSchema
    [wsimport] at javax.xml.validation.SchemaFactory.newInstance(SchemaFactory.java:181)
    [wsimport] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:191)
    [wsimport] at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:67)
    [wsimport] at com.sun.tools.ws.processor.modeler.wsdl.JAXBModelBuilder.bind(JAXBModelBuilder.java:126)
    [wsimport] at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildJAXBModel(WSDLModeler.java:2206)
    [wsimport] at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:223)
    [wsimport] at com.sun.tools.ws.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:180)
    [wsimport] at com.sun.tools.ws.processor.config.ModelInfo.buildModel(ModelInfo.java:87)
    [wsimport] at com.sun.tools.ws.processor.Processor.runModeler(Processor.java:81)
    [wsimport] at com.sun.tools.ws.wscompile.CompileTool.run(CompileTool.java:543)
    [wsimport] at com.sun.tools.ws.util.ToolBase.run(ToolBase.java:56)
    [wsimport] at com.sun.tools.ws.ant.WsImport.execute(WsImport.java:419)
    [wsimport] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
    [wsimport] at org.apache.tools.ant.Task.perform(Task.java:364)
    [wsimport] at org.apache.tools.ant.Target.execute(Target.java:341)
    [wsimport] at org.apache.tools.ant.Target.performTasks(Target.java:369)
    [wsimport] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
    [wsimport] at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
    [wsimport] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
    [wsimport] at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
    [wsimport] at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
    [wsimport] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
    [wsimport] at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
    BUILD FAILED
    C:\workspace\jaxws\build.xml:60: wsimport failed
         at com.sun.tools.ws.ant.WsImport.execute(WsImport.java:431)
         at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275)
         at org.apache.tools.ant.Task.perform(Task.java:364)
         at org.apache.tools.ant.Target.execute(Target.java:341)
         at org.apache.tools.ant.Target.performTasks(Target.java:369)
         at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216)
         at org.apache.tools.ant.Project.executeTarget(Project.java:1185)
         at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40)
         at org.eclipse.ant.internal.ui.antsupport.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
         at org.apache.tools.ant.Project.executeTargets(Project.java:1068)
         at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.run(InternalAntRunner.java:423)
         at org.eclipse.ant.internal.ui.antsupport.InternalAntRunner.main(InternalAntRunner.java:137)
    Total time: 1 secondCan any one help me??
    Best regards

  • Naming Collisions in Trusted Domains?

    Hi all,
    I am trying to have two WLS instances communicate with each other via JMS. The basic setup is working but now I want to add security to it. After adding User rstrictions as policies to the Queues I received error messages on the remote instance that it could not connect to the JMS resources defined on the local instance via the defined foreign jndi provider. This seemed logical as the two domains did not trust each other, so I created a Trusted domain between them.
    But now i receive warnings on the remote instance that a filestore (which is defined on the local instance to persist the JMS messages) is not "assigned to any of these servers: adminserver". Which is wrong in my opinion since the server of the local instance is called 'adminserver' and the file store is targeting it.
    On the other hand, the server of the remote instance is also called 'adminserver', now I am wondering if this naming conflict is the cause of the warning and more important if there might be other more severe problems that could arise from this situation?
    Is there a solution for this problem apart from creating a new instance with a differently named server? To my knowledge it is not possible to rename a server once it is created.
    Thanks, Chris

    Communicating domains normally must minimally have different domain names, and, in most cases, must not have any server names in common. In addition, it's sometimes necessary to make sure that there are no JMS server names in common either. I've been able to change names by first shutting all servers down, and performing a search-and-replace in the config.xml.
    I don't recommended changing the names in production setups without very careful planning. For one, there may be persistent data that references the old names (for example, the file names of each server's default file store are generated based on the server's file name).
    Tom

  • Regular expression for LOV?

    I have a list of strings in an LOV. I tried filtering it by typing in "^disk" in the search bar, which I hope will return a list of strings starting with "disk", but I failed.
    Any idea on how to use regular expression for LOVs? Thanks!

    HI Buffalo,
    i have a select list item in my page1 named :P1_EMPNAME with lov query value
    select ename as d, ename as r from emp WHERE EGEXP_LIKE(ename,:P1_SEARCH) or :P1_SEARCH IS NULL
    i have a Search text box in my page1 name :P1_SEARCH
    When i run the page, by default all the empnames will display in the lov list item
    i have given ^buffalo in the text seach item and clicked the submit button ,it shows the Employee buffalo in my list item lov.
    If you want all the entries that start with S, search for ^s
    End with R, use r$
    please try this link http://download.oracle.com/docs/cd/B28359_01/appdev.111/b28424/adfns_regexp.htm
    Thanks
    Logaa

  • Getting error while deploying (.WSP) file

    HI ,
        I developed timer through VS 2010.When i try to
    deploy that WSP file in production server through Stsadm/Powershell commands ,I am getting below
    error.
    The solution cannot be deployed.  Directory "NewsofTheweekMemoTimerJob_Feature1"
     associated with feature '675521dc-7b7c-4825-a49c-611d0dce007f' in the solution
    is used by feature 'bdc09bc2-f629-41dc-8749-e9fe8f02c613' installed in the farm.
     All features must have unique directories to avoid overwriting files.
       I saw in Central administration,under system settings i did not find any solution.
    Thanks in advance.
    help me.
    Thanks:

    It seems that you already have installed a feature with the same name in the farm. Look in the 14-hive (C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14) under TEMPLATE\FEATURES. There you have a folder with the mentioned name. As
    long as this folder exists, you can't deploy a feature with the name of the folder.
    A simple solution for your problem would be to give the feature another name. So you avoid the naming collision.

  • [JS CS3/4] ScriptUI How to color a button ?

    Is it a way to get a colored button in the ScriptUI DOM ?
    I tried
    dlg.button1.graphics.backgroundColor = dlg.button1.graphics.newBrush(dlg.button1.graphics.BrushType.SOLID_COLOR,[0.7,0.7,0.7],1);
    But although the dialog is drawn, the button is not styled in best case, not visible in the worst case.
    Is that possible to get a colored button ?
    Hope so.
    Do you have any tip ?
    TIA
    Loic

    I have tried in the past but not been able to color a button.
    What I have been able to do is use the onDraw callback to print an image instead of the standard control.
    You may want to try that.
    Wish I could be of more help. Kasyan's correct, the docs are sketchy at best. The biggest hurdle is that some of the custom drawing functionality seems to be a bit brittle and prone to failure in some cases.
    Below is an example of drawing an image in place of a dropdown list to make a poor mans' flyout menu.
    Regards
    Bob
    // Ever wanted to embed an image file in a jsx file?
    // below is a multi-step process for doing so. It's a little cumbersome but worth the bother at times when a script depends on
    // a binary object, but there is no fail-safe way to ensure the binary is delivered or installed with the script (like this sample!)
         function myFileStringer( myFile ) {
              // read the image file
              myFile.encoding = "BINARY";
              myFile.open( "r" );
              var myBuf = myFile.read();
              myFile.close();
              // create an output file of the same name with the extension "txt"
              var outName = myFile.name.substr( 0, myFile.name.lastIndexOf( "." ) ) + ".txt";
              var outFile = new File( myFile.parent.absouteURI + "/" + outName );
              outFile.open( "w" );
              // write the buffer to the text file using toSource(). The text in the file will be JSON, ready to copy and paste into your script
              outFile.write( myBuf.toSource() );
              outFile.close();
              // open the text file, copy the text in the file in a single line, paste it into your source code as a single line, something like this:
              // var myBinary = (newString("\u0089PNG\r\n\x\1\A\n\x00\x00\x00\riHDR\x00\x00\x00... ) );
              // it will be a very long string
         function myFileMaker() {
              // the (new String(....) in the line below is the output as pasted from myFileEnstringer
              // it is in JSON notation from the toSource() call above - when this line is executed, myBinary will contain an accurate binary representation of the image
              // the binary below is a PNG image that is an icon for a flyout menu.
              var myBinary = (new String("\u0089PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\t\b\x06\x00\x00\x00;*\u00AC2\x00\x00\x00\tpHYs\x00\x00\x0B\x13\x00\x00\x0B\x13\x01\x00\u009A\u009C\x18\x00\x00\x0FciCCPPhotoshop ICC profile\x00\x00x\u00DA\u00ADWi8\x14\u00EC\u00D7?3\u00C6\u00D8\u00C76\u00C6\u00CEX\u00B2d\x1B\u00FB\u0096u\u0090\u009D\u00EC$\u008C\x19\u00CBX\u00A7\u00B1/\u00A1B\u008F\u0088\u00B4\u00A1\u0088\x14i\u00A1\u0094\u0084\u0092\u00AD\u00B2\u0094\u00A2\x12ey\u00B2\u00A6B\"K\u008B\u00E6\u00FD\u00A0\u00A7\u00E7\u00BA\u00FE\u00EF\u00F5\u00BE\u00EF\u0097\u00F7|\u00FA\u009Ds\u009Ds~\u00E7\u00BE\u00CF}]\u00E7>\x00\u00BCB$\x1A-\x02\t\x00\u0091Q\u00B1t\u0097\u00DD\u00E6x/o\x1F<\u00CBk\u00E0\x04~\u00C0\u0082>H\u0092\u00C8143gg{\u00F8\x1Fe\u00FD5 \x00\x00^\u00AA\u0090h\u00B4\u0088|\u00F6\x00J\u00DF\u00D4\u00D9\u0092z\u00C3\x15\u00E7/\u00B2\u0087d\u00E1\x7F\x17\f\u00DD\u00CB\u00DB\x07\x00\u00A1\f\x00\u00D8\u0090ml\n\x00\u00D8\u00C0m\u00EC\x06\x00\u00D8\u0084XZ,\x00\"\x14\x00\u00B0\u00E4P\x12\x05\x00\u0091\n\x00\u00CAt7\x17\"\x00\u00A2\x06\x000!\u00DB\u00B8\t\x000\u0081\u00DB\u00B8\x07\x000\u00F1\u00E4\u0090X\x00\u00C4\b\x00\u009A/\u008AB\u008D\x02`Y\x00@\x1BS\u0082b\u00C8\x00\x18e\x00\u00A0Pb\u00C8\u0091\x00\u0098\u00E3\x00H\u00D5\u00C8\u00C8h\n\x00O;\x00(\u0090i\u00F4X\x00\u009Ey\x00P\u00F1\u00F2\u00F6\u00C1o\u0097L\u00D9\x000@\x01\u00A0\u00DF\u00FEk\x0B\u0093\x02\u00A8\u00BD\x03 &\u00F5\u00AFM\u00FE\x01\u0080\x10\t\u00E0\u00E6\u00CE\x7Fm\u00AB.\u0080\x00\x00\x04\u00EEyL\u00B0\u00A6\x06\x00\x00 8\u00CD\x01\u0098'\x18\u008CU9\x00\u0096\x13\x00[\u0085\f\u00C6\u008FJ\x06c\u00EB\"\x00\u00D3\x18@{\x049\u008E\x1E\u00FF\u00FB\u00BE\x10\u0088~\u0080\u00FFK\u00DF>\u00F3oaB\x00 \x01\u0090jL\u008E\u00A8P\u00E6\x03\u00E8\x12\u0096\u009B\u00AC\u009Dl#\u00EC\u009F8V\u00B8\u00D81\u0082\u00DCR<*\u00BC\x06|f\u00FC\u00F6X7\x01O\u009C\u009F Y\u0088*L\x13\u0089\x11\u008D\x15\u008B\x13O\u0094H\u0091\u00CC\u00C0gJeJ\x1F\u00919*\u009B\u00BF\u00E3\u00B4\u00DC9\u00F9\n\u0085\x1A\u00C5\x1B;\u009B\u0094\u00BA\u0095\u0087T&U\u00D7\t\u00EC\u00EA\u00D2\x1A\u009A\u009A\u00EEZ)\u00DA\x15:}\u00BA\u009B\u00FA\u008A\x06$\u00C3s\u00BB\u00C6\u008D%M\u00A8\u00A6w\u00CD9\u0089\u00FB,n[\u00F1\u00ED\u00A6[\x0F\u00DA\u00AA\u00D9\x1D\u00B3\u00FF\u00E2h\u00EFT\u00B7\u0087\u00DB%\u00C2\u00B5\u00CF]\u00D4#\u00C2\u00F3\u00817\u00C6\u00C7\x7Fo\u008D\u00EFW?\u00A2\u00FF\u00D1\u0080\u00FE@n\u00B2\x13\u00E5D\u00D0\u00F3\x10\u00F6P3j\\X]\u00F8d$\x7F\u0094Et\x02\u00ED\u00FA\u00FE\u00B71\u00A8XB\u009C\x7F|^\u00C2\u00FD\u00C4\u00F9d\u00DE\x14\u00E3T\u00DA\u0081\u00F2\u00B4\u00EE\u00F4\u00B1\u008C\u00A9\u0083\u00B3\u0087\x16\x0E/g\u00AEd\u00ADgo\u00FD\u0085\u00CA\u00E1<\u00CA\u009B+\u0090'~L!_\u00B3\u00C0\u00F0\u00B8Y\u00A1\u00F5\u0089='=N\u00F9\u009C\u00F6;C.\u00A2\x16\u0087\u0097\u0084\u009F\u00A5\u009E\u00A3\u0096\u0086\u0095\u0085\u009E'\u0095\u00FBT\u00B8^\u00B0\u00AB4\u00BD\u00A8~I\u00B1J\u00BEz\u00C7e\u00E9\x1A\u00FC\x15\u00F1\u00AB\u00C2\u00D7\x04\u00AE\u00F3\u00D6\u00F2\u00D4q\u00DE`\u00BE\u00F1\u00EB\u00E6f\u00FD\u00EA\u00AD\u00C5\u00DB\u00B3\r\u00A3w\x06\x1B\u009F\u00DE\u00EDjjn\u00AEo\u00B9~\u00EF\u00CA\u00FD\x0B\u00ADg\x1E\u00E4\u00B7\x1Dm\u00CF\u00EC8\u00D8\u0099\u00DCE\x7F\x18\u00F5(\u00EAqD7\u00A9\u0087\u00D8\u008B\u00EB\u009D\u00EA\u00BB\u00F5$\u00FD\u00A9m\u00BF`\u00FF\u00DC\u00B3\u0086\u00E7\u0099\x03.\u0083\u0092\u0083\u008B/\u00DA_\x16\u00BE\u00F2\x1FR\x19\u00FA\u00FE\u00FA\u00C9p\u00D1\b\u00E9\u008D\u00CA\u009Boo\x1F\u008F\x16\u008Cy\u008C\u008B\u008F\u00CFL\u00D4\u00FEM\x7F\u00A7\u00F3\u00EE\u00DBd\u00CBT\u00CA\u00B4\u00C1\u00F4\u00FAL\u00E3l\u00EA\u009C\u00D9{\u00A6\u00F7\u00BD\u00F3y\x1F\x1C?\u00F2||\u00F9\u00A9h\u00C1kQhqd\u00A9\u00F8\u00B3\u00D7\u00B2\u00D0\u00F2\u00D0\u0097\u00C2\x15\u00C7U\u00AE\u00D5\u00DE\u00AF\u0099kfk\u008C\u00F5\x07\x1B\u00C9\u009B\u00DA\u009B\u00CB\u00DFj\u00BF\u0087\u00FFP\u00FC1\u00F7\u00B3r+\u00E0\u0097\u00E4\u00AF\u00B7\u008C\u00FD\f\x06\x00\x12\u00C5\u00C4\u0087\u00C21c\u00D1\x02,\u00DC\u00AC\x1Cl\u00ACl[\u00EC\u00DF8>s\u00CEp\u00BD\u00C1\u00F4sw\u00F0\u00D4\u00F3V\u00F2\u009D\u00E2\u00CF\u00C2&\b\u0084\u00E3\u00F6\t:\t\x11\u0085\u00F5EtD\u0095\u00C5\u00D4\u00C4U%t$\u008D\u00F1\u0096R&\u00D2z2*\u00B2\u00CA;\u0094\u00E5v\u00CA\x13\x14\u0094\x15\t;u\u0094\u0088\u00CA\u00B6*^\u00AAT\u00B5$B\u008Ez\u0099F\u00A3\u00E6s\u00AD%\x1D^]-=W\u00FDd\u0083\u00CB\u0086\u00C3F\u00AC\u00C6\u00DA&\u00FBMk\u00CD\u00E6\u0089J\x16\u00E1\u00967\u00AC6\u00AD-mrmG\u00EC\u00D5\x1DR\x1D\x07\u009DE\u00F7\u0084\u00B84\u00BA!\u00DC\x1D<Nx\u008Ey+\u00FA\u00D0\u00F6\u00DE\u00F2\u00DD\u00F0\u00D3\u00F3?\x10\u00D0F\u00DA\"\x1BR\u00E2\u0083\u00EE\x06\u00AF\u0086\u00AAR\u00C3\u00C2\u00AE\u0086\x7F\u008C\u0094\u008B\u00F2\u008D.\u00A6\u00BD\u00A6\u00F3\u00C7\u00B8\u00C5\x16\u00C6\u00F5%\u00B0&\u00DA'\u00E5'?J\u0099N\u00FDt\u00E0s\u00DAZ\u00FA\u00B7\u008C\u00EF\x07\x7F\x1Df\u00CE\u00E4\u00CC\u00E2\u00CF\x16>\"\u00FE\u0097l\x0E\u00E1\u00A8A\u00AEy\u009E\u00CD1\u00A7|\u00AF\x02\u00DF\u00E3\x01\u0085\u0094\x13a'\u00A3O\u00D1N\u00D3\u00CFD\x17E\x15\u00D3J\"\u00CF\x06\u009F\x0B(\u00F5*s>oY\u00AES\u00A1rA\u00A5R\u00F9\u00A2\u00E2%\u00C5*\u0085j\u00B9\u00CB\u00B252Wd\u00AF\u00CA\\\u0093\u00BC.V+R'|C\u00E8\u00A6@=\u00DF-\u00EE\u00DB\u00DC\r\u0098;\\\u008D\\wy\u009Bp\u00CDB-B\u00F7D\u00EF\u00E3[\u00E5\x1F\u00A8\u00B6i\u00B7\u00EBw\u0098w:v\u00F9<\u00DC\u00FBh\u00F7c\u00FC\u00E3\u0095\u00EE\u00DE\u009E\u00D2\u00DE\u00C8>\u00B3'\u0082O\x16\u009F>\u00EA/y\x16\u00F9\u009C8 >\u00B0>\u00D8\u00FF\u00A2\u00F2e\u00C2+\u00C7!\u00E9\u00A1\u00B5\u00D7\u00BD\u00C3\u00A5#\u00D1o\u00CC\u00DE\u00F2\u00BE\x1D\x1F\u00BD>\u0096:n=\u00C1;1\u00FAw\u00E5\u00BB\u00B0I\u00D5\u00C9\u00E5\u00A9\u00A6\u00E9\u00E33\u00A1\u00B3&s\u0082s\u008B\u00EF\x1F\u00CE\u0097|\u0088\u00FAh\u00F9I\u00F8\u00D3\u00C7\u0085\u00FB\u008B\u00C7\u0096\u00F6}V\u00FD\u00FCc\u00B9\u00FB\u00CB\u0089\x15\u00BFU\u00C5\u00D5\u0095\u00AF\u00F7\u00D6\u00B2\u00D7\u009D7\u00846\u00C66+\u00BFQ\u00BF\x13\u00BEo\u00FE\u00B8\u00FF3c\u00CB\u00F2\x17\u00E6\u00D7sF\u00E4v\u00FF\u0091\x1BL\u00CB\u00A8\u00AF\u00CC\u009F\u00D1\u008B,\u008B\u00AC\u008Bl\x13\u00EC\u00A3\x1C\u00AF8\u009Fp\u00B5b\u00EA\u00B8\u00CByry\x13\u00F8(\u00FC\u00F6X\u0082\x00\u00B7\u00C0*nP\u00F0\u009AP\u00A6\u00B0\u00AF\bA\u0094YtX\u00ACJ<N\u00C2R\u0092[r\x1C_%\x15)m \u0083\u0096y-{eG\u009A\u009C\u00BB\u00BC\u00B2\x02\u00AB\u00C2{\u00C5\u00EE\u009D5J\u00C7\u0094cU\u00F6\u00AA\u009A\u00AB\u00A9\x12\u00C4\u00D4\u00D9\u00D474f5\x07\u00B5\u00DA\u00B5o\u00EA\u0094\u00E9\u00E6\u00E8\u00C5\u00EB\u0093\f\u00EC\rw\u00ED\u00C2\x1B\u00A1\u008D\u0096\u008D\u0087L\u00EE\u0098\u009E4\u008B7\u00A7\x12=-\u00AC,\u00F5\u00AC\u00E4v\x0BY3[\u00AF\u00DB|\u00B0}c\u00D7c\u00DF\u00E8P\u00EDX\u00EC\u0094\u00E3\u009C\u00B8'\u00C4\u00C5\u00C3\u00D5\u00DE\u00CD\u00D0]\u00D9C\u00D2\x13\u00E7\u00C5\u00E5\u008D\u00F4\u00FE\u00EA\u00F3a\u00EF\u0094\u00EF\u00DB}\u00AF\u00FC\u00FA\u00FD\u00BB\x02\x1E\u0090Z\x03[\u00C8\u00B7(\x17\u0083r\u0082\u00E9!\u00FE\u00A1\u00D6T\u00B50\u0091p\u0096\u00F0\u00B5\u0088\u0099\u00C8\u00C1\u00A8\x07\u00D1u\u00B4\u00CA\u00FDg\u00E8\x7F\u00C5$\u00C6\u0086\u00C6\u00F9\u00C5;&\x18'\u00AA%I%cSP)\u00AB\u00A9\u00EF\x0E<K{\u0090~-\u00E3\u00D4\u00C1\u00F4C\u00C1\u0087\u009D2\u00B5\u00B2p\u00D9\u0088\u00EC\u008D#\u008B\x7FM\u00E7\u00BC=:\u0090\u00DB\u009D\u00D7r\u00ECF~MA\u00E9\u00F1\u00DC\u00C2\u00F4\x13\u00B4\u0093\u0094S\u00EE\u00A7\u00AD\u00CEh\x15\u00C9\x16\x0B\u00940\u0097|=;{n\u00A4\u00B4\u00BF\u00EC\u00C1\u00F9\u00EB\u00E5e\x15'/dU\u00A6^\u008C\u00BED\u00AA\u00F2\u00AC\u00DEs\u00D9\u00A6\u00C6\u00F0\u008A\u00F4U\u00B8:v\u00ED\u00FE\u00F5\u00E2Zz\u009D\u00D3\r\u00D5\u009B\u0098\u009BK\u00F5\u00FD\u00B7\u00AE\u00DC\u00CEm\u0088\u00BE\u00E3\u00DA\u00A8}\x17ww\u00A3i\u00AC\u00B9\u00B5\u00A5\u00EC^\u00DA}R+\u00F1\u00C1\u008E6\u00E6\u00B6\u00E9\u00F6\u00AE\u008E\u00EA\u00CE\u00CC.\u00D2C\u00A3G\"\u008F\u00D6\x1F\x0FtW\u00F5\u00E4\u00F6\u0096\u00F6u<\u0099z\u00CAx&\u00F2\\\x7F\u00C0g0\u00F5E\u00E9\u00CB\u009EW\u008B\u00AF\u00C5\u0086\u009DFr\u00DF<\x1D\u00E5\x1F\x0B\x18o\u00FE\u009B\u00FF]\u00FA\u00E4\u00D7\u00E9\u0083\u00B3\u0098\u00B9\u00CB\u00F3\u00CE\x1Fy?\u00BD^\u00AC\u00FB|\u00E6K\u00E1j\u00D9Z\u00FD\u00C6\u00DCw\u00FC\u00CF\u0080_i\f\x06\u00C0\u00F6\u00EC\x03\x00@\u00EB\x00\x14\u00C7\x01xM\x02\u00B8T\x01\x14l\x01(p\x02\u00E0j\x00\u009C\u00B9\x00\u00DC\u00F4\x01\u00D1Y\x00\u0088kY\u00800/\u00F8g~\x00\x00\x12X\u0081\x17$@\x05L\u00C0\r\" \x1B.\u00C2C\u0098E\u00B0#4\x10\u00BE\u0088\u00BF\x10M\u0088\x0FHq\u00A4;2\x1F\u00D9\u00C7\u00C4\u00CAd\u00CD\u0094\u00CB4\u0088\x12AQP\u00F5(\x06\u00B3\x13\u00F3E\u00E6ohg\u00F4U\x16\x14\x0B\u0089\u00A5\u009DU\u008A\u00F50\u00EB<\u009B\x03[=\u00BB\b{&\u00FB\x02\u0087'G'\u00A7\x06g\x19\x17\x0BW\x1C\u00D7\x14\u00C6\t\u00D3\u00CA\u00AD\u00C4]\u00CC\u00C3\u00C2\x13\u00C33\u00C9\u00EB\u00CC\u00DB\u00CA\u00A7\u00C4W\u00CC\u00CF\u00CC\x1F\u00C7?\u008Bu\u00C5v\b\x10\x04*p|\u00B8,\u00DC7\u00C1\b\u00C1wB\u00DEB\u00CF\u0085w\x0B\u00B7\u008B\u00EC\x12i\x14\u00D5\x11m\x113\x16\u00EB\x14\u00B7\x16\x1F\u0090\u00F0\u0092\u0098\u0095\u00A4K2\u00F0yR\x12R\u00B7\u00A5m\u00A4'eRd\u00B1\u00B2\u00F5;\u009Cw\u00AC\u00C8\x15\u00C9\x1B\u00CBO+\u00E4)\u00EA+\u00CE\u00ED<\u00ADd\u00A1\u00B4\u00AA\\\u00AD\u00E2\u00A7*\u00A4:\u00A0\u0096C\u00B0T\x07\u00F5V\u008DtMs-&\u00ADN\u00ED,\x1D{]\t=\u00A4\u00DE\u0092\u00FE\u00B0A\u00A7\u00E1\u00ED]UF\u00A7\u008C\u00B3L\x12L\u00C3\u00CC\u00C8\u00E6\u00FB\u0088\u00AE\x16\u00D6\u0096\u00E6V&\u00BBM\u00ADMmLmw\u00DB9\u00DB\u00FB8\x049\u00D2\u009C\x0E;\x17\u00ED\u00A9w\u00E9u\u009DtGx\u00C8{:x%xW\u00FA\f\u00FBr\u00EF3\u00F0#\u00FB\u009F\n\u00E8$\u00AD\u0092\u00E5)~AE\u00C1\u00FD\u00A1h\u00EA\u00EE\u00B0\u009C\u00F0\u00FEH\u009E(\u008F\u00E8\n\u00DAg\u00BAYLn\u00EC\u00DF\u00F1Z\t9\u0089c\u00C9*)GR\u00E7\u00D3,\u00D2\u00CB2~\x1C\u00F28\u00DC\u009C%\u0099\u009Dv\u00E4m\u008E\u00C9\u00D1;y\u00BE\u00F9b\x05C\u0085%'\x03O\u00CB\u009C\u00F9X\\w6\u00AD\u00D4\u00E1<\x7F\u00F9\u00E4\u0085\u00C6\u008B\u0085U\u0094\u00CB\u00D6WT\u00AFa\u00AF\u00FF\u00A8[\u00BA\u00F9\u00FE\u00D6L\u00C3D\u00E3|\u00D3\u00DA=\u00CEV\u00996\u00C7\u008E\u00E8\u00AE\u00F4G\x15\u00DD-\u00BD\x13OY\u009E\x11\x06\u00BC^\x1C\x7F\u00D53\u008C~C\x1C\u00CD\x1D\x1F{'7\u0095:3\u00F4~\u00E7\u0087\x03\u009F\u00A6\u0097l\u0097\u00AF\u00ACr\u00AC\u00C5l\u00CC|\u00B7\u00FAy\u009F\u00C1\u00D8\u00FEI\x00;\b\u0080,\u00E8\u0080=\x04\u00C1A\u00B8\x00]\u00F0\x01\u00C1\u00870FD\"\u00CA\x11CH.\u00A452\x1B\u00F9\u0098\u0089\u008D\u00C9\u0089\u00A9\u0088i\x12\u00A5\u0084JFu3\x0B1\u00872\u00B7\u00A01h*\u00BA\u009BE\u0091%\u0087\u00E5\x13\u00AB3k\x03\u009B\x04\u00DB\x11\u00B6/\u00EC>\u00EC=\x1C\u00DA\x1C\u0095\u009C|\u009C\u00879\u00D7\u00B9B\u00B8\u00DEb\u009C0\x1D\u00DC\u00DA\u00DCWydx\u00CE\u00F2\u00F2\u00F0\x1E\u00E1\u00FD\u00C5\x17\u00CF\u00B7\u00C2O\u00E5\u009F\u00C4\u00EE\u00C5\u00BE\x16p\x14\u00E8\u00C3Y\u00E1:\x04\u008D\x04\u009B\u0084t\u0085\u00EE\nk\n\u00D7\u0089\u00A8\u008B\u00DC\x10U\x17m\x123\x16\u00EB\x12\u00B7\x13\x1F\u0092\u00F0\u0097X\u0092L\u00C5\u00B3\u00E1\u008B\u00A5vJ\u00B5K\u00BBK/\u00C8d\u00CBJ\u00C86\u00EF\u00F0\u00D8\u00B1.W$o(?\u00AA\u0090\u00A1(\u00AF\u00F8|g\u00A2\x12^\u00A9G9FEJ\u00E5\u0095j\u00A6\u009A\u00A6\u00DA\f\u00A1H\u00DDZ}K\u00A3Q3JKVkD\u00FB\u00B8\u008E\u0083.Nw]oJ\u00FF\u0089A\u00A3\u00E1\u00E5]g\u008Dr\u008C\u0093M\"L\u00FD\u00CD<\u00CD\u00F7\x10\u00AD-\u008C,u\u00AD\u00B4vkY\u00EB\u00D8h\u00DB\x1A\u00D9Y\u00D9;;\u00F88\x06;%9\u00E7\u00ED\u00A9vis\x1Dv\u00DB\u00F0\x10\u00F74\u00F7\u008A\u00F4.\u00F6y\u00EA\u00CB\u00BC\u008F\u00E0\u00E7\u00E9\x7F$\u00A0\u00814E\u00C6R\u00AC\u0083\u00D2\u0082\u00EBC\u00E6\u00A82a\u00A4\u00F0\u00F2\u0088\u0089(\u00B1h\x7FZ\u00D5\u00FE\u00A5\x18\u008D\u00D8\u00A4\u00B8\u0087\t\u0098D\u008F\u00A4\u00D2\u00E4\u00D9T\u009D\x03\u00D9i/2$\x0FF\x1Cj\u00CE\u00E4\u00CA\"e\u00D7\x1D\u00F9\u009E\u00E3p\u00F4V\u009E\u00CD\u00B1\u00AD\u0082\u009AB\u00BF\u0093\u00C2\u00A7\u009E\u009E9\\\u00AC[\u00B2v\u00AE\u00B1,\u00AA\\\u00A1b\u00BE\u00F2\u00E6\u00A5\u0084j\u00D3\x1A\u00FE+\u00EF\u00AF\u00DD\u00AF=}#\u00BE>\u00F0\u00B6\u00DD\x1D\u009D\u00BB\u00EA\u00CD\u00AA\u00F7\u00B4Z\u008D\u00DA\u00BC:(]f\u008F\u00D4\u00BBEz9\u00FB\u00B6\u009En>[\x1A\u00F8\u00F0\u00E2\u00EB\u00AB\u009F\u00C3\x1CoDF\u00B5\u00C6=\u00FFN\u0099\u00AC\u009C~9\u0087\u009A\u00D7\u00FA\x18\u00BE\u00D0\u00B0\u00B4\u00F1\u00C5h\u00F5\u00E0\u00DA\u008BM\u00C5\u00EF\u00F4\u009F\u00AF\u00FE\u00F4\u009F\x03\x04A\x0E\u00F4\u00C1\tB!\x13\u00AA\u00A0\x1B\x16\x118\x04\x11\x11\u0083\u00A8FL \x05\u0091\u00EE\u00C8\"\u00E4\x04\u0093\x1CS,\u00D3c\u0094\x18*\x015\u00C4\u00AC\u00C7\\\u0081fG\u00A7\u00A0\x17YBY\u00A6X\x03X'\u00D8\u00F6\u00B1M\u00B0\x07\u00B2\u00CFrP9\u00969\x138\x19\\9\x18\x1C\u00A6\u0092[\u008D\u00BB\u008Dg\x0F\u00CF,\u00EF\x01>,_\x1D\u00BF\x03\u00FF\"\u00B6P@W`\f\u0097'\u00B8KpA\u00E8\u0092p\u00A0\u0088\u00AC\u00C8\u0090h\u00BE\u0098\u00B58B\u00BC]\"M\u00D2\x1C\u008F\u00C2wK\x1D\u0097\u00DE+\u00A3 \u00B3&\u00DB\u00B5\u00E3\u008C\\\u00B8<Q\x01\u00A7\u00F0E\u00F1\u00E9\u00CE\u00CBJ\x07\u0095}U\u008CU\u00A5\u00D5\u0098\u00D4f\t\u00BD\u00EA\u00B5\x1AE\u009A\x07\u00B5\u0082\u00B5\x1Duv\u00E9\u00AA\u00EB\u00E9\u00EA\x1B\x19\u0098\x1A\u00DA\u00EC\u00F24\"\x19\u0087\u009B\u00C4\u009B\x1E6;m~\u0099x\u00DB\u00A2\u00D3r\u00C8\u00EA\u00935\u00CAF\u00C8V\u00DB\u00CE\u00CD>\u00C6\u00E1\u0084c\u0083\u00D3\u00E8\x1E\u00B4\u008B\u0096\u00AB\u00BF[\u0081{\u00AF'\u00C2\u00CB\u00CC;\u00DD\u00A7\u00DBW`\u009F\u00BD_\u009A\x7FS\u00C0R\u00A0\"\u0099B\u00A9\x0E\u009A\x0F\u0091\x0B\u008D\u00A0\u00B6\u0084\u00A3\"\u00DC\"/D}\u00A5\u00D9\u00ED\u00AF\u00A63b\u00BD\u00E3\u009A\x13\u0084\x13\x13\u0092^\u00A4h\u00A5\u0096\u00A7\u00A1\u00D3C3\x06\x0Ei\x1D.\u00CF\u00C2d\u00C7\x1F\x19\u00CD\u00D9}\u00B4#\u00CF\u00E3\u00D8FAa\u00A1\u00E6\u0089\u00F1S\u00E9g\u00A4\u008B\x1E\u0095\u0084\u009F\x13-\u00ED8O\u00AE\u00E0\u00B8\u00D0|1\u00AC\n[\u00DDS\u0093qU\u00E7\u00DABm\u00D5\rJ\u00BD\u00E2\u00AD\u00A5\u0086\u00DA\u00C6\u00A4&\u00BB\x16\u0089{+\u00AD\u00CF\u00DA\u00EEv$u\u00CE?t|t\u00BF\u009B\u00D0s\u00B5O\u00E2\u00C9\u00C9~\u00F4\u00B3\u00A4\u00E7\u00AB\u0083\u00DE/\u009E\u00BD\u00D2\x1B*\x1F\u0086\x11\u00EF77GQc\u00EE\u00E3\u00E7'&\u00DE\u00C9N\u00FAN\x1D\u009B\u00BE732\u00BB\u00F6\x1E;\u00AF\u00F4\u00C1\u00F4\u00A3\u00E3'\u0097\x05\u00A7E\u0087%\u00DB\u00CF&\u00CB\x1A_\u00F0+\u00EC+\u009FW\x07\u00BF\u00D6\u00AD\u00E5\u00ADS7\u00CC7y6'\u00BE]\u00FF\u009E\u00FC\u00C3\u00E6\u00A7\u00E0\u00CF\u00F1\u00AD\u00B2_]\f\x06\u00C0\u00F6\u00BE\x04\x00\x00\u00EC\u00C4\u00E8\u0088h:\u00DE\u009Eh\x01\u00FF\u00BF\x12\x19\x11\u00F7\x0F\x07\x0F\x00pRcm\u00DC\x00\x00\x0B\x00\x03\u00C1t+\x17\x000\x07\u0080\u0099\u00A8@G'\x00\u00E0\x03@\u00C8\x05\u00C5X\u00BA\u00FE\u00C6z\u00C1T+\u009B\u00EDX\u0084--\u00D6\u00D9\r\x00\u0084\x00\x10>\u00C9\u00A1n\u009E\x00\u0080\x01@\u00D0\u00C3H\u00B6\u00CE\u00BFqFT\u0084\u00A3=\x00\u00E0\x00\x10\u00F9\u0094 \x0B\u00CB\u00DF\u00B1\u0097\u00E8q.\u00EE\x00 \x0B\u0080h\b\u008F\u00B6s\x01\x00N\x00\u00C4HP\u0094\u00FB?\\31\u00F1\u00AE\u00FF\u00F8\u00AFSH\x16v\x00 \x06\u0080D'\u0087\x12\x1D\u00B7\u00FD\u0091\u00D2`\x0FD\u00B0\x00<\u0090!\x1A\" \x1A\u00E8@\u0085^ \x03\x1DH\x10\x05xx\x07x \x03\x1D\u00A8\x10\x03\u00B1@\u00828H\x04<D\x00\x15\u00F6C\x1CP\u0081\x02A\x10\u00F3;>\x0E\" \b\u00E2\u0080\x0EV@\x02:\u0084@\x10\u00A8\u00FCf\u00F8\u00EF<\x1E0\x03t\u00A0\u00FE/\x1ET\u00A0@\u00B4?\u00F5\x10=\u00F2Vp|qt\u0092\u0081G(\u00E1\x1A\u00E1\x03\u00E1'\u00E0\x7F{\u00DB\u00FDa\f\u0082\u00A8?\u0099\u00B6\u00D9\x03\u00FF\u00D1Qr(\r\u00946\u00CA\x1Ce\u00842F\u00E9\x03\x1E\u0085C\u0089\u0080\nJ\x0B\u00A5\u00872C\u0099\u00A0\fQ\u00DA(\u00FDg\x0Bw\x17\u00FEd%\u00FE\u00A9\x00\u00FF'\u00E3\f\u00D0!\u00E4?jU\u0081` \x01\x1D\u00E2!\bb \x1C\u00E6\u0080\x0E\u0091\u00FE\u00D4C\u00FF\u00C6\u00C1\u00F6\u00AE\x0E\x00\u0080\u00E6\x01(\r\x00\x00h\u00DBL\u00C9\u00F8\u00CFw\x15\x1B\u0094\x18\x0B\x00@\u008C\u00A6%\u00D1\u00A9!\u00A1\u00B1x3\x1A-\"\bO\u008C\u008E\u00A4\u00C5\u00C5\x06\u00D1\u0095\u00F16QdUe\u00BC\x06\u0081\u00A0\r\x00\u00F0_\x14\u00F7T\u00A9\u00D4J\u008B\u00F2\x00\x00\x00 cHRM\x00\x00m\u0098\x00\x00s\u008E\x00\x00\u00E2\u00F9\x00\x00\u0086\u0099\x00\x00x\u0083\x00\x00\u00D4N\x00\x003\u00BC\x00\x00\x1Cyc\u00E1\x1F,\x00\x00\x00\u00A2IDATx\u00DA\u0094\u0091\u00B1\r\u00840\x10\x04\u00C7>\x07\u00D0\n=P\x07\x05\u0090\"\u008AA\u00A4\u00D4@\x05n\u00C3]\\\u008C\x03l\x7F\u00F0\x12\u00C9\x0B\u00F0_x\u00BA\u00DB\u00DD\u00D1\x1AU-)%D\x04\x11!\u00E7L)\u0085\u00DAq\x00\"\u0082\u00B5\u0096\u0094\u00D2\u00CF\u00C14M\u00B7\u00CF\u00EB\u00BAbT\u00B5\x18cn]\u009B\u00A6\u00B9\x15\u00881~\x13<E\u008E1\u00BE#\u00EC\u00FB\u008E\u00F7\u00FEZ\u00F6}\u00CF0\f\u00F5\b\u00CE9\u0096e!\u0084@\u00D7u\u00CC\u00F3\u00CCy\u009EU\bFU\x0B@\u00CE\u0099m\u00DB\x18\u00C7\x11kmu\x0B\u0097\x00@\u00DB\u00B6\x1C\u00C7\u00F1\x7F\x0BO\x0Eo\b\u009F\x01\x00\u009B\u00FDU\u00A2t\u00A1Hz\x00\x00\x00\x00IEND\u00AEB`\u0082"));
              // create a data folder for your script in the user's application data
              var myDataFolder = new Folder( Folder.userData.absoluteURI + "/SampleScripts" );
              // make certain the folder exists
              myDataFolder.create();
              // write the image file
              var myFile = new File( myDataFolder.absoluteURI + "/myFile.png" );
              myFile.encoding = "BINARY";
              myFile.open( "w" );
              myFile.write( myBinary );
              myFile.close();
              // there is now a valid png image in your script's user data folder
         // example of using ScriptUI's drawing api to make a dropdownlist draw as an icon (until the user clicks it, then it's a menu)
         myFlyout = function( palette ) {
              palette.myFlyout = palette.add( "dropdownlist", [ ( palette.frameSize.width - 20 ), 0, palette.frameSize.width, 20 ] );
              palette.myFlyout.onDraw = function() {
                   this.graphics.drawImage( ScriptUI.newImage( myIconFile ), 0, 0 );
              if ( !palette.onShow ) {
                   palette.onShow = function() {
                        this.myFlyout.draw( this );
         // A slightly more complex example putting it all together where you can pass a callback function and an array of menu items
        // this function will add a flyout menu to the top-right corner of any ScriptUI window. It does not need to be a palette.
         addFlyout = function( palette, menuItems, callback ) {
              // create a script data folder to contain resources such as the flyout icon
              var myScriptDataFolder = new Folder( Folder.userData.absoluteURI + "/SampleScripts" );
              myScriptDataFolder.create();
              // point a file to the expected location of the icon image
              var myFlyoutIcon = new File( myScriptDataFolder.absoluteURI + "/flyoutIcon.png" );
              if ( !myFlyoutIcon.exists ) { // if it's not there, then create the file
                   var binData = (new String("\u0089PNG\r\n\x1A\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\t\b\x06\x00\x00\x00;*\u00AC2\x00\x00\x00\tpHYs\x00\x00\x0B\x13\x00\x00\x0B\x13\x01\x00\u009A\u009C\x18\x00\x00\x0FciCCPPhotoshop ICC profile\x00\x00x\u00DA\u00ADWi8\x14\u00EC\u00D7?3\u00C6\u00D8\u00C76\u00C6\u00CEX\u00B2d\x1B\u00FB\u0096u\u0090\u009D\u00EC$\u008C\x19\u00CBX\u00A7\u00B1/\u00A1B\u008F\u0088\u00B4\u00A1\u0088\x14i\u00A1\u0094\u0084\u0092\u00AD\u00B2\u0094\u00A2\x12ey\u00B2\u00A6B\"K\u008B\u00E6\u00FD\u00A0\u00A7\u00E7\u00BA\u00FE\u00EF\u00F5\u00BE\u00EF\u0097\u00F7|\u00FA\u009Ds\u009Ds~\u00E7\u00BE\u00CF}]\u00E7>\x00\u00BCB$\x1A-\x02\t\x00\u0091Q\u00B1t\u0097\u00DD\u00E6x/o\x1F<\u00CBk\u00E0\x04~\u00C0\u0082>H\u0092\u00C8143gg{\u00F8\x1Fe\u00FD5 \x00\x00^\u00AA\u0090h\u00B4\u0088|\u00F6\x00J\u00DF\u00D4\u00D9\u0092z\u00C3\x15\u00E7/\u00B2\u0087d\u00E1\x7F\x17\f\u00DD\u00CB\u00DB\x07\x00\u00A1\f\x00\u00D8\u0090ml\n\x00\u00D8\u00C0m\u00EC\x06\x00\u00D8\u0084XZ,\x00\"\x14\x00\u00B0\u00E4P\x12\x05\x00\u0091\n\x00\u00CAt7\x17\"\x00\u00A2\x06\x000!\u00DB\u00B8\t\x000\u0081\u00DB\u00B8\x07\x000\u00F1\u00E4\u0090X\x00\u00C4\b\x00\u009A/\u008AB\u008D\x02`Y\x00@\x1BS\u0082b\u00C8\x00\x18e\x00\u00A0Pb\u00C8\u0091\x00\u0098\u00E3\x00H\u00D5\u00C8\u00C8h\n\x00O;\x00(\u0090i\u00F4X\x00\u009Ey\x00P\u00F1\u00F2\u00F6\u00C1o\u0097L\u00D9\x000@\x01\u00A0\u00DF\u00FEk\x0B\u0093\x02\u00A8\u00BD\x03 &\u00F5\u00AFM\u00FE\x01\u0080\x10\t\u00E0\u00E6\u00CE\x7Fm\u00AB.\u0080\x00\x00\x04\u00EEyL\u00B0\u00A6\x06\x00\x00 8\u00CD\x01\u0098'\x18\u008CU9\x00\u0096\x13\x00[\u0085\f\u00C6\u008FJ\x06c\u00EB\"\x00\u00D3\x18@{\x049\u008E\x1E\u00FF\u00FB\u00BE\x10\u0088~\u0080\u00FFK\u00DF>\u00F3oaB\x00 \x01\u0090jL\u008E\u00A8P\u00E6\x03\u00E8\x12\u0096\u009B\u00AC\u009Dl#\u00EC\u009F8V\u00B8\u00D81\u0082\u00DCR<*\u00BC\x06|f\u00FC\u00F6X7\x01O\u009C\u009F Y\u0088*L\x13\u0089\x11\u008D\x15\u008B\x13O\u0094H\u0091\u00CC\u00C0gJeJ\x1F\u00919*\u009B\u00BF\u00E3\u00B4\u00DC9\u00F9\n\u0085\x1A\u00C5\x1B;\u009B\u0094\u00BA\u0095\u0087T&U\u00D7\t\u00EC\u00EA\u00D2\x1A\u009A\u009A\u00EEZ)\u00DA\x15:}\u00BA\u009B\u00FA\u008A\x06$\u00C3s\u00BB\u00C6\u008D%M\u00A8\u00A6w\u00CD9\u0089\u00FB,n[\u00F1\u00ED\u00A6[\x0F\u00DA\u00AA\u00D9\x1D\u00B3\u00FF\u00E2h\u00EFT\u00B7\u0087\u00DB%\u00C2\u00B5\u00CF]\u00D4#\u00C2\u00F3\u00817\u00C6\u00C7\x7Fo\u008D\u00EFW?\u00A2\u00FF\u00D1\u0080\u00FE@n\u00B2\x13\u00E5D\u00D0\u00F3\x10\u00F6P3j\\X]\u00F8d$\x7F\u0094Et\x02\u00ED\u00FA\u00FE\u00B71\u00A8XB\u009C\x7F|^\u00C2\u00FD\u00C4\u00F9d\u00DE\x14\u00E3T\u00DA\u0081\u00F2\u00B4\u00EE\u00F4\u00B1\u008C\u00A9\u0083\u00B3\u0087\x16\x0E/g\u00AEd\u00ADgo\u00FD\u0085\u00CA\u00E1<\u00CA\u009B+\u0090'~L!_\u00B3\u00C0\u00F0\u00B8Y\u00A1\u00F5\u0089='=N\u00F9\u009C\u00F6;C.\u00A2\x16\u0087\u0097\u0084\u009F\u00A5\u009E\u00A3\u0096\u0086\u0095\u0085\u009E'\u0095\u00FBT\u00B8^\u00B0\u00AB4\u00BD\u00A8~I\u00B1J\u00BEz\u00C7e\u00E9\x1A\u00FC\x15\u00F1\u00AB\u00C2\u00D7\x04\u00AE\u00F3\u00D6\u00F2\u00D4q\u00DE`\u00BE\u00F1\u00EB\u00E6f\u00FD\u00EA\u00AD\u00C5\u00DB\u00B3\r\u00A3w\x06\x1B\u009F\u00DE\u00EDjjn\u00AEo\u00B9~\u00EF\u00CA\u00FD\x0B\u00ADg\x1E\u00E4\u00B7\x1Dm\u00CF\u00EC8\u00D8\u0099\u00DCE\x7F\x18\u00F5(\u00EAqD7\u00A9\u0087\u00D8\u008B\u00EB\u009D\u00EA\u00BB\u00F5$\u00FD\u00A9m\u00BF`\u00FF\u00DC\u00B3\u0086\u00E7\u0099\x03.\u0083\u0092\u0083\u008B/\u00DA_\x16\u00BE\u00F2\x1FR\x19\u00FA\u00FE\u00FA\u00C9p\u00D1\b\u00E9\u008D\u00CA\u009Boo\x1F\u008F\x16\u008Cy\u008C\u008B\u008F\u00CFL\u00D4\u00FEM\x7F\u00A7\u00F3\u00EE\u00DBd\u00CBT\u00CA\u00B4\u00C1\u00F4\u00FAL\u00E3l\u00EA\u009C\u00D9{\u00A6\u00F7\u00BD\u00F3y\x1F\x1C?\u00F2||\u00F9\u00A9h\u00C1kQhqd\u00A9\u00F8\u00B3\u00D7\u00B2\u00D0\u00F2\u00D0\u0097\u00C2\x15\u00C7U\u00AE\u00D5\u00DE\u00AF\u0099kfk\u008C\u00F5\x07\x1B\u00C9\u009B\u00DA\u009B\u00CB\u00DFj\u00BF\u0087\u00FFP\u00FC1\u00F7\u00B3r+\u00E0\u0097\u00E4\u00AF\u00B7\u008C\u00FD\f\x06\x00\x12\u00C5\u00C4\u0087\u00C21c\u00D1\x02,\u00DC\u00AC\x1Cl\u00ACl[\u00EC\u00DF8>s\u00CEp\u00BD\u00C1\u00F4sw\u00F0\u00D4\u00F3V\u00F2\u009D\u00E2\u00CF\u00C2&\b\u0084\u00E3\u00F6\t:\t\x11\u0085\u00F5EtD\u0095\u00C5\u00D4\u00C4U%t$\u008D\u00F1\u0096R&\u00D2z2*\u00B2\u00CA;\u0094\u00E5v\u00CA\x13\x14\u0094\x15\t;u\u0094\u0088\u00CA\u00B6*^\u00AAT\u00B5$B\u008Ez\u0099F\u00A3\u00E6s\u00AD%\x1D^]-=W\u00FDd\u0083\u00CB\u0086\u00C3F\u00AC\u00C6\u00DA&\u00FBMk\u00CD\u00E6\u0089J\x16\u00E1\u00967\u00AC6\u00AD-mrmG\u00EC\u00D5\x1DR\x1D\x07\u009DE\u00F7\u0084\u00B84\u00BA!\u00DC\x1D<Nx\u008Ey+\u00FA\u00D0\u00F6\u00DE\u00F2\u00DD\u00F0\u00D3\u00F3?\x10\u00D0F\u00DA\"\x1BR\u00E2\u0083\u00EE\x06\u00AF\u0086\u00AAR\u00C3\u00C2\u00AE\u0086\x7F\u008C\u0094\u008B\u00F2\u008D.\u00A6\u00BD\u00A6\u00F3\u00C7\u00B8\u00C5\x16\u00C6\u00F5%\u00B0&\u00DA'\u00E5'?J\u0099N\u00FDt\u00E0s\u00DAZ\u00FA\u00B7\u008C\u00EF\x07\x7F\x1Df\u00CE\u00E4\u00CC\u00E2\u00CF\x16>\"\u00FE\u0097l\x0E\u00E1\u00A8A\u00AEy\u009E\u00CD1\u00A7|\u00AF\x02\u00DF\u00E3\x01\u0085\u0094\x13a'\u00A3O\u00D1N\u00D3\u00CFD\x17E\x15\u00D3J\"\u00CF\x06\u009F\x0B(\u00F5*s>oY\u00AES\u00A1rA\u00A5R\u00F9\u00A2\u00E2%\u00C5*\u0085j\u00B9\u00CB\u00B252Wd\u00AF\u00CA\\\u0093\u00BC.V+R'|C\u00E8\u00A6@=\u00DF-\u00EE\u00DB\u00DC\r\u0098;\\\u008D\\wy\u009Bp\u00CDB-B\u00F7D\u00EF\u00E3[\u00E5\x1F\u00A8\u00B6i\u00B7\u00EBw\u0098w:v\u00F9<\u00DC\u00FBh\u00F7c\u00FC\u00E3\u0095\u00EE\u00DE\u009E\u00D2\u00DE\u00C8>\u00B3'\u0082O\x16\u009F>\u00EA/y\x16\u00F9\u009C8 >\u00B0>\u00D8\u00FF\u00A2\u00F2e\u00C2+\u00C7!\u00E9\u00A1\u00B5\u00D7\u00BD\u00C3\u00A5#\u00D1o\u00CC\u00DE\u00F2\u00BE\x1D\x1F\u00BD>\u0096:n=\u00C1;1\u00FAw\u00E5\u00BB\u00B0I\u00D5\u00C9\u00E5\u00A9\u00A6\u00E9\u00E33\u00A1\u00B3&s\u0082s\u008B\u00EF\x1F\u00CE\u0097|\u0088\u00FAh\u00F9I\u00F8\u00D3\u00C7\u0085\u00FB\u008B\u00C7\u0096\u00F6}V\u00FD\u00FCc\u00B9\u00FB\u00CB\u0089\x15\u00BFU\u00C5\u00D5\u0095\u00AF\u00F7\u00D6\u00B2\u00D7\u009D7\u00846\u00C66+\u00BFQ\u00BF\x13\u00BEo\u00FE\u00B8\u00FF3c\u00CB\u00F2\x17\u00E6\u00D7sF\u00E4v\u00FF\u0091\x1BL\u00CB\u00A8\u00AF\u00CC\u009F\u00D1\u008B,\u008B\u00AC\u008Bl\x13\u00EC\u00A3\x1C\u00AF8\u009Fp\u00B5b\u00EA\u00B8\u00CByry\x13\u00F8(\u00FC\u00F6X\u0082\x00\u00B7\u00C0*nP\u00F0\u009AP\u00A6\u00B0\u00AF\bA\u0094YtX\u00ACJ<N\u00C2R\u0092[r\x1C_%\x15)m \u0083\u0096y-{eG\u009A\u009C\u00BB\u00BC\u00B2\x02\u00AB\u00C2{\u00C5\u00EE\u009D5J\u00C7\u0094cU\u00F6\u00AA\u009A\u00AB\u00A9\x12\u00C4\u00D4\u00D9\u00D474f5\x07\u00B5\u00DA\u00B5o\u00EA\u0094\u00E9\u00E6\u00E8\u00C5\u00EB\u0093\f\u00EC\rw\u00ED\u00C2\x1B\u00A1\u008D\u0096\u008D\u0087L\u00EE\u0098\u009E4\u008B7\u00A7\x12=-\u00AC,\u00F5\u00AC\u00E4v\x0BY3[\u00AF\u00DB|\u00B0}c\u00D7c\u00DF\u00E8P\u00EDX\u00EC\u0094\u00E3\u009C\u00B8'\u00C4\u00C5\u00C3\u00D5\u00DE\u00CD\u00D0]\u00D9C\u00D2\x13\u00E7\u00C5\u00E5\u008D\u00F4\u00FE\u00EA\u00F3a\u00EF\u0094\u00EF\u00DB}\u00AF\u00FC\u00FA\u00FD\u00BB\x02\x1E\u0090Z\x03[\u00C8\u00B7(\x17\u0083r\u0082\u00E9!\u00FE\u00A1\u00D6T\u00B50\u0091p\u0096\u00F0\u00B5\u0088\u0099\u00C8\u00C1\u00A8\x07\u00D1u\u00B4\u00CA\u00FDg\u00E8\x7F\u00C5$\u00C6\u0086\u00C6\u00F9\u00C5;&\x18'\u00AA%I%cSP)\u00AB\u00A9\u00EF\x0E<K{\u0090~-\u00E3\u00D4\u00C1\u00F4C\u00C1\u0087\u009D2\u00B5\u00B2p\u00D9\u0088\u00EC\u008D#\u008B\x7FM\u00E7\u00BC=:\u0090\u00DB\u009D\u00D7r\u00ECF~MA\u00E9\u00F1\u00DC\u00C2\u00F4\x13\u00B4\u0093\u0094S\u00EE\u00A7\u00AD\u00CEh\x15\u00C9\x16\x0B\u00940\u0097|=;{n\u00A4\u00B4\u00BF\u00EC\u00C1\u00F9\u00EB\u00E5e\x15'/dU\u00A6^\u008C\u00BED\u00AA\u00F2\u00AC\u00DEs\u00D9\u00A6\u00C6\u00F0\u008A\u00F4U\u00B8:v\u00ED\u00FE\u00F5\u00E2Zz\u009D\u00D3\r\u00D5\u009B\u0098\u009BK\u00F5\u00FD\u00B7\u00AE\u00DC\u00CEm\u0088\u00BE\u00E3\u00DA\u00A8}\x17ww\u00A3i\u00AC\u00B9\u00B5\u00A5\u00EC^\u00DA}R+\u00F1\u00C1\u008E6\u00E6\u00B6\u00E9\u00F6\u00AE\u008E\u00EA\u00CE\u00CC.\u00D2C\u00A3G\"\u008F\u00D6\x1F\x0FtW\u00F5\u00E4\u00F6\u0096\u00F6u<\u0099z\u00CAx&\u00F2\\\x7F\u00C0g0\u00F5E\u00E9\u00CB\u009EW\u008B\u00AF\u00C5\u0086\u009DFr\u00DF<\x1D\u00E5\x1F\x0B\x18o\u00FE\u009B\u00FF]\u00FA\u00E4\u00D7\u00E9\u0083\u00B3\u0098\u00B9\u00CB\u00F3\u00CE\x1Fy?\u00BD^\u00AC\u00FB|\u00E6K\u00E1j\u00D9Z\u00FD\u00C6\u00DCw\u00FC\u00CF\u0080_i\f\x06\u00C0\u00F6\u00EC\x03\x00@\u00EB\x00\x14\u00C7\x01xM\x02\u00B8T\x01\x14l\x01(p\x02\u00E0j\x00\u009C\u00B9\x00\u00DC\u00F4\x01\u00D1Y\x00\u0088kY\u00800/\u00F8g~\x00\x00\x12X\u0081\x17$@\x05L\u00C0\r\" \x1B.\u00C2C\u0098E\u00B0#4\x10\u00BE\u0088\u00BF\x10M\u0088\x0FHq\u00A4;2\x1F\u00D9\u00C7\u00C4\u00CAd\u00CD\u0094\u00CB4\u0088\x12AQP\u00F5(\x06\u00B3\x13\u00F3E\u00E6ohg\u00F4U\x16\x14\x0B\u0089\u00A5\u009DU\u008A\u00F50\u00EB<\u009B\x03[=\u00BB\b{&\u00FB\x02\u0087'G'\u00A7\x06g\x19\x17\x0BW\x1C\u00D7\x14\u00C6\t\u00D3\u00CA\u00AD\u00C4]\u00CC\u00C3\u00C2\x13\u00C33\u00C9\u00EB\u00CC\u00DB\u00CA\u00A7\u00C4W\u00CC\u00CF\u00CC\x1F\u00C7?\u008Bu\u00C5v\b\x10\x04*p|\u00B8,\u00DC7\u00C1\b\u00C1wB\u00DEB\u00CF\u0085w\x0B\u00B7\u008B\u00EC\x12i\x14\u00D5\x11m\x113\x16\u00EB\x14\u00B7\x16\x1F\u0090\u00F0\u0092\u0098\u0095\u00A4K2\u00F0yR\x12R\u00B7\u00A5m\u00A4'eRd\u00B1\u00B2\u00F5;\u009Cw\u00AC\u00C8\x15\u00C9\x1B\u00CBO+\u00E4)\u00EA+\u00CE\u00ED<\u00ADd\u00A1\u00B4\u00AA\\\u00AD\u00E2\u00A7*\u00A4:\u00A0\u0096C\u00B0T\x07\u00F5V\u008DtMs-&\u00ADN\u00ED,\x1D{]\t=\u00A4\u00DE\u0092\u00FE\u00B0A\u00A7\u00E1\u00ED]UF\u00A7\u008C\u00B3L\x12L\u00C3\u00CC\u00C8\u00E6\u00FB\u0088\u00AE\x16\u00D6\u0096\u00E6V&\u00BBM\u00ADMmLmw\u00DB9\u00DB\u00FB8\x049\u00D2\u009C\x0E;\x17\u00ED\u00A9w\u00E9u\u009DtGx\u00C8{:x%xW\u00FA\f\u00FBr\u00EF3\u00F0#\u00FB\u009F\n\u00E8$\u00AD\u0092\u00E5)~AE\u00C1\u00FD\u00A1h\u00EA\u00EE\u00B0\u009C\u00F0\u00FEH\u009E(\u008F\u00E8\n\u00DAg\u00BAYLn\u00EC\u00DF\u00F1Z\t9\u0089c\u00C9*)GR\u00E7\u00D3,\u00D2\u00CB2~\x1C\u00F28\u00DC\u009C%\u0099\u009Dv\u00E4m\u008E\u00C9\u00D1;y\u00BE\u00F9b\x05C\u0085%'\x03O\u00CB\u009C\u00F9X\\w6\u00AD\u00D4\u00E1<\x7F\u00F9\u00E4\u0085\u00C6\u008B\u0085U\u0094\u00CB\u00D6WT\u00AFa\u00AF\u00FF\u00A8[\u00BA\u00F9\u00FE\u00D6L\u00C3D\u00E3|\u00D3\u00DA=\u00CEV\u00996\u00C7\u008E\u00E8\u00AE\u00F4G\x15\u00DD-\u00BD\x13OY\u009E\x11\x06\u00BC^\x1C\x7F\u00D53\u008C~C\x1C\u00CD\x1D\x1F{'7\u0095:3\u00F4~\u00E7\u0087\x03\u009F\u00A6\u0097l\u0097\u00AF\u00ACr\u00AC\u00C5l\u00CC|\u00B7\u00FAy\u009F\u00C1\u00D8\u00FEI\x00;\b\u0080,\u00E8\u0080=\x04\u00C1A\u00B8\x00]\u00F0\x01\u00C1\u00870FD\"\u00CA\x11CH.\u00A452\x1B\u00F9\u0098\u0089\u008D\u00C9\u0089\u00A9\u0088i\x12\u00A5\u0084JFu3\x0B1\u00872\u00B7\u00A01h*\u00BA\u009BE\u0091%\u0087\u00E5\x13\u00AB3k\x03\u009B\x04\u00DB\x11\u00B6/\u00EC>\u00EC=\x1C\u00DA\x1C\u0095\u009C|\u009C\u00879\u00D7\u00B9B\u00B8\u00DEb\u009C0\x1D\u00DC\u00DA\u00DCWydx\u00CE\u00F2\u00F2\u00F0\x1E\u00E1\u00FD\u00C5\x17\u00CF\u00B7\u00C2O\u00E5\u009F\u00C4\u00EE\u00C5\u00BE\x16p\x14\u00E8\u00C3Y\u00E1:\x04\u008D\x04\u009B\u0084t\u0085\u00EE\nk\n\u00D7\u0089\u00A8\u008B\u00DC\x10U\x17m\x123\x16\u00EB\x12\u00B7\x13\x1F\u0092\u00F0\u0097X\u0092L\u00C5\u00B3\u00E1\u008B\u00A5vJ\u00B5K\u00BBK/\u00C8d\u00CBJ\u00C86\u00EF\u00F0\u00D8\u00B1.W$o(?\u00AA\u0090\u00A1(\u00AF\u00F8|g\u00A2\x12^\u00A9G9FEJ\u00E5\u0095j\u00A6\u009A\u00A6\u00DA\f\u00A1H\u00DDZ}K\u00A3Q3JKVkD\u00FB\u00B8\u008E\u0083.Nw]oJ\u00FF\u0089A\u00A3\u00E1\u00E5]g\u008Dr\u008C\u0093M\"L\u00FD\u00CD<\u00CD\u00F7\x10\u00AD-\u008C,u\u00AD\u00B4vkY\u00EB\u00D8h\u00DB\x1A\u00D9Y\u00D9;;\u00F88\x06;%9\u00E7\u00ED\u00A9vis\x1Dv\u00DB\u00F0\x10\u00F74\u00F7\u008A\u00F4.\u00F6y\u00EA\u00CB\u00BC\u008F\u00E0\u00E7\u00E9\x7F$\u00A0\u00814E\u00C6R\u00AC\u0083\u00D2\u0082\u00EBC\u00E6\u00A82a\u00A4\u00F0\u00F2\u0088\u0089(\u00B1h\x7FZ\u00D5\u00FE\u00A5\x18\u008D\u00D8\u00A4\u00B8\u0087\t\u0098D\u008F\u00A4\u00D2\u00E4\u00D9T\u009D\x03\u00D9i/2$\x0FF\x1Cj\u00CE\u00E4\u00CA\"e\u00D7\x1D\u00F9\u009E\u00E3p\u00F4V\u009E\u00CD\u00B1\u00AD\u0082\u009AB\u00BF\u0093\u00C2\u00A7\u009E\u009E9\\\u00AC[\u00B2v\u00AE\u00B1,\u00AA\\\u00A1b\u00BE\u00F2\u00E6\u00A5\u0084j\u00D3\x1A\u00FE+\u00EF\u00AF\u00DD\u00AF=}#\u00BE>\u00F0\u00B6\u00DD\x1D\u009D\u00BB\u00EA\u00CD\u00AA\u00F7\u00B4Z\u008D\u00DA\u00BC:(]f\u008F\u00D4\u00BBEz9\u00FB\u00B6\u009En>[\x1A\u00F8\u00F0\u00E2\u00EB\u00AB\u009F\u00C3\x1CoDF\u00B5\u00C6=\u00FFN\u0099\u00AC\u009C~9\u0087\u009A\u00D7\u00FA\x18\u00BE\u00D0\u00B0\u00B4\u00F1\u00C5h\u00F5\u00E0\u00DA\u008BM\u00C5\u00EF\u00F4\u009F\u00AF\u00FE\u00F4\u009F\x03\x04A\x0E\u00F4\u00C1\tB!\x13\u00AA\u00A0\x1B\x16\x118\x04\x11\x11\u0083\u00A8FL \x05\u0091\u00EE\u00C8\"\u00E4\x04\u0093\x1CS,\u00D3c\u0094\x18*\x015\u00C4\u00AC\u00C7\\\u0081fG\u00A7\u00A0\x17YBY\u00A6X\x03X'\u00D8\u00F6\u00B1M\u00B0\x07\u00B2\u00CFrP9\u00969\x138\x19\\9\x18\x1C\u00A6\u0092[\u008D\u00BB\u008Dg\x0F\u00CF,\u00EF\x01>,_\x1D\u00BF\x03\u00FF\"\u00B6P@W`\f\u0097'\u00B8KpA\u00E8\u0092p\u00A0\u0088\u00AC\u00C8\u0090h\u00BE\u0098\u00B58B\u00BC]\"M\u00D2\x1C\u008F\u00C2wK\x1D\u0097\u00DE+\u00A3 \u00B3&\u00DB\u00B5\u00E3\u008C\\\u00B8<Q\x01\u00A7\u00F0E\u00F1\u00E9\u00CE\u00CBJ\x07\u0095}U\u008CU\u00A5\u00D5\u0098\u00D4f\t\u00BD\u00EA\u00B5\x1AE\u009A\x07\u00B5\u0082\u00B5\x1Duv\u00E9\u00AA\u00EB\u00E9\u00EA\x1B\x19\u0098\x1A\u00DA\u00EC\u00F24\"\x19\u0087\u009B\u00C4\u009B\x1E6;m~\u0099x\u00DB\u00A2\u00D3r\u00C8\u00EA\u00935\u00CAF\u00C8V\u00DB\u00CE\u00CD>\u00C6\u00E1\u0084c\u0083\u00D3\u00E8\x1E\u00B4\u008B\u0096\u00AB\u00BF[\u0081{\u00AF'\u00C2\u00CB\u00CC;\u00DD\u00A7\u00DBW`\u009F\u00BD_\u009A\x7FS\u00C0R\u00A0\"\u0099B\u00A9\x0E\u009A\x0F\u0091\x0B\u008D\u00A0\u00B6\u0084\u00A3\"\u00DC\"/D}\u00A5\u00D9\u00ED\u00AF\u00A63b\u00BD\u00E3\u009A\x13\u0084\x13\x13\u0092^\u00A4h\u00A5\u0096\u00A7\u00A1\u00D3C3\x06\x0Ei\x1D.\u00CF\u00C2d\u00C7\x1F\x19\u00CD\u00D9}\u00B4#\u00CF\u00E3\u00D8FAa\u00A1\u00E6\u0089\u00F1S\u00E9g\u00A4\u008B\x1E\u0095\u0084\u009F\x13-\u00ED8O\u00AE\u00E0\u00B8\u00D0|1\u00AC\n[\u00DDS\u0093qU\u00E7\u00DABm\u00D5\rJ\u00BD\u00E2\u00AD\u00A5\u0086\u00DA\u00C6\u00A4&\u00BB\x16\u0089{+\u00AD\u00CF\u00DA\u00EEv$u\u00CE?t|t\u00BF\u009B\u00D0s\u00B5O\u00E2\u00C9\u00C9~\u00F4\u00B3\u00A4\u00E7\u00AB\u0083\u00DE/\u009E\u00BD\u00D2\x1B*\x1F\u0086\x11\u00EF77GQc\u00EE\u00E3\u00E7'&\u00DE\u00C9N\u00FAN\x1D\u009B\u00BE732\u00BB\u00F6\x1E;\u00AF\u00F4\u00C1\u00F4\u00A3\u00E3'\u0097\x05\u00A7E\u0087%\u00DB\u00CF&\u00CB\x1A_\u00F0+\u00EC+\u009FW\x07\u00BF\u00D6\u00AD\u00E5\u00ADS7\u00CC7y6'\u00BE]\u00FF\u009E\u00FC\u00C3\u00E6\u00A7\u00E0\u00CF\u00F1\u00AD\u00B2_]\f\x06\u00C0\u00F6\u00BE\x04\x00\x00\u00EC\u00C4\u00E8\u0088h:\u00DE\u009Eh\x01\u00FF\u00BF\x12\x19\x11\u00F7\x0F\x07\x0F\x00pRcm\u00DC\x00\x00\x0B\x00\x03\u00C1t+\x17\x000\x07\u0080\u0099\u00A8@G'\x00\u00E0\x03@\u00C8\x05\u00C5X\u00BA\u00FE\u00C6z\u00C1T+\u009B\u00EDX\u0084--\u00D6\u00D9\r\x00\u0084\x00\x10>\u00C9\u00A1n\u009E\x00\u0080\x01@\u00D0\u00C3H\u00B6\u00CE\u00BFqFT\u0084\u00A3=\x00\u00E0\x00\x10\u00F9\u0094 \x0B\u00CB\u00DF\u00B1\u0097\u00E8q.\u00EE\x00 \x0B\u0080h\b\u008F\u00B6s\x01\x00N\x00\u00C4HP\u0094\u00FB?\\31\u00F1\u00AE\u00FF\u00F8\u00AFSH\x16v\x00 \x06\u0080D'\u0087\x12\x1D\u00B7\u00FD\u0091\u00D2`\x0FD\u00B0\x00<\u0090!\x1A\" \x1A\u00E8@\u0085^ \x03\x1DH\x10\x05xx\x07x \x03\x1D\u00A8\x10\x03\u00B1@\u00828H\x04<D\x00\x15\u00F6C\x1CP\u0081\x02A\x10\u00F3;>\x0E\" \b\u00E2\u0080\x0EV@\x02:\u0084@\x10\u00A8\u00FCf\u00F8\u00EF<\x1E0\x03t\u00A0\u00FE/\x1ET\u00A0@\u00B4?\u00F5\x10=\u00F2Vp|qt\u0092\u0081G(\u00E1\x1A\u00E1\x03\u00E1'\u00E0\x7F{\u00DB\u00FDa\f\u0082\u00A8?\u0099\u00B6\u00D9\x03\u00FF\u00D1Qr(\r\u00946\u00CA\x1Ce\u00842F\u00E9\x03\x1E\u0085C\u0089\u0080\nJ\x0B\u00A5\u00872C\u0099\u00A0\fQ\u00DA(\u00FDg\x0Bw\x17\u00FEd%\u00FE\u00A9\x00\u00FF'\u00E3\f\u00D0!\u00E4?jU\u0081` \x01\x1D\u00E2!\bb \x1C\u00E6\u0080\x0E\u0091\u00FE\u00D4C\u00FF\u00C6\u00C1\u00F6\u00AE\x0E\x00\u0080\u00E6\x01(\r\x00\x00h\u00DBL\u00C9\u00F8\u00CFw\x15\x1B\u0094\x18\x0B\x00@\u008C\u00A6%\u00D1\u00A9!\u00A1\u00B1x3\x1A-\"\bO\u008C\u008E\u00A4\u00C5\u00C5\x06\u00D1\u0095\u00F16QdUe\u00BC\x06\u0081\u00A0\r\x00\u00F0_\x14\u00F7T\u00A9\u00D4J\u008B\u00F2\x00\x00\x00 cHRM\x00\x00m\u0098\x00\x00s\u008E\x00\x00\u00E2\u00F9\x00\x00\u0086\u0099\x00\x00x\u0083\x00\x00\u00D4N\x00\x003\u00BC\x00\x00\x1Cyc\u00E1\x1F,\x00\x00\x00\u00A2IDATx\u00DA\u0094\u0091\u00B1\r\u00840\x10\x04\u00C7>\x07\u00D0\n=P\x07\x05\u0090\"\u008AA\u00A4\u00D4@\x05n\u00C3]\\\u008C\x03l\x7F\u00F0\x12\u00C9\x0B\u00F0_x\u00BA\u00DB\u00DD\u00D1\x1AU-)%D\x04\x11!\u00E7L)\u0085\u00DAq\x00\"\u0082\u00B5\u0096\u0094\u00D2\u00CF\u00C14M\u00B7\u00CF\u00EB\u00BAbT\u00B5\x18cn]\u009B\u00A6\u00B9\x15\u00881~\x13<E\u008E1\u00BE#\u00EC\u00FB\u008E\u00F7\u00FEZ\u00F6}\u00CF0\f\u00F5\b\u00CE9\u0096e!\u0084@\u00D7u\u00CC\u00F3\u00CCy\u009EU\bFU\x0B@\u00CE\u0099m\u00DB\x18\u00C7\x11kmu\x0B\u0097\x00@\u00DB\u00B6\x1C\u00C7\u00F1\x7F\x0BO\x0Eo\b\u009F\x01\x00\u009B\u00FDU\u00A2t\u00A1Hz\x00\x00\x00\x00IEND\u00AEB`\u0082"));
                   myFlyoutIcon.encoding = "BINARY";
                   myFlyoutIcon.open( "w" );
                   myFlyoutIcon.write( binData );
                   myFlyoutIcon.close();
               } // the above code to create the file should only execute once for each user on the machine
              palette._flyoutMenu = {}; // this object will hold the menu related stuff - prefaced with an underscore to avoid naming collisions
              palette._flyoutMenu.items = menuItems;
              palette._flyoutMenu.callback = callback;
              palette._flyoutMenu.draw = function( palette ) { // actually draw the menu          
                   // add the dropdownlist object to the window
                   palette._flyout = palette.add( "dropdownlist", [ ( palette.frameSize.width - 20 ), 0, palette.frameSize.width, 20], palette._flyoutMenu.items );
                   // make sure nothing is selected
                   palette._flyout.selection = null;
                   // add the onDraw method that will draw the icon instead of the normal dropdownlist
                   palette._flyout.onDraw = function() {
                        this.graphics.drawImage( ScriptUI.newImage( myFlyoutIcon ), 0, 0 );
                   // add the onChange method to fire off the callback
                   palette._flyout.onChange = function() {
                        this.window._flyoutMenu.callback( this.selection );
                        this.selection = null;
              // execute the draw function to place the flyout in the window
              palette._flyoutMenu.draw( palette );
    // sample usage
         // create the menu items
         var menuItems = [ "One", "Two", "Three", "-", "Four", "Five" ];
         // create the callback function
         sampleCallback = function( selection ) {
              // just letting all the menu items fall through for this demo
              switch( selection.text ) {
                   case "One" :
                   case "Two" :
                   case "Three" :
                   case "Four" :
                   case "Five" : {
                        alert( selection.text );
         // create the palette
         var myPalette = new Window( "palette", "Fly Out Menu Demo" );
         // adding some static text, just because
         myPalette.add( "statictext", undefined, "Demonstration of using ScriptUI drawing to customize control appearance" );
         //center and show the palette
         myPalette.center();
         myPalette.show();
         // add the flyout menu
         addFlyout( myPalette, menuItems, sampleCallback );

  • Performance tuning questions

    i am fresher in sap-abap. so i have some doubts.
    how to increase performance in a report. what r the minimum steps to follow.
    expecting the answer more clearly

    Hi Josh,
    Here is a detailed document for performance check:
    <b>AWARD POINTS IF IT HELPS:</b>
    5.1     SQL 
         In order to enhance the performance of your ABAP code a number of useful guidelines can be used.
    •     Use SELECT SINGLE wherever possible to retrieve up to one row of information.  It is important to specify all the key fields to ensure a unique record.
    •     Be careful using the FOR ALL ENTRIES addition since this is very bad for very large datasets (10,000+ records)
    •     Joins and subqueries are good
    •     Do not use SELECT * statement unless the program needs ALL columns from the table. Instead, only specify the fields you require. This will also avoid unnecessary network transports.  The addition INTO CORRESPONDING FIELDS of the INTO clause of the SELECT statement is worthwhile to use only for large amounts of data where the external table and destination fields have the same names. Consider the use of the DISTINCT option in the case of many duplicate entries.
         The following example compares selecting all fields to selecting only the document number, the item number and the material.
         Avoid:.  select   *      from vbap
                                         where vbeln in s_docno.
                   endselect.
         Use:     select vbeln posnr matnr
         into (wa_vbap-vbeln, wa_vbap-posnr, wa_vbap-matnr)
         from vbap
         where vbeln in s_docno.
                   endselect.
    Important Points:
         The order of the fields retrieved must match the order of the destination fields in the field list.
    •     Use the SELECT...WHERE clause to restrict data rather than retrieve all rows and use a CHECK or IF statements to filter data.
         Avoid:     select  vbeln  posnr matnr
         into (wa_vbap-vbeln, wa_vbap-posnr, wa_vbap-matnr)
         from vbap.
                      check s_docno.
                   endselect.
         Use:     select vbeln  posnr matnr
         into (wa_vbap-vbeln, wa_vbap-posnr, wa_vbap-matnr)
         from vbap
         where vbeln in s_docno.
                   endselect.
    Important Points:
         Order the columns in the where clause of a select in the same order as the key or index table.
    •     WHERE Clause Tips
    o     Exploit the indexes of  the database tables for an efficient use of the WHERE clause. To do so check all index fields with the equality operator (EQ, =) and concatenate these checks by AND. The primary key of a database table makes up its primary index automatically. Secondary indexes for a database table can be created in the ABAP Dictionary.
    o     If possible, include all columns of the key or an index in the where clause. Use a default or appropriate value. If the column(s) is not included, the database may not be able to fully utilise the index.
    o     Avoid complex WHERE clauses. The system must split up those into single statements for the database system.
    o     Do not use the logical NOT in WHERE clauses but inverted operators instead. The logical NOT is not supported by the database indexes.
    •     Try to avoid the select … endselect  programming construct. Rather select all the required records from the database directly into an internal table and loop at the table to process the entries.  This is usually faster than the select … endselect code, and also allows easier debugging of the code.
         Avoid:     select vbeln  posnr matnr
         into (wa_vbap-vbeln, wa_vbap-posnr, wa_vbap-matnr)
         from vbap
         where vbeln in s_docno.
                       write:/ wa_vbap-vbeln, wa_vbap-posnr, wa_vbap-matnr.
                   endselect.
    Use:     select vbeln posnr matnr into table ts_vbap
                   from vbap
                   where vbeln in s_docno.
              loop at ts_vbap into wa_vbap.
                   write:/ wa_vbap-vbeln, wa_vbap-posnr, wa_vbap-matnr.
              Endloop.
    •     Avoid nested select statements if possible as they generally have  poor performance.  It is preferable to select all the entries for each table directly into an internal table and use nested internal table loops to process all the entries. 
    •     Check runtime analysis tips and tricks for detailed comparisons in select performance (SM30). SELECT statements.
    •     Use aggregate expressions in the SELECT clause to perform calculations instead of transporting great amounts of data and calculating thereafter.  This distributes the processing load and minimises the network data transfer.  Valid aggregate functions include: MAX, MIN, AVG, SUM and COUNT.
    •     The storage of database tables in local buffers can lead to significant time savings. Use the buffering of database tables whenever possible. Use the addition BYPASSING BUFFER only if it is really necessary.
    If DISTINCT, SINGLE FOR UPDATE, and aggregate expressions are used in the SELECT clause, buffering should be turned off.
    •     Provide the appropriate selection criteria to limit the number of data base reads. Force users to provide selection criteria by evaluating the selection criteria entered on the selection screen during the AT SELECTION-SCREEN event.
    •     Create indices where needed to enhance query performance. This should be used in large table lookups to increase efficiency. For example, SELECT…WHERE FieldA = ‘001’. In this case FieldA is not a key field, therefore an index should be created to improve the efficiency of the select statement.  Beware that there is always an additional processing system overhead for indices.  Therefore, only create indices if a major performance benefit will be realised, especially if the program concerned is executed many times throughout the day and is business critical.
    5.1.1     SQL Checklist
    •     Keep the selected dataset small
    •     Keep the transferred data small
    •     Keep the number of database accesses small
    •     Use database buffers
    •     Create views for table joins instead of using multiple selects.
    •     Select data only one time where possible (i.e., don’t have multiple selects against the same table - get the data one time and store it in an internal table).
    •     Remove unused indexes from tables.
    5.2     General Programming Techniques
         Detailed below are a number of additional programming techniques that should be borne in mind when implementing ABAP code.
    •     When testing fields "equal to" something, one can use either the nested IF or the CASE statement.  The CASE is better for two reasons.  It is easier to read and the performance of the CASE is more efficient.
    •     Do not use MOVE CORRESPONDING unless the data is contiguous.
    •     When records a and b have the exact same structure, it is more efficient to MOVE a TO b than to MOVE-CORRESPONDING a TO b, if records a and b have the exact same structure.
                   MOVE  BSEG TO *BSEG.  is better than
                   MOVE-CORRESPONDING BSEG TO *BSEG.
    •     Do not use the COLLECT statement with large internal tables as this can be very CPU intensive.
    •     When reading a single record in an internal table, the READ TABLE WITH KEY is not a direct READ on a on a sorted table.  Therefore, SORT the table and use READ TABLE WITH KEY BINARY SEARCH.
    •     Use the SORT...BY when sorting internal tables.
              SORT ITAB BY FLD1 FLD2.  is more efficient than
                   SORT ITAB.
    •     Avoid hard-coding and use of literals in ABAP code. Use reference tables to drive processing to support business change flexibility and reduce ongoing maintenance costs.  If hard-coding and literals are required, be sure to include these as constants.
    •     The Tips & Tricks function is very useful in comparing different methods of coding without going to the trouble of coding both and then performing your own run-time analysis. System > Utilities > Runtime Analysis > Tips & Tricks.
    5.3     Logical Databases
    Use logical databases and ‘GET’ events wherever reads on parent/child segments need to be performed e.g. require data from both MARA then MARD table - use GET MARA then GET MARD. (Note you do not need to use an LDB if data from only the MARA or MARD table is required.)
    Where an LDB is used provide defaults or checks for the standard selection-options/parameters wherever possible.
    Avoid use of  logical data bases as much as possible - use SELECT  statements instead. (Logical databases are good as a reference tool to look up database hierarchies).
         &#61558;     Logical database should only be used when there are no other options.
    &#61558;     Use of Logical database in ABAP programs must be approved by a DEVELOPMENT TEAM LEAD
    &#61558;     Due to strategic importance of LDB’s and the potential impact on system performance, careful consideration should be made before creating new LDB’s. Consequently no LDB’s should be created without approval from the Development Team Lead
    5.4     Debugging
    When testing ABAP, use of the debugging tool plays an essential role in checking the value of variables during the execution of the program.  This tool should be used during the unit testing to ensure programs are executing as desired.
    You can use the debugging tool by selecting Program > Debugging from the ABAP program Development Initial screen.
    In addition to the static programming of breakpoints, ABAP’s on-line debugging tools also allow you to set breakpoints and interrupt conditions dynamically.  This makes the whole process of debugging reports much more flexible and the consequent advantage is that you do not have to change your code. Watchpoints can now be set based on the value a field takes (like R/2).
    Once you have stopped the report processing, you can view the contents of all the fields (up to 8), internal tables and database tables referenced in the report.  The system fields SY-TABIX and SY-DBCNT are now displayed at the bottom of the screen along with SY-SUBRC.
    Finally, you can change the contents of fields for debugging purposes and then resume report processing, with the changed data.  To set breakpoints select Breakpoints > Set from the ABAP: Editor screen.  Then execute the program.
    Beware that in order to debug SAPscript programs, hard-coded breakpoints are often required. Be sure to remove these once testing is complete and the program transported. Use the syntax BREAK username, rather than BREAK-POINT, as this will ensure the code only stops when running under the specified username.
    6     SAPscript Techniques
    6.1     Good Practice
    •     Always copy the SAP standard print programs where available and, in most instances, the layout set. Never start a complex SAPscript (e.g. Invoice, Purchase Order) from the beginning, as this will require far more development time to complete.
    •     When creating a new layout set by copying a SAP standard, always change the original language from D to E and then activate.
    6.2     Standards
    •     Naming convention for layout sets – this will follow the same as the program name, except the version number will be prefixed L. For example a purchase order layout set would be:
    ZMM_DESC where
    Z          First character of the program
    MM          SAP R/3 module/component
    DESC          Meaningful description i.e. PO printing, INVOICE.
    •     When copying SAP standard print programs ensure they have a standard header block as defined earlier. Also ensure that any code that is added, removed or changed is commented in the standard fashion.
    6.3     Standard Texts
    •     These should be of the following format:
         ZXX_DESC
    Where:
    Z          First character of the program
         XX          Module name
         DESC          Meaningful description.
    6.4     Tips
    •     Text elements must be maintained individually for each layout set language. Any other changes to the layout set i.e. window size or paragraphs, will be copied from the original language to the other languages.
         &#61558;     As layout sets are client-dependant they must be ‘transported’ between clients on the same box. To do this use the ‘Copy from Client’ function from within the ‘target’ client. This is language specific.
    &#61558;     Always ACTIVATE the layout set each change and in each language before transporting.
    &#61558;     The SAPscript debugger can be sent useful, this is turned on at the front screen on transaction SE71.
    &#61558;     Standard text used within a layout set must be assigned to a transport request using the program RSTXTRAN. Once assigned the transport request can be released in the usual manner via SE10.
    7     Changing the SAP Standard
    •     You can adjust the R/3 System to meet your needs in the following ways:
    o     Customizing: This means setting up specific business processes and functions for your system according to an implementation guide. The need for these changes has already been foreseen by SAP and an implementation procedure has been developed.
    o     Personalization: This means making changes to certain fields' global display attributes (setting default values or fading fields out altogether), as well as creating user-specific menu sequences.
    o     Modifications: These are changes to SAP Repository objects made at the customer site. If SAP delivers a changed version of the object, the customer's system must be adjusted to reflect these changes. Prior to Release 4.0B these adjustments had to be made manually using upgrade utilities. From Release 4.5A, this procedure has been automated with the Modification Assistant.
    o     Enhancements: This means creating Repository objects for individual customers that refer to objects that already exist in the SAP Repository.
    o     Customer Developments: This means creating Repository objects unique to individual customers in a specific namespace reserved for new customer objects.
    •     If your requirements cannot be met by Customizing or personalization, you may either start a development project or try using a CSP solution (= Complementary Software Product).
    •     A development project falls into the customer development category if the SAP standard does not already contain functions similar to the one you are trying to develop. If, however, a similar SAP function exists, try to assimilate it into your development project by either enhancing or modifying it, by using a user exit, or simply by making a copy the appropriate SAP program.
    •     Modifications can create problems, as new versions of SAP objects must be adjusted after an upgrade to coincide with modified versions of SAP objects you have created. Prior to Release 4.0B these adjustments had to be made manually using upgrade utilities. From Release 4.5A, this procedure has been automated with the Modification Assistant.
    •     Thus, you should only make modifications if:
    •     Customizing or personalizing cannot satisfy your requirements
    •     Enhancements or user exits are not planned
    •     It would not make sense to copy the SAP object to the customer namespace.
    7.1     Originals and copies
    •     An object is original in only one system.  In the case of objects delivered by SAP, the original system is at SAP itself. These objects are only copies in customer systems.  This applies to your development system and all other systems that come after it.
    •     If you write your own applications, the objects that you create are original in your development system.  You assign your developments to a change request, which has the type Development/Correction.
    This request ensures that the objects are transported from the development system into the subsequent systems
    7.2     Corrections and repairs
    •     Changes to an original are called corrections.  They are recorded in a change request whose tasks have the type "Development/correction". 
    •     If, on the other hand, you change a copy (an object outside its own original system), the change is recorded in a task with the type "Repair". Repairs to SAP objects are called modifications. 
    •     When you repair your own objects (for example, if something goes wrong in your production system), you can correct the original in your development system straight away. When you change copies, you must correct the original immediately!
    •     However, you cannot do this with SAP objects, because they are not original in any of your systems.
    •     You should only modify the SAP standard if the modifications you want to make are absolutely necessary for optimizing workflow in your company. Be aware that good background knowledge of application structure and flow are important prerequisites for deciding what kind of modifications to make and how these modifications should be designed.
    7.3     Modifications and upgrades
    During an upgrade or an import of R/3 Support Packages, new objects delivered overwrite existing objects of the SAP standard. In order to help customers keep those objects that have been modified in a previous release, SAP now offers upgrade adjustment for all objects being upgraded in the form of transactions SPAU and SPDD. These transactions allow customers to enter their modifications into the corresponding new objects being delivered at upgrade. The Modification Assistant supports this process of adopting customer modifications. In general, objects altered using the Modification Assistant can now be automatically accepted into the upgraded system if the modifications undertaken in the original version do not directly overlap those made in the customer version. If collisions occur between the two versions at upgrade (naming collisions, or if SAP has deleted an object modified by a customer), the system offers semi-automatic adjustment support. In some cases, however, you may still have to manually adjust objects using ABAP Workbench tools.
    •     Whenever you upgrade your system, apply a support package, or import a transport request, conflicts can occur with modified objects.
    •     Conflicts occur when you have changed an SAP object and SAP has also delivered a new version of it.  The new object delivered by SAP becomes an active object in the Repository of your system.
    •     If you want to save your changes, you must perform a modification adjustment for the objects.  If you have a lot of modified SAP objects, your upgrade can be slowed down considerably.
    •     To ensure consistency between your development system and subsequent systems, you should only perform modification adjustments in your development system.  The objects from the adjustment can then be transported into other systems.
    7.4     Modifications Procedures
    •     A registered  developer must register changes to SAP objects. Exceptions to this registration are matchcodes, database indexes, buffer settings, customer objects, patches, and objects whose changes are based on automatic generation (for example, in Customizing). If the object is changed again at a later time, no new query is made for the registration key. Once an object is registered, the related key is stored locally and automatically copied for later changes, regardless of which registered developer is making the change. For the time being, these keys remain valid even after a release upgrade.
    •     How do you benefit from SSCR (SAP Software Change Registration)?
    o     Quick error resolution and high availability of modified systems
    All objects that have been changed are logged by SAP. Based on this information, SAP's First Level Customer Service can quickly locate and fix problems. This increases the availability of your R/3 system.
    o     Dependable operation
    Having to register your modifications helps prevent unintended modification. This in turn ensures that your R/3 software runs more reliably.
    o     Simplification of upgrades
    Upgrades and release upgrades become considerably easier due to the smaller number of modifications.
    7.5     Modifications Assistant
    The aim of the Modification Assistant is to make modification adjustments easier. This is because (among other reasons) the modifications are registered in a different layer
    •     If you want to change an SAP object, you must provide the following information:
    o     SSCR key
    o     Change request
    •     The system informs you that the object is under the control of the Modification Assistant. Only restricted functions are available in the editor.
    •     You can switch the Modification Assistant on or off for the entire system by changing the R/3 profile parameter eu/controlled_modification. SAP recommends that you always work with the Modification Assistant.
    •     You can switch off the Modification Assistant for single Repository Objects.  Once you have done so, the system no longer uses the fine granularity of the Modification Assistant.
    •     In modification mode, you have access to a subset of the normal editor tools.  You can access these using the appropriate pushbuttons.  For example, in the ABAP Editor, you can:
    o     Insert
    The system generates a framework of comment lines between which you can enter your source code.
    o     Replace
    Position the cursor on a line and choose Replace.  The corresponding line is commented out, and another line appears in which you can enter coding.  If you want to replace several lines, mark them as a block first.
    o     Delete
    Select a line or a block and choose Delete.  The lines are commented out.
    o     Undo modifications
    This undoes all of the modifications you have made to this object.
    o     Display modification overview
    Choose this function to display an overview of all modifications belonging to this object.
    7.6     Restoring the original
    You can reset all of the modifications that you have made to the current object using the Modification Assistant by choosing this function.  The record of the modifications is also deleted.
    Remember that you cannot selectively undo modifications to an object.  You can only undo modifications based on the "all or nothing" principle.
         &#61558;     Any modifications in standard SAP object will require proper justification and needs to be documented. The rights of modification the standard SAP object is limited to PROJECT MANGER only.
    Cheers,
    ashish.

  • Synchronizing session-scope objects?

              Hi,
              I have this problem, using Weblogic 5.1 SP8:
              In a JSP-file I use a java-object with the useBean-directive and
              session-scope.
              The problem occur when a user (for some strange reason) decides
              to double-click in his browser on a link pointing to this
              JSP-page.
              This makes the weblogic server start two separate request-threads to the same page
              in the same session. This will sometimes screw up tha data that the java-object holds
              since both threads at the same time uses the same object.
              The only solution that I have found is to put synchronized blocks in the JSP-file
              either synchronizing the java-object or the session-object.
              Does anyone have any similar problems or perhaps any opinions?
              regards/
              H Waller
              

              The problem we discussed (and fixed)was specifically in
              WLCS 3.2.
              If you are not using WLCS, you will not experience THAT problem.
              If you are using member servlet, member JSP variables or static
              variables, you will see a similar problem - don't.
              If it is data in the httpSession - you have to rethink your
              design.
              Mike
              "Ashutosh Khandelwal" <[email protected]> wrote:
              >
              >Hello Ture and Mike,
              >
              >I have been experiencing problems when a user decides to double-click
              >in the browser
              >pointing to a servlet. This makes the weblogic server start two seperate
              >request-thread
              >to the same page in the same session. This always screws up the data.
              >I am using
              >WLS 5.1 with SP8.
              >
              >According to your previous emails, this was only a problem with WLCS3.2,
              >which
              >uses PipelineSession. You have also indicated that this should not be
              >happening
              >with WLS 5.1 or 6.0 with SP8 or above.
              >
              >Well, I continue to have this problem with WLS5.1. Do you have any suggestions/opinion,
              >etc.
              >
              >regards,
              >
              >Ashu
              >
              >
              >
              >"Mike Reiche" <[email protected]> wrote:
              >>
              >>Thanks for the fast turn-around.
              >>
              >>- Mike
              >>
              >>Ture Hoefner <[email protected]> wrote:
              >>>Hello Mike,
              >>> As you know, a WLCS 3.2 (Commerce Server)
              >>>patch now exists for this problem. I thought
              >>>that I should post the details here to clear
              >>>up any confusion in the WebLogic user
              >>>community.
              >>> The problem that Mike experienced was that
              >>>the WLCS PipelineSession was keeping all
              >>>request-scoped attributes in a single bucket,
              >>>so concurrent requests from a single session
              >>>were experiencing naming collisions. Also,
              >>>one pipeline would empty the bucket when
              >>>finished, but other concurrent piplines may
              >>>have been using the bucket. This was not a
              >>>problem with WLS. It was a limitation of the
              >>>design of WLCS 3.2 PipelineSession, which is
              >>>not used in WLS 5.1 or 6.0.
              >>> Our engineering team has quickly responded:
              >>> they have designed and implemented a
              >>>PipelineSessionExtended that uses multiple buckets.
              >>> Each bucket is associated with a
              >>>request using a unique requestId.
              >>> A patch and details of the design fix and
              >>>use of the patch are available from support.
              >>>Please reference CR043462 when requesting the
              >>>patch.
              >>>
              >>>Mike Reiche wrote:
              >>>
              >>>> I don't mind that the HttpSession is shared,
              >>>my problem
              >>>> is that the PipelineSession is shared - because
              >>>that
              >>>> breaks <pipeline:getProperty > tags. When
              >>>I save a Pipeline
              >>>> propert as REQUEST_SCOPE, that's exactly what
              >>>I expect. But
              >>>> apparently, it's scope is beyond a request.
              >>>>
              >>>> What about a PageContext? That's not shared
              >>>between requests,
              >>>> is it? Maybe that's where REQUEST_SCOPE variables
              >>>should be
              >>>> stored.
              >>>>
              >>>> Mike
              >>>>
              >>>> Robert Patrick <[email protected]>
              >>>wrote:
              >>>> >Hmm...
              >>>> >
              >>>> >I always thought that it was browser specific
              >>>whether
              >>>> >the multiple browser windows
              >>>> >shared or did not share the same session
              >>>(and the Netscape
              >>>> >and IE do exactly the
              >>>> >opposite thing here). Regardless of the
              >>>multiple window
              >>>> >scenario, this can and will
              >>>> >happen if you have multiple frames in the
              >>>same window
              >>>> >making requests concurrently (or
              >>>> >possibly if you double-click on a link causing
              >>>the browser
              >>>> >to generate two requests to
              >>>> >WebLogic).
              >>>> >
              >>>> >Anyway, the crux of the matter is that your
              >>>servlets/JSPs
              >>>> >must be prepared to deal with
              >>>> >multiple requests from the same user accessing
              >>>the same
              >>>> >session. The servlet/JSP spec
              >>>> >doesn't, to my knowledge, address this issue.
              >>> You will
              >>>> >probably need to add
              >>>> >synchronization code somewhere, I would just
              >>>make sure
              >>>> >that you are synchronizing on an
              >>>> >object that is only used by one user (e.g.,
              >>>session) and
              >>>> >keep the synchronization
              >>>> >blocks as short as possible...
              >>>> >
              >>>> >Hope this helps,
              >>>> >Robert
              >>>> >
              >>>> >Michael Reiche wrote:
              >>>> >
              >>>> >> BEA says that's just your imagination....
              >>>> >>
              >>>> >> FR: nelson
              >>>> >>
              >>>> >> CASE_ID_NUM: 222714
              >>>> >> MESSAGE:
              >>>> >> Hi Michael,
              >>>> >>
              >>>> >> The Commerce Server is nothing more then
              >>>an application
              >>>> >riding
              >>>> >> on top of WebLogic Server.
              >>>> >> The HTTPSession is still being managed
              >>>by the WebLogic
              >>>> >Server,
              >>>> >> and not the Commerce Server.
              >>>> >> As I mentioned on my previous email, prior
              >>>to and including
              >>>> >SP6
              >>>> >> for WLS 5.1, the spawning of a child browser
              >>>window,
              >>>> >does create
              >>>> >> a shared HTTPSession, thus creating a shared
              >>>PipelineSession.
              >>>> >>
              >>>> >> If you have indeed upgraded to SP8 for
              >>>WLS 5.1, then
              >>>> >this should
              >>>> >> not be happening.
              >>>> >> Can you tell us exactly how you are spawning
              >>>the new
              >>>> >browser window,
              >>>> >> such that both requests are being sent
              >>>almost concurrently.
              >>>> >> Also, can you send us a copy of your "weblogic.log"
              >>>> >file from the
              >>>> >> Commerce Server as an attachment. If it
              >>>is large, please
              >>>> >zip it.
              >>>> >>
              >>>> >> Regards,
              >>>> >> Nelson Paiva
              >>>> >> WLCS DRE
              >>>> >>
              >>>> >> **********
              >>>> >> If you are replying to this email, please
              >>>DO NOT modify
              >>>> >the subject
              >>>> >> of
              >>>> >> this email in order to ensure that your
              >>>reply is processed
              >>>> >automatically.
              >>>> >>
              >>>> >> You can now "AskBEA" Customer Support questions
              >>>on the
              >>>> >web and
              >>>> >> get
              >>>> >> immediate responses. "AskBEA" is available
              >>>on http://www.bea.com/support/index.html
              >>>> >> **********
              >>>> >>
              >>>> >> "H Waller" <[email protected]>
              >>>wrote:
              >>>> >> >
              >>>> >> >Hi,
              >>>> >> >
              >>>> >> >I have this problem, using Weblogic 5.1
              >>>SP8:
              >>>> >> >
              >>>> >> >In a JSP-file I use a java-object with
              >>>the useBean-directive
              >>>> >> >and
              >>>> >> >session-scope.
              >>>> >> >The problem occur when a user (for some
              >>>strange reason)
              >>>> >> >decides
              >>>> >> >to double-click in his browser on a link
              >>>pointing to
              >>>> >this
              >>>> >> >
              >>>> >> >JSP-page.
              >>>> >> >This makes the weblogic server start two
              >>>separate request-threads
              >>>> >> >to the same page
              >>>> >> >in the same session. This will sometimes
              >>>screw up tha
              >>>> >> >data that the java-object holds
              >>>> >> >since both threads at the same time uses
              >>>the same object.
              >>>> >> >
              >>>> >> >The only solution that I have found is
              >>>to put synchronized
              >>>> >> >blocks in the JSP-file
              >>>> >> >either synchronizing the java-object or
              >>>the session-object.
              >>>> >> >
              >>>> >> >Does anyone have any similar problems
              >>>or perhaps any
              >>>> >opinions?
              >>>> >> >
              >>>> >> >regards/
              >>>> >> >H Waller
              >>>> >
              >>>
              >>>--
              >>>Ture Hoefner
              >>>BEA Systems, Inc.
              >>>2590 Pearl St.
              >>>Suite 110
              >>>Boulder, CO 80302
              >>>www.bea.com
              >>>
              >>>
              >>
              >
              

  • Please explain we what SPDD and SPAU are??

    Can somebody elaborate me on what SPDD and SPAU transactions are??

    hi rahul,
    During an upgrade or the import of an Support Package, existing objects of the SAP standard are overwritten with the objects redelivered. To help the customer retain the objects modified in a previous release, SAP provides all modified objects which are redelivered (in an upgrade or Support Package) in the upgrade adjustment of transactions SPAU and SPDD. These transactions allow customers to enter their modifications into the corresponding new objects being delivered at upgrade. The Modification Assistant supports this process of adopting customer modifications.
    In the past, all objects modified by a customer and delivered again by SAP, an IBU or an SAP partner, had to be manually re-modified during an upgrade. Now, modifications are either automatically adopted or the system provides you with an assistant for adjusting your modifications to the newly upgraded configuration.
    In general, objects altered using the Modification Assistant can now be automatically accepted into the upgraded system if the modifications undertaken in the original version do not directly overlap those made in the customer version. If collisions occur between the two versions at upgrade (naming collisions, or if SAP has deleted an object modified by a customer), the system offers support during the upgrade, which means that a semi-automatic adjustment is made. In some cases, however, you may still have to manually adjust objects using ABAP Workbench tools.
    Objects modified according to the old system used prior to the advent of the Modification Assistant must be manually maintained after an upgrade has been run.
    Use transactions SPDD and SPAU during an upgrade to select these objects and modify them manually.
    Transaction SPDD allows you to adjust modifications to ABAP Dictionary objects during an upgrade.
    Transaction SPDD
    Transaction SPAU allows you to adjust programs, function modules, screens, interfaces, documentation, and text elements after an upgrade.
    plz reward if useful..

  • Any suggestions to avoid refreshing of TabPanel content of TabStrip control?

    Hello,
    I am using sap.ui.commons.TabStrip to toggle different views. The content displayed in TabPanel is included into iframe to avoid naming collision might happened in distributed environment. Due to the internal mechanism of TabStrip control, if the content of iframe is not saved and user toggle to another view, when he comes back, the iframe will be refreshed and unsaved content will be lost.
    Take the example below, iframe has been used in Tab1 to avoid naming collision, once user switch to Tab2, the TabStrip control will move content "<iframe src='test.html'></iframe>" in DIV of Tab1 into the hidden div with ID "sap-ui-preserve" and remove the DIV of Tab1. Once user switches back to Tab1, the DIV of Tab1 is reconstructed with content in div "sap-ui-preserve", refreshing occurs and filled content by user disappears. To avoid this, we have to use DIV to replace iframe, which means SPA, but there might be naming collision when there are 5-6 tabs and the tab content are developed by different developers.
    I checked other Tab controls, the Div of tab1 will be simply hidden with CSS, refreshing would not occur. Any other reasons to reconstruct the content of invisible Tabs? Or any suggestions if we continue to use UI5 control "TabStrip"?
    var oTabStrip = new sap.ui.commons.TabStrip({width:"500px",height:"380px"});
    var oTab1 = new sap.ui.commons.Tab();
    oTab1.setTitle(new sap.ui.core.Title({ text: "iframeTab" }));
    var oHtml = new sap.ui.core.HTML({ content: "<iframe src='test.html'></iframe>" });
    oTab1.addContent(oHtml);
    oTabStrip.addTab(oTab1);
    var oTab2 = new sap.ui.commons.Tab();
    oTab2.setTitle(new sap.ui.core.Title({ text: "inputTab" }));
    oHtml = new sap.ui.core.HTML({ content: "<input type='text'></input>" });
    oTab2.addContent(oHtml);
    oTabStrip.addTab(oTab2);
    oTabStrip.placeAt("content");
    Thanks a lot for any suggestions or comments!
    Patrick

    Hello Sakthivel,
    Thanks for the reply! The background is we are using UI5 to implement one SRM application, and which is developed by 20 developers. For individual page, one part is developed by application developers and shell by framework developers, application UI is embedded in the shell.there is requirement to access the control and set the attributes in different js files.
    For the shell, it's developed with declarative view, there isn't way to choose the control without ID. For application UI, without ID, variable of control have to be global variable to allow others' code to access.
    Regards,
    Patrick

  • Is there a decompiler for LABView v4-v6

    Hello,
    One of our customer (Pharma industry) has a compiled LABView application running on Win98 for +10 years. The source code is not available and it seems nobody knows what's under the hood. Based on Win98 dates, I expect them to run a LABView version between v4 and v6.
    Is there a decompiler software, any ways to look at the source code or to retrieve some basics information to start reverse engineering.
    Thanks for you answers!
    Alex
    [email protected]
    Solved!
    Go to Solution.

    The whole issue is a little bit more complicated. Before LabVIEW 8.6 the internal executable resource was indeed a LabVIEW VI archive (LLB) and since LLBs have only one hierarchy depth it is basically like a single directory. This caused troubles with the newer LV library based instrument drivers and also LVOOP classes which use the same VI name but with a different library prefix each, so that LabVIEW had to move those files to external directories when building executables, in order to avoid naming collisions.
    In all newer LabVIEW versions the internal executable resource in which the VIs are stored is in fact a ZIP file by default. You still can force LabVIEW to use an LLB format to store the files, by enabling the "Use LabVIEW 8.x file layout" in the Advanced build options. Now the ZIP resource was in the beginning stored as simple ZIP formatted data resource and that caused some problems since most ZIP utilities simply scan a file for the ZIP file header and open it as such, even if the actual ZIP file resource is anywhere inside the file, so that almost all ZIP tools could open a LabVIEW executable. NI changed that format so that ZIP tools can not recognize it anymore.
    Now, yes you could look into the LLB and ZIP resource in the past (and still can with some extra effort) but before anyone screams "Ohhh my precious IP is on the street" please be aware that the only thing you can do from such a resource is to get the VI names and if you manage to load it into the exactly right LabVIEW version drop the generic icons onto a diagram to see the connector pane. Unless of course you also check the "Enable debugging" checkbox in the Advanced build options, which will leave the diagrams and frontpanels in the VIs, and in fact create something similar to a packed source distributions.
    So without the Enable debugging build option, someone gets in fact not much more than what he can do by opening any binary DLL created from C, C++, or whatever mainstream compiler with the dependency tool from Microsoft and MUCH MUCH less than what you can get by simply putting such a DLL through a disassembler.
    And to my knowledge there does not exist any disassembler like tool for LabVIEW VIs so far, and I would consider about one billion things more worthwhile to do than attempting to create such a thing.
    Rolf Kalbermatter
    CIT Engineering Netherlands
    a division of Test & Measurement Solutions

  • Before and After option in wad7.0

    Hi,
    While giving commands in drop down or button group,in execution point of time
    there are three options
    1.Before default action (Before)
    2.Before default action (Default)
    3.After default action (After)
    What is difference between these three options..I am not able to identify difference when i am executing my web report..
    Explain with one example scenario
    Regards
    Prakash

    Hi,
    Upgrade Procedure / Support Packages
    During an upgrade or the import of an Support Package, existing objects of the SAP standard are overwritten with the objects redelivered. To help the customer retain the objects modified in a previous release, SAP provides all modified objects which are redelivered (in an upgrade or Support Package) in the upgrade adjustment of transactions SPAU and SPDD. These transactions allow customers to enter their modifications into the corresponding new objects being delivered at upgrade. The Modification Assistant supports this process of adopting customer modifications.
    In the past, all objects modified by a customer and delivered again by SAP, an IBU or an SAP partner, had to be manually re-modified during an upgrade. Now, modifications are either automatically adopted or the system provides you with an assistant for adjusting your modifications to the newly upgraded configuration.
    In general, objects altered using the Modification Assistant can now be automatically accepted into the upgraded system if the modifications undertaken in the original version do not directly overlap those made in the customer version. If collisions occur between the two versions at upgrade (naming collisions, or if SAP has deleted an object modified by a customer), the system offers support during the upgrade, which means that a semi-automatic adjustment is made. In some cases, however, you may still have to manually adjust objects using ABAP Workbench tools.
    Objects modified according to the old system used prior to the advent of the Modification Assistant must be manually maintained after an upgrade has been run.
    Use transactions SPDD and SPAU during an upgrade to select these objects and modify them manually.
    Transaction SPDD allows you to adjust modifications to ABAP Dictionary objects during an upgrade.
    Regards,
    Jagadish

  • Connect External GW System

    Hi
    I try to connect two GW2014 System on the same LAN.
    The 1 System (old System on OES11 updated from GW 2012 to 2014)
    2 Dom: prim. DOM with PO and MTA; sec. DOM with MTA und GWIA
    the new System are the same: 2Doms prim. with PO and MTA; sec. with MTA und GWIA
    both Systems are up and running (send/receive Mails)
    now I try to connect over external GW-System
    i try a connect from the prim. DOM new System (with the PO) to the prim DOM old System
    The Link is at both side from the external Domn direct to the prim. Domn (Port 7100)
    at booth sides the status from the MTA (prim.DOM ): Open Direct Link to Domain (ext)
    If I try a telnet over 7100 from one Server to the other Server- it connect.
    But if I try synchronize external System (I check the send and receive option) - it dosnt work - nothing no DOM, no PO, no User
    anyone have an idea
    Wolfgang

    In article <[email protected]>, Shorty67 wrote:
    > anyone have an idea
    Are the system names clearly different?
    Are there any other naming collisions? Especially domains
    might be worth validating the domain and po databases and repair if
    issues found incase the key bits simply got stuck.
    Andy of
    http://KonecnyConsulting.ca in Toronto
    Knowledge Partner
    http://forums.novell.com/member.php/75037-konecnya
    If you find a post helpful and are logged in the Web interface, please
    show your appreciation by clicking on the star below. Thanks!

  • Many portals within one session?

    Hello,
    I have created three different portals which all need to authenticate
    the user. Is it possible to get those three portals to use just one
    login page, I mean that the user won't have to login more than once? How
    are the sessions handled in Weblogic Servers? In weblogic.properties
    file you define a sessioncomparator for every portal, for my portals I
    am using com.beasys.commerce.portal.admin.PortalSessionComparator, but
    Buy Beans example portal uses
    com.beasys.commerce.axiom.jsp.DefaultSessionComparator, what is the
    difference between these two classes? Allow autologin between browser
    sessions can't be used.
    I am using Weblogic 5.1 and Personalization Server 2.0.1 with Commerce
    Server.
    -Maarit-
    Maarit Linnekoski          [email protected]
    tel. +358 (0)9 2311 6649     AtBusiness Communications Oyj                
    fax +358 (0)9 2311 6601     Itälahdenkatu 19,
    mobile +358 (0)50 569 3044     00210 HELSINKI, FINLAND

    Hi Ture
    I encounter the same problem for keeping login session across portals
    In your example, your invoke the method
    putSessionValue( SERVICMANAGER_USER, userLogin, request );
    Would you please tell me, how can I get the value of userLogin
    Thanks
    Warren
    Ture Hoefner wrote:
    Hello Maarit,
    Here are some answers for you.
    I have created three different portals which all need to
    authenticate
    the user. Is it possible to get those three portals to use just one
    login page, I mean that the user won't have to login more than once?
    How
    are the sessions handled in Weblogic Servers?Yes. You can navigate from portal to portal while maintaining the
    logged-in state of your user. You can do this by setting the
    "TRAFFIC.URI" request attribute equal to the URI of the portal you
    want to go to and then use the PortalJspBase.putSessionValue( ) method
    to put user and destination information into the session. Then you
    could use the PortalJspBase.setLoggedIn( ) method to set the logged-in
    status for the user in the new portal (also in the session) because
    now when you set session values with methods of PortalJspBase, they
    will be fixed up using the URI of the portal you will be going to.
    Therefore, the setLoggedIn( ) method works like it were invoked from
    the portal you will be going to. Then you could direct a request to
    the other portal.
    The PortalJspBase.putSessionValue( ) method "fixes up" the keys of
    the stored values by prepending a string that uniquely identifies the
    portal (made using the TRAFFIC.URI attribute) to avoid naming
    collisions (see javadoc at
    http://e-docs.bea.com/wlcs/javadoc/p13n/index.html ).
    Below is an example I got from someone who implemented such a
    solution (I have not tested it). They did not put values in the
    session for SERVICEMANAGER_SUCCESSOR or
    IMMUTABLE_SERVICE_MANAGER_HOME_PAGE, but they could have.
    Make your first JSP page extend PortalJspBase and do something
    like this (note that the constants that I have not declared come from
    interfaces that are implemented by PortalJspBase (see javadoc):
    <%! // Declaration
    public static final String MY_PORTAL_NAME = "MyPortal"; // portalname
    public static final String MY_PORTAL_URI = "/myportal"; // servlet name
    public static final String MY_PORTAL_DIR = "/myportal"; // workingdir
    %>
    <%
    // Get MyPortal
    String workingDir = MY_PORTAL_DIR;
    String thePage = getPortalManager(request)
    .getPortalFor(MY_PORTAL_NAME).getContentURL();
    // Set user and destination stuff
    request.setAttribute(TRAFFIC_URI, MY_PORTAL_URI);
    putSessionValue( SERVICMANAGER_USER, userLogin, request );
    putSessionValue( PORTAL_NAME, MY_PORTAL_NAME, request );
    putSessionValue( SERVICEMANAGER_HOME_PAGE, thePage, request );
    // Log in the user
    setLoggedIn(request, response, true);
    // Go there
    response.sendRedirect(getTrafficURI(request));
    %>
    In weblogic.properties
    file you define a sessioncomparator for every portal, for my portals
    I
    am using com.beasys.commerce.portal.admin.PortalSessionComparator,
    but
    Buy Beans example portal uses
    com.beasys.commerce.axiom.jsp.DefaultSessionComparator, what is the
    difference between these two classes?The <pt:monitorsession> tag uses a SessionComparator to see if the
    session is valid, and it can be used to disallow access to a page (see
    docs at http://e-docs.bea.com/wlcs/p13ndev/jsptags.htm#1024804
    You specify the SessionComparator that you want to register with your
    portal or personalized application in weblogic.properties with the
    sessioncomparator argument.
    The PortalSessionComparator and DefaultSessionComparator both
    implement the SessionComparator interface, which defines a single
    method, isValid( ) (see javadoc at
    http://e-docs.bea.com/wlcs/javadoc/p13n/index.html ) The
    DefaultSessionComparator class returns true for the isValid( ) method.
    The PortalSessionComparator additionally implements the
    PortalAdminConstants interface and checks session attributes to make
    sure that the minimum attributes are present for proper operation of
    the PortalServiceManager servlet. If you want to add requirements for
    a valid portal session, say that the "PREFERRED_CUSTOMER" attribute
    must be present and the value must be "true", then you would just
    extend PortalSessionComparator and register your new sessioncomparator
    argument in weblogic.properties.
    Notice that BuyBeans example portal does NOT use the
    DefaultSessionComparator. It uses the PortalSessionComparator. The
    BuyBeans demo has an example personalized application that is not a
    portal (registered as "/mpbb" with the JspServiceManager servlet)
    which is used to access an example portal (registered as "/mybuybeans"
    with the PortalServiceManager). The personalized application that is
    not a portal ("/mpbb") uses the DefaultSessionComparator.
    Good luck.
    Ture Hoefner
    BEA Systems, Inc.
    1655 Walnut Street; suite 200
    Boulder, CO 80302
    www.beasys.com
    [att1.html]

  • Text field with autocomplete: little bug in application builder

    Hi,
    I just noticed that the application builder complains when a text field with autocomplete is defined with a named LOV containing a single column value (Apex 4.0.2.00.06).
    I created the text-field with a dynamic LOV (please specify in the docs that autocomplete requires single column queries!), then I used the "Convert to named LOV" task link to convert it to a named LOV and it works perfectly, however as soon as you attempt to change some other attribute for the item, it will throw the following error:
    1 error has occurred
        Using a named list of values (LOV) is only supported for item types which require at least two LOV columns.As i said, the named single column LOV works just fine with the autocomplete, so the error message seems to be also misleading.
    Flavio
    http://oraclequirks.blogspot.com
    http://www.yocoya.com

    Hi Surya,
    the "Text Field with autocomplete" is really just an autocomplete widget and doesn't behave like a LOV. But we are planning to release an item type plug-in which solves both of your requirements.
    Regards
    Patrick
    My Blog: http://www.inside-oracle-apex.com
    APEX 4.0 Plug-Ins: http://apex.oracle.com/plugins

Maybe you are looking for

  • MDVP only working as background job

    Hello, I was working on the ATP check when i discovered the only way to actually perform this check correctly was to execute it as a background job. When executing online, the stock is just not committed (even with full confirmation logic set on in t

  • How do I retrieve my music and apps after installing iOS5 on my ipod touch?

    After 'backing up' my ipod, I was prompted to install iOS5 onto my ipod. I then proceeded to install. I knew iit would take some time to install new OS, so I let it be. After about an hour or so I came back to check on my ipod, low and behold, it had

  • RF loop through

    I have just installed my new BTYV box. My previous BT Vision box had an rf output which allowd me to watch tv (the same channel) in another room (ive run a coaxial cable into my "room for making food" this forum will not allow me ty post the word kit

  • Nokia 6210 Nav, PC Connectivity Cable Drivers

    When trying to connect my 6210 to my PC it takes about an hour or more and it says it is installing the PC Connectivity Drive. After all this it seems to only stay connected for a short time and then drops out. Can anyone offer help? Thanks

  • How to insert autoincrement record and query it with multiple keys

    Hi all, I am not familiar with BerkeyleyDB, I am now doing a project that needs to insert records and then query it out with multiple keys at later time. Since there is no field that can be distinct primary key, I want to user DbSequence as auto incr