100% found this document useful (10 votes)
4K views

Forms 6i Personalization

Forms Personalization

Uploaded by

floatingbrain
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (10 votes)
4K views

Forms 6i Personalization

Forms Personalization

Uploaded by

floatingbrain
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 72

Forms 6i

Personalizations
- From CUSTOM.pll to
Forms Personalization
in 11.5.10
Susan Behn
Solution Beacon, LLC
Real Solutions for the Real World.®
Release 11i Workshops
Orlando, FL • Chicago, IL • St. Louis, MO • Los Angeles, CA
San Ramon, CA • Worcester, MA • Atlanta, GA • Dallas, TX
www.solutionbeacon.com

© 2006 Solution Beacon, LLC. All Rights Reserved.


Are you an OAUG Member?
Member Benefits include:
„ Advocacy opportunities to influence Oracle on product
enhancements, usability, new features, Oracle support, pricing
and quality
„ Knowledge that showcases the latest trends and techniques
used by industry leaders through our national and regional
events and our publications, such as OAUG Insight magazine
„ Communication with other OAUG members worldwide
through participation in OAUG committees, leadership positions,
interaction with Oracle Corporation's user initiatives, frequent
member surveys, and Oracle management briefings
„ Education through the hundreds of career-enhancing
presentations in our conference paper database archive, as well
as discounts to conferences and Oracle education
„ Networking with Oracle customers, industry experts, third-
party software firms, and other Oracle Applications specialists
through our Member Database and Online Vendor Directory
2
© 2006 Solution Beacon, LLC. All Rights Reserved.
Introduction

„ Solution Beacon, LLC


‹ Susan Behn

3
© 2006 Solution Beacon, LLC. All Rights Reserved.
Agenda
„ Personalized and Custom Security Options

‹ Past – CUSTOM.pll
‹ Present – Logical Apps AppsRules
‹ Future – Forms Personalization in 11.5.10
„ Additional Resources

4
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – What is it?
„ Library available in $AU_TOP/resource

„ Allowsmodifications to provide personalizations for


Oracle Application 6i forms (not self service)

„ Use forms builder 6i to modify package body

„ Supported by Oracle **with limitations

„ Documented: Application Developer Guide –


Chapter 28

5
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – What you can do?
„ Hide fields, tabs

„ Make fields required

„ Restrict update or insert

„ Change prompts, tab labels

„ Alter LOVs

„ Create zooms and tool bar menu selections

„ Almost anything you can do in PL/SQL


6
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Challenges
„ Traditional
implementation of customizations in
CUSTOM.pll only allows one developer at a time to
make modifications

„ Size limitations

„ Keeping code modular

„ Testingrequirements can be significant for subsequent


modifications to CUSTOM.pll

7
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology

How to address the challenges…

8
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Multi-Developer Solution – Supplier Form Example

„ Create a separate library (.pll) for each form to be


customized
„ Attach the APPCORE2 library

9
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Supplier Form Example-Make vendor type required

„ Create the program units


Package Spec

PACKAGE XXXXXAPXVDMVX IS
Procedure event(event_name VARCHAR2);
END;

Package Body

PACKAGE BODY XXXXXAPXVDMVX


IS
PROCEDURE event (event_name VARCHAR2) IS
BEGIN
IF event_name = ‘WHEN-NEW-FORM-INSTANCE’ THEN
\*Make the vendor type field required*\
APP_ITEM_PROPERTY2.SET_PROPERTY(‘VENDOR_TYPE_DISP’,REQUIRED,PROPERTY_TRUE);
END IF;
END event;
END XXXXXAPXVDMVX;

10
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Multi-Developer Solution – Supplier Form Example

„ Attach your new library to CUSTOM.pll

Navigator view of
CUSTOM.pll

Your new library

11
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – Methodology
Multi-Developer Solution – Supplier Form Example

„ Add a call to your new library in CUSTOM.pll

Package Body of CUSTOM.pll

Form_name varchar2(30) := name_in(‘system.current_form’);


Begin
If form_name = ‘APXVDMVD’ THEN
xxxxxapxvdmvd.event(event_name);
Elsif form_name = ‘OEXOEORD’ THEN
xxxxxoexoeord.event(event_name);
end if;
end event;

12
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – More Examples

\*Force Upper Case for Supplier Name*\

APP_ITEM_PROPERTY2.SET_PROPERTY(‘VNDR.VENDOR_NAME_MIR',CASE_RESTRICTION,UPP
ERCASE);

\* Hide the tax payer id*\

APP_ITEM_PROPERTY2.SET_PROPERTY(‘VNDR.NUM_1099_MIR',DISPLAYED,PROPERTY_OFF)

\*Change the prompt*\

APP_ITEM_PROPERTY2.SET_PROPERTY(‘VNDR.
END_DATE_ACTIVE_MIR',PROMPT_TEXT,’Inactive Date’)

13
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – NIH Requirements
and Solutions
„ BankAccount Type is required and must be S for
Savings or C for Checking

14
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – NIH Requirements
and Solutions
„ Do not allow entry of ACH banking information for
patients

15
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – NIH Requirements
and Solutions
„ Onthe enter person form, default the employee
number based on a custom profile option

16
© 2006 Solution Beacon, LLC. All Rights Reserved.
CUSTOM.pll – NIH Requirements
and Solutions
„ Prevent update of descriptive flexfield

17
© 2006 Solution Beacon, LLC. All Rights Reserved.
Logical Apps AppsRules
„ Configurable Security for 6i forms
„ Centralized Rules Repository
„ Front end interface to CUSTOM.pll
„ Recommended for pre 11.5.10 installations

18
© 2006 Solution Beacon, LLC. All Rights Reserved.
Logical Apps AppsRules
Examples of National Institutes of Health Security Rules
Implemented using AppsRules
„ Security
‹ Prevent update to fields and blocks

‹ Hide Fields and Tabs

„ List of Values on field without existing LOV


„ Messages
„ Change prompts
„ Set default values
„ Limit access for:
‹ Responsibility

‹ Profile Option

‹ Email Address

‹ User

19
© 2006 Solution Beacon, LLC. All Rights Reserved.
Logical Apps AppsRules
„ AppsRules Security Tab

20
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization
„ Personalizations are declarative changes to forms
delivered with the E-Business Suite
„ Forms Personalizations declaratively alter the behavior
of Forms
„ User must understand Forms and PL/SQL
„ Most changes traditionally done using CUSTOM.pll can
be accomplished using Forms Personalization
‹Must use CUSTOM.pll to alter LOVs

‹CUSTOM.pll allows all PL/SQL capabilities, Built-ins

and SQL
„ Forms Personalizations are effective immediately – no
compiling
„ Forms Personalizations fire prior to CUSTOM.pll for the
same event
21
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Profile
Options
„ Environment – 11.5.10.2
(Forms Personalization in CU1 changed significantly
with CU1 patch)
„ Set Profile Option Hide Diagnostics menu entry to No
(Yes will hide the diagnostics menu)
„ Profile Option Utilities: Diagnostics – if set to No, apps
password is required

22
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Access
„ Accessthe form or function needing personalization
„ Help Æ Diagnostics Æ Custom Code Æ Personalize

23
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization

24
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Rule
Header
„ Sequence
‹ Rules run in sequence
‹Sequence numbers (1-100) are not unique

„ Description – free form entry


„ Level – Form or Function (CU1 patch)

25
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Rule
Header
„ Debug mode
‹ Off
‹Step-by-Step – shows events impacted by rule

(CU1 patch)
‹Show Debug Messages – shows messages with

type = debug
„ Enabled – checked

26
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Trigger Event
Trigger Events

„ Use generic trigger events available in most forms


„ Use specific events unique to the form (with caution)
„ Find events using Help ÆDiagnostics ÆCustom Code
ÆShow Custom Events
„ Trigger Events are not validated from the LOV

27
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Trigger Event
Trigger Events – Generic to almost all forms

„ WHEN-NEW-FORM-INSTANCE
‹Security rules
‹Navigation rules

‹Visual attributes

‹Avoid message rules at this level

„ WHEN-NEW-BLOCK-INSTANCE
‹Same as WHEN-NEW-FORM-INSTANCE

‹Message rules

„ WHEN-NEW-RECORD-INSTANCE
‹Default values

28
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Trigger Event
Trigger Events – Generic to almost all forms
„ WHEN-NEW-ITEM-INSTANCE
‹Message rules

‹Default values dependent on entry of another item

„ WHEN-VALIDATE-RECORD
‹Populate hidden fields

‹Additional validations

„ SPECIALn
‹Populate tools menu (MENU1-15) (CU1 patch)

‹Populate tools menu (SPECIAL 1-15)

‹Populate reports menu (SPECIAL 16-30)

‹Populate actions menu (SPECIAL 31-45)

29
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Trigger Event
Trigger Events – Generic to almost all forms

„ ZOOM – recommend using MENUn or SPECIALn rather


than zoom
„ KEY-Fn

30
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Trigger Object
Trigger Object

„ Required if LOV is available


„ Requires Block Name
‹WHEN-NEW-BLOCK-INSTANCE

‹WHEN-NEW-RECORD-INSTANCE

‹WHEN-VALIDATE-RECORD

„ Requires Block.field name


‹WHEN-NEW-ITEM-INSTANCE

„ May be required for other events specific to form

31
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Condition
Conditions
„ Optional SQL code fragment to limit scope of rule
„ References bind variables (:block.field)
„ Examples
‹Use to limit scope based on profile option values

‹GL Journal Entry – Remind users to change the

period name the first 20 days of the fiscal year

32
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Condition
Tab – Context
Context – who does this rule apply to?
„ Multiple scope rows are allowed
„ Level at which the rule will apply
Tip: For initial
‹Site
development,
‹Responsibility
set scope to
‹User – Use this for testing rules your user id
‹Industry (For future use)

„ Value – choose from LOV

33
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions

34
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions
„ Sequence
‹ Rules will run in sequence
‹Sequence number not unique

„ Type
‹Property

‹Message

‹Built-in

‹Menu

„ Description
„ Language – use when changing prompts for a specific
language
„ Enabled – checked

35
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions
„ Choose Object Type
‹Item , Window, Block,
***These
prompts will
‹Tab Page, Parameter
vary for each
‹Radio Button, View, action type***
‹:GLOBAL Variable, Canvas

‹LOV, Local Variable (CU1 patch)

36
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions
„ Use Select by Text button to select the target object
by prompt name
„ Optionally use LOV to choose by object name

37
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions
„ PropertyName – Use the LOV to choose which
property to personalize

38
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions
„ Use Get Value button to get the current value if
needed
„ Change the value if desired

39
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions Example
Force Upper Case for the Vendor Name
„ Type = Property
„ Object Type = Item
„ Target Object = VNDR.VENDOR_NAME_MIR
„ Property Name = CASE_RESTRICTION
„ Value = UPPERCASE

40
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions Example
Change the window title
„ Type = Property
„ Object Type = Window
„ Target Object = VENDOR
„ Property Name = TITLE
„ Value = Suppliers (Oracle Open World)

41
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions Example
Prevent Insert in the Bank Accounts Tab
(require users to do this in Bank setup)
„ Type = Property
„ Object Type = Block
„ Target Object = VNDR_USES
„ Property Name = INSERT_ALLOWED
„ Value = False

42
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization –
Property Actions Example
Set a global variable to the value of the email address in
FND_USERS and display this value in a message

„ Type = Property
„ Object Type = :GLOBAL Variable
„ Target Object = XX_USER_EMAIL
„ Property Name = VALUE
„ Value = =SELECT Nvl(Email_Address,'NO_EMAIL')
FROM fnd_user
WHERE user_id = fnd_global.user_id

43
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Variables
Global Variables
„ Used to pass values between forms
„ Max length is 255 bytes
„ Prepend the name of the variable with XX

Local variables
„ Used when you need to refer to a variable multiple
times
„ Specific to local form
„ Max length is 4000 bytes
„ Prepend the name of the variable with XX

44
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Strings
„ Rulesfor fields that accept strings
‹Start with =

String evaluated at run time

Can use bind variables, operators, etc

Can use server side functions without out

variables
Prior to CU1 patch, SQL statements starting with

=Select require “A” alias (=Select meaning A


from fnd_lookups where…_
‹Does not start with =

String is taken as a literal exactly as you type it

45
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Property
Actions Example
„ :GLOBAL Variable

„ Use the Validate button to validate your string

46
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Messages
„ MessageType Fields
‹Message Type

Show – Informational Message

Hint – Appear on status bar

Error – Requires user response

Debug – Only displays if debug mode is set to

Show Debug Messages


Warn – Informational message with caution
symbol
‹Message Text

„ Do not use messages for WHEN-NEW-FORM events

47
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Message
Example
„ Message to display global variable to show email
address when form opens

48
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – More
Message Examples
„ Debug message – Debug mode must be set to Show
Debug Messages

„ Training reminders

49
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Menu
Example
Create a menu entry to submit Supplier Payment
History report
„ Type = Menu (Prior to CU1 patch, Type = Special)
„ Menu Entry = MENU1 – MENU15 or SPECIAL1-45
„ Menu Label = Supplier Payment History
„ Icon = null
„ Enabled in Blocks = VNDR, SITE
‹Separate by comma

50
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Menu
Example
Create a menu entry to submit Supplier Payment
History report
„ Use Add Block Button to choose blocks

51
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Menu
Example
Create a menu entry to submit Supplier Payment
History report
„ Note – this action only displays the menu entry –
functionality behind the menu entry is the next step

52
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Activate the menu entry to execute the concurrent
request Supplier Payment History
„ Trigger Event = MENU1

53
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Activate the menu entry to run Supplier Payment
History Report
„ Type = Builtin
„ Builtin Type = Launch SRS Form (CU1 patch)
„ Program Name = Supplier Payment History

„ Note: Parameters are not automatically passed

54
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Supplier Payment History Report – How to pass
parameters
„ Create rule with a sequence before menu execute
„ Trigger event = MENUn or SPECIALn
„ Set :GLOBAL variable to value of parameters for report

55
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Supplier Payment History Report – Passing Parameters
„ Create a new rule for the Requests: Submit form
„ Set the condition to only apply the rule when the
global variable is not null

56
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Supplier Payment History Report – Passing Parameters
„ Create the action for the new rule for the Requests:
Submit form to set the parameters to the global
variable
„ Note: work_order.parameters separates parameters
with a period therefore if the data you are trying to
pass includes a period it will not pass correctly

57
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Open a url
„ Trigger Event = WHEN-NEW-FORM-INSTANCE
„ Establish menu entry

„ Trigger Event = MENU2

CU1 Patch
58
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Launch a function (CU1 patch) to view payment history
form
„ Establish the Menu entry
‹Trigger Event = WHEN-NEW-FORM-INSTANCE

‹Action Type = Menu

‹MENU3 = Payment History

59
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Launch a function to view payment history form
„ Trigger Event = MENU3
„ Set the :GLOBAL Variable
„ Launch a Function

60
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Launch a function – target function rules
„ Populate query find variable if the global variable is
not null
‹Trigger Event = WHEN-NEW-ITEM-INSTANCE

‹Trigger Object = use the first item on the form

61
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Launch a function – target function rules
„ Populate query find variable if the global variable is
not null
‹Trigger Event = WHEN-NEW-BLOCK-INSTANCE

‹Action Type = Property

CU1 Patch
62
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Built-in
Example
Launch a function – target function rules
„ Execute the DO_KEY(‘NEXT_BLOCK’) built in to force
query execution
‹Trigger Event = WHEN-NEW-BLOCK-INSTANCE

‹Action Type = Builtin

63
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Other
Built-ins
„ GO_BLOCK

„ GO_ITEM

„ RAISE_FORM_TRIGGER_FAILURE

„ FORMS_DDL

„ EXECUTE_TRIGGER (CU1 patch)

„ SYNCHRONIZE (CU1 patch)

64
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Tips
„ If you disable a tab page, make sure the user cannot
still navigate to the items on the tab page
„ You may need to exit and re-open the form to see
personalization changes
„ Use Help Æ Diagnostics Æ Custom Æ Show Custom
Events to determine what events are firing
„ See MetaLink note 279034.1 for special rules for forms
with folders
„ After upgrades, go to the personalization for each
form and choose Tools Æ Validate All
„ Use debug message before and after events
„ Initialize global variables to null in the navigator form
using the WHEN-FORM-NAVIGATE trigger event

65
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Tips
„ Use the Validate button to validate strings
‹Conditions will return true, false or error

‹Values will return the resulting string or an error

„ Use the Apply Now button to apply the action now


and see the results (does not always work if
dependant on the results of another action)
„ Use the Insert ‘Get’ Expression button to get any
property of an item (CU1 patch)
„ Turn custom code off to confirm any form problem is
due to custom code Help Æ Diagnostics Æ Custom
Code Æ Off
„ Set global values to null in the navigator form using
the WHEN-FORM-NAVIGATE trigger

66
© 2006 Solution Beacon, LLC. All Rights Reserved.
Customizations / Personalizations
WARNING

Customizations or Personalizations, whether they are


protected or non protected, allow you to
fundamentally change the behavior of the application.

This could interfere with intended functionality.

Use with caution!

TEST! TEST! TEST! TEST! TEST!

67
© 2006 Solution Beacon, LLC. All Rights Reserved.
Customizations / Personalizations

…THEN TEST IT AGAIN!

68
© 2006 Solution Beacon, LLC. All Rights Reserved.
Forms Personalization – Moving
to Another Instance
„ Download for a specific form:
FNDLOAD <userid>/<password> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct
<filename.ldt> FND_FORM_CUSTOM_RULES
form_name=<form name>
„ Download all personalizations
FNDLOAD <userid>/<password> 0 Y DOWNLOAD
$FND_TOP/patch/115/import/affrmcus.lct
<filename.ldt> FND_FORM_CUSTOM_RULES
„ Upload
FNDLOAD <userid>/<password> 0 Y UPLOAD
$FND_TOP/patch/115/import/affrmcus.lct
<filename.ldt>

69
© 2006 Solution Beacon, LLC. All Rights Reserved.
Other Sources of Information
„ Oracle Applications User Interface Standards for
Forms-Based Products
„ Oracle Applications Developer’s Guide
„ Oracle Applications System Administrator’s Guide
„ Oracle Applications User Guide
„ MetaLink note 279034.1 – Forms Personalization
„ Configuring, Reporting and System Administration in
HRMS
„ Oracle Self Service Web Applications Implementation
Manual
„ www.solutionbeacon.com – newsletters, free tools,
white papers and presentations, Vision access

70
© 2006 Solution Beacon, LLC. All Rights Reserved.
Thank you!

If you have any questions or comments please contact:

Susan Behn sbehn@solutionbeacon.com

For free Release 11i Tools and helpful information,


please visit our website at:

www.solutionbeacon.com

Real Solutions for the Real World.®


71
© 2006 Solution Beacon, LLC. All Rights Reserved.
Real Solutions for the Real World.®
_____________________________

Visit Solution Beacon


in the Collaborate ’06 Exhibit Hall
Booth # 726

72
© 2006 Solution Beacon, LLC. All Rights Reserved.

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy