coreybryant
asked on
Customizing Gallery Server Pro
I purchased this software since I saw their demo here: http://www.galleryserverpro.com/demo.aspx
On their web dev page (http://www.galleryserverpro.com/aspnetDevelopers.aspx), it says:
I don't have a master page per se and not exactly certain how I should create it, but I have a very simple layout (header / left nav - right contents / footer). The photo-gallery is located here: http://www.coreybryant.com/photo-album/
This mentions something about the web.config which unfortunately I do not know anything about. The photo-gallery is in its own app pool
Thank you!
On their web dev page (http://www.galleryserverpro.com/aspnetDevelopers.aspx), it says:
<%@ RegisterTagPrefix="gsp" Namespace="GalleryServerPro.Web" Assembly="GalleryServerPro .Web" %>
At the location in the page where you want the gallery to appear, add:
<gsp:Gallery ID="gallery1" runat="server" />
I don't have a master page per se and not exactly certain how I should create it, but I have a very simple layout (header / left nav - right contents / footer). The photo-gallery is located here: http://www.coreybryant.com/photo-album/
This mentions something about the web.config which unfortunately I do not know anything about. The photo-gallery is in its own app pool
Thank you!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Corey Bryant</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="robots" content="index, follow" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link href="includes/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<p>Header goes here ...</p>
<%
Response.WriteFile ("../includes/header.aspx")
%>
<!-- End of Header --></div>
<div class="colmask leftmenu">
<div class="colleft">
<div class="col1">
<!-- Start of Main Content -->
<p>This is where the images should show up</p>
<!-- End of Main Content -->
</div>
<div class="col2">
<!-- Start of Navigation -->
<%
Response.WriteFile ("../includes/nav.aspx")
%>
<!-- End of Navigation -->
</div>
</div>
</div>
<div id="footer">
<!-- Start of Footer -->
<%
Response.WriteFile ("../includes/footer.aspx")
%>
<!-- End of Footer -->
</div>
</body>
</html>
body {
margin: 0px auto;
padding: 0;
border: 0; /* This removes the border around the viewport in old versions of IE */
width: 100%;
min-width: 600px; /* Minimum width of layout - remove line if not required */ /* The min-width property does not work in old versions of Internet Explorer */;
font-size: 1em;
font-family: "Myriad Pro", Arial, Helvetica, sans-serif;
}
a {
color: #369;
}
a:hover {
color: #fff;
background: #369;
text-decoration: none;
}
h1, h2, h3, h4, h5, h6 {
margin: .8em 0 .2em 0;
padding: 0;
font-family: "Myriad Pro", Arial, Helvetica, sans-serif;
}
#ads img {
display: block;
padding-top: 10px;
}
/* Header styles */
#header {
clear: both;
width: 1270px; height:200px;
margin: 0px auto;
}
/*#header {border-bottom: 1px solid #000;}*/
/* 'widths' sub menu */
#layoutdims {
clear: both;
background: #eee;
border-top: 4px solid #000;
margin: 0;
padding: 6px 15px !important;
text-align: right;
}
/* column container */
.colmask {
position: relative; /* This fixes the IE7 overflow hidden bug */;
clear: both;
width: 1270px; /* width of whole page */;
overflow: hidden;
/* This chops off any overhanging divs */margin: 0px auto;
}
/* common column settings */
.colright, .colmid, .colleft {
float: left;
width: 100%;
position: relative;
}
.col1, .col2, .col3 {
float: left;
position: relative;
padding: 0 0 1em 0;
overflow: hidden;
}
/* 2 Column (left menu) settings */
.leftmenu {
background:none; /* right column background colour */
}
.leftmenu .colleft {
right: 84%; /* right column width */;
background:none; /* left column background colour */
}
.leftmenu .col1 {
width: 1015px; /* right column content width */;
left: 1302px; /* 100% plus left column left padding */;
}
.leftmenu .col2 {
width: 200px; /* left column content width (column width minus left and right padding) */;
left: 72px; /* (right column left and right padding) plus (left column left padding) */
}
h6
{
text-align:center;
}
/* Footer styles */
#footer {
clear: both;
width: 1270px;
height:185px;
margin: 0px auto;
}
#footer p {
margin:0px; padding-top:35px; text-align:center; font-size:12px;
color:#fff;
}
Sorry for 3rd point, it should be as follow:
<%@ RegisterTagPrefix="gsp" Namespace="GalleryServerPro.Web" Assembly="GalleryServerPro.Web" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Corey Bryant</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="robots" content="index, follow" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link href="includes/style.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
<p>Header goes here ...</p>
<%
Response.WriteFile ("../includes/header.aspx")
%>
<!-- End of Header --></div>
<div class="colmask leftmenu">
<div class="colleft">
<div class="col1">
<!-- Start of Main Content -->
<p>This is where the images should show up</p>
<gsp:Gallery ID="gallery1" runat="server" />
<!-- End of Main Content -->
</div>
<div class="col2">
<!-- Start of Navigation -->
<%
Response.WriteFile ("../includes/nav.aspx")
%>
<!-- End of Navigation -->
</div>
</div>
</div>
<div id="footer">
<!-- Start of Footer -->
<%
Response.WriteFile ("../includes/footer.aspx")
%>
<!-- End of Footer -->
</div>
</body>
</html>
ASKER
I am using Expression Web. I have the photo-album set up so that it can use its own web.config file.
Currently, it has
I uploaded an example: http://www.coreybryant.com/photo-album/example.aspx so you could see the error message (from the 3rd point)
I did not make any changes to the web.config file
Thank you!
Currently, it has
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<sectionGroup name="system.web">
<section name="galleryServerPro" type="GalleryServerPro.Configuration.GalleryServerProConfigSettings, GalleryServerPro.Configuration" allowDefinition="MachineToApplication" requirePermission="false" />
</sectionGroup>
</configSections>
<connectionStrings>
<clear />
<add name="SqlServerCeGalleryDb" providerName="System.Data.SqlServerCe.4.0" connectionString="data source=|DataDirectory|\GalleryServerPro_Data.sdf" />
<add name="SqlServerDbConnection" connectionString="server=mssql.example.com;uid=dbuser;pwd=dbpassword;Trusted_Connection=no;database=dbname" />
</connectionStrings>
<appSettings>
<add key="ComponentArtScriptControls" value="PerControl" />
</appSettings>
<system.web>
<pages theme="" styleSheetTheme="" validateRequest="false" viewStateEncryptionMode="Always" />
<httpRuntime requestValidationMode="2.0" />
<galleryServerPro>
<core galleryResourcesPath="gs" />
<dataProvider defaultProvider="SqlServerGalleryServerProProvider">
<providers>
<clear />
<add applicationName="Gallery Server Pro" connectionStringName="SqlServerCeGalleryDb" name="SqlCeGalleryServerProProvider" type="GalleryServerPro.Data.SqlCe.SqlCeGalleryServerProProvider" />
<add applicationName="Gallery Server Pro" connectionStringName="SqlServerDbConnection" name="SqlServerGalleryServerProProvider" type="GalleryServerPro.Data.SqlServer.SqlDataProvider" />
</providers>
</dataProvider>
</galleryServerPro>
<!-- <trust level="Full" /> -->
<globalization uiCulture="auto:en" culture="auto:en-US" />
<xhtmlConformance mode="Strict" />
<compilation debug="false" targetFramework="4.0">
<assemblies>
<add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
<add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />
<add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
</assemblies>
</compilation>
<!-- The <authentication> section enables configuration of the security authentication mode used by
ASP.NET to identify an incoming user.
The timeout is set to 129,600 minutes by default, which is 90 days. This allows the user to be automatically
logged in (requires selecting the "Remember Me" checkbox during login which sets a persistent cookie).
Note that when the user clicks "Log out", the persistent cookie is removed and the user will have to
log in next time. -->
<authentication mode="Forms">
<forms protection="All" timeout="129600" slidingExpiration="true" />
</authentication>
<authorization>
<!-- <deny users="?" />-->
</authorization>
<!-- Configure the Membership provider.-->
<membership defaultProvider="SqlMembershipProvider">
<providers>
<clear />
<add applicationName="Gallery Server Pro" name="SqlCeMembershipProvider" connectionStringName="SqlServerCeGalleryDb" passwordFormat="Clear" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="2" maxInvalidPasswordAttempts="50" enablePasswordReset="true" enablePasswordRetrieval="true" passwordAttemptWindow="10" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" type="GalleryServerPro.Data.SqlCe.SqlCeMembershipProvider" />
<add applicationName="Gallery Server Pro" name="SqlMembershipProvider" connectionStringName="SqlServerDbConnection" passwordFormat="Clear" minRequiredNonalphanumericCharacters="0" minRequiredPasswordLength="2" maxInvalidPasswordAttempts="50" enablePasswordReset="true" enablePasswordRetrieval="true" passwordAttemptWindow="10" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" type="System.Web.Security.SqlMembershipProvider" />
</providers>
</membership>
<!-- Configure the Role provider.-->
<roleManager enabled="true" cacheRolesInCookie="true" cookieProtection="Validation" defaultProvider="SqlRoleProvider">
<providers>
<clear />
<add applicationName="Gallery Server Pro" connectionStringName="SqlServerCeGalleryDb" name="SqlCeRoleProvider" type="GalleryServerPro.Data.SqlCe.SqlCeRoleProvider" />
<add applicationName="Gallery Server Pro" connectionStringName="SqlServerDbConnection" name="SqlRoleProvider" type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
<httpHandlers>
<add verb="*" path="ComponentArtUploadProgress.axd" type="ComponentArt.Web.UI.UploadProgressHandler, ComponentArt.Web.UI" />
<add verb="*" path="ComponentArtScript.axd" type="ComponentArt.Web.UI.ScriptHandler,ComponentArt.Web.UI" />
</httpHandlers>
<httpModules>
<add name="ComponentArtUploadModule" type="ComponentArt.Web.UI.UploadModule, ComponentArt.Web.UI" />
</httpModules>
<sessionState mode="InProc" timeout="60" />
<!-- The <customErrors> section controls what happens if/when an unhandled error occurs. This setting is
ignored if EnableExceptionHandler=true in the gallery settings table.
The mode attribute must be one of these values: Off (No redirection is performed; all users get detailed
error message), On (all users are redirected to friendly error page), RemoteOnly (local users see detailed
error message, remote users are redirected) -->
<customErrors mode="Off" />
</system.web>
<!--
The site admin area lets you specify the smtp server and port. If you need to specify a username and password, you
can do so here. When this section is configured, the smtp server and port in the site admin area is ignored,
so be sure to include the server and port here. Uncomment the section below to make it take effect. -->
<!--
<system.net>
<mailSettings>
<smtp>
<network
host="relayServerHostname"
port="portNumber"
userName="username"
password="password" />
</smtp>
</mailSettings>
</system.net>
-->
<!-- By default ASP.NET prevents file uploads larger than 4 MB. To change this, increase the maxRequestLength
attribute for all pages that host the Gallery Server Pro user control. Ex: To allow files up to 2 GB, use
maxRequestLength="2097151". This value should be the same or higher than the Maximum Upload Size setting in
the Site admin area. The maxUploadSize setting is the preferred way to manage upload sizes, as GSP provides
a friendly message when that value is violated, which is not possible when maxRequestLength is violated.
It is also recommended to increase the timeout from the default value
of 90 seconds to allow for long-running tasks such as file uploads. Set the
executionTimeout attribute to the desired value (8 hours = 28800, 24 hrs = 86400). -->
<location path="default.aspx">
<system.web>
<httpRuntime maxRequestLength="2097151" executionTimeout="86400" />
</system.web>
</location>
<system.web.extensions>
<scripting>
<webServices>
<jsonSerialization maxJsonLength="2147483647" />
</webServices>
<scriptResourceHandler enableCompression="true" enableCaching="true" />
</scripting>
</system.web.extensions>
<system.webServer>
<!-- By default IIS 7 restricts uploads larger than about 30 MB. To allow larger uploads, use the <requestFiltering>
element to set a new value. The attribute maxAllowedContentLength is in bytes, so to set a new value of 2 GB,
use 2147483648 (2 * 1024 * 1024 * 1024).
Note: If you get an error that requestFiltering cannot be overriden you must edit
%windir%\System32\inetsrv\config\applicationHost.config file and change the string:
<section name="requestFiltering" overrideModeDefault="Deny" />
to:
<section name="requestFiltering" overrideModeDefault="Allow" />
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="2147483648"/>
</requestFiltering>
</security>
-->
<validation validateIntegratedModeConfiguration="false" />
<modules>
<remove name="ComponentArtUploadModule" />
<add name="ComponentArtUploadModule" type="ComponentArt.Web.UI.UploadModule, ComponentArt.Web.UI" />
</modules>
<handlers>
<remove name="ComponentArtUpload" />
<remove name="ComponentArtScriptHandler" />
<add name="ComponentArtUpload" path="ComponentArtUploadProgress.axd" type="ComponentArt.Web.UI.UploadProgressHandler, ComponentArt.Web.UI" verb="*" />
<add name="ComponentArtScriptHandler" path="ComponentArtScript.axd" type="ComponentArt.Web.UI.ScriptHandler,ComponentArt.Web.UI" verb="*" />
</handlers>
<defaultDocument>
<files>
<remove value="default.aspx" />
<add value="default.aspx" />
</files>
</defaultDocument>
</system.webServer>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Edition Client Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact Edition Client 4.0" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>
</system.data>
</configuration>
I uploaded an example: http://www.coreybryant.com/photo-album/example.aspx so you could see the error message (from the 3rd point)
I did not make any changes to the web.config file
Thank you!
Hope I got solution
Just change code :
to
Just change code :
<%@ RegisterTagPrefix="gsp" Namespace="GalleryServerPro.Web" Assembly="GalleryServerPro.Web" %>
to
<%@ Register TagPrefix="gsp" Namespace="GalleryServerPro.Web" Assembly="GalleryServerPro.Web" %>
Let us know back.
ASKER
Much closer - thank you!
I am getting another error and this is what was in the error log:
I changed the debug to "true" as well to hopefully help out as well (that was suggested) when I brought up the page.
I am getting another error and this is what was in the error log:
Error details
Url
http://www.coreybryant.com/photo-album/example.aspx
Timestamp
12/14/2011 6:04:50 PM
Exception Type
GalleryServerPro.ErrorHandler.CustomExceptions.WebException
Message
The <head> tag on the current page requires the runat='server' attribute. Example: <head runat='server'></head>
Source
GalleryServerPro.Web
Target Site
Void GalleryPage_PreRender(System.Object, System.EventArgs)
Stack Trace
at GalleryServerPro.Web.Pages.GalleryPage.GalleryPage_PreRender(Object sender, EventArgs e)
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Control.PreRenderRecursiveInternal()
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
App Error ID
36
Gallery ID
0
HTTP User Agent
Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
Form Variables
<none>
Cookies
__utma: 18937770.1113416063.1301950943.1319898122.1320425712.27
__utmz: 18937770.1319725311.23.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=(none)
language: en
ASP.NET_SessionId: zxpxru5c5vfpfpycz2ibyutx
Session Variables
ReferringUrl: http://www.coreybryant.com/photo-album/example.aspx
Server Variables
ALL_HTTP: HTTP_CONNECTION:Keep-Alive
HTTP_ACCEPT:text/html, application/xhtml+xml, */*
HTTP_ACCEPT_ENCODING:gzip, deflate
HTTP_ACCEPT_LANGUAGE:en-US
HTTP_COOKIE:__utma=18937770.1113416063.1301950943.1319898122.1320425712. 27; __utmz=18937770.1319725311.23.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=( none); language=en
HTTP_HOST:www.coreybryant.com
HTTP_REFERER:http://www.experts-exchange.com/Programming/Languages/.NET/ ASP.NET/Q_27481365.html
HTTP_USER_AGENT:Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
ALL_RAW: Connection: Keep-Alive
Accept: text/html, application/xhtml+xml, */*
Accept-Encoding: gzip, deflate
Accept-Language: en-US
Cookie: __utma=18937770.1113416063.1301950943.1319898122.1320425712.27; __utmz=18937770.1319725311.23.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=( none); language=en
Host: www.coreybryant.com
Referer: http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_274 81365.html
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
APPL_MD_PATH: /LM/W3SVC/211/ROOT/photo-album
APPL_PHYSICAL_PATH: C:\HostingSpaces\merchant\coreybryant.com\wwwroot\photo-album\
AUTH_TYPE:
AUTH_USER:
AUTH_PASSWORD:
LOGON_USER:
REMOTE_USER:
CERT_COOKIE:
CERT_FLAGS:
CERT_ISSUER:
CERT_KEYSIZE:
CERT_SECRETKEYSIZE:
CERT_SERIALNUMBER:
CERT_SERVER_ISSUER:
CERT_SERVER_SUBJECT:
CERT_SUBJECT:
CONTENT_LENGTH: 0
CONTENT_TYPE:
GATEWAY_INTERFACE: CGI/1.1
HTTPS: off
HTTPS_KEYSIZE:
HTTPS_SECRETKEYSIZE:
HTTPS_SERVER_ISSUER:
HTTPS_SERVER_SUBJECT:
INSTANCE_ID: 211
INSTANCE_META_PATH: /LM/W3SVC/211
LOCAL_ADDR: 208.115.221.130
PATH_INFO: /photo-album/example.aspx
PATH_TRANSLATED: C:\HostingSpaces\merchant\coreybryant.com\wwwroot\photo-album\example.as px
QUERY_STRING:
REMOTE_ADDR: 98.245.244.89
REMOTE_HOST: 98.245.244.89
REMOTE_PORT: 54306
REQUEST_METHOD: GET
SCRIPT_NAME: /photo-album/example.aspx
SERVER_NAME: www.coreybryant.com
SERVER_PORT: 80
SERVER_PORT_SECURE: 0
SERVER_PROTOCOL: HTTP/1.1
SERVER_SOFTWARE: Microsoft-IIS/7.0
URL: /photo-album/example.aspx
HTTP_CONNECTION: Keep-Alive
HTTP_ACCEPT: text/html, application/xhtml+xml, */*
HTTP_ACCEPT_ENCODING: gzip, deflate
HTTP_ACCEPT_LANGUAGE: en-US
HTTP_COOKIE: __utma=18937770.1113416063.1301950943.1319898122.1320425712.27; __utmz=18937770.1319725311.23.1.utmccn=(direct)|utmcsr=(direct)|utmcmd=( none); language=en
HTTP_HOST: www.coreybryant.com
HTTP_REFERER: http://www.experts-exchange.com/Programming/Languages/.NET/ASP.NET/Q_274 81365.html
HTTP_USER_AGENT: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
I changed the debug to "true" as well to hopefully help out as well (that was suggested) when I brought up the page.
There is solution suggested in your error log too in line:
The <head> tag on the current page requires the runat='server' attribute. Example: <head runat='server'></hea d>
So in your code just change <head> tag as:
The <head> tag on the current page requires the runat='server' attribute. Example: <head runat='server'></hea
So in your code just change <head> tag as:
<head runat="server">
<title>Corey Bryant</title>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
<meta name="description" content="" />
<meta name="keywords" content="" />
<meta name="robots" content="index, follow" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link href="includes/style.css" rel="stylesheet" type="text/css" />
</head>
ASKER
Apologies for being so late but I have been pretty ill lately.
Here is the new page with the code changes:
http://www.coreybryant.com/photo-album/example.aspx
Here is an example of what is should almost look like:
http://www.coreybryant.com/template.asp
Here is the new page with the code changes:
http://www.coreybryant.com/photo-album/example.aspx
Here is an example of what is should almost look like:
http://www.coreybryant.com/template.asp
First of all no apologies needed.
Second as you asked me about the look of website comparing two above links. Do you need fix for website layout?
Third your question header is asking for Gallery Server Pro control. I downloaded it, run the demo site and verified it. It's working fine.
So are you asking for no image display in your website via that control? Please be specific. Would help us to help in that context.
Second as you asked me about the look of website comparing two above links. Do you need fix for website layout?
Third your question header is asking for Gallery Server Pro control. I downloaded it, run the demo site and verified it. It's working fine.
So are you asking for no image display in your website via that control? Please be specific. Would help us to help in that context.
ASKER
Basically, I have a layout (in CSS) and I would like to incorporate that layout into this.
The layout is basically a header, left / right column, and footer. It is pretty similar to what they have on their site: http://www.galleryserverpro.com/demo.aspx
Here is some information that might help: http://www.galleryserverpro.com/aspnetDevelopers.aspx
Thanks again!
The layout is basically a header, left / right column, and footer. It is pretty similar to what they have on their site: http://www.galleryserverpro.com/demo.aspx
Here is some information that might help: http://www.galleryserverpro.com/aspnetDevelopers.aspx
Thanks again!
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thank you for this help! I am hoping this question pops up in the search engines for customizations and it will help others.
2. Web.config - File contains configuration information about your website at common location for all web pages.
3. Change your code little bit as follow:
Open in new window
4. For creating master pages: I would recommend you to use some of development tool. They would create same for you.
5. The basic web.config file is simply xml file. You can create one by copying below contents in text file and saving file with "web.config" name.
Open in new window
Hope this all helps you to understand. Let us know how you are developing website. What tools you are using so that we can assist you more efficiently.